From 1b3eb2476cbf89b7583b5e264fef931038e3f695 Mon Sep 17 00:00:00 2001 From: Balaji Shankaran Date: Thu, 28 May 2020 21:38:11 +0530 Subject: [PATCH] All RRC ASN changes Change-Id: Ie55228480752851ac61a8509f06c392fd8d2d90e Signed-off-by: Balaji Shankaran --- build/common/asn_rrc.mak | 49 + build/common/asn_sysinfo.mak | 49 - build/common/du_app.mak | 2 +- build/odu/makefile | 10 +- src/codec_utils/RRC/AMF-Identifier.c | 70 + src/codec_utils/RRC/AMF-Identifier.h | 46 + src/codec_utils/RRC/ARFCN-ValueEUTRA.c | 64 + src/codec_utils/RRC/ARFCN-ValueEUTRA.h | 46 + src/codec_utils/RRC/ARFCN-ValueNR.c | 64 + src/codec_utils/RRC/ARFCN-ValueNR.h | 46 + src/codec_utils/RRC/AS-Config.c | 79 + src/codec_utils/RRC/AS-Config.h | 44 + src/codec_utils/RRC/AS-Context.c | 120 + src/codec_utils/RRC/AS-Context.h | 55 + src/codec_utils/RRC/AccessStratumRelease.c | 70 + src/codec_utils/RRC/AccessStratumRelease.h | 62 + src/codec_utils/RRC/AdditionalSpectrumEmission.c | 64 + src/codec_utils/RRC/AdditionalSpectrumEmission.h | 46 + src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.c | 52 + src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.h | 42 + .../RRC/AffectedCarrierFreqCombInfoMRDC.c | 189 ++ .../RRC/AffectedCarrierFreqCombInfoMRDC.h | 66 + src/codec_utils/RRC/AffectedCarrierFreqCombNR.c | 52 + src/codec_utils/RRC/AffectedCarrierFreqCombNR.h | 42 + src/codec_utils/RRC/AggregatedBandwidth.c | 84 + src/codec_utils/RRC/AggregatedBandwidth.h | 67 + src/codec_utils/RRC/Alpha.c | 68 + src/codec_utils/RRC/Alpha.h | 59 + src/codec_utils/RRC/BCCH-BCH-Message.c | 50 + src/codec_utils/RRC/BCCH-BCH-Message.h | 38 + src/codec_utils/RRC/BCCH-BCH-MessageType.c | 94 + src/codec_utils/RRC/BCCH-BCH-MessageType.h | 59 + src/codec_utils/RRC/BCCH-Config.c | 103 + src/codec_utils/RRC/BCCH-Config.h | 53 + src/codec_utils/RRC/BCCH-DL-SCH-Message.c | 50 + src/codec_utils/RRC/BCCH-DL-SCH-Message.h | 38 + src/codec_utils/RRC/BCCH-DL-SCH-MessageType.c | 152 + src/codec_utils/RRC/BCCH-DL-SCH-MessageType.h | 74 + src/codec_utils/RRC/BFR-CSIRS-Resource.c | 217 ++ src/codec_utils/RRC/BFR-CSIRS-Resource.h | 54 + src/codec_utils/RRC/BFR-SSB-Resource.c | 93 + src/codec_utils/RRC/BFR-SSB-Resource.h | 46 + src/codec_utils/RRC/BSR-Config.c | 287 ++ src/codec_utils/RRC/BSR-Config.h | 97 + src/codec_utils/RRC/BWP-Downlink.c | 74 + src/codec_utils/RRC/BWP-Downlink.h | 50 + src/codec_utils/RRC/BWP-DownlinkCommon.c | 188 ++ src/codec_utils/RRC/BWP-DownlinkCommon.h | 82 + src/codec_utils/RRC/BWP-DownlinkDedicated.c | 314 +++ src/codec_utils/RRC/BWP-DownlinkDedicated.h | 112 + src/codec_utils/RRC/BWP-Id.c | 64 + src/codec_utils/RRC/BWP-Id.h | 46 + src/codec_utils/RRC/BWP-Uplink.c | 74 + src/codec_utils/RRC/BWP-Uplink.h | 50 + src/codec_utils/RRC/BWP-UplinkCommon.c | 256 ++ src/codec_utils/RRC/BWP-UplinkCommon.h | 98 + src/codec_utils/RRC/BWP-UplinkDedicated.c | 382 +++ src/codec_utils/RRC/BWP-UplinkDedicated.h | 128 + src/codec_utils/RRC/BWP.c | 152 + src/codec_utils/RRC/BWP.h | 50 + src/codec_utils/RRC/BandCombination.c | 281 ++ src/codec_utils/RRC/BandCombination.h | 67 + src/codec_utils/RRC/BandCombinationIndex.c | 64 + src/codec_utils/RRC/BandCombinationIndex.h | 46 + src/codec_utils/RRC/BandCombinationInfo.c | 139 + src/codec_utils/RRC/BandCombinationInfo.h | 49 + src/codec_utils/RRC/BandCombinationInfoList.c | 53 + src/codec_utils/RRC/BandCombinationInfoList.h | 44 + src/codec_utils/RRC/BandCombinationInfoSN.c | 60 + src/codec_utils/RRC/BandCombinationInfoSN.h | 42 + src/codec_utils/RRC/BandCombinationList.c | 53 + src/codec_utils/RRC/BandCombinationList.h | 44 + src/codec_utils/RRC/BandNR.c | 1564 +++++++++++ src/codec_utils/RRC/BandNR.h | 178 ++ src/codec_utils/RRC/BandParameters.c | 195 ++ src/codec_utils/RRC/BandParameters.h | 70 + src/codec_utils/RRC/BeamFailureRecoveryConfig.c | 457 +++ src/codec_utils/RRC/BeamFailureRecoveryConfig.h | 98 + src/codec_utils/RRC/BeamManagementSSB-CSI-RS.c | 233 ++ src/codec_utils/RRC/BeamManagementSSB-CSI-RS.h | 67 + src/codec_utils/RRC/BetaOffsets.c | 343 +++ src/codec_utils/RRC/BetaOffsets.h | 46 + src/codec_utils/RRC/CA-BandwidthClassEUTRA.c | 66 + src/codec_utils/RRC/CA-BandwidthClassEUTRA.h | 60 + src/codec_utils/RRC/CA-BandwidthClassNR.c | 88 + src/codec_utils/RRC/CA-BandwidthClassNR.h | 71 + src/codec_utils/RRC/CA-ParametersEUTRA.c | 368 +++ src/codec_utils/RRC/CA-ParametersEUTRA.h | 68 + src/codec_utils/RRC/CA-ParametersNR.c | 502 ++++ src/codec_utils/RRC/CA-ParametersNR.h | 87 + src/codec_utils/RRC/CFRA-CSIRS-Resource.c | 215 ++ src/codec_utils/RRC/CFRA-CSIRS-Resource.h | 54 + src/codec_utils/RRC/CFRA-SSB-Resource.c | 93 + src/codec_utils/RRC/CFRA-SSB-Resource.h | 46 + src/codec_utils/RRC/CFRA.c | 622 +++++ src/codec_utils/RRC/CFRA.h | 116 + src/codec_utils/RRC/CG-Config-IEs.c | 263 ++ src/codec_utils/RRC/CG-Config-IEs.h | 61 + src/codec_utils/RRC/CG-Config.c | 213 ++ src/codec_utils/RRC/CG-Config.h | 80 + src/codec_utils/RRC/CG-ConfigInfo-IEs.c | 490 ++++ src/codec_utils/RRC/CG-ConfigInfo-IEs.h | 82 + src/codec_utils/RRC/CG-ConfigInfo.c | 213 ++ src/codec_utils/RRC/CG-ConfigInfo.h | 80 + src/codec_utils/RRC/CG-UCI-OnPUSCH.c | 145 + src/codec_utils/RRC/CG-UCI-OnPUSCH.h | 61 + src/codec_utils/RRC/CGI-Info.c | 160 ++ src/codec_utils/RRC/CGI-Info.h | 57 + src/codec_utils/RRC/CSI-AperiodicTriggerState.c | 130 + src/codec_utils/RRC/CSI-AperiodicTriggerState.h | 53 + .../RRC/CSI-AperiodicTriggerStateList.c | 53 + .../RRC/CSI-AperiodicTriggerStateList.h | 44 + .../RRC/CSI-AssociatedReportConfigInfo.c | 405 +++ .../RRC/CSI-AssociatedReportConfigInfo.h | 79 + src/codec_utils/RRC/CSI-FrequencyOccupation.c | 126 + src/codec_utils/RRC/CSI-FrequencyOccupation.h | 45 + src/codec_utils/RRC/CSI-IM-Resource.c | 421 +++ src/codec_utils/RRC/CSI-IM-Resource.h | 97 + src/codec_utils/RRC/CSI-IM-ResourceId.c | 64 + src/codec_utils/RRC/CSI-IM-ResourceId.h | 46 + src/codec_utils/RRC/CSI-IM-ResourceSet.c | 139 + src/codec_utils/RRC/CSI-IM-ResourceSet.h | 53 + src/codec_utils/RRC/CSI-IM-ResourceSetId.c | 64 + src/codec_utils/RRC/CSI-IM-ResourceSetId.h | 46 + src/codec_utils/RRC/CSI-MeasConfig.c | 1474 ++++++++++ src/codec_utils/RRC/CSI-MeasConfig.h | 182 ++ src/codec_utils/RRC/CSI-RS-CellMobility.c | 352 +++ src/codec_utils/RRC/CSI-RS-CellMobility.h | 76 + src/codec_utils/RRC/CSI-RS-ForTracking.c | 212 ++ src/codec_utils/RRC/CSI-RS-ForTracking.h | 43 + .../RRC/CSI-RS-IM-ReceptionForFeedback.c | 517 ++++ .../RRC/CSI-RS-IM-ReceptionForFeedback.h | 166 ++ src/codec_utils/RRC/CSI-RS-Index.c | 64 + src/codec_utils/RRC/CSI-RS-Index.h | 46 + src/codec_utils/RRC/CSI-RS-Resource-Mobility.c | 608 ++++ src/codec_utils/RRC/CSI-RS-Resource-Mobility.h | 96 + .../RRC/CSI-RS-ResourceConfigMobility.c | 197 ++ .../RRC/CSI-RS-ResourceConfigMobility.h | 62 + src/codec_utils/RRC/CSI-RS-ResourceMapping.c | 651 +++++ src/codec_utils/RRC/CSI-RS-ResourceMapping.h | 116 + src/codec_utils/RRC/CSI-ReportConfig.c | 2811 +++++++++++++++++++ src/codec_utils/RRC/CSI-ReportConfig.h | 326 +++ src/codec_utils/RRC/CSI-ReportConfigId.c | 64 + src/codec_utils/RRC/CSI-ReportConfigId.h | 46 + src/codec_utils/RRC/CSI-ReportFramework.c | 212 ++ src/codec_utils/RRC/CSI-ReportFramework.h | 43 + .../RRC/CSI-ReportPeriodicityAndOffset.c | 475 ++++ .../RRC/CSI-ReportPeriodicityAndOffset.h | 68 + src/codec_utils/RRC/CSI-ResourceConfig.c | 480 ++++ src/codec_utils/RRC/CSI-ResourceConfig.h | 98 + src/codec_utils/RRC/CSI-ResourceConfigId.c | 64 + src/codec_utils/RRC/CSI-ResourceConfigId.h | 46 + .../RRC/CSI-ResourcePeriodicityAndOffset.c | 604 ++++ .../RRC/CSI-ResourcePeriodicityAndOffset.h | 74 + src/codec_utils/RRC/CSI-SSB-ResourceSet.c | 139 + src/codec_utils/RRC/CSI-SSB-ResourceSet.h | 53 + src/codec_utils/RRC/CSI-SSB-ResourceSetId.c | 64 + src/codec_utils/RRC/CSI-SSB-ResourceSetId.h | 46 + .../RRC/CSI-SemiPersistentOnPUSCH-TriggerState.c | 50 + .../RRC/CSI-SemiPersistentOnPUSCH-TriggerState.h | 44 + .../CSI-SemiPersistentOnPUSCH-TriggerStateList.c | 53 + .../CSI-SemiPersistentOnPUSCH-TriggerStateList.h | 44 + src/codec_utils/RRC/CandidateServingFreqListNR.c | 52 + src/codec_utils/RRC/CandidateServingFreqListNR.h | 42 + src/codec_utils/RRC/CarrierFreqEUTRA.c | 337 +++ src/codec_utils/RRC/CarrierFreqEUTRA.h | 71 + src/codec_utils/RRC/CarrierFreqListEUTRA.c | 53 + src/codec_utils/RRC/CarrierFreqListEUTRA.h | 44 + src/codec_utils/RRC/CarrierInfoNR.c | 73 + src/codec_utils/RRC/CarrierInfoNR.h | 50 + .../RRC/CellAccessRelatedInfo-EUTRA-5GC.c | 82 + .../RRC/CellAccessRelatedInfo-EUTRA-5GC.h | 46 + .../RRC/CellAccessRelatedInfo-EUTRA-EPC.c | 148 + .../RRC/CellAccessRelatedInfo-EUTRA-EPC.h | 43 + src/codec_utils/RRC/CellAccessRelatedInfo.c | 109 + src/codec_utils/RRC/CellAccessRelatedInfo.h | 52 + src/codec_utils/RRC/CellGroupConfig.c | 545 ++++ src/codec_utils/RRC/CellGroupConfig.h | 93 + src/codec_utils/RRC/CellGroupId.c | 64 + src/codec_utils/RRC/CellGroupId.h | 46 + src/codec_utils/RRC/CellIdentity-EUTRA-5GC.c | 137 + src/codec_utils/RRC/CellIdentity-EUTRA-5GC.h | 53 + src/codec_utils/RRC/CellIdentity.c | 70 + src/codec_utils/RRC/CellIdentity.h | 46 + src/codec_utils/RRC/CellReselectionPriorities.c | 135 + src/codec_utils/RRC/CellReselectionPriorities.h | 63 + src/codec_utils/RRC/CellReselectionPriority.c | 64 + src/codec_utils/RRC/CellReselectionPriority.h | 46 + src/codec_utils/RRC/CellReselectionSubPriority.c | 60 + src/codec_utils/RRC/CellReselectionSubPriority.h | 55 + src/codec_utils/RRC/CellsToAddMod.c | 60 + src/codec_utils/RRC/CellsToAddMod.h | 42 + src/codec_utils/RRC/CellsToAddModList.c | 53 + src/codec_utils/RRC/CellsToAddModList.h | 44 + src/codec_utils/RRC/CellsTriggeredList.c | 109 + src/codec_utils/RRC/CellsTriggeredList.h | 63 + src/codec_utils/RRC/CipheringAlgorithm.c | 70 + src/codec_utils/RRC/CipheringAlgorithm.h | 62 + src/codec_utils/RRC/CodebookConfig.c | 2913 ++++++++++++++++++++ src/codec_utils/RRC/CodebookConfig.h | 267 ++ src/codec_utils/RRC/ConfigRestrictInfoSCG.c | 277 ++ src/codec_utils/RRC/ConfigRestrictInfoSCG.h | 66 + src/codec_utils/RRC/ConfigRestrictModReqSCG.c | 63 + src/codec_utils/RRC/ConfigRestrictModReqSCG.h | 48 + src/codec_utils/RRC/ConfiguredGrantConfig.c | 1379 +++++++++ src/codec_utils/RRC/ConfiguredGrantConfig.h | 198 ++ src/codec_utils/RRC/ConnEstFailureControl.c | 219 ++ src/codec_utils/RRC/ConnEstFailureControl.h | 63 + src/codec_utils/RRC/ControlResourceSet.c | 748 +++++ src/codec_utils/RRC/ControlResourceSet.h | 114 + src/codec_utils/RRC/ControlResourceSetId.c | 64 + src/codec_utils/RRC/ControlResourceSetId.h | 46 + src/codec_utils/RRC/ControlResourceSetZero.c | 64 + src/codec_utils/RRC/ControlResourceSetZero.h | 46 + src/codec_utils/RRC/CounterCheck-IEs.c | 100 + src/codec_utils/RRC/CounterCheck-IEs.h | 47 + src/codec_utils/RRC/CounterCheck.c | 146 + src/codec_utils/RRC/CounterCheck.h | 65 + src/codec_utils/RRC/CounterCheckResponse-IEs.c | 100 + src/codec_utils/RRC/CounterCheckResponse-IEs.h | 47 + src/codec_utils/RRC/CounterCheckResponse.c | 146 + src/codec_utils/RRC/CounterCheckResponse.h | 65 + src/codec_utils/RRC/CrossCarrierSchedulingConfig.c | 236 ++ src/codec_utils/RRC/CrossCarrierSchedulingConfig.h | 74 + src/codec_utils/RRC/DL-AM-RLC.c | 72 + src/codec_utils/RRC/DL-AM-RLC.h | 44 + src/codec_utils/RRC/DL-CCCH-Message.c | 50 + src/codec_utils/RRC/DL-CCCH-Message.h | 38 + src/codec_utils/RRC/DL-CCCH-MessageType.c | 172 ++ src/codec_utils/RRC/DL-CCCH-MessageType.h | 79 + src/codec_utils/RRC/DL-DCCH-Message.c | 50 + src/codec_utils/RRC/DL-DCCH-Message.h | 38 + src/codec_utils/RRC/DL-DCCH-MessageType.c | 299 ++ src/codec_utils/RRC/DL-DCCH-MessageType.h | 110 + src/codec_utils/RRC/DL-UM-RLC.c | 62 + src/codec_utils/RRC/DL-UM-RLC.h | 42 + src/codec_utils/RRC/DLInformationTransfer-IEs.c | 100 + src/codec_utils/RRC/DLInformationTransfer-IEs.h | 47 + src/codec_utils/RRC/DLInformationTransfer.c | 146 + src/codec_utils/RRC/DLInformationTransfer.h | 65 + src/codec_utils/RRC/DMRS-DownlinkConfig.c | 371 +++ src/codec_utils/RRC/DMRS-DownlinkConfig.h | 85 + src/codec_utils/RRC/DMRS-UplinkConfig.c | 618 +++++ src/codec_utils/RRC/DMRS-UplinkConfig.h | 114 + src/codec_utils/RRC/DRB-CountInfo.c | 224 ++ src/codec_utils/RRC/DRB-CountInfo.h | 45 + src/codec_utils/RRC/DRB-CountInfoList.c | 53 + src/codec_utils/RRC/DRB-CountInfoList.h | 44 + src/codec_utils/RRC/DRB-CountMSB-Info.c | 136 + src/codec_utils/RRC/DRB-CountMSB-Info.h | 43 + src/codec_utils/RRC/DRB-CountMSB-InfoList.c | 53 + src/codec_utils/RRC/DRB-CountMSB-InfoList.h | 44 + src/codec_utils/RRC/DRB-Identity.c | 64 + src/codec_utils/RRC/DRB-Identity.h | 46 + src/codec_utils/RRC/DRB-ToAddMod.c | 278 ++ src/codec_utils/RRC/DRB-ToAddMod.h | 79 + src/codec_utils/RRC/DRB-ToAddModList.c | 53 + src/codec_utils/RRC/DRB-ToAddModList.h | 44 + src/codec_utils/RRC/DRB-ToReleaseList.c | 52 + src/codec_utils/RRC/DRB-ToReleaseList.h | 42 + src/codec_utils/RRC/DRX-Config.c | 1849 +++++++++++++ src/codec_utils/RRC/DRX-Config.h | 297 ++ src/codec_utils/RRC/DRX-Info.c | 1154 ++++++++ src/codec_utils/RRC/DRX-Info.h | 136 + src/codec_utils/RRC/DataInactivityTimer.c | 84 + src/codec_utils/RRC/DataInactivityTimer.h | 67 + src/codec_utils/RRC/DedicatedNAS-Message.c | 31 + src/codec_utils/RRC/DedicatedNAS-Message.h | 45 + src/codec_utils/RRC/DelayBudgetReport.c | 134 + src/codec_utils/RRC/DelayBudgetReport.h | 76 + src/codec_utils/RRC/DownlinkConfigCommon.c | 64 + src/codec_utils/RRC/DownlinkConfigCommon.h | 48 + src/codec_utils/RRC/DownlinkConfigCommonSIB.c | 80 + src/codec_utils/RRC/DownlinkConfigCommonSIB.h | 50 + src/codec_utils/RRC/DownlinkPreemption.c | 242 ++ src/codec_utils/RRC/DownlinkPreemption.h | 66 + src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.c | 64 + src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.h | 57 + src/codec_utils/RRC/EUTRA-BlackCell.c | 60 + src/codec_utils/RRC/EUTRA-BlackCell.h | 42 + src/codec_utils/RRC/EUTRA-Cell.c | 70 + src/codec_utils/RRC/EUTRA-Cell.h | 44 + src/codec_utils/RRC/EUTRA-CellIndex.c | 64 + src/codec_utils/RRC/EUTRA-CellIndex.h | 46 + src/codec_utils/RRC/EUTRA-CellIndexList.c | 52 + src/codec_utils/RRC/EUTRA-CellIndexList.h | 42 + src/codec_utils/RRC/EUTRA-FreqBlackCellList.c | 53 + src/codec_utils/RRC/EUTRA-FreqBlackCellList.h | 44 + src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.c | 148 + src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.h | 45 + src/codec_utils/RRC/EUTRA-FreqNeighCellList.c | 53 + src/codec_utils/RRC/EUTRA-FreqNeighCellList.h | 44 + src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.c | 442 +++ src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.h | 89 + .../RRC/EUTRA-MBSFN-SubframeConfigList.c | 53 + .../RRC/EUTRA-MBSFN-SubframeConfigList.h | 44 + src/codec_utils/RRC/EUTRA-MultiBandInfo.c | 63 + src/codec_utils/RRC/EUTRA-MultiBandInfo.h | 44 + src/codec_utils/RRC/EUTRA-MultiBandInfoList.c | 53 + src/codec_utils/RRC/EUTRA-MultiBandInfoList.h | 44 + src/codec_utils/RRC/EUTRA-NS-PmaxList.c | 53 + src/codec_utils/RRC/EUTRA-NS-PmaxList.h | 44 + src/codec_utils/RRC/EUTRA-NS-PmaxValue.c | 128 + src/codec_utils/RRC/EUTRA-NS-PmaxValue.h | 41 + src/codec_utils/RRC/EUTRA-Parameters.c | 153 + src/codec_utils/RRC/EUTRA-Parameters.h | 57 + src/codec_utils/RRC/EUTRA-ParametersCommon.c | 262 ++ src/codec_utils/RRC/EUTRA-ParametersCommon.h | 62 + src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.c | 99 + src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.h | 50 + src/codec_utils/RRC/EUTRA-PhysCellId.c | 64 + src/codec_utils/RRC/EUTRA-PhysCellId.h | 46 + src/codec_utils/RRC/EUTRA-PhysCellIdRange.c | 139 + src/codec_utils/RRC/EUTRA-PhysCellIdRange.h | 63 + src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.c | 31 + src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.h | 45 + src/codec_utils/RRC/EUTRA-Q-OffsetRange.c | 114 + src/codec_utils/RRC/EUTRA-Q-OffsetRange.h | 82 + src/codec_utils/RRC/EUTRA-RSTD-Info.c | 93 + src/codec_utils/RRC/EUTRA-RSTD-Info.h | 46 + src/codec_utils/RRC/EUTRA-RSTD-InfoList.c | 53 + src/codec_utils/RRC/EUTRA-RSTD-InfoList.h | 44 + src/codec_utils/RRC/EstablishmentCause.c | 84 + src/codec_utils/RRC/EstablishmentCause.h | 67 + src/codec_utils/RRC/EventTriggerConfig.c | 902 ++++++ src/codec_utils/RRC/EventTriggerConfig.h | 164 ++ src/codec_utils/RRC/EventTriggerConfigInterRAT.c | 407 +++ src/codec_utils/RRC/EventTriggerConfigInterRAT.h | 117 + src/codec_utils/RRC/FR-Info.c | 109 + src/codec_utils/RRC/FR-Info.h | 49 + src/codec_utils/RRC/FR-InfoList.c | 53 + src/codec_utils/RRC/FR-InfoList.h | 44 + src/codec_utils/RRC/FailureInfoRLC-Bearer.c | 123 + src/codec_utils/RRC/FailureInfoRLC-Bearer.h | 53 + src/codec_utils/RRC/FailureInformation-IEs.c | 101 + src/codec_utils/RRC/FailureInformation-IEs.h | 49 + src/codec_utils/RRC/FailureInformation.c | 136 + src/codec_utils/RRC/FailureInformation.h | 63 + src/codec_utils/RRC/FeatureSet.c | 171 ++ src/codec_utils/RRC/FeatureSet.h | 68 + src/codec_utils/RRC/FeatureSetCombination.c | 53 + src/codec_utils/RRC/FeatureSetCombination.h | 44 + src/codec_utils/RRC/FeatureSetCombinationId.c | 64 + src/codec_utils/RRC/FeatureSetCombinationId.h | 46 + src/codec_utils/RRC/FeatureSetDownlink.c | 1542 +++++++++++ src/codec_utils/RRC/FeatureSetDownlink.h | 188 ++ src/codec_utils/RRC/FeatureSetDownlinkId.c | 64 + src/codec_utils/RRC/FeatureSetDownlinkId.h | 46 + src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.c | 64 + src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.h | 46 + src/codec_utils/RRC/FeatureSetDownlinkPerCC.c | 139 + src/codec_utils/RRC/FeatureSetDownlinkPerCC.h | 54 + src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.c | 64 + src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.h | 46 + src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.c | 64 + src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.h | 46 + src/codec_utils/RRC/FeatureSetEntryIndex.c | 64 + src/codec_utils/RRC/FeatureSetEntryIndex.h | 46 + src/codec_utils/RRC/FeatureSetUplink.c | 809 ++++++ src/codec_utils/RRC/FeatureSetUplink.h | 125 + src/codec_utils/RRC/FeatureSetUplinkId.c | 64 + src/codec_utils/RRC/FeatureSetUplinkId.h | 46 + src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.c | 64 + src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.h | 46 + src/codec_utils/RRC/FeatureSetUplinkPerCC.c | 237 ++ src/codec_utils/RRC/FeatureSetUplinkPerCC.h | 62 + src/codec_utils/RRC/FeatureSets.c | 402 +++ src/codec_utils/RRC/FeatureSets.h | 74 + src/codec_utils/RRC/FeatureSetsPerBand.c | 53 + src/codec_utils/RRC/FeatureSetsPerBand.h | 44 + src/codec_utils/RRC/FilterCoefficient.c | 86 + src/codec_utils/RRC/FilterCoefficient.h | 70 + src/codec_utils/RRC/FilterConfig.c | 141 + src/codec_utils/RRC/FilterConfig.h | 42 + src/codec_utils/RRC/FreqBandIndicatorEUTRA.c | 64 + src/codec_utils/RRC/FreqBandIndicatorEUTRA.h | 46 + src/codec_utils/RRC/FreqBandIndicatorNR.c | 64 + src/codec_utils/RRC/FreqBandIndicatorNR.h | 46 + src/codec_utils/RRC/FreqBandInformation.c | 67 + src/codec_utils/RRC/FreqBandInformation.h | 55 + src/codec_utils/RRC/FreqBandInformationEUTRA.c | 72 + src/codec_utils/RRC/FreqBandInformationEUTRA.h | 43 + src/codec_utils/RRC/FreqBandInformationNR.c | 158 ++ src/codec_utils/RRC/FreqBandInformationNR.h | 46 + src/codec_utils/RRC/FreqBandList.c | 53 + src/codec_utils/RRC/FreqBandList.h | 44 + src/codec_utils/RRC/FreqPriorityEUTRA.c | 72 + src/codec_utils/RRC/FreqPriorityEUTRA.h | 44 + src/codec_utils/RRC/FreqPriorityListEUTRA.c | 53 + src/codec_utils/RRC/FreqPriorityListEUTRA.h | 44 + src/codec_utils/RRC/FreqPriorityListNR.c | 53 + src/codec_utils/RRC/FreqPriorityListNR.h | 44 + src/codec_utils/RRC/FreqPriorityNR.c | 72 + src/codec_utils/RRC/FreqPriorityNR.h | 44 + src/codec_utils/RRC/FreqSeparationClass.c | 60 + src/codec_utils/RRC/FreqSeparationClass.h | 57 + src/codec_utils/RRC/FrequencyInfoDL-SIB.c | 183 ++ src/codec_utils/RRC/FrequencyInfoDL-SIB.h | 53 + src/codec_utils/RRC/FrequencyInfoDL.c | 162 ++ src/codec_utils/RRC/FrequencyInfoDL.h | 58 + src/codec_utils/RRC/FrequencyInfoUL-SIB.c | 220 ++ src/codec_utils/RRC/FrequencyInfoUL-SIB.h | 67 + src/codec_utils/RRC/FrequencyInfoUL.c | 230 ++ src/codec_utils/RRC/FrequencyInfoUL.h | 69 + src/codec_utils/RRC/GapConfig.c | 274 ++ src/codec_utils/RRC/GapConfig.h | 72 + .../RRC/GeneralParametersMRDC-XDD-Diff.c | 270 ++ .../RRC/GeneralParametersMRDC-XDD-Diff.h | 65 + src/codec_utils/RRC/HandoverCommand-IEs.c | 119 + src/codec_utils/RRC/HandoverCommand-IEs.h | 45 + src/codec_utils/RRC/HandoverCommand.c | 213 ++ src/codec_utils/RRC/HandoverCommand.h | 80 + .../RRC/HandoverPreparationInformation-IEs.c | 123 + .../RRC/HandoverPreparationInformation-IEs.h | 53 + .../RRC/HandoverPreparationInformation.c | 213 ++ .../RRC/HandoverPreparationInformation.h | 80 + src/codec_utils/RRC/Hysteresis.c | 64 + src/codec_utils/RRC/Hysteresis.h | 46 + src/codec_utils/RRC/I-RNTI-Value.c | 70 + src/codec_utils/RRC/I-RNTI-Value.h | 46 + .../RRC/INT-ConfigurationPerServingCell.c | 93 + .../RRC/INT-ConfigurationPerServingCell.h | 42 + src/codec_utils/RRC/InitialUE-Identity.c | 143 + src/codec_utils/RRC/InitialUE-Identity.h | 52 + src/codec_utils/RRC/IntegrityProtAlgorithm.c | 70 + src/codec_utils/RRC/IntegrityProtAlgorithm.h | 62 + src/codec_utils/RRC/InterFreqBlackCellList.c | 53 + src/codec_utils/RRC/InterFreqBlackCellList.h | 44 + src/codec_utils/RRC/InterFreqCarrierFreqInfo.c | 399 +++ src/codec_utils/RRC/InterFreqCarrierFreqInfo.h | 95 + src/codec_utils/RRC/InterFreqCarrierFreqList.c | 53 + src/codec_utils/RRC/InterFreqCarrierFreqList.h | 44 + src/codec_utils/RRC/InterFreqNeighCellInfo.c | 191 ++ src/codec_utils/RRC/InterFreqNeighCellInfo.h | 50 + src/codec_utils/RRC/InterFreqNeighCellList.c | 53 + src/codec_utils/RRC/InterFreqNeighCellList.h | 44 + src/codec_utils/RRC/InterRAT-Parameters.c | 53 + src/codec_utils/RRC/InterRAT-Parameters.h | 44 + src/codec_utils/RRC/IntraFreqBlackCellList.c | 53 + src/codec_utils/RRC/IntraFreqBlackCellList.h | 44 + src/codec_utils/RRC/IntraFreqNeighCellInfo.c | 191 ++ src/codec_utils/RRC/IntraFreqNeighCellInfo.h | 50 + src/codec_utils/RRC/IntraFreqNeighCellList.c | 53 + src/codec_utils/RRC/IntraFreqNeighCellList.h | 44 + .../RRC/LocationMeasurementIndication-IEs.c | 158 ++ .../RRC/LocationMeasurementIndication-IEs.h | 67 + .../RRC/LocationMeasurementIndication.c | 136 + .../RRC/LocationMeasurementIndication.h | 63 + src/codec_utils/RRC/LocationMeasurementInfo.c | 66 + src/codec_utils/RRC/LocationMeasurementInfo.h | 60 + src/codec_utils/RRC/LogicalChannelConfig.c | 754 +++++ src/codec_utils/RRC/LogicalChannelConfig.h | 147 + src/codec_utils/RRC/LogicalChannelIdentity.c | 64 + src/codec_utils/RRC/LogicalChannelIdentity.h | 46 + src/codec_utils/RRC/MAC-CellGroupConfig.c | 343 +++ src/codec_utils/RRC/MAC-CellGroupConfig.h | 110 + src/codec_utils/RRC/MAC-Parameters.c | 64 + src/codec_utils/RRC/MAC-Parameters.h | 44 + src/codec_utils/RRC/MAC-ParametersCommon.c | 372 +++ src/codec_utils/RRC/MAC-ParametersCommon.h | 75 + src/codec_utils/RRC/MAC-ParametersXDD-Diff.c | 384 +++ src/codec_utils/RRC/MAC-ParametersXDD-Diff.h | 75 + src/codec_utils/RRC/MCC-MNC-Digit.c | 64 + src/codec_utils/RRC/MCC-MNC-Digit.h | 46 + src/codec_utils/RRC/MCC.c | 52 + src/codec_utils/RRC/MCC.h | 42 + src/codec_utils/RRC/MIB.c | 427 +++ src/codec_utils/RRC/MIB.h | 72 + src/codec_utils/RRC/MIMO-LayersDL.c | 58 + src/codec_utils/RRC/MIMO-LayersDL.h | 54 + src/codec_utils/RRC/MIMO-LayersUL.c | 58 + src/codec_utils/RRC/MIMO-LayersUL.h | 54 + src/codec_utils/RRC/MIMO-ParametersPerBand.c | 2119 ++++++++++++++ src/codec_utils/RRC/MIMO-ParametersPerBand.h | 254 ++ src/codec_utils/RRC/MNC.c | 52 + src/codec_utils/RRC/MNC.h | 42 + src/codec_utils/RRC/MRDC-AssistanceInfo.c | 130 + src/codec_utils/RRC/MRDC-AssistanceInfo.h | 53 + src/codec_utils/RRC/MRDC-Parameters.c | 447 +++ src/codec_utils/RRC/MRDC-Parameters.h | 83 + src/codec_utils/RRC/Makefile.am.libasncodec | 1436 ++++++++++ src/codec_utils/RRC/MasterKeyUpdate.c | 72 + src/codec_utils/RRC/MasterKeyUpdate.h | 48 + src/codec_utils/RRC/MeasAndMobParameters.c | 75 + src/codec_utils/RRC/MeasAndMobParameters.h | 46 + src/codec_utils/RRC/MeasAndMobParametersCommon.c | 478 ++++ src/codec_utils/RRC/MeasAndMobParametersCommon.h | 82 + src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.c | 543 ++++ src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.h | 90 + .../RRC/MeasAndMobParametersMRDC-Common.c | 99 + .../RRC/MeasAndMobParametersMRDC-Common.h | 46 + .../RRC/MeasAndMobParametersMRDC-FRX-Diff.c | 99 + .../RRC/MeasAndMobParametersMRDC-FRX-Diff.h | 46 + .../RRC/MeasAndMobParametersMRDC-XDD-Diff.c | 156 ++ .../RRC/MeasAndMobParametersMRDC-XDD-Diff.h | 51 + src/codec_utils/RRC/MeasAndMobParametersMRDC.c | 75 + src/codec_utils/RRC/MeasAndMobParametersMRDC.h | 46 + src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.c | 372 +++ src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.h | 75 + src/codec_utils/RRC/MeasConfig.c | 208 ++ src/codec_utils/RRC/MeasConfig.h | 81 + src/codec_utils/RRC/MeasConfigMN.c | 259 ++ src/codec_utils/RRC/MeasConfigMN.h | 80 + src/codec_utils/RRC/MeasConfigSN.c | 132 + src/codec_utils/RRC/MeasConfigSN.h | 53 + src/codec_utils/RRC/MeasGapConfig.c | 289 ++ src/codec_utils/RRC/MeasGapConfig.h | 99 + src/codec_utils/RRC/MeasGapSharingConfig.c | 288 ++ src/codec_utils/RRC/MeasGapSharingConfig.h | 97 + src/codec_utils/RRC/MeasGapSharingScheme.c | 60 + src/codec_utils/RRC/MeasGapSharingScheme.h | 55 + src/codec_utils/RRC/MeasId.c | 64 + src/codec_utils/RRC/MeasId.h | 46 + src/codec_utils/RRC/MeasIdToAddMod.c | 70 + src/codec_utils/RRC/MeasIdToAddMod.h | 44 + src/codec_utils/RRC/MeasIdToAddModList.c | 53 + src/codec_utils/RRC/MeasIdToAddModList.h | 44 + src/codec_utils/RRC/MeasIdToRemoveList.c | 52 + src/codec_utils/RRC/MeasIdToRemoveList.h | 42 + src/codec_utils/RRC/MeasObjectEUTRA.c | 293 ++ src/codec_utils/RRC/MeasObjectEUTRA.h | 73 + src/codec_utils/RRC/MeasObjectId.c | 64 + src/codec_utils/RRC/MeasObjectId.h | 46 + src/codec_utils/RRC/MeasObjectNR.c | 610 ++++ src/codec_utils/RRC/MeasObjectNR.h | 107 + src/codec_utils/RRC/MeasObjectToAddMod.c | 119 + src/codec_utils/RRC/MeasObjectToAddMod.h | 67 + src/codec_utils/RRC/MeasObjectToAddModList.c | 53 + src/codec_utils/RRC/MeasObjectToAddModList.h | 44 + src/codec_utils/RRC/MeasObjectToRemoveList.c | 52 + src/codec_utils/RRC/MeasObjectToRemoveList.h | 42 + src/codec_utils/RRC/MeasQuantityResults.c | 72 + src/codec_utils/RRC/MeasQuantityResults.h | 44 + src/codec_utils/RRC/MeasQuantityResultsEUTRA.c | 72 + src/codec_utils/RRC/MeasQuantityResultsEUTRA.h | 44 + src/codec_utils/RRC/MeasReportQuantity.c | 70 + src/codec_utils/RRC/MeasReportQuantity.h | 42 + src/codec_utils/RRC/MeasResult2NR.c | 84 + src/codec_utils/RRC/MeasResult2NR.h | 51 + src/codec_utils/RRC/MeasResultCellListSFTD.c | 53 + src/codec_utils/RRC/MeasResultCellListSFTD.h | 44 + src/codec_utils/RRC/MeasResultCellSFTD.c | 148 + src/codec_utils/RRC/MeasResultCellSFTD.h | 45 + src/codec_utils/RRC/MeasResultEUTRA.c | 420 +++ src/codec_utils/RRC/MeasResultEUTRA.h | 88 + src/codec_utils/RRC/MeasResultList2NR.c | 53 + src/codec_utils/RRC/MeasResultList2NR.h | 44 + src/codec_utils/RRC/MeasResultListEUTRA.c | 53 + src/codec_utils/RRC/MeasResultListEUTRA.h | 44 + src/codec_utils/RRC/MeasResultListNR.c | 53 + src/codec_utils/RRC/MeasResultListNR.h | 44 + src/codec_utils/RRC/MeasResultNR.c | 286 ++ src/codec_utils/RRC/MeasResultNR.h | 75 + src/codec_utils/RRC/MeasResultSCG-Failure.c | 50 + src/codec_utils/RRC/MeasResultSCG-Failure.h | 42 + src/codec_utils/RRC/MeasResultServMO.c | 73 + src/codec_utils/RRC/MeasResultServMO.h | 50 + src/codec_utils/RRC/MeasResultServMOList.c | 53 + src/codec_utils/RRC/MeasResultServMOList.h | 44 + src/codec_utils/RRC/MeasResults.c | 131 + src/codec_utils/RRC/MeasResults.h | 73 + src/codec_utils/RRC/MeasTiming.c | 128 + src/codec_utils/RRC/MeasTiming.h | 57 + src/codec_utils/RRC/MeasTimingList.c | 53 + src/codec_utils/RRC/MeasTimingList.h | 44 + src/codec_utils/RRC/MeasTriggerQuantity.c | 75 + src/codec_utils/RRC/MeasTriggerQuantity.h | 56 + src/codec_utils/RRC/MeasTriggerQuantityEUTRA.c | 75 + src/codec_utils/RRC/MeasTriggerQuantityEUTRA.h | 56 + src/codec_utils/RRC/MeasTriggerQuantityOffset.c | 174 ++ src/codec_utils/RRC/MeasTriggerQuantityOffset.h | 54 + src/codec_utils/RRC/MeasurementReport-IEs.c | 100 + src/codec_utils/RRC/MeasurementReport-IEs.h | 47 + src/codec_utils/RRC/MeasurementReport.c | 136 + src/codec_utils/RRC/MeasurementReport.h | 63 + .../RRC/MeasurementTimingConfiguration-IEs.c | 91 + .../RRC/MeasurementTimingConfiguration-IEs.h | 47 + .../RRC/MeasurementTimingConfiguration.c | 213 ++ .../RRC/MeasurementTimingConfiguration.h | 80 + src/codec_utils/RRC/MobilityFromNRCommand-IEs.c | 175 ++ src/codec_utils/RRC/MobilityFromNRCommand-IEs.h | 61 + src/codec_utils/RRC/MobilityFromNRCommand.c | 146 + src/codec_utils/RRC/MobilityFromNRCommand.h | 65 + src/codec_utils/RRC/MobilityStateParameters.c | 268 ++ src/codec_utils/RRC/MobilityStateParameters.h | 68 + src/codec_utils/RRC/ModulationOrder.c | 64 + src/codec_utils/RRC/ModulationOrder.h | 57 + src/codec_utils/RRC/MultiBandInfoListEUTRA.c | 52 + src/codec_utils/RRC/MultiBandInfoListEUTRA.h | 42 + src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.c | 53 + src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.h | 44 + src/codec_utils/RRC/MultiFrequencyBandListNR.c | 52 + src/codec_utils/RRC/MultiFrequencyBandListNR.h | 42 + src/codec_utils/RRC/NAICS-Capability-Entry.c | 170 ++ src/codec_utils/RRC/NAICS-Capability-Entry.h | 67 + src/codec_utils/RRC/NG-5G-S-TMSI.c | 70 + src/codec_utils/RRC/NG-5G-S-TMSI.h | 46 + src/codec_utils/RRC/NR-FreqInfo.c | 52 + src/codec_utils/RRC/NR-FreqInfo.h | 44 + src/codec_utils/RRC/NR-MultiBandInfo.c | 63 + src/codec_utils/RRC/NR-MultiBandInfo.h | 44 + src/codec_utils/RRC/NR-NS-PmaxList.c | 53 + src/codec_utils/RRC/NR-NS-PmaxList.h | 44 + src/codec_utils/RRC/NR-NS-PmaxValue.c | 62 + src/codec_utils/RRC/NR-NS-PmaxValue.h | 42 + src/codec_utils/RRC/NR-RS-Type.c | 56 + src/codec_utils/RRC/NR-RS-Type.h | 53 + src/codec_utils/{SYSINFO => RRC}/NULL.c | 0 src/codec_utils/{SYSINFO => RRC}/NULL.h | 0 src/codec_utils/RRC/NZP-CSI-RS-Resource.c | 199 ++ src/codec_utils/RRC/NZP-CSI-RS-Resource.h | 67 + src/codec_utils/RRC/NZP-CSI-RS-ResourceId.c | 64 + src/codec_utils/RRC/NZP-CSI-RS-ResourceId.h | 46 + src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.c | 300 ++ src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.h | 69 + src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.c | 64 + src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.h | 46 + .../{SYSINFO => RRC}/NativeEnumerated.c | 0 .../{SYSINFO => RRC}/NativeEnumerated.h | 0 .../{SYSINFO => RRC}/NativeEnumerated_oer.c | 0 src/codec_utils/{SYSINFO => RRC}/NativeInteger.c | 0 src/codec_utils/{SYSINFO => RRC}/NativeInteger.h | 0 .../{SYSINFO => RRC}/NativeInteger_oer.c | 0 src/codec_utils/RRC/NextHopChainingCount.c | 64 + src/codec_utils/RRC/NextHopChainingCount.h | 46 + src/codec_utils/RRC/OtherConfig.c | 213 ++ src/codec_utils/RRC/OtherConfig.h | 74 + src/codec_utils/RRC/OverheatingAssistance.c | 423 +++ src/codec_utils/RRC/OverheatingAssistance.h | 77 + src/codec_utils/RRC/P-Max.c | 64 + src/codec_utils/RRC/P-Max.h | 46 + src/codec_utils/RRC/P0-PUCCH-Id.c | 64 + src/codec_utils/RRC/P0-PUCCH-Id.h | 46 + src/codec_utils/RRC/P0-PUCCH.c | 93 + src/codec_utils/RRC/P0-PUCCH.h | 42 + src/codec_utils/RRC/P0-PUSCH-AlphaSet.c | 105 + src/codec_utils/RRC/P0-PUSCH-AlphaSet.h | 44 + src/codec_utils/RRC/P0-PUSCH-AlphaSetId.c | 64 + src/codec_utils/RRC/P0-PUSCH-AlphaSetId.h | 46 + src/codec_utils/RRC/PCCH-Config.c | 1365 +++++++++ src/codec_utils/RRC/PCCH-Config.h | 147 + src/codec_utils/RRC/PCCH-Message.c | 50 + src/codec_utils/RRC/PCCH-Message.h | 38 + src/codec_utils/RRC/PCCH-MessageType.c | 151 + src/codec_utils/RRC/PCCH-MessageType.h | 74 + src/codec_utils/RRC/PCI-List.c | 52 + src/codec_utils/RRC/PCI-List.h | 42 + src/codec_utils/RRC/PCI-Range.c | 139 + src/codec_utils/RRC/PCI-Range.h | 63 + src/codec_utils/RRC/PCI-RangeElement.c | 60 + src/codec_utils/RRC/PCI-RangeElement.h | 42 + src/codec_utils/RRC/PCI-RangeIndex.c | 64 + src/codec_utils/RRC/PCI-RangeIndex.h | 46 + src/codec_utils/RRC/PCI-RangeIndexList.c | 52 + src/codec_utils/RRC/PCI-RangeIndexList.h | 42 + src/codec_utils/RRC/PDCCH-Config.c | 672 +++++ src/codec_utils/RRC/PDCCH-Config.h | 142 + src/codec_utils/RRC/PDCCH-ConfigCommon.c | 203 ++ src/codec_utils/RRC/PDCCH-ConfigCommon.h | 64 + src/codec_utils/RRC/PDCCH-ConfigSIB1.c | 60 + src/codec_utils/RRC/PDCCH-ConfigSIB1.h | 42 + src/codec_utils/RRC/PDCCH-ServingCellConfig.c | 110 + src/codec_utils/RRC/PDCCH-ServingCellConfig.h | 64 + src/codec_utils/RRC/PDCP-Config.c | 1457 ++++++++++ src/codec_utils/RRC/PDCP-Config.h | 259 ++ src/codec_utils/RRC/PDCP-Parameters.c | 614 +++++ src/codec_utils/RRC/PDCP-Parameters.h | 111 + src/codec_utils/RRC/PDCP-ParametersMRDC.c | 156 ++ src/codec_utils/RRC/PDCP-ParametersMRDC.h | 51 + .../RRC/PDSCH-CodeBlockGroupTransmission.c | 113 + .../RRC/PDSCH-CodeBlockGroupTransmission.h | 55 + src/codec_utils/RRC/PDSCH-Config.c | 1946 +++++++++++++ src/codec_utils/RRC/PDSCH-Config.h | 267 ++ src/codec_utils/RRC/PDSCH-ConfigCommon.c | 53 + src/codec_utils/RRC/PDSCH-ConfigCommon.h | 46 + src/codec_utils/RRC/PDSCH-ServingCellConfig.c | 346 +++ src/codec_utils/RRC/PDSCH-ServingCellConfig.h | 93 + .../RRC/PDSCH-TimeDomainResourceAllocation.c | 187 ++ .../RRC/PDSCH-TimeDomainResourceAllocation.h | 50 + .../RRC/PDSCH-TimeDomainResourceAllocationList.c | 53 + .../RRC/PDSCH-TimeDomainResourceAllocationList.h | 44 + src/codec_utils/RRC/PDU-SessionID.c | 64 + src/codec_utils/RRC/PDU-SessionID.h | 46 + src/codec_utils/RRC/PHR-Config.c | 334 +++ src/codec_utils/RRC/PHR-Config.h | 87 + src/codec_utils/RRC/PLMN-IdentitY.c | 63 + src/codec_utils/RRC/PLMN-IdentitY.h | 44 + src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.c | 99 + src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.h | 55 + src/codec_utils/RRC/PLMN-IdentityInfo.c | 221 ++ src/codec_utils/RRC/PLMN-IdentityInfo.h | 68 + src/codec_utils/RRC/PLMN-IdentityInfoList.c | 53 + src/codec_utils/RRC/PLMN-IdentityInfoList.h | 44 + src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.c | 53 + src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.h | 44 + src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.c | 53 + src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.h | 44 + src/codec_utils/RRC/PLMN-RAN-AreaCell.c | 142 + src/codec_utils/RRC/PLMN-RAN-AreaCell.h | 51 + src/codec_utils/RRC/PLMN-RAN-AreaCellList.c | 53 + src/codec_utils/RRC/PLMN-RAN-AreaCellList.h | 44 + src/codec_utils/RRC/PLMN-RAN-AreaConfig.c | 143 + src/codec_utils/RRC/PLMN-RAN-AreaConfig.h | 51 + src/codec_utils/RRC/PLMN-RAN-AreaConfigList.c | 53 + src/codec_utils/RRC/PLMN-RAN-AreaConfigList.h | 44 + src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.c | 67 + src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.h | 55 + src/codec_utils/RRC/PRB-Id.c | 64 + src/codec_utils/RRC/PRB-Id.h | 46 + src/codec_utils/RRC/PTRS-DensityRecommendationDL.c | 255 ++ src/codec_utils/RRC/PTRS-DensityRecommendationDL.h | 44 + src/codec_utils/RRC/PTRS-DensityRecommendationUL.c | 470 ++++ src/codec_utils/RRC/PTRS-DensityRecommendationUL.h | 49 + src/codec_utils/RRC/PTRS-DownlinkConfig.c | 390 +++ src/codec_utils/RRC/PTRS-DownlinkConfig.h | 68 + src/codec_utils/RRC/PTRS-UplinkConfig.c | 738 +++++ src/codec_utils/RRC/PTRS-UplinkConfig.h | 102 + src/codec_utils/RRC/PUCCH-CSI-Resource.c | 60 + src/codec_utils/RRC/PUCCH-CSI-Resource.h | 42 + src/codec_utils/RRC/PUCCH-Config.c | 1249 +++++++++ src/codec_utils/RRC/PUCCH-Config.h | 182 ++ src/codec_utils/RRC/PUCCH-ConfigCommon.c | 232 ++ src/codec_utils/RRC/PUCCH-ConfigCommon.h | 56 + src/codec_utils/RRC/PUCCH-FormatConfig.c | 341 +++ src/codec_utils/RRC/PUCCH-FormatConfig.h | 70 + src/codec_utils/RRC/PUCCH-MaxCodeRate.c | 66 + src/codec_utils/RRC/PUCCH-MaxCodeRate.h | 58 + src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.c | 64 + src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.h | 46 + src/codec_utils/RRC/PUCCH-PathlossReferenceRS.c | 117 + src/codec_utils/RRC/PUCCH-PathlossReferenceRS.h | 60 + src/codec_utils/RRC/PUCCH-PowerControl.c | 494 ++++ src/codec_utils/RRC/PUCCH-PowerControl.h | 74 + src/codec_utils/RRC/PUCCH-Resource.c | 231 ++ src/codec_utils/RRC/PUCCH-Resource.h | 80 + src/codec_utils/RRC/PUCCH-ResourceId.c | 64 + src/codec_utils/RRC/PUCCH-ResourceId.h | 46 + src/codec_utils/RRC/PUCCH-ResourceSet.c | 184 ++ src/codec_utils/RRC/PUCCH-ResourceSet.h | 51 + src/codec_utils/RRC/PUCCH-ResourceSetId.c | 64 + src/codec_utils/RRC/PUCCH-ResourceSetId.h | 46 + src/codec_utils/RRC/PUCCH-SpatialRelationInfo.c | 271 ++ src/codec_utils/RRC/PUCCH-SpatialRelationInfo.h | 83 + src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.c | 64 + src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.h | 46 + src/codec_utils/RRC/PUCCH-TPC-CommandConfig.c | 128 + src/codec_utils/RRC/PUCCH-TPC-CommandConfig.h | 45 + src/codec_utils/RRC/PUCCH-format0.c | 169 ++ src/codec_utils/RRC/PUCCH-format0.h | 42 + src/codec_utils/RRC/PUCCH-format1.c | 212 ++ src/codec_utils/RRC/PUCCH-format1.h | 43 + src/codec_utils/RRC/PUCCH-format2.c | 169 ++ src/codec_utils/RRC/PUCCH-format2.h | 42 + src/codec_utils/RRC/PUCCH-format3.c | 169 ++ src/codec_utils/RRC/PUCCH-format3.h | 42 + src/codec_utils/RRC/PUCCH-format4.c | 248 ++ src/codec_utils/RRC/PUCCH-format4.h | 58 + .../RRC/PUSCH-CodeBlockGroupTransmission.c | 103 + .../RRC/PUSCH-CodeBlockGroupTransmission.h | 53 + src/codec_utils/RRC/PUSCH-Config.c | 1124 ++++++++ src/codec_utils/RRC/PUSCH-Config.h | 186 ++ src/codec_utils/RRC/PUSCH-ConfigCommon.c | 196 ++ src/codec_utils/RRC/PUSCH-ConfigCommon.h | 57 + src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.c | 64 + src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.h | 46 + src/codec_utils/RRC/PUSCH-PathlossReferenceRS.c | 117 + src/codec_utils/RRC/PUSCH-PathlossReferenceRS.h | 60 + src/codec_utils/RRC/PUSCH-PowerControl.c | 714 +++++ src/codec_utils/RRC/PUSCH-PowerControl.h | 99 + src/codec_utils/RRC/PUSCH-ServingCellConfig.c | 326 +++ src/codec_utils/RRC/PUSCH-ServingCellConfig.h | 86 + src/codec_utils/RRC/PUSCH-TPC-CommandConfig.c | 138 + src/codec_utils/RRC/PUSCH-TPC-CommandConfig.h | 47 + .../RRC/PUSCH-TimeDomainResourceAllocation.c | 187 ++ .../RRC/PUSCH-TimeDomainResourceAllocation.h | 50 + .../RRC/PUSCH-TimeDomainResourceAllocationList.c | 53 + .../RRC/PUSCH-TimeDomainResourceAllocationList.h | 44 + src/codec_utils/RRC/Paging.c | 101 + src/codec_utils/RRC/Paging.h | 49 + src/codec_utils/RRC/PagingCycle.c | 60 + src/codec_utils/RRC/PagingCycle.h | 55 + src/codec_utils/RRC/PagingRecord.c | 109 + src/codec_utils/RRC/PagingRecord.h | 52 + src/codec_utils/RRC/PagingRecordList.c | 53 + src/codec_utils/RRC/PagingRecordList.h | 44 + src/codec_utils/RRC/PagingUE-Identity.c | 65 + src/codec_utils/RRC/PagingUE-Identity.h | 59 + src/codec_utils/RRC/PeriodicRNAU-TimerValue.c | 68 + src/codec_utils/RRC/PeriodicRNAU-TimerValue.h | 59 + src/codec_utils/RRC/PeriodicalReportConfig.c | 260 ++ src/codec_utils/RRC/PeriodicalReportConfig.h | 73 + .../RRC/PeriodicalReportConfigInterRAT.c | 174 ++ .../RRC/PeriodicalReportConfigInterRAT.h | 63 + src/codec_utils/RRC/Phy-Parameters.c | 97 + src/codec_utils/RRC/Phy-Parameters.h | 50 + src/codec_utils/RRC/Phy-ParametersCommon.c | 2084 ++++++++++++++ src/codec_utils/RRC/Phy-ParametersCommon.h | 226 ++ src/codec_utils/RRC/Phy-ParametersFR1.c | 272 ++ src/codec_utils/RRC/Phy-ParametersFR1.h | 66 + src/codec_utils/RRC/Phy-ParametersFR2.c | 158 ++ src/codec_utils/RRC/Phy-ParametersFR2.h | 56 + src/codec_utils/RRC/Phy-ParametersFRX-Diff.c | 2101 ++++++++++++++ src/codec_utils/RRC/Phy-ParametersFRX-Diff.h | 210 ++ src/codec_utils/RRC/Phy-ParametersMRDC.c | 132 + src/codec_utils/RRC/Phy-ParametersMRDC.h | 53 + src/codec_utils/RRC/Phy-ParametersXDD-Diff.c | 270 ++ src/codec_utils/RRC/Phy-ParametersXDD-Diff.h | 65 + src/codec_utils/RRC/PhysCellId.c | 64 + src/codec_utils/RRC/PhysCellId.h | 46 + src/codec_utils/RRC/PhysicalCellGroupConfig.c | 505 ++++ src/codec_utils/RRC/PhysicalCellGroupConfig.h | 105 + src/codec_utils/RRC/PollByte.c | 180 ++ src/codec_utils/RRC/PollByte.h | 115 + src/codec_utils/RRC/PollPDU.c | 116 + src/codec_utils/RRC/PollPDU.h | 83 + src/codec_utils/RRC/PortIndex2.c | 64 + src/codec_utils/RRC/PortIndex2.h | 46 + src/codec_utils/RRC/PortIndex4.c | 64 + src/codec_utils/RRC/PortIndex4.h | 46 + src/codec_utils/RRC/PortIndex8.c | 64 + src/codec_utils/RRC/PortIndex8.h | 46 + src/codec_utils/RRC/PortIndexFor8Ranks.c | 1199 ++++++++ src/codec_utils/RRC/PortIndexFor8Ranks.h | 143 + src/codec_utils/RRC/Q-OffsetRange.c | 114 + src/codec_utils/RRC/Q-OffsetRange.h | 82 + src/codec_utils/RRC/Q-OffsetRangeList.c | 240 ++ src/codec_utils/RRC/Q-OffsetRangeList.h | 45 + src/codec_utils/RRC/Q-QualMin.c | 64 + src/codec_utils/RRC/Q-QualMin.h | 46 + src/codec_utils/RRC/Q-RxLevMin.c | 64 + src/codec_utils/RRC/Q-RxLevMin.h | 46 + src/codec_utils/RRC/QCL-Info.c | 192 ++ src/codec_utils/RRC/QCL-Info.h | 75 + src/codec_utils/RRC/QFI.c | 64 + src/codec_utils/RRC/QFI.h | 46 + src/codec_utils/RRC/QuantityConfig.c | 188 ++ src/codec_utils/RRC/QuantityConfig.h | 60 + src/codec_utils/RRC/QuantityConfigNR.c | 63 + src/codec_utils/RRC/QuantityConfigNR.h | 44 + src/codec_utils/RRC/QuantityConfigRS.c | 60 + src/codec_utils/RRC/QuantityConfigRS.h | 41 + src/codec_utils/RRC/RA-Prioritization.c | 168 ++ src/codec_utils/RRC/RA-Prioritization.h | 61 + src/codec_utils/RRC/RACH-ConfigCommon.c | 1286 +++++++++ src/codec_utils/RRC/RACH-ConfigCommon.h | 246 ++ src/codec_utils/RRC/RACH-ConfigDedicated.c | 64 + src/codec_utils/RRC/RACH-ConfigDedicated.h | 48 + src/codec_utils/RRC/RACH-ConfigGeneric.c | 486 ++++ src/codec_utils/RRC/RACH-ConfigGeneric.h | 93 + src/codec_utils/RRC/RAN-AreaCode.c | 64 + src/codec_utils/RRC/RAN-AreaCode.h | 46 + src/codec_utils/RRC/RAN-AreaConfig.c | 141 + src/codec_utils/RRC/RAN-AreaConfig.h | 49 + src/codec_utils/RRC/RAN-NotificationAreaInfo.c | 67 + src/codec_utils/RRC/RAN-NotificationAreaInfo.h | 61 + src/codec_utils/RRC/RAT-Type.c | 62 + src/codec_utils/RRC/RAT-Type.h | 58 + src/codec_utils/RRC/RF-Parameters.c | 154 ++ src/codec_utils/RRC/RF-Parameters.h | 57 + src/codec_utils/RRC/RF-ParametersMRDC.c | 64 + src/codec_utils/RRC/RF-ParametersMRDC.h | 48 + src/codec_utils/RRC/RLC-BearerConfig.c | 198 ++ src/codec_utils/RRC/RLC-BearerConfig.h | 76 + src/codec_utils/RRC/RLC-Config.c | 277 ++ src/codec_utils/RRC/RLC-Config.h | 88 + src/codec_utils/RRC/RLC-Parameters.c | 213 ++ src/codec_utils/RRC/RLC-Parameters.h | 60 + src/codec_utils/RRC/RLF-TimersAndConstants.c | 369 +++ src/codec_utils/RRC/RLF-TimersAndConstants.h | 98 + src/codec_utils/RRC/RNTI-Value.c | 64 + src/codec_utils/RRC/RNTI-Value.h | 46 + src/codec_utils/RRC/RRC-TransactionIdentifier.c | 64 + src/codec_utils/RRC/RRC-TransactionIdentifier.h | 46 + src/codec_utils/RRC/RRCReconfiguration-IEs.c | 124 + src/codec_utils/RRC/RRCReconfiguration-IEs.h | 49 + src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.c | 365 +++ src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.h | 70 + src/codec_utils/RRC/RRCReconfiguration.c | 146 + src/codec_utils/RRC/RRCReconfiguration.h | 65 + .../RRC/RRCReconfigurationComplete-IEs.c | 63 + .../RRC/RRCReconfigurationComplete-IEs.h | 44 + .../RRC/RRCReconfigurationComplete-v1530-IEs.c | 91 + .../RRC/RRCReconfigurationComplete-v1530-IEs.h | 47 + src/codec_utils/RRC/RRCReconfigurationComplete.c | 146 + src/codec_utils/RRC/RRCReconfigurationComplete.h | 65 + src/codec_utils/RRC/RRCReestablishment-IEs.c | 100 + src/codec_utils/RRC/RRCReestablishment-IEs.h | 47 + src/codec_utils/RRC/RRCReestablishment.c | 146 + src/codec_utils/RRC/RRCReestablishment.h | 65 + .../RRC/RRCReestablishmentComplete-IEs.c | 90 + .../RRC/RRCReestablishmentComplete-IEs.h | 45 + src/codec_utils/RRC/RRCReestablishmentComplete.c | 146 + src/codec_utils/RRC/RRCReestablishmentComplete.h | 65 + .../RRC/RRCReestablishmentRequest-IEs.c | 109 + .../RRC/RRCReestablishmentRequest-IEs.h | 44 + src/codec_utils/RRC/RRCReestablishmentRequest.c | 50 + src/codec_utils/RRC/RRCReestablishmentRequest.h | 40 + src/codec_utils/RRC/RRCReject-IEs.c | 100 + src/codec_utils/RRC/RRCReject-IEs.h | 47 + src/codec_utils/RRC/RRCReject.c | 136 + src/codec_utils/RRC/RRCReject.h | 63 + src/codec_utils/RRC/RRCRelease-IEs.c | 261 ++ src/codec_utils/RRC/RRCRelease-IEs.h | 72 + src/codec_utils/RRC/RRCRelease-v1540-IEs.c | 90 + src/codec_utils/RRC/RRCRelease-v1540-IEs.h | 45 + src/codec_utils/RRC/RRCRelease.c | 146 + src/codec_utils/RRC/RRCRelease.h | 65 + src/codec_utils/RRC/RRCResume-IEs.c | 208 ++ src/codec_utils/RRC/RRCResume-IEs.h | 60 + src/codec_utils/RRC/RRCResume.c | 146 + src/codec_utils/RRC/RRCResume.h | 65 + src/codec_utils/RRC/RRCResumeComplete-IEs.c | 154 ++ src/codec_utils/RRC/RRCResumeComplete-IEs.h | 53 + src/codec_utils/RRC/RRCResumeComplete.c | 146 + src/codec_utils/RRC/RRCResumeComplete.h | 65 + src/codec_utils/RRC/RRCResumeRequest-IEs.c | 158 ++ src/codec_utils/RRC/RRCResumeRequest-IEs.h | 45 + src/codec_utils/RRC/RRCResumeRequest.c | 50 + src/codec_utils/RRC/RRCResumeRequest.h | 40 + src/codec_utils/RRC/RRCResumeRequest1-IEs.c | 158 ++ src/codec_utils/RRC/RRCResumeRequest1-IEs.h | 45 + src/codec_utils/RRC/RRCResumeRequest1.c | 50 + src/codec_utils/RRC/RRCResumeRequest1.h | 40 + src/codec_utils/RRC/RRCSetup-IEs.c | 139 + src/codec_utils/RRC/RRCSetup-IEs.h | 48 + src/codec_utils/RRC/RRCSetup.c | 146 + src/codec_utils/RRC/RRCSetup.h | 65 + src/codec_utils/RRC/RRCSetupComplete-IEs.c | 409 +++ src/codec_utils/RRC/RRCSetupComplete-IEs.h | 89 + src/codec_utils/RRC/RRCSetupComplete.c | 146 + src/codec_utils/RRC/RRCSetupComplete.h | 65 + src/codec_utils/RRC/RRCSetupRequest-IEs.c | 109 + src/codec_utils/RRC/RRCSetupRequest-IEs.h | 44 + src/codec_utils/RRC/RRCSetupRequest.c | 50 + src/codec_utils/RRC/RRCSetupRequest.h | 40 + src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.c | 138 + src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.h | 41 + src/codec_utils/RRC/RRCSystemInfoRequest.c | 136 + src/codec_utils/RRC/RRCSystemInfoRequest.h | 63 + src/codec_utils/RRC/RRM-Config.c | 236 ++ src/codec_utils/RRC/RRM-Config.h | 117 + src/codec_utils/RRC/RSRP-Range.c | 64 + src/codec_utils/RRC/RSRP-Range.h | 46 + src/codec_utils/RRC/RSRP-RangeEUTRA.c | 64 + src/codec_utils/RRC/RSRP-RangeEUTRA.h | 46 + src/codec_utils/RRC/RSRQ-Range.c | 64 + src/codec_utils/RRC/RSRQ-Range.h | 46 + src/codec_utils/RRC/RSRQ-RangeEUTRA.c | 64 + src/codec_utils/RRC/RSRQ-RangeEUTRA.h | 46 + src/codec_utils/RRC/RadioBearerConfig.c | 143 + src/codec_utils/RRC/RadioBearerConfig.h | 60 + src/codec_utils/RRC/RadioLinkMonitoringConfig.c | 363 +++ src/codec_utils/RRC/RadioLinkMonitoringConfig.h | 87 + src/codec_utils/RRC/RadioLinkMonitoringRS-Id.c | 64 + src/codec_utils/RRC/RadioLinkMonitoringRS-Id.h | 46 + src/codec_utils/RRC/RadioLinkMonitoringRS.c | 178 ++ src/codec_utils/RRC/RadioLinkMonitoringRS.h | 72 + src/codec_utils/RRC/RangeToBestCell.c | 39 + src/codec_utils/RRC/RangeToBestCell.h | 46 + src/codec_utils/RRC/RateMatchPattern.c | 807 ++++++ src/codec_utils/RRC/RateMatchPattern.h | 122 + src/codec_utils/RRC/RateMatchPatternGroup.c | 109 + src/codec_utils/RRC/RateMatchPatternGroup.h | 62 + src/codec_utils/RRC/RateMatchPatternId.c | 64 + src/codec_utils/RRC/RateMatchPatternId.h | 46 + src/codec_utils/RRC/RateMatchPatternLTE-CRS.c | 295 ++ src/codec_utils/RRC/RateMatchPatternLTE-CRS.h | 76 + src/codec_utils/RRC/ReconfigurationWithSync.c | 258 ++ src/codec_utils/RRC/ReconfigurationWithSync.h | 87 + src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.c | 111 + src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.h | 49 + src/codec_utils/RRC/RedirectedCarrierInfo.c | 67 + src/codec_utils/RRC/RedirectedCarrierInfo.h | 61 + src/codec_utils/RRC/ReducedAggregatedBandwidth.c | 76 + src/codec_utils/RRC/ReducedAggregatedBandwidth.h | 63 + src/codec_utils/RRC/ReestabNCellInfo.c | 109 + src/codec_utils/RRC/ReestabNCellInfo.h | 44 + src/codec_utils/RRC/ReestabNCellInfoList.c | 53 + src/codec_utils/RRC/ReestabNCellInfoList.h | 44 + src/codec_utils/RRC/ReestabUE-Identity.c | 70 + src/codec_utils/RRC/ReestabUE-Identity.h | 44 + src/codec_utils/RRC/ReestablishmentCause.c | 60 + src/codec_utils/RRC/ReestablishmentCause.h | 55 + src/codec_utils/RRC/ReestablishmentInfo.c | 73 + src/codec_utils/RRC/ReestablishmentInfo.h | 46 + src/codec_utils/RRC/ReferenceSignalConfig.c | 121 + src/codec_utils/RRC/ReferenceSignalConfig.h | 62 + src/codec_utils/RRC/RegisteredAMF.c | 63 + src/codec_utils/RRC/RegisteredAMF.h | 44 + src/codec_utils/RRC/RejectWaitTime.c | 64 + src/codec_utils/RRC/RejectWaitTime.h | 46 + src/codec_utils/RRC/ReportCGI-EUTRA.c | 50 + src/codec_utils/RRC/ReportCGI-EUTRA.h | 44 + src/codec_utils/RRC/ReportCGI.c | 50 + src/codec_utils/RRC/ReportCGI.h | 44 + src/codec_utils/RRC/ReportConfigId.c | 64 + src/codec_utils/RRC/ReportConfigId.h | 46 + src/codec_utils/RRC/ReportConfigInterRAT.c | 120 + src/codec_utils/RRC/ReportConfigInterRAT.h | 69 + src/codec_utils/RRC/ReportConfigNR.c | 120 + src/codec_utils/RRC/ReportConfigNR.h | 68 + src/codec_utils/RRC/ReportConfigToAddMod.c | 119 + src/codec_utils/RRC/ReportConfigToAddMod.h | 67 + src/codec_utils/RRC/ReportConfigToAddModList.c | 53 + src/codec_utils/RRC/ReportConfigToAddModList.h | 44 + src/codec_utils/RRC/ReportConfigToRemoveList.c | 52 + src/codec_utils/RRC/ReportConfigToRemoveList.h | 42 + src/codec_utils/RRC/ReportInterval.c | 80 + src/codec_utils/RRC/ReportInterval.h | 65 + src/codec_utils/RRC/ReselectionThreshold.c | 64 + src/codec_utils/RRC/ReselectionThreshold.h | 46 + src/codec_utils/RRC/ReselectionThresholdQ.c | 64 + src/codec_utils/RRC/ReselectionThresholdQ.h | 46 + src/codec_utils/RRC/ResultsPerCSI-RS-Index.c | 63 + src/codec_utils/RRC/ResultsPerCSI-RS-Index.h | 44 + src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.c | 53 + src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.h | 44 + src/codec_utils/RRC/ResultsPerSSB-Index.c | 63 + src/codec_utils/RRC/ResultsPerSSB-Index.h | 44 + src/codec_utils/RRC/ResultsPerSSB-IndexList.c | 53 + src/codec_utils/RRC/ResultsPerSSB-IndexList.h | 44 + src/codec_utils/RRC/ResumeCause.c | 84 + src/codec_utils/RRC/ResumeCause.h | 67 + src/codec_utils/RRC/S-NSSAI.c | 143 + src/codec_utils/RRC/S-NSSAI.h | 52 + src/codec_utils/RRC/SCS-SpecificCarrier.c | 226 ++ src/codec_utils/RRC/SCS-SpecificCarrier.h | 53 + src/codec_utils/RRC/SCellConfig.c | 130 + src/codec_utils/RRC/SCellConfig.h | 57 + src/codec_utils/RRC/SCellIndex.c | 64 + src/codec_utils/RRC/SCellIndex.h | 46 + src/codec_utils/RRC/SDAP-Config.c | 358 +++ src/codec_utils/RRC/SDAP-Config.h | 76 + src/codec_utils/RRC/SI-RequestConfig.c | 327 +++ src/codec_utils/RRC/SI-RequestConfig.h | 83 + src/codec_utils/RRC/SI-RequestResources.c | 171 ++ src/codec_utils/RRC/SI-RequestResources.h | 42 + src/codec_utils/RRC/SI-SchedulingInfo.c | 275 ++ src/codec_utils/RRC/SI-SchedulingInfo.h | 74 + src/codec_utils/RRC/SIB-Mapping.c | 53 + src/codec_utils/RRC/SIB-Mapping.h | 44 + src/codec_utils/RRC/SIB-TypeInfo.c | 231 ++ src/codec_utils/RRC/SIB-TypeInfo.h | 71 + src/codec_utils/RRC/SIB1.c | 699 +++++ src/codec_utils/RRC/SIB1.h | 123 + src/codec_utils/RRC/SIB2.c | 798 ++++++ src/codec_utils/RRC/SIB2.h | 167 ++ src/codec_utils/RRC/SIB3.c | 74 + src/codec_utils/RRC/SIB3.h | 50 + src/codec_utils/RRC/SIB4.c | 62 + src/codec_utils/RRC/SIB4.h | 46 + src/codec_utils/RRC/SIB5.c | 84 + src/codec_utils/RRC/SIB5.h | 52 + src/codec_utils/RRC/SIB6.c | 194 ++ src/codec_utils/RRC/SIB6.h | 48 + src/codec_utils/RRC/SIB7.c | 306 ++ src/codec_utils/RRC/SIB7.h | 60 + src/codec_utils/RRC/SIB8.c | 316 +++ src/codec_utils/RRC/SIB8.h | 61 + src/codec_utils/RRC/SIB9.c | 281 ++ src/codec_utils/RRC/SIB9.h | 56 + src/codec_utils/RRC/SINR-Range.c | 64 + src/codec_utils/RRC/SINR-Range.h | 46 + src/codec_utils/RRC/SINR-RangeEUTRA.c | 64 + src/codec_utils/RRC/SINR-RangeEUTRA.h | 46 + src/codec_utils/RRC/SN-FieldLengthAM.c | 56 + src/codec_utils/RRC/SN-FieldLengthAM.h | 53 + src/codec_utils/RRC/SN-FieldLengthUM.c | 56 + src/codec_utils/RRC/SN-FieldLengthUM.h | 53 + src/codec_utils/RRC/SPS-Config.c | 239 ++ src/codec_utils/RRC/SPS-Config.h | 74 + src/codec_utils/RRC/SRB-Identity.c | 64 + src/codec_utils/RRC/SRB-Identity.h | 46 + src/codec_utils/RRC/SRB-ToAddMod.c | 177 ++ src/codec_utils/RRC/SRB-ToAddMod.h | 61 + src/codec_utils/RRC/SRB-ToAddModList.c | 53 + src/codec_utils/RRC/SRB-ToAddModList.h | 44 + src/codec_utils/RRC/SRI-PUSCH-PowerControl.c | 129 + src/codec_utils/RRC/SRI-PUSCH-PowerControl.h | 53 + src/codec_utils/RRC/SRI-PUSCH-PowerControlId.c | 64 + src/codec_utils/RRC/SRI-PUSCH-PowerControlId.h | 46 + src/codec_utils/RRC/SRS-CC-SetIndex.c | 128 + src/codec_utils/RRC/SRS-CC-SetIndex.h | 41 + src/codec_utils/RRC/SRS-CarrierSwitching.c | 380 +++ src/codec_utils/RRC/SRS-CarrierSwitching.h | 86 + src/codec_utils/RRC/SRS-Config.c | 457 +++ src/codec_utils/RRC/SRS-Config.h | 82 + src/codec_utils/RRC/SRS-PeriodicityAndOffset.c | 743 +++++ src/codec_utils/RRC/SRS-PeriodicityAndOffset.h | 83 + src/codec_utils/RRC/SRS-Resource.c | 1249 +++++++++ src/codec_utils/RRC/SRS-Resource.h | 175 ++ src/codec_utils/RRC/SRS-ResourceId.c | 64 + src/codec_utils/RRC/SRS-ResourceId.h | 46 + src/codec_utils/RRC/SRS-ResourceSet.c | 848 ++++++ src/codec_utils/RRC/SRS-ResourceSet.h | 149 + src/codec_utils/RRC/SRS-ResourceSetId.c | 64 + src/codec_utils/RRC/SRS-ResourceSetId.h | 46 + src/codec_utils/RRC/SRS-Resources.c | 425 +++ src/codec_utils/RRC/SRS-Resources.h | 79 + src/codec_utils/RRC/SRS-SpatialRelationInfo.c | 182 ++ src/codec_utils/RRC/SRS-SpatialRelationInfo.h | 70 + src/codec_utils/RRC/SRS-TPC-CommandConfig.c | 216 ++ src/codec_utils/RRC/SRS-TPC-CommandConfig.h | 51 + src/codec_utils/RRC/SRS-TPC-PDCCH-Config.c | 132 + src/codec_utils/RRC/SRS-TPC-PDCCH-Config.h | 49 + src/codec_utils/RRC/SRS-TxSwitch.c | 164 ++ src/codec_utils/RRC/SRS-TxSwitch.h | 55 + src/codec_utils/RRC/SS-RSSI-Measurement.c | 132 + src/codec_utils/RRC/SS-RSSI-Measurement.h | 42 + src/codec_utils/RRC/SSB-ConfigMobility.c | 131 + src/codec_utils/RRC/SSB-ConfigMobility.h | 68 + src/codec_utils/RRC/SSB-Index.c | 64 + src/codec_utils/RRC/SSB-Index.h | 46 + src/codec_utils/RRC/SSB-MTC.c | 410 +++ src/codec_utils/RRC/SSB-MTC.h | 75 + src/codec_utils/RRC/SSB-MTC2.c | 202 ++ src/codec_utils/RRC/SSB-MTC2.h | 62 + src/codec_utils/RRC/SSB-ToMeasure.c | 192 ++ src/codec_utils/RRC/SSB-ToMeasure.h | 54 + src/codec_utils/RRC/SchedulingInfo.c | 178 ++ src/codec_utils/RRC/SchedulingInfo.h | 60 + src/codec_utils/RRC/SchedulingRequestConfig.c | 221 ++ src/codec_utils/RRC/SchedulingRequestConfig.h | 56 + src/codec_utils/RRC/SchedulingRequestId.c | 64 + src/codec_utils/RRC/SchedulingRequestId.h | 46 + .../RRC/SchedulingRequestResourceConfig.c | 665 +++++ .../RRC/SchedulingRequestResourceConfig.h | 90 + src/codec_utils/RRC/SchedulingRequestResourceId.c | 64 + src/codec_utils/RRC/SchedulingRequestResourceId.h | 46 + src/codec_utils/RRC/SchedulingRequestToAddMod.c | 194 ++ src/codec_utils/RRC/SchedulingRequestToAddMod.h | 67 + src/codec_utils/RRC/ScramblingId.c | 64 + src/codec_utils/RRC/ScramblingId.h | 46 + src/codec_utils/RRC/SearchSpace.c | 2077 ++++++++++++++ src/codec_utils/RRC/SearchSpace.h | 288 ++ src/codec_utils/RRC/SearchSpaceId.c | 64 + src/codec_utils/RRC/SearchSpaceId.h | 46 + src/codec_utils/RRC/SearchSpaceZero.c | 64 + src/codec_utils/RRC/SearchSpaceZero.h | 46 + src/codec_utils/RRC/SecurityAlgorithmConfig.c | 62 + src/codec_utils/RRC/SecurityAlgorithmConfig.h | 46 + src/codec_utils/RRC/SecurityConfig.c | 112 + src/codec_utils/RRC/SecurityConfig.h | 55 + src/codec_utils/RRC/SecurityConfigSMC.c | 50 + src/codec_utils/RRC/SecurityConfigSMC.h | 44 + src/codec_utils/RRC/SecurityModeCommand-IEs.c | 100 + src/codec_utils/RRC/SecurityModeCommand-IEs.h | 47 + src/codec_utils/RRC/SecurityModeCommand.c | 146 + src/codec_utils/RRC/SecurityModeCommand.h | 65 + src/codec_utils/RRC/SecurityModeComplete-IEs.c | 90 + src/codec_utils/RRC/SecurityModeComplete-IEs.h | 45 + src/codec_utils/RRC/SecurityModeComplete.c | 146 + src/codec_utils/RRC/SecurityModeComplete.h | 65 + src/codec_utils/RRC/SecurityModeFailure-IEs.c | 90 + src/codec_utils/RRC/SecurityModeFailure-IEs.h | 45 + src/codec_utils/RRC/SecurityModeFailure.c | 146 + src/codec_utils/RRC/SecurityModeFailure.h | 65 + src/codec_utils/RRC/ServCellIndex.c | 64 + src/codec_utils/RRC/ServCellIndex.h | 46 + src/codec_utils/RRC/ServingCellConfig.c | 1221 ++++++++ src/codec_utils/RRC/ServingCellConfig.h | 236 ++ src/codec_utils/RRC/ServingCellConfigCommon.c | 780 ++++++ src/codec_utils/RRC/ServingCellConfigCommon.h | 137 + src/codec_utils/RRC/ServingCellConfigCommonSIB.c | 398 +++ src/codec_utils/RRC/ServingCellConfigCommonSIB.h | 81 + src/codec_utils/RRC/ShortI-RNTI-Value.c | 70 + src/codec_utils/RRC/ShortI-RNTI-Value.h | 46 + src/codec_utils/RRC/ShortMAC-I.c | 70 + src/codec_utils/RRC/ShortMAC-I.h | 46 + src/codec_utils/RRC/SlotFormatCombination.c | 172 ++ src/codec_utils/RRC/SlotFormatCombination.h | 49 + src/codec_utils/RRC/SlotFormatCombinationId.c | 64 + src/codec_utils/RRC/SlotFormatCombinationId.h | 46 + .../RRC/SlotFormatCombinationsPerCell.c | 205 ++ .../RRC/SlotFormatCombinationsPerCell.h | 60 + src/codec_utils/RRC/SlotFormatIndicator.c | 274 ++ src/codec_utils/RRC/SlotFormatIndicator.h | 64 + src/codec_utils/RRC/SpCellConfig.c | 199 ++ src/codec_utils/RRC/SpCellConfig.h | 76 + src/codec_utils/RRC/SpeedStateScaleFactors.c | 166 ++ src/codec_utils/RRC/SpeedStateScaleFactors.h | 57 + src/codec_utils/RRC/SubcarrierSpacing.c | 68 + src/codec_utils/RRC/SubcarrierSpacing.h | 59 + src/codec_utils/RRC/SupportedBandwidth.c | 185 ++ src/codec_utils/RRC/SupportedBandwidth.h | 73 + src/codec_utils/RRC/SuspendConfig.c | 103 + src/codec_utils/RRC/SuspendConfig.h | 56 + src/codec_utils/RRC/SystemInformation-IEs.c | 304 ++ src/codec_utils/RRC/SystemInformation-IEs.h | 101 + src/codec_utils/RRC/SystemInformation.c | 136 + src/codec_utils/RRC/SystemInformation.h | 63 + src/codec_utils/RRC/T-PollRetransmit.c | 180 ++ src/codec_utils/RRC/T-PollRetransmit.h | 115 + src/codec_utils/RRC/T-Reassembly.c | 116 + src/codec_utils/RRC/T-Reassembly.h | 83 + src/codec_utils/RRC/T-Reselection.c | 64 + src/codec_utils/RRC/T-Reselection.h | 46 + src/codec_utils/RRC/T-StatusProhibit.c | 180 ++ src/codec_utils/RRC/T-StatusProhibit.h | 115 + src/codec_utils/RRC/TAG-Config.c | 221 ++ src/codec_utils/RRC/TAG-Config.h | 56 + src/codec_utils/RRC/TAG-Id.c | 64 + src/codec_utils/RRC/TAG-Id.h | 46 + src/codec_utils/RRC/TAG.c | 60 + src/codec_utils/RRC/TAG.h | 46 + src/codec_utils/RRC/TCI-State.c | 73 + src/codec_utils/RRC/TCI-State.h | 50 + src/codec_utils/RRC/TCI-StateId.c | 64 + src/codec_utils/RRC/TCI-StateId.h | 46 + src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.c | 73 + src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.h | 50 + src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.c | 221 ++ src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.h | 60 + src/codec_utils/RRC/TDD-UL-DL-Pattern.c | 389 +++ src/codec_utils/RRC/TDD-UL-DL-Pattern.h | 73 + src/codec_utils/RRC/TDD-UL-DL-SlotConfig.c | 248 ++ src/codec_utils/RRC/TDD-UL-DL-SlotConfig.h | 68 + src/codec_utils/RRC/TDD-UL-DL-SlotIndex.c | 64 + src/codec_utils/RRC/TDD-UL-DL-SlotIndex.h | 46 + src/codec_utils/RRC/ThresholdNR.c | 72 + src/codec_utils/RRC/ThresholdNR.h | 44 + src/codec_utils/RRC/TimeAlignmentTimer.c | 68 + src/codec_utils/RRC/TimeAlignmentTimer.h | 59 + src/codec_utils/RRC/TimeToTrigger.c | 84 + src/codec_utils/RRC/TimeToTrigger.h | 67 + src/codec_utils/RRC/TrackingAreaCode.c | 70 + src/codec_utils/RRC/TrackingAreaCode.h | 46 + src/codec_utils/RRC/TypeI-MultiPanelCodebook.c | 350 +++ src/codec_utils/RRC/TypeI-MultiPanelCodebook.h | 65 + src/codec_utils/RRC/TypeI-SinglePanelCodebook.c | 297 ++ src/codec_utils/RRC/TypeI-SinglePanelCodebook.h | 62 + src/codec_utils/RRC/TypeII-Codebook.c | 397 +++ src/codec_utils/RRC/TypeII-Codebook.h | 67 + src/codec_utils/RRC/TypeII-CodebookPortSelection.c | 338 +++ src/codec_utils/RRC/TypeII-CodebookPortSelection.h | 62 + .../UAC-AccessCategory1-SelectionAssistanceInfo.c | 58 + .../UAC-AccessCategory1-SelectionAssistanceInfo.h | 54 + src/codec_utils/RRC/UAC-BarringInfoSet.c | 247 ++ src/codec_utils/RRC/UAC-BarringInfoSet.h | 75 + src/codec_utils/RRC/UAC-BarringInfoSetIndex.c | 64 + src/codec_utils/RRC/UAC-BarringInfoSetIndex.h | 46 + src/codec_utils/RRC/UAC-BarringInfoSetList.c | 53 + src/codec_utils/RRC/UAC-BarringInfoSetList.h | 44 + src/codec_utils/RRC/UAC-BarringPerCat.c | 93 + src/codec_utils/RRC/UAC-BarringPerCat.h | 42 + src/codec_utils/RRC/UAC-BarringPerCatList.c | 53 + src/codec_utils/RRC/UAC-BarringPerCatList.h | 44 + src/codec_utils/RRC/UAC-BarringPerPLMN-List.c | 53 + src/codec_utils/RRC/UAC-BarringPerPLMN-List.h | 44 + src/codec_utils/RRC/UAC-BarringPerPLMN.c | 232 ++ src/codec_utils/RRC/UAC-BarringPerPLMN.h | 69 + src/codec_utils/RRC/UCI-OnPUSCH.c | 252 ++ src/codec_utils/RRC/UCI-OnPUSCH.h | 75 + src/codec_utils/RRC/UE-CapabilityRAT-Container.c | 60 + src/codec_utils/RRC/UE-CapabilityRAT-Container.h | 42 + .../RRC/UE-CapabilityRAT-ContainerList.c | 53 + .../RRC/UE-CapabilityRAT-ContainerList.h | 44 + src/codec_utils/RRC/UE-CapabilityRAT-Request.c | 62 + src/codec_utils/RRC/UE-CapabilityRAT-Request.h | 46 + src/codec_utils/RRC/UE-CapabilityRAT-RequestList.c | 53 + src/codec_utils/RRC/UE-CapabilityRAT-RequestList.h | 44 + src/codec_utils/RRC/UE-CapabilityRequestFilterNR.c | 91 + src/codec_utils/RRC/UE-CapabilityRequestFilterNR.h | 45 + src/codec_utils/RRC/UE-MRDC-Capability.c | 276 ++ src/codec_utils/RRC/UE-MRDC-Capability.h | 70 + .../RRC/UE-MRDC-CapabilityAddFRX-Mode.c | 50 + .../RRC/UE-MRDC-CapabilityAddFRX-Mode.h | 40 + .../RRC/UE-MRDC-CapabilityAddXDD-Mode.c | 64 + .../RRC/UE-MRDC-CapabilityAddXDD-Mode.h | 44 + src/codec_utils/RRC/UE-NR-Capability.c | 306 ++ src/codec_utils/RRC/UE-NR-Capability.h | 76 + src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.c | 64 + src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.h | 44 + src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.c | 75 + src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.h | 46 + src/codec_utils/RRC/UE-TimersAndConstants.c | 533 ++++ src/codec_utils/RRC/UE-TimersAndConstants.h | 127 + src/codec_utils/RRC/UEAssistanceInformation-IEs.c | 74 + src/codec_utils/RRC/UEAssistanceInformation-IEs.h | 46 + .../RRC/UEAssistanceInformation-v1540-IEs.c | 91 + .../RRC/UEAssistanceInformation-v1540-IEs.h | 47 + src/codec_utils/RRC/UEAssistanceInformation.c | 136 + src/codec_utils/RRC/UEAssistanceInformation.h | 63 + src/codec_utils/RRC/UECapabilityEnquiry-IEs.c | 100 + src/codec_utils/RRC/UECapabilityEnquiry-IEs.h | 47 + src/codec_utils/RRC/UECapabilityEnquiry.c | 146 + src/codec_utils/RRC/UECapabilityEnquiry.h | 65 + src/codec_utils/RRC/UECapabilityInformation-IEs.c | 101 + src/codec_utils/RRC/UECapabilityInformation-IEs.h | 49 + src/codec_utils/RRC/UECapabilityInformation.c | 146 + src/codec_utils/RRC/UECapabilityInformation.h | 65 + .../RRC/UERadioAccessCapabilityInformation-IEs.c | 119 + .../RRC/UERadioAccessCapabilityInformation-IEs.h | 45 + .../RRC/UERadioAccessCapabilityInformation.c | 253 ++ .../RRC/UERadioAccessCapabilityInformation.h | 88 + src/codec_utils/RRC/UERadioPagingInformation-IEs.c | 169 ++ src/codec_utils/RRC/UERadioPagingInformation-IEs.h | 52 + src/codec_utils/RRC/UERadioPagingInformation.c | 253 ++ src/codec_utils/RRC/UERadioPagingInformation.h | 88 + src/codec_utils/RRC/UL-AM-RLC.c | 153 + src/codec_utils/RRC/UL-AM-RLC.h | 61 + src/codec_utils/RRC/UL-CCCH-Message.c | 50 + src/codec_utils/RRC/UL-CCCH-Message.h | 38 + src/codec_utils/RRC/UL-CCCH-MessageType.c | 174 ++ src/codec_utils/RRC/UL-CCCH-MessageType.h | 80 + src/codec_utils/RRC/UL-CCCH1-Message.c | 50 + src/codec_utils/RRC/UL-CCCH1-Message.h | 38 + src/codec_utils/RRC/UL-CCCH1-MessageType.c | 171 ++ src/codec_utils/RRC/UL-CCCH1-MessageType.h | 78 + src/codec_utils/RRC/UL-DCCH-Message.c | 50 + src/codec_utils/RRC/UL-DCCH-Message.h | 38 + src/codec_utils/RRC/UL-DCCH-MessageType.c | 303 ++ src/codec_utils/RRC/UL-DCCH-MessageType.h | 114 + src/codec_utils/RRC/UL-DataSplitThreshold.c | 116 + src/codec_utils/RRC/UL-DataSplitThreshold.h | 83 + src/codec_utils/RRC/UL-UM-RLC.c | 52 + src/codec_utils/RRC/UL-UM-RLC.h | 40 + src/codec_utils/RRC/ULInformationTransfer-IEs.c | 100 + src/codec_utils/RRC/ULInformationTransfer-IEs.h | 47 + src/codec_utils/RRC/ULInformationTransfer.c | 136 + src/codec_utils/RRC/ULInformationTransfer.h | 63 + src/codec_utils/RRC/UplinkConfig.c | 523 ++++ src/codec_utils/RRC/UplinkConfig.h | 113 + src/codec_utils/RRC/UplinkConfigCommon.c | 74 + src/codec_utils/RRC/UplinkConfigCommon.h | 46 + src/codec_utils/RRC/UplinkConfigCommonSIB.c | 70 + src/codec_utils/RRC/UplinkConfigCommonSIB.h | 44 + src/codec_utils/RRC/UplinkTxDirectCurrentBWP.c | 103 + src/codec_utils/RRC/UplinkTxDirectCurrentBWP.h | 44 + src/codec_utils/RRC/UplinkTxDirectCurrentCell.c | 140 + src/codec_utils/RRC/UplinkTxDirectCurrentCell.h | 55 + src/codec_utils/RRC/UplinkTxDirectCurrentList.c | 53 + src/codec_utils/RRC/UplinkTxDirectCurrentList.h | 44 + src/codec_utils/RRC/VarMeasConfig.c | 153 + src/codec_utils/RRC/VarMeasConfig.h | 65 + src/codec_utils/RRC/VarMeasReport.c | 73 + src/codec_utils/RRC/VarMeasReport.h | 46 + src/codec_utils/RRC/VarMeasReportList.c | 53 + src/codec_utils/RRC/VarMeasReportList.h | 41 + src/codec_utils/RRC/VarPendingRNA-Update.c | 52 + src/codec_utils/RRC/VarPendingRNA-Update.h | 38 + src/codec_utils/RRC/VarResumeMAC-Input.c | 70 + src/codec_utils/RRC/VarResumeMAC-Input.h | 42 + src/codec_utils/RRC/VarShortMAC-Input.c | 70 + src/codec_utils/RRC/VarShortMAC-Input.h | 42 + src/codec_utils/RRC/VictimSystemType.c | 384 +++ src/codec_utils/RRC/VictimSystemType.h | 71 + src/codec_utils/RRC/ZP-CSI-RS-Resource.c | 73 + src/codec_utils/RRC/ZP-CSI-RS-Resource.h | 50 + src/codec_utils/RRC/ZP-CSI-RS-ResourceId.c | 64 + src/codec_utils/RRC/ZP-CSI-RS-ResourceId.h | 46 + src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.c | 139 + src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.h | 53 + src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.c | 64 + src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.h | 46 + src/codec_utils/SYSINFO/ARFCN-ValueNR.c | 64 - src/codec_utils/SYSINFO/ARFCN-ValueNR.h | 46 - .../SYSINFO/AdditionalSpectrumEmission.c | 64 - .../SYSINFO/AdditionalSpectrumEmission.h | 46 - src/codec_utils/SYSINFO/BCCH-BCH-Message.c | 50 - src/codec_utils/SYSINFO/BCCH-BCH-Message.h | 38 - src/codec_utils/SYSINFO/BCCH-BCH-MessageType.c | 94 - src/codec_utils/SYSINFO/BCCH-BCH-MessageType.h | 59 - src/codec_utils/SYSINFO/BCCH-Config.c | 103 - src/codec_utils/SYSINFO/BCCH-Config.h | 53 - src/codec_utils/SYSINFO/BWP-DownlinkCommon.c | 188 -- src/codec_utils/SYSINFO/BWP-DownlinkCommon.h | 82 - src/codec_utils/SYSINFO/BWP-UplinkCommon.c | 256 -- src/codec_utils/SYSINFO/BWP-UplinkCommon.h | 98 - src/codec_utils/SYSINFO/BWP.c | 152 - src/codec_utils/SYSINFO/BWP.h | 50 - src/codec_utils/SYSINFO/CellAccessRelatedInfo.c | 109 - src/codec_utils/SYSINFO/CellAccessRelatedInfo.h | 52 - src/codec_utils/SYSINFO/CellIdentity.c | 70 - src/codec_utils/SYSINFO/CellIdentity.h | 46 - src/codec_utils/SYSINFO/ConnEstFailureControl.c | 219 -- src/codec_utils/SYSINFO/ConnEstFailureControl.h | 63 - src/codec_utils/SYSINFO/ControlResourceSet.c | 748 ----- src/codec_utils/SYSINFO/ControlResourceSet.h | 114 - src/codec_utils/SYSINFO/ControlResourceSetId.c | 64 - src/codec_utils/SYSINFO/ControlResourceSetId.h | 46 - src/codec_utils/SYSINFO/ControlResourceSetZero.c | 64 - src/codec_utils/SYSINFO/ControlResourceSetZero.h | 46 - src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.c | 80 - src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.h | 50 - src/codec_utils/SYSINFO/FreqBandIndicatorNR.c | 64 - src/codec_utils/SYSINFO/FreqBandIndicatorNR.h | 46 - src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.c | 183 -- src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.h | 53 - src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.c | 220 -- src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.h | 67 - src/codec_utils/SYSINFO/MCC-MNC-Digit.c | 64 - src/codec_utils/SYSINFO/MCC-MNC-Digit.h | 46 - src/codec_utils/SYSINFO/MCC.c | 52 - src/codec_utils/SYSINFO/MCC.h | 42 - src/codec_utils/SYSINFO/MIB.c | 427 --- src/codec_utils/SYSINFO/MIB.h | 70 - src/codec_utils/SYSINFO/MNC.c | 52 - src/codec_utils/SYSINFO/MNC.h | 42 - src/codec_utils/SYSINFO/Makefile.am.libasncodec | 240 -- .../SYSINFO/MultiFrequencyBandListNR-SIB.c | 53 - .../SYSINFO/MultiFrequencyBandListNR-SIB.h | 44 - src/codec_utils/SYSINFO/NR-MultiBandInfo.c | 63 - src/codec_utils/SYSINFO/NR-MultiBandInfo.h | 44 - src/codec_utils/SYSINFO/NR-NS-PmaxList.c | 53 - src/codec_utils/SYSINFO/NR-NS-PmaxList.h | 44 - src/codec_utils/SYSINFO/NR-NS-PmaxValue.c | 62 - src/codec_utils/SYSINFO/NR-NS-PmaxValue.h | 42 - src/codec_utils/SYSINFO/P-Max.c | 64 - src/codec_utils/SYSINFO/P-Max.h | 46 - src/codec_utils/SYSINFO/PCCH-Config.c | 1365 --------- src/codec_utils/SYSINFO/PCCH-Config.h | 147 - src/codec_utils/SYSINFO/PDCCH-ConfigCommon.c | 1271 --------- src/codec_utils/SYSINFO/PDCCH-ConfigCommon.h | 140 - src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.c | 60 - src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.h | 42 - src/codec_utils/SYSINFO/PDSCH-ConfigCommon.c | 53 - src/codec_utils/SYSINFO/PDSCH-ConfigCommon.h | 46 - .../SYSINFO/PDSCH-TimeDomainResourceAllocation.c | 187 -- .../SYSINFO/PDSCH-TimeDomainResourceAllocation.h | 50 - .../PDSCH-TimeDomainResourceAllocationList.c | 53 - .../PDSCH-TimeDomainResourceAllocationList.h | 44 - src/codec_utils/SYSINFO/PLMN-IdentitY.c | 63 - src/codec_utils/SYSINFO/PLMN-IdentitY.h | 44 - src/codec_utils/SYSINFO/PLMN-IdentityInfo.c | 221 -- src/codec_utils/SYSINFO/PLMN-IdentityInfo.h | 68 - src/codec_utils/SYSINFO/PLMN-IdentityInfoList.c | 53 - src/codec_utils/SYSINFO/PLMN-IdentityInfoList.h | 44 - src/codec_utils/SYSINFO/PUCCH-ConfigCommon.c | 232 -- src/codec_utils/SYSINFO/PUCCH-ConfigCommon.h | 56 - src/codec_utils/SYSINFO/PUSCH-ConfigCommon.c | 196 -- src/codec_utils/SYSINFO/PUSCH-ConfigCommon.h | 57 - .../SYSINFO/PUSCH-TimeDomainResourceAllocation.c | 187 -- .../SYSINFO/PUSCH-TimeDomainResourceAllocation.h | 50 - .../PUSCH-TimeDomainResourceAllocationList.c | 53 - .../PUSCH-TimeDomainResourceAllocationList.h | 44 - src/codec_utils/SYSINFO/PagingCycle.c | 60 - src/codec_utils/SYSINFO/PagingCycle.h | 55 - src/codec_utils/SYSINFO/Q-QualMin.c | 64 - src/codec_utils/SYSINFO/Q-QualMin.h | 46 - src/codec_utils/SYSINFO/Q-RxLevMin.c | 64 - src/codec_utils/SYSINFO/Q-RxLevMin.h | 46 - src/codec_utils/SYSINFO/RACH-ConfigCommon.c | 1286 --------- src/codec_utils/SYSINFO/RACH-ConfigCommon.h | 246 -- src/codec_utils/SYSINFO/RACH-ConfigGeneric.c | 486 ---- src/codec_utils/SYSINFO/RACH-ConfigGeneric.h | 93 - src/codec_utils/SYSINFO/RAN-AreaCode.c | 64 - src/codec_utils/SYSINFO/RAN-AreaCode.h | 46 - src/codec_utils/SYSINFO/RSRP-Range.c | 64 - src/codec_utils/SYSINFO/RSRP-Range.h | 46 - src/codec_utils/SYSINFO/SCS-SpecificCarrier.c | 226 -- src/codec_utils/SYSINFO/SCS-SpecificCarrier.h | 53 - src/codec_utils/SYSINFO/SI-RequestConfig.c | 327 --- src/codec_utils/SYSINFO/SI-RequestConfig.h | 83 - src/codec_utils/SYSINFO/SI-RequestResources.c | 171 -- src/codec_utils/SYSINFO/SI-RequestResources.h | 42 - src/codec_utils/SYSINFO/SI-SchedulingInfo.c | 275 -- src/codec_utils/SYSINFO/SI-SchedulingInfo.h | 74 - src/codec_utils/SYSINFO/SIB-Mapping.c | 53 - src/codec_utils/SYSINFO/SIB-Mapping.h | 44 - src/codec_utils/SYSINFO/SIB-TypeInfo.c | 231 -- src/codec_utils/SYSINFO/SIB-TypeInfo.h | 71 - src/codec_utils/SYSINFO/SIB1.c | 699 ----- src/codec_utils/SYSINFO/SIB1.h | 121 - src/codec_utils/SYSINFO/SchedulingInfo.c | 178 -- src/codec_utils/SYSINFO/SchedulingInfo.h | 60 - src/codec_utils/SYSINFO/SearchSpace.c | 2077 -------------- src/codec_utils/SYSINFO/SearchSpace.h | 288 -- src/codec_utils/SYSINFO/SearchSpaceId.c | 64 - src/codec_utils/SYSINFO/SearchSpaceId.h | 46 - src/codec_utils/SYSINFO/SearchSpaceZero.c | 64 - src/codec_utils/SYSINFO/SearchSpaceZero.h | 46 - .../SYSINFO/ServingCellConfigCommonSIB.c | 398 --- .../SYSINFO/ServingCellConfigCommonSIB.h | 81 - src/codec_utils/SYSINFO/SubcarrierSpacing.c | 68 - src/codec_utils/SYSINFO/SubcarrierSpacing.h | 59 - src/codec_utils/SYSINFO/TCI-StateId.c | 64 - src/codec_utils/SYSINFO/TCI-StateId.h | 46 - src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.c | 73 - src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.h | 50 - src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.c | 389 --- src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.h | 73 - src/codec_utils/SYSINFO/TimeAlignmentTimer.c | 68 - src/codec_utils/SYSINFO/TimeAlignmentTimer.h | 59 - src/codec_utils/SYSINFO/TrackingAreaCode.c | 70 - src/codec_utils/SYSINFO/TrackingAreaCode.h | 46 - .../UAC-AccessCategory1-SelectionAssistanceInfo.c | 58 - .../UAC-AccessCategory1-SelectionAssistanceInfo.h | 54 - src/codec_utils/SYSINFO/UAC-BarringInfoSet.c | 247 -- src/codec_utils/SYSINFO/UAC-BarringInfoSet.h | 75 - src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.c | 64 - src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.h | 46 - src/codec_utils/SYSINFO/UAC-BarringInfoSetList.c | 53 - src/codec_utils/SYSINFO/UAC-BarringInfoSetList.h | 44 - src/codec_utils/SYSINFO/UAC-BarringPerCat.c | 93 - src/codec_utils/SYSINFO/UAC-BarringPerCat.h | 42 - src/codec_utils/SYSINFO/UAC-BarringPerCatList.c | 53 - src/codec_utils/SYSINFO/UAC-BarringPerCatList.h | 44 - src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.c | 53 - src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.h | 44 - src/codec_utils/SYSINFO/UAC-BarringPerPLMN.c | 232 -- src/codec_utils/SYSINFO/UAC-BarringPerPLMN.h | 69 - src/codec_utils/SYSINFO/UE-TimersAndConstants.c | 533 ---- src/codec_utils/SYSINFO/UE-TimersAndConstants.h | 127 - src/codec_utils/SYSINFO/UplinkConfigCommonSIB.c | 70 - src/codec_utils/SYSINFO/UplinkConfigCommonSIB.h | 44 - 1506 files changed, 183080 insertions(+), 21826 deletions(-) create mode 100755 build/common/asn_rrc.mak delete mode 100755 build/common/asn_sysinfo.mak create mode 100644 src/codec_utils/RRC/AMF-Identifier.c create mode 100644 src/codec_utils/RRC/AMF-Identifier.h create mode 100644 src/codec_utils/RRC/ARFCN-ValueEUTRA.c create mode 100644 src/codec_utils/RRC/ARFCN-ValueEUTRA.h create mode 100644 src/codec_utils/RRC/ARFCN-ValueNR.c create mode 100644 src/codec_utils/RRC/ARFCN-ValueNR.h create mode 100644 src/codec_utils/RRC/AS-Config.c create mode 100644 src/codec_utils/RRC/AS-Config.h create mode 100644 src/codec_utils/RRC/AS-Context.c create mode 100644 src/codec_utils/RRC/AS-Context.h create mode 100644 src/codec_utils/RRC/AccessStratumRelease.c create mode 100644 src/codec_utils/RRC/AccessStratumRelease.h create mode 100644 src/codec_utils/RRC/AdditionalSpectrumEmission.c create mode 100644 src/codec_utils/RRC/AdditionalSpectrumEmission.h create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.c create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.h create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.c create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.h create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombNR.c create mode 100644 src/codec_utils/RRC/AffectedCarrierFreqCombNR.h create mode 100644 src/codec_utils/RRC/AggregatedBandwidth.c create mode 100644 src/codec_utils/RRC/AggregatedBandwidth.h create mode 100644 src/codec_utils/RRC/Alpha.c create mode 100644 src/codec_utils/RRC/Alpha.h create mode 100644 src/codec_utils/RRC/BCCH-BCH-Message.c create mode 100644 src/codec_utils/RRC/BCCH-BCH-Message.h create mode 100644 src/codec_utils/RRC/BCCH-BCH-MessageType.c create mode 100644 src/codec_utils/RRC/BCCH-BCH-MessageType.h create mode 100644 src/codec_utils/RRC/BCCH-Config.c create mode 100644 src/codec_utils/RRC/BCCH-Config.h create mode 100644 src/codec_utils/RRC/BCCH-DL-SCH-Message.c create mode 100644 src/codec_utils/RRC/BCCH-DL-SCH-Message.h create mode 100644 src/codec_utils/RRC/BCCH-DL-SCH-MessageType.c create mode 100644 src/codec_utils/RRC/BCCH-DL-SCH-MessageType.h create mode 100644 src/codec_utils/RRC/BFR-CSIRS-Resource.c create mode 100644 src/codec_utils/RRC/BFR-CSIRS-Resource.h create mode 100644 src/codec_utils/RRC/BFR-SSB-Resource.c create mode 100644 src/codec_utils/RRC/BFR-SSB-Resource.h create mode 100644 src/codec_utils/RRC/BSR-Config.c create mode 100644 src/codec_utils/RRC/BSR-Config.h create mode 100644 src/codec_utils/RRC/BWP-Downlink.c create mode 100644 src/codec_utils/RRC/BWP-Downlink.h create mode 100644 src/codec_utils/RRC/BWP-DownlinkCommon.c create mode 100644 src/codec_utils/RRC/BWP-DownlinkCommon.h create mode 100644 src/codec_utils/RRC/BWP-DownlinkDedicated.c create mode 100644 src/codec_utils/RRC/BWP-DownlinkDedicated.h create mode 100644 src/codec_utils/RRC/BWP-Id.c create mode 100644 src/codec_utils/RRC/BWP-Id.h create mode 100644 src/codec_utils/RRC/BWP-Uplink.c create mode 100644 src/codec_utils/RRC/BWP-Uplink.h create mode 100644 src/codec_utils/RRC/BWP-UplinkCommon.c create mode 100644 src/codec_utils/RRC/BWP-UplinkCommon.h create mode 100644 src/codec_utils/RRC/BWP-UplinkDedicated.c create mode 100644 src/codec_utils/RRC/BWP-UplinkDedicated.h create mode 100644 src/codec_utils/RRC/BWP.c create mode 100644 src/codec_utils/RRC/BWP.h create mode 100644 src/codec_utils/RRC/BandCombination.c create mode 100644 src/codec_utils/RRC/BandCombination.h create mode 100644 src/codec_utils/RRC/BandCombinationIndex.c create mode 100644 src/codec_utils/RRC/BandCombinationIndex.h create mode 100644 src/codec_utils/RRC/BandCombinationInfo.c create mode 100644 src/codec_utils/RRC/BandCombinationInfo.h create mode 100644 src/codec_utils/RRC/BandCombinationInfoList.c create mode 100644 src/codec_utils/RRC/BandCombinationInfoList.h create mode 100644 src/codec_utils/RRC/BandCombinationInfoSN.c create mode 100644 src/codec_utils/RRC/BandCombinationInfoSN.h create mode 100644 src/codec_utils/RRC/BandCombinationList.c create mode 100644 src/codec_utils/RRC/BandCombinationList.h create mode 100644 src/codec_utils/RRC/BandNR.c create mode 100644 src/codec_utils/RRC/BandNR.h create mode 100644 src/codec_utils/RRC/BandParameters.c create mode 100644 src/codec_utils/RRC/BandParameters.h create mode 100644 src/codec_utils/RRC/BeamFailureRecoveryConfig.c create mode 100644 src/codec_utils/RRC/BeamFailureRecoveryConfig.h create mode 100644 src/codec_utils/RRC/BeamManagementSSB-CSI-RS.c create mode 100644 src/codec_utils/RRC/BeamManagementSSB-CSI-RS.h create mode 100644 src/codec_utils/RRC/BetaOffsets.c create mode 100644 src/codec_utils/RRC/BetaOffsets.h create mode 100644 src/codec_utils/RRC/CA-BandwidthClassEUTRA.c create mode 100644 src/codec_utils/RRC/CA-BandwidthClassEUTRA.h create mode 100644 src/codec_utils/RRC/CA-BandwidthClassNR.c create mode 100644 src/codec_utils/RRC/CA-BandwidthClassNR.h create mode 100644 src/codec_utils/RRC/CA-ParametersEUTRA.c create mode 100644 src/codec_utils/RRC/CA-ParametersEUTRA.h create mode 100644 src/codec_utils/RRC/CA-ParametersNR.c create mode 100644 src/codec_utils/RRC/CA-ParametersNR.h create mode 100644 src/codec_utils/RRC/CFRA-CSIRS-Resource.c create mode 100644 src/codec_utils/RRC/CFRA-CSIRS-Resource.h create mode 100644 src/codec_utils/RRC/CFRA-SSB-Resource.c create mode 100644 src/codec_utils/RRC/CFRA-SSB-Resource.h create mode 100644 src/codec_utils/RRC/CFRA.c create mode 100644 src/codec_utils/RRC/CFRA.h create mode 100644 src/codec_utils/RRC/CG-Config-IEs.c create mode 100644 src/codec_utils/RRC/CG-Config-IEs.h create mode 100644 src/codec_utils/RRC/CG-Config.c create mode 100644 src/codec_utils/RRC/CG-Config.h create mode 100644 src/codec_utils/RRC/CG-ConfigInfo-IEs.c create mode 100644 src/codec_utils/RRC/CG-ConfigInfo-IEs.h create mode 100644 src/codec_utils/RRC/CG-ConfigInfo.c create mode 100644 src/codec_utils/RRC/CG-ConfigInfo.h create mode 100644 src/codec_utils/RRC/CG-UCI-OnPUSCH.c create mode 100644 src/codec_utils/RRC/CG-UCI-OnPUSCH.h create mode 100644 src/codec_utils/RRC/CGI-Info.c create mode 100644 src/codec_utils/RRC/CGI-Info.h create mode 100644 src/codec_utils/RRC/CSI-AperiodicTriggerState.c create mode 100644 src/codec_utils/RRC/CSI-AperiodicTriggerState.h create mode 100644 src/codec_utils/RRC/CSI-AperiodicTriggerStateList.c create mode 100644 src/codec_utils/RRC/CSI-AperiodicTriggerStateList.h create mode 100644 src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.c create mode 100644 src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.h create mode 100644 src/codec_utils/RRC/CSI-FrequencyOccupation.c create mode 100644 src/codec_utils/RRC/CSI-FrequencyOccupation.h create mode 100644 src/codec_utils/RRC/CSI-IM-Resource.c create mode 100644 src/codec_utils/RRC/CSI-IM-Resource.h create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceId.c create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceId.h create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceSet.c create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceSet.h create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceSetId.c create mode 100644 src/codec_utils/RRC/CSI-IM-ResourceSetId.h create mode 100644 src/codec_utils/RRC/CSI-MeasConfig.c create mode 100644 src/codec_utils/RRC/CSI-MeasConfig.h create mode 100644 src/codec_utils/RRC/CSI-RS-CellMobility.c create mode 100644 src/codec_utils/RRC/CSI-RS-CellMobility.h create mode 100644 src/codec_utils/RRC/CSI-RS-ForTracking.c create mode 100644 src/codec_utils/RRC/CSI-RS-ForTracking.h create mode 100644 src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.c create mode 100644 src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.h create mode 100644 src/codec_utils/RRC/CSI-RS-Index.c create mode 100644 src/codec_utils/RRC/CSI-RS-Index.h create mode 100644 src/codec_utils/RRC/CSI-RS-Resource-Mobility.c create mode 100644 src/codec_utils/RRC/CSI-RS-Resource-Mobility.h create mode 100644 src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.c create mode 100644 src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.h create mode 100644 src/codec_utils/RRC/CSI-RS-ResourceMapping.c create mode 100644 src/codec_utils/RRC/CSI-RS-ResourceMapping.h create mode 100644 src/codec_utils/RRC/CSI-ReportConfig.c create mode 100644 src/codec_utils/RRC/CSI-ReportConfig.h create mode 100644 src/codec_utils/RRC/CSI-ReportConfigId.c create mode 100644 src/codec_utils/RRC/CSI-ReportConfigId.h create mode 100644 src/codec_utils/RRC/CSI-ReportFramework.c create mode 100644 src/codec_utils/RRC/CSI-ReportFramework.h create mode 100644 src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.c create mode 100644 src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.h create mode 100644 src/codec_utils/RRC/CSI-ResourceConfig.c create mode 100644 src/codec_utils/RRC/CSI-ResourceConfig.h create mode 100644 src/codec_utils/RRC/CSI-ResourceConfigId.c create mode 100644 src/codec_utils/RRC/CSI-ResourceConfigId.h create mode 100644 src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.c create mode 100644 src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.h create mode 100644 src/codec_utils/RRC/CSI-SSB-ResourceSet.c create mode 100644 src/codec_utils/RRC/CSI-SSB-ResourceSet.h create mode 100644 src/codec_utils/RRC/CSI-SSB-ResourceSetId.c create mode 100644 src/codec_utils/RRC/CSI-SSB-ResourceSetId.h create mode 100644 src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.c create mode 100644 src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.h create mode 100644 src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.c create mode 100644 src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.h create mode 100644 src/codec_utils/RRC/CandidateServingFreqListNR.c create mode 100644 src/codec_utils/RRC/CandidateServingFreqListNR.h create mode 100644 src/codec_utils/RRC/CarrierFreqEUTRA.c create mode 100644 src/codec_utils/RRC/CarrierFreqEUTRA.h create mode 100644 src/codec_utils/RRC/CarrierFreqListEUTRA.c create mode 100644 src/codec_utils/RRC/CarrierFreqListEUTRA.h create mode 100644 src/codec_utils/RRC/CarrierInfoNR.c create mode 100644 src/codec_utils/RRC/CarrierInfoNR.h create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.c create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.h create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.c create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.h create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo.c create mode 100644 src/codec_utils/RRC/CellAccessRelatedInfo.h create mode 100644 src/codec_utils/RRC/CellGroupConfig.c create mode 100644 src/codec_utils/RRC/CellGroupConfig.h create mode 100644 src/codec_utils/RRC/CellGroupId.c create mode 100644 src/codec_utils/RRC/CellGroupId.h create mode 100644 src/codec_utils/RRC/CellIdentity-EUTRA-5GC.c create mode 100644 src/codec_utils/RRC/CellIdentity-EUTRA-5GC.h create mode 100644 src/codec_utils/RRC/CellIdentity.c create mode 100644 src/codec_utils/RRC/CellIdentity.h create mode 100644 src/codec_utils/RRC/CellReselectionPriorities.c create mode 100644 src/codec_utils/RRC/CellReselectionPriorities.h create mode 100644 src/codec_utils/RRC/CellReselectionPriority.c create mode 100644 src/codec_utils/RRC/CellReselectionPriority.h create mode 100644 src/codec_utils/RRC/CellReselectionSubPriority.c create mode 100644 src/codec_utils/RRC/CellReselectionSubPriority.h create mode 100644 src/codec_utils/RRC/CellsToAddMod.c create mode 100644 src/codec_utils/RRC/CellsToAddMod.h create mode 100644 src/codec_utils/RRC/CellsToAddModList.c create mode 100644 src/codec_utils/RRC/CellsToAddModList.h create mode 100644 src/codec_utils/RRC/CellsTriggeredList.c create mode 100644 src/codec_utils/RRC/CellsTriggeredList.h create mode 100644 src/codec_utils/RRC/CipheringAlgorithm.c create mode 100644 src/codec_utils/RRC/CipheringAlgorithm.h create mode 100644 src/codec_utils/RRC/CodebookConfig.c create mode 100644 src/codec_utils/RRC/CodebookConfig.h create mode 100644 src/codec_utils/RRC/ConfigRestrictInfoSCG.c create mode 100644 src/codec_utils/RRC/ConfigRestrictInfoSCG.h create mode 100644 src/codec_utils/RRC/ConfigRestrictModReqSCG.c create mode 100644 src/codec_utils/RRC/ConfigRestrictModReqSCG.h create mode 100644 src/codec_utils/RRC/ConfiguredGrantConfig.c create mode 100644 src/codec_utils/RRC/ConfiguredGrantConfig.h create mode 100644 src/codec_utils/RRC/ConnEstFailureControl.c create mode 100644 src/codec_utils/RRC/ConnEstFailureControl.h create mode 100644 src/codec_utils/RRC/ControlResourceSet.c create mode 100644 src/codec_utils/RRC/ControlResourceSet.h create mode 100644 src/codec_utils/RRC/ControlResourceSetId.c create mode 100644 src/codec_utils/RRC/ControlResourceSetId.h create mode 100644 src/codec_utils/RRC/ControlResourceSetZero.c create mode 100644 src/codec_utils/RRC/ControlResourceSetZero.h create mode 100644 src/codec_utils/RRC/CounterCheck-IEs.c create mode 100644 src/codec_utils/RRC/CounterCheck-IEs.h create mode 100644 src/codec_utils/RRC/CounterCheck.c create mode 100644 src/codec_utils/RRC/CounterCheck.h create mode 100644 src/codec_utils/RRC/CounterCheckResponse-IEs.c create mode 100644 src/codec_utils/RRC/CounterCheckResponse-IEs.h create mode 100644 src/codec_utils/RRC/CounterCheckResponse.c create mode 100644 src/codec_utils/RRC/CounterCheckResponse.h create mode 100644 src/codec_utils/RRC/CrossCarrierSchedulingConfig.c create mode 100644 src/codec_utils/RRC/CrossCarrierSchedulingConfig.h create mode 100644 src/codec_utils/RRC/DL-AM-RLC.c create mode 100644 src/codec_utils/RRC/DL-AM-RLC.h create mode 100644 src/codec_utils/RRC/DL-CCCH-Message.c create mode 100644 src/codec_utils/RRC/DL-CCCH-Message.h create mode 100644 src/codec_utils/RRC/DL-CCCH-MessageType.c create mode 100644 src/codec_utils/RRC/DL-CCCH-MessageType.h create mode 100644 src/codec_utils/RRC/DL-DCCH-Message.c create mode 100644 src/codec_utils/RRC/DL-DCCH-Message.h create mode 100644 src/codec_utils/RRC/DL-DCCH-MessageType.c create mode 100644 src/codec_utils/RRC/DL-DCCH-MessageType.h create mode 100644 src/codec_utils/RRC/DL-UM-RLC.c create mode 100644 src/codec_utils/RRC/DL-UM-RLC.h create mode 100644 src/codec_utils/RRC/DLInformationTransfer-IEs.c create mode 100644 src/codec_utils/RRC/DLInformationTransfer-IEs.h create mode 100644 src/codec_utils/RRC/DLInformationTransfer.c create mode 100644 src/codec_utils/RRC/DLInformationTransfer.h create mode 100644 src/codec_utils/RRC/DMRS-DownlinkConfig.c create mode 100644 src/codec_utils/RRC/DMRS-DownlinkConfig.h create mode 100644 src/codec_utils/RRC/DMRS-UplinkConfig.c create mode 100644 src/codec_utils/RRC/DMRS-UplinkConfig.h create mode 100644 src/codec_utils/RRC/DRB-CountInfo.c create mode 100644 src/codec_utils/RRC/DRB-CountInfo.h create mode 100644 src/codec_utils/RRC/DRB-CountInfoList.c create mode 100644 src/codec_utils/RRC/DRB-CountInfoList.h create mode 100644 src/codec_utils/RRC/DRB-CountMSB-Info.c create mode 100644 src/codec_utils/RRC/DRB-CountMSB-Info.h create mode 100644 src/codec_utils/RRC/DRB-CountMSB-InfoList.c create mode 100644 src/codec_utils/RRC/DRB-CountMSB-InfoList.h create mode 100644 src/codec_utils/RRC/DRB-Identity.c create mode 100644 src/codec_utils/RRC/DRB-Identity.h create mode 100644 src/codec_utils/RRC/DRB-ToAddMod.c create mode 100644 src/codec_utils/RRC/DRB-ToAddMod.h create mode 100644 src/codec_utils/RRC/DRB-ToAddModList.c create mode 100644 src/codec_utils/RRC/DRB-ToAddModList.h create mode 100644 src/codec_utils/RRC/DRB-ToReleaseList.c create mode 100644 src/codec_utils/RRC/DRB-ToReleaseList.h create mode 100644 src/codec_utils/RRC/DRX-Config.c create mode 100644 src/codec_utils/RRC/DRX-Config.h create mode 100644 src/codec_utils/RRC/DRX-Info.c create mode 100644 src/codec_utils/RRC/DRX-Info.h create mode 100644 src/codec_utils/RRC/DataInactivityTimer.c create mode 100644 src/codec_utils/RRC/DataInactivityTimer.h create mode 100644 src/codec_utils/RRC/DedicatedNAS-Message.c create mode 100644 src/codec_utils/RRC/DedicatedNAS-Message.h create mode 100644 src/codec_utils/RRC/DelayBudgetReport.c create mode 100644 src/codec_utils/RRC/DelayBudgetReport.h create mode 100644 src/codec_utils/RRC/DownlinkConfigCommon.c create mode 100644 src/codec_utils/RRC/DownlinkConfigCommon.h create mode 100644 src/codec_utils/RRC/DownlinkConfigCommonSIB.c create mode 100644 src/codec_utils/RRC/DownlinkConfigCommonSIB.h create mode 100644 src/codec_utils/RRC/DownlinkPreemption.c create mode 100644 src/codec_utils/RRC/DownlinkPreemption.h create mode 100644 src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.c create mode 100644 src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.h create mode 100644 src/codec_utils/RRC/EUTRA-BlackCell.c create mode 100644 src/codec_utils/RRC/EUTRA-BlackCell.h create mode 100644 src/codec_utils/RRC/EUTRA-Cell.c create mode 100644 src/codec_utils/RRC/EUTRA-Cell.h create mode 100644 src/codec_utils/RRC/EUTRA-CellIndex.c create mode 100644 src/codec_utils/RRC/EUTRA-CellIndex.h create mode 100644 src/codec_utils/RRC/EUTRA-CellIndexList.c create mode 100644 src/codec_utils/RRC/EUTRA-CellIndexList.h create mode 100644 src/codec_utils/RRC/EUTRA-FreqBlackCellList.c create mode 100644 src/codec_utils/RRC/EUTRA-FreqBlackCellList.h create mode 100644 src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.c create mode 100644 src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.h create mode 100644 src/codec_utils/RRC/EUTRA-FreqNeighCellList.c create mode 100644 src/codec_utils/RRC/EUTRA-FreqNeighCellList.h create mode 100644 src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.c create mode 100644 src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.h create mode 100644 src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.c create mode 100644 src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.h create mode 100644 src/codec_utils/RRC/EUTRA-MultiBandInfo.c create mode 100644 src/codec_utils/RRC/EUTRA-MultiBandInfo.h create mode 100644 src/codec_utils/RRC/EUTRA-MultiBandInfoList.c create mode 100644 src/codec_utils/RRC/EUTRA-MultiBandInfoList.h create mode 100644 src/codec_utils/RRC/EUTRA-NS-PmaxList.c create mode 100644 src/codec_utils/RRC/EUTRA-NS-PmaxList.h create mode 100644 src/codec_utils/RRC/EUTRA-NS-PmaxValue.c create mode 100644 src/codec_utils/RRC/EUTRA-NS-PmaxValue.h create mode 100644 src/codec_utils/RRC/EUTRA-Parameters.c create mode 100644 src/codec_utils/RRC/EUTRA-Parameters.h create mode 100644 src/codec_utils/RRC/EUTRA-ParametersCommon.c create mode 100644 src/codec_utils/RRC/EUTRA-ParametersCommon.h create mode 100644 src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.c create mode 100644 src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.h create mode 100644 src/codec_utils/RRC/EUTRA-PhysCellId.c create mode 100644 src/codec_utils/RRC/EUTRA-PhysCellId.h create mode 100644 src/codec_utils/RRC/EUTRA-PhysCellIdRange.c create mode 100644 src/codec_utils/RRC/EUTRA-PhysCellIdRange.h create mode 100644 src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.c create mode 100644 src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.h create mode 100644 src/codec_utils/RRC/EUTRA-Q-OffsetRange.c create mode 100644 src/codec_utils/RRC/EUTRA-Q-OffsetRange.h create mode 100644 src/codec_utils/RRC/EUTRA-RSTD-Info.c create mode 100644 src/codec_utils/RRC/EUTRA-RSTD-Info.h create mode 100644 src/codec_utils/RRC/EUTRA-RSTD-InfoList.c create mode 100644 src/codec_utils/RRC/EUTRA-RSTD-InfoList.h create mode 100644 src/codec_utils/RRC/EstablishmentCause.c create mode 100644 src/codec_utils/RRC/EstablishmentCause.h create mode 100644 src/codec_utils/RRC/EventTriggerConfig.c create mode 100644 src/codec_utils/RRC/EventTriggerConfig.h create mode 100644 src/codec_utils/RRC/EventTriggerConfigInterRAT.c create mode 100644 src/codec_utils/RRC/EventTriggerConfigInterRAT.h create mode 100644 src/codec_utils/RRC/FR-Info.c create mode 100644 src/codec_utils/RRC/FR-Info.h create mode 100644 src/codec_utils/RRC/FR-InfoList.c create mode 100644 src/codec_utils/RRC/FR-InfoList.h create mode 100644 src/codec_utils/RRC/FailureInfoRLC-Bearer.c create mode 100644 src/codec_utils/RRC/FailureInfoRLC-Bearer.h create mode 100644 src/codec_utils/RRC/FailureInformation-IEs.c create mode 100644 src/codec_utils/RRC/FailureInformation-IEs.h create mode 100644 src/codec_utils/RRC/FailureInformation.c create mode 100644 src/codec_utils/RRC/FailureInformation.h create mode 100644 src/codec_utils/RRC/FeatureSet.c create mode 100644 src/codec_utils/RRC/FeatureSet.h create mode 100644 src/codec_utils/RRC/FeatureSetCombination.c create mode 100644 src/codec_utils/RRC/FeatureSetCombination.h create mode 100644 src/codec_utils/RRC/FeatureSetCombinationId.c create mode 100644 src/codec_utils/RRC/FeatureSetCombinationId.h create mode 100644 src/codec_utils/RRC/FeatureSetDownlink.c create mode 100644 src/codec_utils/RRC/FeatureSetDownlink.h create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkId.c create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkId.h create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.c create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.h create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkPerCC.c create mode 100644 src/codec_utils/RRC/FeatureSetDownlinkPerCC.h create mode 100644 src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.c create mode 100644 src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.h create mode 100644 src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.c create mode 100644 src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.h create mode 100644 src/codec_utils/RRC/FeatureSetEntryIndex.c create mode 100644 src/codec_utils/RRC/FeatureSetEntryIndex.h create mode 100644 src/codec_utils/RRC/FeatureSetUplink.c create mode 100644 src/codec_utils/RRC/FeatureSetUplink.h create mode 100644 src/codec_utils/RRC/FeatureSetUplinkId.c create mode 100644 src/codec_utils/RRC/FeatureSetUplinkId.h create mode 100644 src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.c create mode 100644 src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.h create mode 100644 src/codec_utils/RRC/FeatureSetUplinkPerCC.c create mode 100644 src/codec_utils/RRC/FeatureSetUplinkPerCC.h create mode 100644 src/codec_utils/RRC/FeatureSets.c create mode 100644 src/codec_utils/RRC/FeatureSets.h create mode 100644 src/codec_utils/RRC/FeatureSetsPerBand.c create mode 100644 src/codec_utils/RRC/FeatureSetsPerBand.h create mode 100644 src/codec_utils/RRC/FilterCoefficient.c create mode 100644 src/codec_utils/RRC/FilterCoefficient.h create mode 100644 src/codec_utils/RRC/FilterConfig.c create mode 100644 src/codec_utils/RRC/FilterConfig.h create mode 100644 src/codec_utils/RRC/FreqBandIndicatorEUTRA.c create mode 100644 src/codec_utils/RRC/FreqBandIndicatorEUTRA.h create mode 100644 src/codec_utils/RRC/FreqBandIndicatorNR.c create mode 100644 src/codec_utils/RRC/FreqBandIndicatorNR.h create mode 100644 src/codec_utils/RRC/FreqBandInformation.c create mode 100644 src/codec_utils/RRC/FreqBandInformation.h create mode 100644 src/codec_utils/RRC/FreqBandInformationEUTRA.c create mode 100644 src/codec_utils/RRC/FreqBandInformationEUTRA.h create mode 100644 src/codec_utils/RRC/FreqBandInformationNR.c create mode 100644 src/codec_utils/RRC/FreqBandInformationNR.h create mode 100644 src/codec_utils/RRC/FreqBandList.c create mode 100644 src/codec_utils/RRC/FreqBandList.h create mode 100644 src/codec_utils/RRC/FreqPriorityEUTRA.c create mode 100644 src/codec_utils/RRC/FreqPriorityEUTRA.h create mode 100644 src/codec_utils/RRC/FreqPriorityListEUTRA.c create mode 100644 src/codec_utils/RRC/FreqPriorityListEUTRA.h create mode 100644 src/codec_utils/RRC/FreqPriorityListNR.c create mode 100644 src/codec_utils/RRC/FreqPriorityListNR.h create mode 100644 src/codec_utils/RRC/FreqPriorityNR.c create mode 100644 src/codec_utils/RRC/FreqPriorityNR.h create mode 100644 src/codec_utils/RRC/FreqSeparationClass.c create mode 100644 src/codec_utils/RRC/FreqSeparationClass.h create mode 100644 src/codec_utils/RRC/FrequencyInfoDL-SIB.c create mode 100644 src/codec_utils/RRC/FrequencyInfoDL-SIB.h create mode 100644 src/codec_utils/RRC/FrequencyInfoDL.c create mode 100644 src/codec_utils/RRC/FrequencyInfoDL.h create mode 100644 src/codec_utils/RRC/FrequencyInfoUL-SIB.c create mode 100644 src/codec_utils/RRC/FrequencyInfoUL-SIB.h create mode 100644 src/codec_utils/RRC/FrequencyInfoUL.c create mode 100644 src/codec_utils/RRC/FrequencyInfoUL.h create mode 100644 src/codec_utils/RRC/GapConfig.c create mode 100644 src/codec_utils/RRC/GapConfig.h create mode 100644 src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.c create mode 100644 src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.h create mode 100644 src/codec_utils/RRC/HandoverCommand-IEs.c create mode 100644 src/codec_utils/RRC/HandoverCommand-IEs.h create mode 100644 src/codec_utils/RRC/HandoverCommand.c create mode 100644 src/codec_utils/RRC/HandoverCommand.h create mode 100644 src/codec_utils/RRC/HandoverPreparationInformation-IEs.c create mode 100644 src/codec_utils/RRC/HandoverPreparationInformation-IEs.h create mode 100644 src/codec_utils/RRC/HandoverPreparationInformation.c create mode 100644 src/codec_utils/RRC/HandoverPreparationInformation.h create mode 100644 src/codec_utils/RRC/Hysteresis.c create mode 100644 src/codec_utils/RRC/Hysteresis.h create mode 100644 src/codec_utils/RRC/I-RNTI-Value.c create mode 100644 src/codec_utils/RRC/I-RNTI-Value.h create mode 100644 src/codec_utils/RRC/INT-ConfigurationPerServingCell.c create mode 100644 src/codec_utils/RRC/INT-ConfigurationPerServingCell.h create mode 100644 src/codec_utils/RRC/InitialUE-Identity.c create mode 100644 src/codec_utils/RRC/InitialUE-Identity.h create mode 100644 src/codec_utils/RRC/IntegrityProtAlgorithm.c create mode 100644 src/codec_utils/RRC/IntegrityProtAlgorithm.h create mode 100644 src/codec_utils/RRC/InterFreqBlackCellList.c create mode 100644 src/codec_utils/RRC/InterFreqBlackCellList.h create mode 100644 src/codec_utils/RRC/InterFreqCarrierFreqInfo.c create mode 100644 src/codec_utils/RRC/InterFreqCarrierFreqInfo.h create mode 100644 src/codec_utils/RRC/InterFreqCarrierFreqList.c create mode 100644 src/codec_utils/RRC/InterFreqCarrierFreqList.h create mode 100644 src/codec_utils/RRC/InterFreqNeighCellInfo.c create mode 100644 src/codec_utils/RRC/InterFreqNeighCellInfo.h create mode 100644 src/codec_utils/RRC/InterFreqNeighCellList.c create mode 100644 src/codec_utils/RRC/InterFreqNeighCellList.h create mode 100644 src/codec_utils/RRC/InterRAT-Parameters.c create mode 100644 src/codec_utils/RRC/InterRAT-Parameters.h create mode 100644 src/codec_utils/RRC/IntraFreqBlackCellList.c create mode 100644 src/codec_utils/RRC/IntraFreqBlackCellList.h create mode 100644 src/codec_utils/RRC/IntraFreqNeighCellInfo.c create mode 100644 src/codec_utils/RRC/IntraFreqNeighCellInfo.h create mode 100644 src/codec_utils/RRC/IntraFreqNeighCellList.c create mode 100644 src/codec_utils/RRC/IntraFreqNeighCellList.h create mode 100644 src/codec_utils/RRC/LocationMeasurementIndication-IEs.c create mode 100644 src/codec_utils/RRC/LocationMeasurementIndication-IEs.h create mode 100644 src/codec_utils/RRC/LocationMeasurementIndication.c create mode 100644 src/codec_utils/RRC/LocationMeasurementIndication.h create mode 100644 src/codec_utils/RRC/LocationMeasurementInfo.c create mode 100644 src/codec_utils/RRC/LocationMeasurementInfo.h create mode 100644 src/codec_utils/RRC/LogicalChannelConfig.c create mode 100644 src/codec_utils/RRC/LogicalChannelConfig.h create mode 100644 src/codec_utils/RRC/LogicalChannelIdentity.c create mode 100644 src/codec_utils/RRC/LogicalChannelIdentity.h create mode 100644 src/codec_utils/RRC/MAC-CellGroupConfig.c create mode 100644 src/codec_utils/RRC/MAC-CellGroupConfig.h create mode 100644 src/codec_utils/RRC/MAC-Parameters.c create mode 100644 src/codec_utils/RRC/MAC-Parameters.h create mode 100644 src/codec_utils/RRC/MAC-ParametersCommon.c create mode 100644 src/codec_utils/RRC/MAC-ParametersCommon.h create mode 100644 src/codec_utils/RRC/MAC-ParametersXDD-Diff.c create mode 100644 src/codec_utils/RRC/MAC-ParametersXDD-Diff.h create mode 100644 src/codec_utils/RRC/MCC-MNC-Digit.c create mode 100644 src/codec_utils/RRC/MCC-MNC-Digit.h create mode 100644 src/codec_utils/RRC/MCC.c create mode 100644 src/codec_utils/RRC/MCC.h create mode 100644 src/codec_utils/RRC/MIB.c create mode 100644 src/codec_utils/RRC/MIB.h create mode 100644 src/codec_utils/RRC/MIMO-LayersDL.c create mode 100644 src/codec_utils/RRC/MIMO-LayersDL.h create mode 100644 src/codec_utils/RRC/MIMO-LayersUL.c create mode 100644 src/codec_utils/RRC/MIMO-LayersUL.h create mode 100644 src/codec_utils/RRC/MIMO-ParametersPerBand.c create mode 100644 src/codec_utils/RRC/MIMO-ParametersPerBand.h create mode 100644 src/codec_utils/RRC/MNC.c create mode 100644 src/codec_utils/RRC/MNC.h create mode 100644 src/codec_utils/RRC/MRDC-AssistanceInfo.c create mode 100644 src/codec_utils/RRC/MRDC-AssistanceInfo.h create mode 100644 src/codec_utils/RRC/MRDC-Parameters.c create mode 100644 src/codec_utils/RRC/MRDC-Parameters.h create mode 100644 src/codec_utils/RRC/Makefile.am.libasncodec create mode 100644 src/codec_utils/RRC/MasterKeyUpdate.c create mode 100644 src/codec_utils/RRC/MasterKeyUpdate.h create mode 100644 src/codec_utils/RRC/MeasAndMobParameters.c create mode 100644 src/codec_utils/RRC/MeasAndMobParameters.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersCommon.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersCommon.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersMRDC.h create mode 100644 src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.c create mode 100644 src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.h create mode 100644 src/codec_utils/RRC/MeasConfig.c create mode 100644 src/codec_utils/RRC/MeasConfig.h create mode 100644 src/codec_utils/RRC/MeasConfigMN.c create mode 100644 src/codec_utils/RRC/MeasConfigMN.h create mode 100644 src/codec_utils/RRC/MeasConfigSN.c create mode 100644 src/codec_utils/RRC/MeasConfigSN.h create mode 100644 src/codec_utils/RRC/MeasGapConfig.c create mode 100644 src/codec_utils/RRC/MeasGapConfig.h create mode 100644 src/codec_utils/RRC/MeasGapSharingConfig.c create mode 100644 src/codec_utils/RRC/MeasGapSharingConfig.h create mode 100644 src/codec_utils/RRC/MeasGapSharingScheme.c create mode 100644 src/codec_utils/RRC/MeasGapSharingScheme.h create mode 100644 src/codec_utils/RRC/MeasId.c create mode 100644 src/codec_utils/RRC/MeasId.h create mode 100644 src/codec_utils/RRC/MeasIdToAddMod.c create mode 100644 src/codec_utils/RRC/MeasIdToAddMod.h create mode 100644 src/codec_utils/RRC/MeasIdToAddModList.c create mode 100644 src/codec_utils/RRC/MeasIdToAddModList.h create mode 100644 src/codec_utils/RRC/MeasIdToRemoveList.c create mode 100644 src/codec_utils/RRC/MeasIdToRemoveList.h create mode 100644 src/codec_utils/RRC/MeasObjectEUTRA.c create mode 100644 src/codec_utils/RRC/MeasObjectEUTRA.h create mode 100644 src/codec_utils/RRC/MeasObjectId.c create mode 100644 src/codec_utils/RRC/MeasObjectId.h create mode 100644 src/codec_utils/RRC/MeasObjectNR.c create mode 100644 src/codec_utils/RRC/MeasObjectNR.h create mode 100644 src/codec_utils/RRC/MeasObjectToAddMod.c create mode 100644 src/codec_utils/RRC/MeasObjectToAddMod.h create mode 100644 src/codec_utils/RRC/MeasObjectToAddModList.c create mode 100644 src/codec_utils/RRC/MeasObjectToAddModList.h create mode 100644 src/codec_utils/RRC/MeasObjectToRemoveList.c create mode 100644 src/codec_utils/RRC/MeasObjectToRemoveList.h create mode 100644 src/codec_utils/RRC/MeasQuantityResults.c create mode 100644 src/codec_utils/RRC/MeasQuantityResults.h create mode 100644 src/codec_utils/RRC/MeasQuantityResultsEUTRA.c create mode 100644 src/codec_utils/RRC/MeasQuantityResultsEUTRA.h create mode 100644 src/codec_utils/RRC/MeasReportQuantity.c create mode 100644 src/codec_utils/RRC/MeasReportQuantity.h create mode 100644 src/codec_utils/RRC/MeasResult2NR.c create mode 100644 src/codec_utils/RRC/MeasResult2NR.h create mode 100644 src/codec_utils/RRC/MeasResultCellListSFTD.c create mode 100644 src/codec_utils/RRC/MeasResultCellListSFTD.h create mode 100644 src/codec_utils/RRC/MeasResultCellSFTD.c create mode 100644 src/codec_utils/RRC/MeasResultCellSFTD.h create mode 100644 src/codec_utils/RRC/MeasResultEUTRA.c create mode 100644 src/codec_utils/RRC/MeasResultEUTRA.h create mode 100644 src/codec_utils/RRC/MeasResultList2NR.c create mode 100644 src/codec_utils/RRC/MeasResultList2NR.h create mode 100644 src/codec_utils/RRC/MeasResultListEUTRA.c create mode 100644 src/codec_utils/RRC/MeasResultListEUTRA.h create mode 100644 src/codec_utils/RRC/MeasResultListNR.c create mode 100644 src/codec_utils/RRC/MeasResultListNR.h create mode 100644 src/codec_utils/RRC/MeasResultNR.c create mode 100644 src/codec_utils/RRC/MeasResultNR.h create mode 100644 src/codec_utils/RRC/MeasResultSCG-Failure.c create mode 100644 src/codec_utils/RRC/MeasResultSCG-Failure.h create mode 100644 src/codec_utils/RRC/MeasResultServMO.c create mode 100644 src/codec_utils/RRC/MeasResultServMO.h create mode 100644 src/codec_utils/RRC/MeasResultServMOList.c create mode 100644 src/codec_utils/RRC/MeasResultServMOList.h create mode 100644 src/codec_utils/RRC/MeasResults.c create mode 100644 src/codec_utils/RRC/MeasResults.h create mode 100644 src/codec_utils/RRC/MeasTiming.c create mode 100644 src/codec_utils/RRC/MeasTiming.h create mode 100644 src/codec_utils/RRC/MeasTimingList.c create mode 100644 src/codec_utils/RRC/MeasTimingList.h create mode 100644 src/codec_utils/RRC/MeasTriggerQuantity.c create mode 100644 src/codec_utils/RRC/MeasTriggerQuantity.h create mode 100644 src/codec_utils/RRC/MeasTriggerQuantityEUTRA.c create mode 100644 src/codec_utils/RRC/MeasTriggerQuantityEUTRA.h create mode 100644 src/codec_utils/RRC/MeasTriggerQuantityOffset.c create mode 100644 src/codec_utils/RRC/MeasTriggerQuantityOffset.h create mode 100644 src/codec_utils/RRC/MeasurementReport-IEs.c create mode 100644 src/codec_utils/RRC/MeasurementReport-IEs.h create mode 100644 src/codec_utils/RRC/MeasurementReport.c create mode 100644 src/codec_utils/RRC/MeasurementReport.h create mode 100644 src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.c create mode 100644 src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.h create mode 100644 src/codec_utils/RRC/MeasurementTimingConfiguration.c create mode 100644 src/codec_utils/RRC/MeasurementTimingConfiguration.h create mode 100644 src/codec_utils/RRC/MobilityFromNRCommand-IEs.c create mode 100644 src/codec_utils/RRC/MobilityFromNRCommand-IEs.h create mode 100644 src/codec_utils/RRC/MobilityFromNRCommand.c create mode 100644 src/codec_utils/RRC/MobilityFromNRCommand.h create mode 100644 src/codec_utils/RRC/MobilityStateParameters.c create mode 100644 src/codec_utils/RRC/MobilityStateParameters.h create mode 100644 src/codec_utils/RRC/ModulationOrder.c create mode 100644 src/codec_utils/RRC/ModulationOrder.h create mode 100644 src/codec_utils/RRC/MultiBandInfoListEUTRA.c create mode 100644 src/codec_utils/RRC/MultiBandInfoListEUTRA.h create mode 100644 src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.c create mode 100644 src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.h create mode 100644 src/codec_utils/RRC/MultiFrequencyBandListNR.c create mode 100644 src/codec_utils/RRC/MultiFrequencyBandListNR.h create mode 100644 src/codec_utils/RRC/NAICS-Capability-Entry.c create mode 100644 src/codec_utils/RRC/NAICS-Capability-Entry.h create mode 100644 src/codec_utils/RRC/NG-5G-S-TMSI.c create mode 100644 src/codec_utils/RRC/NG-5G-S-TMSI.h create mode 100644 src/codec_utils/RRC/NR-FreqInfo.c create mode 100644 src/codec_utils/RRC/NR-FreqInfo.h create mode 100644 src/codec_utils/RRC/NR-MultiBandInfo.c create mode 100644 src/codec_utils/RRC/NR-MultiBandInfo.h create mode 100644 src/codec_utils/RRC/NR-NS-PmaxList.c create mode 100644 src/codec_utils/RRC/NR-NS-PmaxList.h create mode 100644 src/codec_utils/RRC/NR-NS-PmaxValue.c create mode 100644 src/codec_utils/RRC/NR-NS-PmaxValue.h create mode 100644 src/codec_utils/RRC/NR-RS-Type.c create mode 100644 src/codec_utils/RRC/NR-RS-Type.h rename src/codec_utils/{SYSINFO => RRC}/NULL.c (100%) rename src/codec_utils/{SYSINFO => RRC}/NULL.h (100%) create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-Resource.c create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-Resource.h create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceId.c create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceId.h create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.c create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.h create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.c create mode 100644 src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.h rename src/codec_utils/{SYSINFO => RRC}/NativeEnumerated.c (100%) rename src/codec_utils/{SYSINFO => RRC}/NativeEnumerated.h (100%) rename src/codec_utils/{SYSINFO => RRC}/NativeEnumerated_oer.c (100%) rename src/codec_utils/{SYSINFO => RRC}/NativeInteger.c (100%) rename src/codec_utils/{SYSINFO => RRC}/NativeInteger.h (100%) rename src/codec_utils/{SYSINFO => RRC}/NativeInteger_oer.c (100%) create mode 100644 src/codec_utils/RRC/NextHopChainingCount.c create mode 100644 src/codec_utils/RRC/NextHopChainingCount.h create mode 100644 src/codec_utils/RRC/OtherConfig.c create mode 100644 src/codec_utils/RRC/OtherConfig.h create mode 100644 src/codec_utils/RRC/OverheatingAssistance.c create mode 100644 src/codec_utils/RRC/OverheatingAssistance.h create mode 100644 src/codec_utils/RRC/P-Max.c create mode 100644 src/codec_utils/RRC/P-Max.h create mode 100644 src/codec_utils/RRC/P0-PUCCH-Id.c create mode 100644 src/codec_utils/RRC/P0-PUCCH-Id.h create mode 100644 src/codec_utils/RRC/P0-PUCCH.c create mode 100644 src/codec_utils/RRC/P0-PUCCH.h create mode 100644 src/codec_utils/RRC/P0-PUSCH-AlphaSet.c create mode 100644 src/codec_utils/RRC/P0-PUSCH-AlphaSet.h create mode 100644 src/codec_utils/RRC/P0-PUSCH-AlphaSetId.c create mode 100644 src/codec_utils/RRC/P0-PUSCH-AlphaSetId.h create mode 100644 src/codec_utils/RRC/PCCH-Config.c create mode 100644 src/codec_utils/RRC/PCCH-Config.h create mode 100644 src/codec_utils/RRC/PCCH-Message.c create mode 100644 src/codec_utils/RRC/PCCH-Message.h create mode 100644 src/codec_utils/RRC/PCCH-MessageType.c create mode 100644 src/codec_utils/RRC/PCCH-MessageType.h create mode 100644 src/codec_utils/RRC/PCI-List.c create mode 100644 src/codec_utils/RRC/PCI-List.h create mode 100644 src/codec_utils/RRC/PCI-Range.c create mode 100644 src/codec_utils/RRC/PCI-Range.h create mode 100644 src/codec_utils/RRC/PCI-RangeElement.c create mode 100644 src/codec_utils/RRC/PCI-RangeElement.h create mode 100644 src/codec_utils/RRC/PCI-RangeIndex.c create mode 100644 src/codec_utils/RRC/PCI-RangeIndex.h create mode 100644 src/codec_utils/RRC/PCI-RangeIndexList.c create mode 100644 src/codec_utils/RRC/PCI-RangeIndexList.h create mode 100644 src/codec_utils/RRC/PDCCH-Config.c create mode 100644 src/codec_utils/RRC/PDCCH-Config.h create mode 100644 src/codec_utils/RRC/PDCCH-ConfigCommon.c create mode 100644 src/codec_utils/RRC/PDCCH-ConfigCommon.h create mode 100644 src/codec_utils/RRC/PDCCH-ConfigSIB1.c create mode 100644 src/codec_utils/RRC/PDCCH-ConfigSIB1.h create mode 100644 src/codec_utils/RRC/PDCCH-ServingCellConfig.c create mode 100644 src/codec_utils/RRC/PDCCH-ServingCellConfig.h create mode 100644 src/codec_utils/RRC/PDCP-Config.c create mode 100644 src/codec_utils/RRC/PDCP-Config.h create mode 100644 src/codec_utils/RRC/PDCP-Parameters.c create mode 100644 src/codec_utils/RRC/PDCP-Parameters.h create mode 100644 src/codec_utils/RRC/PDCP-ParametersMRDC.c create mode 100644 src/codec_utils/RRC/PDCP-ParametersMRDC.h create mode 100644 src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.c create mode 100644 src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.h create mode 100644 src/codec_utils/RRC/PDSCH-Config.c create mode 100644 src/codec_utils/RRC/PDSCH-Config.h create mode 100644 src/codec_utils/RRC/PDSCH-ConfigCommon.c create mode 100644 src/codec_utils/RRC/PDSCH-ConfigCommon.h create mode 100644 src/codec_utils/RRC/PDSCH-ServingCellConfig.c create mode 100644 src/codec_utils/RRC/PDSCH-ServingCellConfig.h create mode 100644 src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.c create mode 100644 src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.h create mode 100644 src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.c create mode 100644 src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.h create mode 100644 src/codec_utils/RRC/PDU-SessionID.c create mode 100644 src/codec_utils/RRC/PDU-SessionID.h create mode 100644 src/codec_utils/RRC/PHR-Config.c create mode 100644 src/codec_utils/RRC/PHR-Config.h create mode 100644 src/codec_utils/RRC/PLMN-IdentitY.c create mode 100644 src/codec_utils/RRC/PLMN-IdentitY.h create mode 100644 src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.c create mode 100644 src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.h create mode 100644 src/codec_utils/RRC/PLMN-IdentityInfo.c create mode 100644 src/codec_utils/RRC/PLMN-IdentityInfo.h create mode 100644 src/codec_utils/RRC/PLMN-IdentityInfoList.c create mode 100644 src/codec_utils/RRC/PLMN-IdentityInfoList.h create mode 100644 src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.c create mode 100644 src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.h create mode 100644 src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.c create mode 100644 src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.h create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaCell.c create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaCell.h create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaCellList.c create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaCellList.h create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaConfig.c create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaConfig.h create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaConfigList.c create mode 100644 src/codec_utils/RRC/PLMN-RAN-AreaConfigList.h create mode 100644 src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.c create mode 100644 src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.h create mode 100644 src/codec_utils/RRC/PRB-Id.c create mode 100644 src/codec_utils/RRC/PRB-Id.h create mode 100644 src/codec_utils/RRC/PTRS-DensityRecommendationDL.c create mode 100644 src/codec_utils/RRC/PTRS-DensityRecommendationDL.h create mode 100644 src/codec_utils/RRC/PTRS-DensityRecommendationUL.c create mode 100644 src/codec_utils/RRC/PTRS-DensityRecommendationUL.h create mode 100644 src/codec_utils/RRC/PTRS-DownlinkConfig.c create mode 100644 src/codec_utils/RRC/PTRS-DownlinkConfig.h create mode 100644 src/codec_utils/RRC/PTRS-UplinkConfig.c create mode 100644 src/codec_utils/RRC/PTRS-UplinkConfig.h create mode 100644 src/codec_utils/RRC/PUCCH-CSI-Resource.c create mode 100644 src/codec_utils/RRC/PUCCH-CSI-Resource.h create mode 100644 src/codec_utils/RRC/PUCCH-Config.c create mode 100644 src/codec_utils/RRC/PUCCH-Config.h create mode 100644 src/codec_utils/RRC/PUCCH-ConfigCommon.c create mode 100644 src/codec_utils/RRC/PUCCH-ConfigCommon.h create mode 100644 src/codec_utils/RRC/PUCCH-FormatConfig.c create mode 100644 src/codec_utils/RRC/PUCCH-FormatConfig.h create mode 100644 src/codec_utils/RRC/PUCCH-MaxCodeRate.c create mode 100644 src/codec_utils/RRC/PUCCH-MaxCodeRate.h create mode 100644 src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.c create mode 100644 src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.h create mode 100644 src/codec_utils/RRC/PUCCH-PathlossReferenceRS.c create mode 100644 src/codec_utils/RRC/PUCCH-PathlossReferenceRS.h create mode 100644 src/codec_utils/RRC/PUCCH-PowerControl.c create mode 100644 src/codec_utils/RRC/PUCCH-PowerControl.h create mode 100644 src/codec_utils/RRC/PUCCH-Resource.c create mode 100644 src/codec_utils/RRC/PUCCH-Resource.h create mode 100644 src/codec_utils/RRC/PUCCH-ResourceId.c create mode 100644 src/codec_utils/RRC/PUCCH-ResourceId.h create mode 100644 src/codec_utils/RRC/PUCCH-ResourceSet.c create mode 100644 src/codec_utils/RRC/PUCCH-ResourceSet.h create mode 100644 src/codec_utils/RRC/PUCCH-ResourceSetId.c create mode 100644 src/codec_utils/RRC/PUCCH-ResourceSetId.h create mode 100644 src/codec_utils/RRC/PUCCH-SpatialRelationInfo.c create mode 100644 src/codec_utils/RRC/PUCCH-SpatialRelationInfo.h create mode 100644 src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.c create mode 100644 src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.h create mode 100644 src/codec_utils/RRC/PUCCH-TPC-CommandConfig.c create mode 100644 src/codec_utils/RRC/PUCCH-TPC-CommandConfig.h create mode 100644 src/codec_utils/RRC/PUCCH-format0.c create mode 100644 src/codec_utils/RRC/PUCCH-format0.h create mode 100644 src/codec_utils/RRC/PUCCH-format1.c create mode 100644 src/codec_utils/RRC/PUCCH-format1.h create mode 100644 src/codec_utils/RRC/PUCCH-format2.c create mode 100644 src/codec_utils/RRC/PUCCH-format2.h create mode 100644 src/codec_utils/RRC/PUCCH-format3.c create mode 100644 src/codec_utils/RRC/PUCCH-format3.h create mode 100644 src/codec_utils/RRC/PUCCH-format4.c create mode 100644 src/codec_utils/RRC/PUCCH-format4.h create mode 100644 src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.c create mode 100644 src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.h create mode 100644 src/codec_utils/RRC/PUSCH-Config.c create mode 100644 src/codec_utils/RRC/PUSCH-Config.h create mode 100644 src/codec_utils/RRC/PUSCH-ConfigCommon.c create mode 100644 src/codec_utils/RRC/PUSCH-ConfigCommon.h create mode 100644 src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.c create mode 100644 src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.h create mode 100644 src/codec_utils/RRC/PUSCH-PathlossReferenceRS.c create mode 100644 src/codec_utils/RRC/PUSCH-PathlossReferenceRS.h create mode 100644 src/codec_utils/RRC/PUSCH-PowerControl.c create mode 100644 src/codec_utils/RRC/PUSCH-PowerControl.h create mode 100644 src/codec_utils/RRC/PUSCH-ServingCellConfig.c create mode 100644 src/codec_utils/RRC/PUSCH-ServingCellConfig.h create mode 100644 src/codec_utils/RRC/PUSCH-TPC-CommandConfig.c create mode 100644 src/codec_utils/RRC/PUSCH-TPC-CommandConfig.h create mode 100644 src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.c create mode 100644 src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.h create mode 100644 src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.c create mode 100644 src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.h create mode 100644 src/codec_utils/RRC/Paging.c create mode 100644 src/codec_utils/RRC/Paging.h create mode 100644 src/codec_utils/RRC/PagingCycle.c create mode 100644 src/codec_utils/RRC/PagingCycle.h create mode 100644 src/codec_utils/RRC/PagingRecord.c create mode 100644 src/codec_utils/RRC/PagingRecord.h create mode 100644 src/codec_utils/RRC/PagingRecordList.c create mode 100644 src/codec_utils/RRC/PagingRecordList.h create mode 100644 src/codec_utils/RRC/PagingUE-Identity.c create mode 100644 src/codec_utils/RRC/PagingUE-Identity.h create mode 100644 src/codec_utils/RRC/PeriodicRNAU-TimerValue.c create mode 100644 src/codec_utils/RRC/PeriodicRNAU-TimerValue.h create mode 100644 src/codec_utils/RRC/PeriodicalReportConfig.c create mode 100644 src/codec_utils/RRC/PeriodicalReportConfig.h create mode 100644 src/codec_utils/RRC/PeriodicalReportConfigInterRAT.c create mode 100644 src/codec_utils/RRC/PeriodicalReportConfigInterRAT.h create mode 100644 src/codec_utils/RRC/Phy-Parameters.c create mode 100644 src/codec_utils/RRC/Phy-Parameters.h create mode 100644 src/codec_utils/RRC/Phy-ParametersCommon.c create mode 100644 src/codec_utils/RRC/Phy-ParametersCommon.h create mode 100644 src/codec_utils/RRC/Phy-ParametersFR1.c create mode 100644 src/codec_utils/RRC/Phy-ParametersFR1.h create mode 100644 src/codec_utils/RRC/Phy-ParametersFR2.c create mode 100644 src/codec_utils/RRC/Phy-ParametersFR2.h create mode 100644 src/codec_utils/RRC/Phy-ParametersFRX-Diff.c create mode 100644 src/codec_utils/RRC/Phy-ParametersFRX-Diff.h create mode 100644 src/codec_utils/RRC/Phy-ParametersMRDC.c create mode 100644 src/codec_utils/RRC/Phy-ParametersMRDC.h create mode 100644 src/codec_utils/RRC/Phy-ParametersXDD-Diff.c create mode 100644 src/codec_utils/RRC/Phy-ParametersXDD-Diff.h create mode 100644 src/codec_utils/RRC/PhysCellId.c create mode 100644 src/codec_utils/RRC/PhysCellId.h create mode 100644 src/codec_utils/RRC/PhysicalCellGroupConfig.c create mode 100644 src/codec_utils/RRC/PhysicalCellGroupConfig.h create mode 100644 src/codec_utils/RRC/PollByte.c create mode 100644 src/codec_utils/RRC/PollByte.h create mode 100644 src/codec_utils/RRC/PollPDU.c create mode 100644 src/codec_utils/RRC/PollPDU.h create mode 100644 src/codec_utils/RRC/PortIndex2.c create mode 100644 src/codec_utils/RRC/PortIndex2.h create mode 100644 src/codec_utils/RRC/PortIndex4.c create mode 100644 src/codec_utils/RRC/PortIndex4.h create mode 100644 src/codec_utils/RRC/PortIndex8.c create mode 100644 src/codec_utils/RRC/PortIndex8.h create mode 100644 src/codec_utils/RRC/PortIndexFor8Ranks.c create mode 100644 src/codec_utils/RRC/PortIndexFor8Ranks.h create mode 100644 src/codec_utils/RRC/Q-OffsetRange.c create mode 100644 src/codec_utils/RRC/Q-OffsetRange.h create mode 100644 src/codec_utils/RRC/Q-OffsetRangeList.c create mode 100644 src/codec_utils/RRC/Q-OffsetRangeList.h create mode 100644 src/codec_utils/RRC/Q-QualMin.c create mode 100644 src/codec_utils/RRC/Q-QualMin.h create mode 100644 src/codec_utils/RRC/Q-RxLevMin.c create mode 100644 src/codec_utils/RRC/Q-RxLevMin.h create mode 100644 src/codec_utils/RRC/QCL-Info.c create mode 100644 src/codec_utils/RRC/QCL-Info.h create mode 100644 src/codec_utils/RRC/QFI.c create mode 100644 src/codec_utils/RRC/QFI.h create mode 100644 src/codec_utils/RRC/QuantityConfig.c create mode 100644 src/codec_utils/RRC/QuantityConfig.h create mode 100644 src/codec_utils/RRC/QuantityConfigNR.c create mode 100644 src/codec_utils/RRC/QuantityConfigNR.h create mode 100644 src/codec_utils/RRC/QuantityConfigRS.c create mode 100644 src/codec_utils/RRC/QuantityConfigRS.h create mode 100644 src/codec_utils/RRC/RA-Prioritization.c create mode 100644 src/codec_utils/RRC/RA-Prioritization.h create mode 100644 src/codec_utils/RRC/RACH-ConfigCommon.c create mode 100644 src/codec_utils/RRC/RACH-ConfigCommon.h create mode 100644 src/codec_utils/RRC/RACH-ConfigDedicated.c create mode 100644 src/codec_utils/RRC/RACH-ConfigDedicated.h create mode 100644 src/codec_utils/RRC/RACH-ConfigGeneric.c create mode 100644 src/codec_utils/RRC/RACH-ConfigGeneric.h create mode 100644 src/codec_utils/RRC/RAN-AreaCode.c create mode 100644 src/codec_utils/RRC/RAN-AreaCode.h create mode 100644 src/codec_utils/RRC/RAN-AreaConfig.c create mode 100644 src/codec_utils/RRC/RAN-AreaConfig.h create mode 100644 src/codec_utils/RRC/RAN-NotificationAreaInfo.c create mode 100644 src/codec_utils/RRC/RAN-NotificationAreaInfo.h create mode 100644 src/codec_utils/RRC/RAT-Type.c create mode 100644 src/codec_utils/RRC/RAT-Type.h create mode 100644 src/codec_utils/RRC/RF-Parameters.c create mode 100644 src/codec_utils/RRC/RF-Parameters.h create mode 100644 src/codec_utils/RRC/RF-ParametersMRDC.c create mode 100644 src/codec_utils/RRC/RF-ParametersMRDC.h create mode 100644 src/codec_utils/RRC/RLC-BearerConfig.c create mode 100644 src/codec_utils/RRC/RLC-BearerConfig.h create mode 100644 src/codec_utils/RRC/RLC-Config.c create mode 100644 src/codec_utils/RRC/RLC-Config.h create mode 100644 src/codec_utils/RRC/RLC-Parameters.c create mode 100644 src/codec_utils/RRC/RLC-Parameters.h create mode 100644 src/codec_utils/RRC/RLF-TimersAndConstants.c create mode 100644 src/codec_utils/RRC/RLF-TimersAndConstants.h create mode 100644 src/codec_utils/RRC/RNTI-Value.c create mode 100644 src/codec_utils/RRC/RNTI-Value.h create mode 100644 src/codec_utils/RRC/RRC-TransactionIdentifier.c create mode 100644 src/codec_utils/RRC/RRC-TransactionIdentifier.h create mode 100644 src/codec_utils/RRC/RRCReconfiguration-IEs.c create mode 100644 src/codec_utils/RRC/RRCReconfiguration-IEs.h create mode 100644 src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.c create mode 100644 src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.h create mode 100644 src/codec_utils/RRC/RRCReconfiguration.c create mode 100644 src/codec_utils/RRC/RRCReconfiguration.h create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete-IEs.c create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete-IEs.h create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.c create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.h create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete.c create mode 100644 src/codec_utils/RRC/RRCReconfigurationComplete.h create mode 100644 src/codec_utils/RRC/RRCReestablishment-IEs.c create mode 100644 src/codec_utils/RRC/RRCReestablishment-IEs.h create mode 100644 src/codec_utils/RRC/RRCReestablishment.c create mode 100644 src/codec_utils/RRC/RRCReestablishment.h create mode 100644 src/codec_utils/RRC/RRCReestablishmentComplete-IEs.c create mode 100644 src/codec_utils/RRC/RRCReestablishmentComplete-IEs.h create mode 100644 src/codec_utils/RRC/RRCReestablishmentComplete.c create mode 100644 src/codec_utils/RRC/RRCReestablishmentComplete.h create mode 100644 src/codec_utils/RRC/RRCReestablishmentRequest-IEs.c create mode 100644 src/codec_utils/RRC/RRCReestablishmentRequest-IEs.h create mode 100644 src/codec_utils/RRC/RRCReestablishmentRequest.c create mode 100644 src/codec_utils/RRC/RRCReestablishmentRequest.h create mode 100644 src/codec_utils/RRC/RRCReject-IEs.c create mode 100644 src/codec_utils/RRC/RRCReject-IEs.h create mode 100644 src/codec_utils/RRC/RRCReject.c create mode 100644 src/codec_utils/RRC/RRCReject.h create mode 100644 src/codec_utils/RRC/RRCRelease-IEs.c create mode 100644 src/codec_utils/RRC/RRCRelease-IEs.h create mode 100644 src/codec_utils/RRC/RRCRelease-v1540-IEs.c create mode 100644 src/codec_utils/RRC/RRCRelease-v1540-IEs.h create mode 100644 src/codec_utils/RRC/RRCRelease.c create mode 100644 src/codec_utils/RRC/RRCRelease.h create mode 100644 src/codec_utils/RRC/RRCResume-IEs.c create mode 100644 src/codec_utils/RRC/RRCResume-IEs.h create mode 100644 src/codec_utils/RRC/RRCResume.c create mode 100644 src/codec_utils/RRC/RRCResume.h create mode 100644 src/codec_utils/RRC/RRCResumeComplete-IEs.c create mode 100644 src/codec_utils/RRC/RRCResumeComplete-IEs.h create mode 100644 src/codec_utils/RRC/RRCResumeComplete.c create mode 100644 src/codec_utils/RRC/RRCResumeComplete.h create mode 100644 src/codec_utils/RRC/RRCResumeRequest-IEs.c create mode 100644 src/codec_utils/RRC/RRCResumeRequest-IEs.h create mode 100644 src/codec_utils/RRC/RRCResumeRequest.c create mode 100644 src/codec_utils/RRC/RRCResumeRequest.h create mode 100644 src/codec_utils/RRC/RRCResumeRequest1-IEs.c create mode 100644 src/codec_utils/RRC/RRCResumeRequest1-IEs.h create mode 100644 src/codec_utils/RRC/RRCResumeRequest1.c create mode 100644 src/codec_utils/RRC/RRCResumeRequest1.h create mode 100644 src/codec_utils/RRC/RRCSetup-IEs.c create mode 100644 src/codec_utils/RRC/RRCSetup-IEs.h create mode 100644 src/codec_utils/RRC/RRCSetup.c create mode 100644 src/codec_utils/RRC/RRCSetup.h create mode 100644 src/codec_utils/RRC/RRCSetupComplete-IEs.c create mode 100644 src/codec_utils/RRC/RRCSetupComplete-IEs.h create mode 100644 src/codec_utils/RRC/RRCSetupComplete.c create mode 100644 src/codec_utils/RRC/RRCSetupComplete.h create mode 100644 src/codec_utils/RRC/RRCSetupRequest-IEs.c create mode 100644 src/codec_utils/RRC/RRCSetupRequest-IEs.h create mode 100644 src/codec_utils/RRC/RRCSetupRequest.c create mode 100644 src/codec_utils/RRC/RRCSetupRequest.h create mode 100644 src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.c create mode 100644 src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.h create mode 100644 src/codec_utils/RRC/RRCSystemInfoRequest.c create mode 100644 src/codec_utils/RRC/RRCSystemInfoRequest.h create mode 100644 src/codec_utils/RRC/RRM-Config.c create mode 100644 src/codec_utils/RRC/RRM-Config.h create mode 100644 src/codec_utils/RRC/RSRP-Range.c create mode 100644 src/codec_utils/RRC/RSRP-Range.h create mode 100644 src/codec_utils/RRC/RSRP-RangeEUTRA.c create mode 100644 src/codec_utils/RRC/RSRP-RangeEUTRA.h create mode 100644 src/codec_utils/RRC/RSRQ-Range.c create mode 100644 src/codec_utils/RRC/RSRQ-Range.h create mode 100644 src/codec_utils/RRC/RSRQ-RangeEUTRA.c create mode 100644 src/codec_utils/RRC/RSRQ-RangeEUTRA.h create mode 100644 src/codec_utils/RRC/RadioBearerConfig.c create mode 100644 src/codec_utils/RRC/RadioBearerConfig.h create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringConfig.c create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringConfig.h create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringRS-Id.c create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringRS-Id.h create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringRS.c create mode 100644 src/codec_utils/RRC/RadioLinkMonitoringRS.h create mode 100644 src/codec_utils/RRC/RangeToBestCell.c create mode 100644 src/codec_utils/RRC/RangeToBestCell.h create mode 100644 src/codec_utils/RRC/RateMatchPattern.c create mode 100644 src/codec_utils/RRC/RateMatchPattern.h create mode 100644 src/codec_utils/RRC/RateMatchPatternGroup.c create mode 100644 src/codec_utils/RRC/RateMatchPatternGroup.h create mode 100644 src/codec_utils/RRC/RateMatchPatternId.c create mode 100644 src/codec_utils/RRC/RateMatchPatternId.h create mode 100644 src/codec_utils/RRC/RateMatchPatternLTE-CRS.c create mode 100644 src/codec_utils/RRC/RateMatchPatternLTE-CRS.h create mode 100644 src/codec_utils/RRC/ReconfigurationWithSync.c create mode 100644 src/codec_utils/RRC/ReconfigurationWithSync.h create mode 100644 src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.c create mode 100644 src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.h create mode 100644 src/codec_utils/RRC/RedirectedCarrierInfo.c create mode 100644 src/codec_utils/RRC/RedirectedCarrierInfo.h create mode 100644 src/codec_utils/RRC/ReducedAggregatedBandwidth.c create mode 100644 src/codec_utils/RRC/ReducedAggregatedBandwidth.h create mode 100644 src/codec_utils/RRC/ReestabNCellInfo.c create mode 100644 src/codec_utils/RRC/ReestabNCellInfo.h create mode 100644 src/codec_utils/RRC/ReestabNCellInfoList.c create mode 100644 src/codec_utils/RRC/ReestabNCellInfoList.h create mode 100644 src/codec_utils/RRC/ReestabUE-Identity.c create mode 100644 src/codec_utils/RRC/ReestabUE-Identity.h create mode 100644 src/codec_utils/RRC/ReestablishmentCause.c create mode 100644 src/codec_utils/RRC/ReestablishmentCause.h create mode 100644 src/codec_utils/RRC/ReestablishmentInfo.c create mode 100644 src/codec_utils/RRC/ReestablishmentInfo.h create mode 100644 src/codec_utils/RRC/ReferenceSignalConfig.c create mode 100644 src/codec_utils/RRC/ReferenceSignalConfig.h create mode 100644 src/codec_utils/RRC/RegisteredAMF.c create mode 100644 src/codec_utils/RRC/RegisteredAMF.h create mode 100644 src/codec_utils/RRC/RejectWaitTime.c create mode 100644 src/codec_utils/RRC/RejectWaitTime.h create mode 100644 src/codec_utils/RRC/ReportCGI-EUTRA.c create mode 100644 src/codec_utils/RRC/ReportCGI-EUTRA.h create mode 100644 src/codec_utils/RRC/ReportCGI.c create mode 100644 src/codec_utils/RRC/ReportCGI.h create mode 100644 src/codec_utils/RRC/ReportConfigId.c create mode 100644 src/codec_utils/RRC/ReportConfigId.h create mode 100644 src/codec_utils/RRC/ReportConfigInterRAT.c create mode 100644 src/codec_utils/RRC/ReportConfigInterRAT.h create mode 100644 src/codec_utils/RRC/ReportConfigNR.c create mode 100644 src/codec_utils/RRC/ReportConfigNR.h create mode 100644 src/codec_utils/RRC/ReportConfigToAddMod.c create mode 100644 src/codec_utils/RRC/ReportConfigToAddMod.h create mode 100644 src/codec_utils/RRC/ReportConfigToAddModList.c create mode 100644 src/codec_utils/RRC/ReportConfigToAddModList.h create mode 100644 src/codec_utils/RRC/ReportConfigToRemoveList.c create mode 100644 src/codec_utils/RRC/ReportConfigToRemoveList.h create mode 100644 src/codec_utils/RRC/ReportInterval.c create mode 100644 src/codec_utils/RRC/ReportInterval.h create mode 100644 src/codec_utils/RRC/ReselectionThreshold.c create mode 100644 src/codec_utils/RRC/ReselectionThreshold.h create mode 100644 src/codec_utils/RRC/ReselectionThresholdQ.c create mode 100644 src/codec_utils/RRC/ReselectionThresholdQ.h create mode 100644 src/codec_utils/RRC/ResultsPerCSI-RS-Index.c create mode 100644 src/codec_utils/RRC/ResultsPerCSI-RS-Index.h create mode 100644 src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.c create mode 100644 src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.h create mode 100644 src/codec_utils/RRC/ResultsPerSSB-Index.c create mode 100644 src/codec_utils/RRC/ResultsPerSSB-Index.h create mode 100644 src/codec_utils/RRC/ResultsPerSSB-IndexList.c create mode 100644 src/codec_utils/RRC/ResultsPerSSB-IndexList.h create mode 100644 src/codec_utils/RRC/ResumeCause.c create mode 100644 src/codec_utils/RRC/ResumeCause.h create mode 100644 src/codec_utils/RRC/S-NSSAI.c create mode 100644 src/codec_utils/RRC/S-NSSAI.h create mode 100644 src/codec_utils/RRC/SCS-SpecificCarrier.c create mode 100644 src/codec_utils/RRC/SCS-SpecificCarrier.h create mode 100644 src/codec_utils/RRC/SCellConfig.c create mode 100644 src/codec_utils/RRC/SCellConfig.h create mode 100644 src/codec_utils/RRC/SCellIndex.c create mode 100644 src/codec_utils/RRC/SCellIndex.h create mode 100644 src/codec_utils/RRC/SDAP-Config.c create mode 100644 src/codec_utils/RRC/SDAP-Config.h create mode 100644 src/codec_utils/RRC/SI-RequestConfig.c create mode 100644 src/codec_utils/RRC/SI-RequestConfig.h create mode 100644 src/codec_utils/RRC/SI-RequestResources.c create mode 100644 src/codec_utils/RRC/SI-RequestResources.h create mode 100644 src/codec_utils/RRC/SI-SchedulingInfo.c create mode 100644 src/codec_utils/RRC/SI-SchedulingInfo.h create mode 100644 src/codec_utils/RRC/SIB-Mapping.c create mode 100644 src/codec_utils/RRC/SIB-Mapping.h create mode 100644 src/codec_utils/RRC/SIB-TypeInfo.c create mode 100644 src/codec_utils/RRC/SIB-TypeInfo.h create mode 100644 src/codec_utils/RRC/SIB1.c create mode 100644 src/codec_utils/RRC/SIB1.h create mode 100644 src/codec_utils/RRC/SIB2.c create mode 100644 src/codec_utils/RRC/SIB2.h create mode 100644 src/codec_utils/RRC/SIB3.c create mode 100644 src/codec_utils/RRC/SIB3.h create mode 100644 src/codec_utils/RRC/SIB4.c create mode 100644 src/codec_utils/RRC/SIB4.h create mode 100644 src/codec_utils/RRC/SIB5.c create mode 100644 src/codec_utils/RRC/SIB5.h create mode 100644 src/codec_utils/RRC/SIB6.c create mode 100644 src/codec_utils/RRC/SIB6.h create mode 100644 src/codec_utils/RRC/SIB7.c create mode 100644 src/codec_utils/RRC/SIB7.h create mode 100644 src/codec_utils/RRC/SIB8.c create mode 100644 src/codec_utils/RRC/SIB8.h create mode 100644 src/codec_utils/RRC/SIB9.c create mode 100644 src/codec_utils/RRC/SIB9.h create mode 100644 src/codec_utils/RRC/SINR-Range.c create mode 100644 src/codec_utils/RRC/SINR-Range.h create mode 100644 src/codec_utils/RRC/SINR-RangeEUTRA.c create mode 100644 src/codec_utils/RRC/SINR-RangeEUTRA.h create mode 100644 src/codec_utils/RRC/SN-FieldLengthAM.c create mode 100644 src/codec_utils/RRC/SN-FieldLengthAM.h create mode 100644 src/codec_utils/RRC/SN-FieldLengthUM.c create mode 100644 src/codec_utils/RRC/SN-FieldLengthUM.h create mode 100644 src/codec_utils/RRC/SPS-Config.c create mode 100644 src/codec_utils/RRC/SPS-Config.h create mode 100644 src/codec_utils/RRC/SRB-Identity.c create mode 100644 src/codec_utils/RRC/SRB-Identity.h create mode 100644 src/codec_utils/RRC/SRB-ToAddMod.c create mode 100644 src/codec_utils/RRC/SRB-ToAddMod.h create mode 100644 src/codec_utils/RRC/SRB-ToAddModList.c create mode 100644 src/codec_utils/RRC/SRB-ToAddModList.h create mode 100644 src/codec_utils/RRC/SRI-PUSCH-PowerControl.c create mode 100644 src/codec_utils/RRC/SRI-PUSCH-PowerControl.h create mode 100644 src/codec_utils/RRC/SRI-PUSCH-PowerControlId.c create mode 100644 src/codec_utils/RRC/SRI-PUSCH-PowerControlId.h create mode 100644 src/codec_utils/RRC/SRS-CC-SetIndex.c create mode 100644 src/codec_utils/RRC/SRS-CC-SetIndex.h create mode 100644 src/codec_utils/RRC/SRS-CarrierSwitching.c create mode 100644 src/codec_utils/RRC/SRS-CarrierSwitching.h create mode 100644 src/codec_utils/RRC/SRS-Config.c create mode 100644 src/codec_utils/RRC/SRS-Config.h create mode 100644 src/codec_utils/RRC/SRS-PeriodicityAndOffset.c create mode 100644 src/codec_utils/RRC/SRS-PeriodicityAndOffset.h create mode 100644 src/codec_utils/RRC/SRS-Resource.c create mode 100644 src/codec_utils/RRC/SRS-Resource.h create mode 100644 src/codec_utils/RRC/SRS-ResourceId.c create mode 100644 src/codec_utils/RRC/SRS-ResourceId.h create mode 100644 src/codec_utils/RRC/SRS-ResourceSet.c create mode 100644 src/codec_utils/RRC/SRS-ResourceSet.h create mode 100644 src/codec_utils/RRC/SRS-ResourceSetId.c create mode 100644 src/codec_utils/RRC/SRS-ResourceSetId.h create mode 100644 src/codec_utils/RRC/SRS-Resources.c create mode 100644 src/codec_utils/RRC/SRS-Resources.h create mode 100644 src/codec_utils/RRC/SRS-SpatialRelationInfo.c create mode 100644 src/codec_utils/RRC/SRS-SpatialRelationInfo.h create mode 100644 src/codec_utils/RRC/SRS-TPC-CommandConfig.c create mode 100644 src/codec_utils/RRC/SRS-TPC-CommandConfig.h create mode 100644 src/codec_utils/RRC/SRS-TPC-PDCCH-Config.c create mode 100644 src/codec_utils/RRC/SRS-TPC-PDCCH-Config.h create mode 100644 src/codec_utils/RRC/SRS-TxSwitch.c create mode 100644 src/codec_utils/RRC/SRS-TxSwitch.h create mode 100644 src/codec_utils/RRC/SS-RSSI-Measurement.c create mode 100644 src/codec_utils/RRC/SS-RSSI-Measurement.h create mode 100644 src/codec_utils/RRC/SSB-ConfigMobility.c create mode 100644 src/codec_utils/RRC/SSB-ConfigMobility.h create mode 100644 src/codec_utils/RRC/SSB-Index.c create mode 100644 src/codec_utils/RRC/SSB-Index.h create mode 100644 src/codec_utils/RRC/SSB-MTC.c create mode 100644 src/codec_utils/RRC/SSB-MTC.h create mode 100644 src/codec_utils/RRC/SSB-MTC2.c create mode 100644 src/codec_utils/RRC/SSB-MTC2.h create mode 100644 src/codec_utils/RRC/SSB-ToMeasure.c create mode 100644 src/codec_utils/RRC/SSB-ToMeasure.h create mode 100644 src/codec_utils/RRC/SchedulingInfo.c create mode 100644 src/codec_utils/RRC/SchedulingInfo.h create mode 100644 src/codec_utils/RRC/SchedulingRequestConfig.c create mode 100644 src/codec_utils/RRC/SchedulingRequestConfig.h create mode 100644 src/codec_utils/RRC/SchedulingRequestId.c create mode 100644 src/codec_utils/RRC/SchedulingRequestId.h create mode 100644 src/codec_utils/RRC/SchedulingRequestResourceConfig.c create mode 100644 src/codec_utils/RRC/SchedulingRequestResourceConfig.h create mode 100644 src/codec_utils/RRC/SchedulingRequestResourceId.c create mode 100644 src/codec_utils/RRC/SchedulingRequestResourceId.h create mode 100644 src/codec_utils/RRC/SchedulingRequestToAddMod.c create mode 100644 src/codec_utils/RRC/SchedulingRequestToAddMod.h create mode 100644 src/codec_utils/RRC/ScramblingId.c create mode 100644 src/codec_utils/RRC/ScramblingId.h create mode 100644 src/codec_utils/RRC/SearchSpace.c create mode 100644 src/codec_utils/RRC/SearchSpace.h create mode 100644 src/codec_utils/RRC/SearchSpaceId.c create mode 100644 src/codec_utils/RRC/SearchSpaceId.h create mode 100644 src/codec_utils/RRC/SearchSpaceZero.c create mode 100644 src/codec_utils/RRC/SearchSpaceZero.h create mode 100644 src/codec_utils/RRC/SecurityAlgorithmConfig.c create mode 100644 src/codec_utils/RRC/SecurityAlgorithmConfig.h create mode 100644 src/codec_utils/RRC/SecurityConfig.c create mode 100644 src/codec_utils/RRC/SecurityConfig.h create mode 100644 src/codec_utils/RRC/SecurityConfigSMC.c create mode 100644 src/codec_utils/RRC/SecurityConfigSMC.h create mode 100644 src/codec_utils/RRC/SecurityModeCommand-IEs.c create mode 100644 src/codec_utils/RRC/SecurityModeCommand-IEs.h create mode 100644 src/codec_utils/RRC/SecurityModeCommand.c create mode 100644 src/codec_utils/RRC/SecurityModeCommand.h create mode 100644 src/codec_utils/RRC/SecurityModeComplete-IEs.c create mode 100644 src/codec_utils/RRC/SecurityModeComplete-IEs.h create mode 100644 src/codec_utils/RRC/SecurityModeComplete.c create mode 100644 src/codec_utils/RRC/SecurityModeComplete.h create mode 100644 src/codec_utils/RRC/SecurityModeFailure-IEs.c create mode 100644 src/codec_utils/RRC/SecurityModeFailure-IEs.h create mode 100644 src/codec_utils/RRC/SecurityModeFailure.c create mode 100644 src/codec_utils/RRC/SecurityModeFailure.h create mode 100644 src/codec_utils/RRC/ServCellIndex.c create mode 100644 src/codec_utils/RRC/ServCellIndex.h create mode 100644 src/codec_utils/RRC/ServingCellConfig.c create mode 100644 src/codec_utils/RRC/ServingCellConfig.h create mode 100644 src/codec_utils/RRC/ServingCellConfigCommon.c create mode 100644 src/codec_utils/RRC/ServingCellConfigCommon.h create mode 100644 src/codec_utils/RRC/ServingCellConfigCommonSIB.c create mode 100644 src/codec_utils/RRC/ServingCellConfigCommonSIB.h create mode 100644 src/codec_utils/RRC/ShortI-RNTI-Value.c create mode 100644 src/codec_utils/RRC/ShortI-RNTI-Value.h create mode 100644 src/codec_utils/RRC/ShortMAC-I.c create mode 100644 src/codec_utils/RRC/ShortMAC-I.h create mode 100644 src/codec_utils/RRC/SlotFormatCombination.c create mode 100644 src/codec_utils/RRC/SlotFormatCombination.h create mode 100644 src/codec_utils/RRC/SlotFormatCombinationId.c create mode 100644 src/codec_utils/RRC/SlotFormatCombinationId.h create mode 100644 src/codec_utils/RRC/SlotFormatCombinationsPerCell.c create mode 100644 src/codec_utils/RRC/SlotFormatCombinationsPerCell.h create mode 100644 src/codec_utils/RRC/SlotFormatIndicator.c create mode 100644 src/codec_utils/RRC/SlotFormatIndicator.h create mode 100644 src/codec_utils/RRC/SpCellConfig.c create mode 100644 src/codec_utils/RRC/SpCellConfig.h create mode 100644 src/codec_utils/RRC/SpeedStateScaleFactors.c create mode 100644 src/codec_utils/RRC/SpeedStateScaleFactors.h create mode 100644 src/codec_utils/RRC/SubcarrierSpacing.c create mode 100644 src/codec_utils/RRC/SubcarrierSpacing.h create mode 100644 src/codec_utils/RRC/SupportedBandwidth.c create mode 100644 src/codec_utils/RRC/SupportedBandwidth.h create mode 100644 src/codec_utils/RRC/SuspendConfig.c create mode 100644 src/codec_utils/RRC/SuspendConfig.h create mode 100644 src/codec_utils/RRC/SystemInformation-IEs.c create mode 100644 src/codec_utils/RRC/SystemInformation-IEs.h create mode 100644 src/codec_utils/RRC/SystemInformation.c create mode 100644 src/codec_utils/RRC/SystemInformation.h create mode 100644 src/codec_utils/RRC/T-PollRetransmit.c create mode 100644 src/codec_utils/RRC/T-PollRetransmit.h create mode 100644 src/codec_utils/RRC/T-Reassembly.c create mode 100644 src/codec_utils/RRC/T-Reassembly.h create mode 100644 src/codec_utils/RRC/T-Reselection.c create mode 100644 src/codec_utils/RRC/T-Reselection.h create mode 100644 src/codec_utils/RRC/T-StatusProhibit.c create mode 100644 src/codec_utils/RRC/T-StatusProhibit.h create mode 100644 src/codec_utils/RRC/TAG-Config.c create mode 100644 src/codec_utils/RRC/TAG-Config.h create mode 100644 src/codec_utils/RRC/TAG-Id.c create mode 100644 src/codec_utils/RRC/TAG-Id.h create mode 100644 src/codec_utils/RRC/TAG.c create mode 100644 src/codec_utils/RRC/TAG.h create mode 100644 src/codec_utils/RRC/TCI-State.c create mode 100644 src/codec_utils/RRC/TCI-State.h create mode 100644 src/codec_utils/RRC/TCI-StateId.c create mode 100644 src/codec_utils/RRC/TCI-StateId.h create mode 100644 src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.c create mode 100644 src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.h create mode 100644 src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.c create mode 100644 src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.h create mode 100644 src/codec_utils/RRC/TDD-UL-DL-Pattern.c create mode 100644 src/codec_utils/RRC/TDD-UL-DL-Pattern.h create mode 100644 src/codec_utils/RRC/TDD-UL-DL-SlotConfig.c create mode 100644 src/codec_utils/RRC/TDD-UL-DL-SlotConfig.h create mode 100644 src/codec_utils/RRC/TDD-UL-DL-SlotIndex.c create mode 100644 src/codec_utils/RRC/TDD-UL-DL-SlotIndex.h create mode 100644 src/codec_utils/RRC/ThresholdNR.c create mode 100644 src/codec_utils/RRC/ThresholdNR.h create mode 100644 src/codec_utils/RRC/TimeAlignmentTimer.c create mode 100644 src/codec_utils/RRC/TimeAlignmentTimer.h create mode 100644 src/codec_utils/RRC/TimeToTrigger.c create mode 100644 src/codec_utils/RRC/TimeToTrigger.h create mode 100644 src/codec_utils/RRC/TrackingAreaCode.c create mode 100644 src/codec_utils/RRC/TrackingAreaCode.h create mode 100644 src/codec_utils/RRC/TypeI-MultiPanelCodebook.c create mode 100644 src/codec_utils/RRC/TypeI-MultiPanelCodebook.h create mode 100644 src/codec_utils/RRC/TypeI-SinglePanelCodebook.c create mode 100644 src/codec_utils/RRC/TypeI-SinglePanelCodebook.h create mode 100644 src/codec_utils/RRC/TypeII-Codebook.c create mode 100644 src/codec_utils/RRC/TypeII-Codebook.h create mode 100644 src/codec_utils/RRC/TypeII-CodebookPortSelection.c create mode 100644 src/codec_utils/RRC/TypeII-CodebookPortSelection.h create mode 100644 src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.c create mode 100644 src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.h create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSet.c create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSet.h create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSetIndex.c create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSetIndex.h create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSetList.c create mode 100644 src/codec_utils/RRC/UAC-BarringInfoSetList.h create mode 100644 src/codec_utils/RRC/UAC-BarringPerCat.c create mode 100644 src/codec_utils/RRC/UAC-BarringPerCat.h create mode 100644 src/codec_utils/RRC/UAC-BarringPerCatList.c create mode 100644 src/codec_utils/RRC/UAC-BarringPerCatList.h create mode 100644 src/codec_utils/RRC/UAC-BarringPerPLMN-List.c create mode 100644 src/codec_utils/RRC/UAC-BarringPerPLMN-List.h create mode 100644 src/codec_utils/RRC/UAC-BarringPerPLMN.c create mode 100644 src/codec_utils/RRC/UAC-BarringPerPLMN.h create mode 100644 src/codec_utils/RRC/UCI-OnPUSCH.c create mode 100644 src/codec_utils/RRC/UCI-OnPUSCH.h create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-Container.c create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-Container.h create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.c create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.h create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-Request.c create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-Request.h create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-RequestList.c create mode 100644 src/codec_utils/RRC/UE-CapabilityRAT-RequestList.h create mode 100644 src/codec_utils/RRC/UE-CapabilityRequestFilterNR.c create mode 100644 src/codec_utils/RRC/UE-CapabilityRequestFilterNR.h create mode 100644 src/codec_utils/RRC/UE-MRDC-Capability.c create mode 100644 src/codec_utils/RRC/UE-MRDC-Capability.h create mode 100644 src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.c create mode 100644 src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.h create mode 100644 src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.c create mode 100644 src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.h create mode 100644 src/codec_utils/RRC/UE-NR-Capability.c create mode 100644 src/codec_utils/RRC/UE-NR-Capability.h create mode 100644 src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.c create mode 100644 src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.h create mode 100644 src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.c create mode 100644 src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.h create mode 100644 src/codec_utils/RRC/UE-TimersAndConstants.c create mode 100644 src/codec_utils/RRC/UE-TimersAndConstants.h create mode 100644 src/codec_utils/RRC/UEAssistanceInformation-IEs.c create mode 100644 src/codec_utils/RRC/UEAssistanceInformation-IEs.h create mode 100644 src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.c create mode 100644 src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.h create mode 100644 src/codec_utils/RRC/UEAssistanceInformation.c create mode 100644 src/codec_utils/RRC/UEAssistanceInformation.h create mode 100644 src/codec_utils/RRC/UECapabilityEnquiry-IEs.c create mode 100644 src/codec_utils/RRC/UECapabilityEnquiry-IEs.h create mode 100644 src/codec_utils/RRC/UECapabilityEnquiry.c create mode 100644 src/codec_utils/RRC/UECapabilityEnquiry.h create mode 100644 src/codec_utils/RRC/UECapabilityInformation-IEs.c create mode 100644 src/codec_utils/RRC/UECapabilityInformation-IEs.h create mode 100644 src/codec_utils/RRC/UECapabilityInformation.c create mode 100644 src/codec_utils/RRC/UECapabilityInformation.h create mode 100644 src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.c create mode 100644 src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.h create mode 100644 src/codec_utils/RRC/UERadioAccessCapabilityInformation.c create mode 100644 src/codec_utils/RRC/UERadioAccessCapabilityInformation.h create mode 100644 src/codec_utils/RRC/UERadioPagingInformation-IEs.c create mode 100644 src/codec_utils/RRC/UERadioPagingInformation-IEs.h create mode 100644 src/codec_utils/RRC/UERadioPagingInformation.c create mode 100644 src/codec_utils/RRC/UERadioPagingInformation.h create mode 100644 src/codec_utils/RRC/UL-AM-RLC.c create mode 100644 src/codec_utils/RRC/UL-AM-RLC.h create mode 100644 src/codec_utils/RRC/UL-CCCH-Message.c create mode 100644 src/codec_utils/RRC/UL-CCCH-Message.h create mode 100644 src/codec_utils/RRC/UL-CCCH-MessageType.c create mode 100644 src/codec_utils/RRC/UL-CCCH-MessageType.h create mode 100644 src/codec_utils/RRC/UL-CCCH1-Message.c create mode 100644 src/codec_utils/RRC/UL-CCCH1-Message.h create mode 100644 src/codec_utils/RRC/UL-CCCH1-MessageType.c create mode 100644 src/codec_utils/RRC/UL-CCCH1-MessageType.h create mode 100644 src/codec_utils/RRC/UL-DCCH-Message.c create mode 100644 src/codec_utils/RRC/UL-DCCH-Message.h create mode 100644 src/codec_utils/RRC/UL-DCCH-MessageType.c create mode 100644 src/codec_utils/RRC/UL-DCCH-MessageType.h create mode 100644 src/codec_utils/RRC/UL-DataSplitThreshold.c create mode 100644 src/codec_utils/RRC/UL-DataSplitThreshold.h create mode 100644 src/codec_utils/RRC/UL-UM-RLC.c create mode 100644 src/codec_utils/RRC/UL-UM-RLC.h create mode 100644 src/codec_utils/RRC/ULInformationTransfer-IEs.c create mode 100644 src/codec_utils/RRC/ULInformationTransfer-IEs.h create mode 100644 src/codec_utils/RRC/ULInformationTransfer.c create mode 100644 src/codec_utils/RRC/ULInformationTransfer.h create mode 100644 src/codec_utils/RRC/UplinkConfig.c create mode 100644 src/codec_utils/RRC/UplinkConfig.h create mode 100644 src/codec_utils/RRC/UplinkConfigCommon.c create mode 100644 src/codec_utils/RRC/UplinkConfigCommon.h create mode 100644 src/codec_utils/RRC/UplinkConfigCommonSIB.c create mode 100644 src/codec_utils/RRC/UplinkConfigCommonSIB.h create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentBWP.c create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentBWP.h create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentCell.c create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentCell.h create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentList.c create mode 100644 src/codec_utils/RRC/UplinkTxDirectCurrentList.h create mode 100644 src/codec_utils/RRC/VarMeasConfig.c create mode 100644 src/codec_utils/RRC/VarMeasConfig.h create mode 100644 src/codec_utils/RRC/VarMeasReport.c create mode 100644 src/codec_utils/RRC/VarMeasReport.h create mode 100644 src/codec_utils/RRC/VarMeasReportList.c create mode 100644 src/codec_utils/RRC/VarMeasReportList.h create mode 100644 src/codec_utils/RRC/VarPendingRNA-Update.c create mode 100644 src/codec_utils/RRC/VarPendingRNA-Update.h create mode 100644 src/codec_utils/RRC/VarResumeMAC-Input.c create mode 100644 src/codec_utils/RRC/VarResumeMAC-Input.h create mode 100644 src/codec_utils/RRC/VarShortMAC-Input.c create mode 100644 src/codec_utils/RRC/VarShortMAC-Input.h create mode 100644 src/codec_utils/RRC/VictimSystemType.c create mode 100644 src/codec_utils/RRC/VictimSystemType.h create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-Resource.c create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-Resource.h create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceId.c create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceId.h create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.c create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.h create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.c create mode 100644 src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.h delete mode 100644 src/codec_utils/SYSINFO/ARFCN-ValueNR.c delete mode 100644 src/codec_utils/SYSINFO/ARFCN-ValueNR.h delete mode 100644 src/codec_utils/SYSINFO/AdditionalSpectrumEmission.c delete mode 100644 src/codec_utils/SYSINFO/AdditionalSpectrumEmission.h delete mode 100644 src/codec_utils/SYSINFO/BCCH-BCH-Message.c delete mode 100644 src/codec_utils/SYSINFO/BCCH-BCH-Message.h delete mode 100644 src/codec_utils/SYSINFO/BCCH-BCH-MessageType.c delete mode 100644 src/codec_utils/SYSINFO/BCCH-BCH-MessageType.h delete mode 100644 src/codec_utils/SYSINFO/BCCH-Config.c delete mode 100644 src/codec_utils/SYSINFO/BCCH-Config.h delete mode 100644 src/codec_utils/SYSINFO/BWP-DownlinkCommon.c delete mode 100644 src/codec_utils/SYSINFO/BWP-DownlinkCommon.h delete mode 100644 src/codec_utils/SYSINFO/BWP-UplinkCommon.c delete mode 100644 src/codec_utils/SYSINFO/BWP-UplinkCommon.h delete mode 100644 src/codec_utils/SYSINFO/BWP.c delete mode 100644 src/codec_utils/SYSINFO/BWP.h delete mode 100644 src/codec_utils/SYSINFO/CellAccessRelatedInfo.c delete mode 100644 src/codec_utils/SYSINFO/CellAccessRelatedInfo.h delete mode 100644 src/codec_utils/SYSINFO/CellIdentity.c delete mode 100644 src/codec_utils/SYSINFO/CellIdentity.h delete mode 100644 src/codec_utils/SYSINFO/ConnEstFailureControl.c delete mode 100644 src/codec_utils/SYSINFO/ConnEstFailureControl.h delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSet.c delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSet.h delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSetId.c delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSetId.h delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSetZero.c delete mode 100644 src/codec_utils/SYSINFO/ControlResourceSetZero.h delete mode 100644 src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.c delete mode 100644 src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.h delete mode 100644 src/codec_utils/SYSINFO/FreqBandIndicatorNR.c delete mode 100644 src/codec_utils/SYSINFO/FreqBandIndicatorNR.h delete mode 100644 src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.c delete mode 100644 src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.h delete mode 100644 src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.c delete mode 100644 src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.h delete mode 100644 src/codec_utils/SYSINFO/MCC-MNC-Digit.c delete mode 100644 src/codec_utils/SYSINFO/MCC-MNC-Digit.h delete mode 100644 src/codec_utils/SYSINFO/MCC.c delete mode 100644 src/codec_utils/SYSINFO/MCC.h delete mode 100644 src/codec_utils/SYSINFO/MIB.c delete mode 100644 src/codec_utils/SYSINFO/MIB.h delete mode 100644 src/codec_utils/SYSINFO/MNC.c delete mode 100644 src/codec_utils/SYSINFO/MNC.h delete mode 100644 src/codec_utils/SYSINFO/Makefile.am.libasncodec delete mode 100644 src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.c delete mode 100644 src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.h delete mode 100644 src/codec_utils/SYSINFO/NR-MultiBandInfo.c delete mode 100644 src/codec_utils/SYSINFO/NR-MultiBandInfo.h delete mode 100644 src/codec_utils/SYSINFO/NR-NS-PmaxList.c delete mode 100644 src/codec_utils/SYSINFO/NR-NS-PmaxList.h delete mode 100644 src/codec_utils/SYSINFO/NR-NS-PmaxValue.c delete mode 100644 src/codec_utils/SYSINFO/NR-NS-PmaxValue.h delete mode 100644 src/codec_utils/SYSINFO/P-Max.c delete mode 100644 src/codec_utils/SYSINFO/P-Max.h delete mode 100644 src/codec_utils/SYSINFO/PCCH-Config.c delete mode 100644 src/codec_utils/SYSINFO/PCCH-Config.h delete mode 100644 src/codec_utils/SYSINFO/PDCCH-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/PDCCH-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.c delete mode 100644 src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.h delete mode 100644 src/codec_utils/SYSINFO/PDSCH-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/PDSCH-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.c delete mode 100644 src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.h delete mode 100644 src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.c delete mode 100644 src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.h delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentitY.c delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentitY.h delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentityInfo.c delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentityInfo.h delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentityInfoList.c delete mode 100644 src/codec_utils/SYSINFO/PLMN-IdentityInfoList.h delete mode 100644 src/codec_utils/SYSINFO/PUCCH-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/PUCCH-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/PUSCH-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/PUSCH-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.c delete mode 100644 src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.h delete mode 100644 src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.c delete mode 100644 src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.h delete mode 100644 src/codec_utils/SYSINFO/PagingCycle.c delete mode 100644 src/codec_utils/SYSINFO/PagingCycle.h delete mode 100644 src/codec_utils/SYSINFO/Q-QualMin.c delete mode 100644 src/codec_utils/SYSINFO/Q-QualMin.h delete mode 100644 src/codec_utils/SYSINFO/Q-RxLevMin.c delete mode 100644 src/codec_utils/SYSINFO/Q-RxLevMin.h delete mode 100644 src/codec_utils/SYSINFO/RACH-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/RACH-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/RACH-ConfigGeneric.c delete mode 100644 src/codec_utils/SYSINFO/RACH-ConfigGeneric.h delete mode 100644 src/codec_utils/SYSINFO/RAN-AreaCode.c delete mode 100644 src/codec_utils/SYSINFO/RAN-AreaCode.h delete mode 100644 src/codec_utils/SYSINFO/RSRP-Range.c delete mode 100644 src/codec_utils/SYSINFO/RSRP-Range.h delete mode 100644 src/codec_utils/SYSINFO/SCS-SpecificCarrier.c delete mode 100644 src/codec_utils/SYSINFO/SCS-SpecificCarrier.h delete mode 100644 src/codec_utils/SYSINFO/SI-RequestConfig.c delete mode 100644 src/codec_utils/SYSINFO/SI-RequestConfig.h delete mode 100644 src/codec_utils/SYSINFO/SI-RequestResources.c delete mode 100644 src/codec_utils/SYSINFO/SI-RequestResources.h delete mode 100644 src/codec_utils/SYSINFO/SI-SchedulingInfo.c delete mode 100644 src/codec_utils/SYSINFO/SI-SchedulingInfo.h delete mode 100644 src/codec_utils/SYSINFO/SIB-Mapping.c delete mode 100644 src/codec_utils/SYSINFO/SIB-Mapping.h delete mode 100644 src/codec_utils/SYSINFO/SIB-TypeInfo.c delete mode 100644 src/codec_utils/SYSINFO/SIB-TypeInfo.h delete mode 100644 src/codec_utils/SYSINFO/SIB1.c delete mode 100644 src/codec_utils/SYSINFO/SIB1.h delete mode 100644 src/codec_utils/SYSINFO/SchedulingInfo.c delete mode 100644 src/codec_utils/SYSINFO/SchedulingInfo.h delete mode 100644 src/codec_utils/SYSINFO/SearchSpace.c delete mode 100644 src/codec_utils/SYSINFO/SearchSpace.h delete mode 100644 src/codec_utils/SYSINFO/SearchSpaceId.c delete mode 100644 src/codec_utils/SYSINFO/SearchSpaceId.h delete mode 100644 src/codec_utils/SYSINFO/SearchSpaceZero.c delete mode 100644 src/codec_utils/SYSINFO/SearchSpaceZero.h delete mode 100644 src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.c delete mode 100644 src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.h delete mode 100644 src/codec_utils/SYSINFO/SubcarrierSpacing.c delete mode 100644 src/codec_utils/SYSINFO/SubcarrierSpacing.h delete mode 100644 src/codec_utils/SYSINFO/TCI-StateId.c delete mode 100644 src/codec_utils/SYSINFO/TCI-StateId.h delete mode 100644 src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.c delete mode 100644 src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.h delete mode 100644 src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.c delete mode 100644 src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.h delete mode 100644 src/codec_utils/SYSINFO/TimeAlignmentTimer.c delete mode 100644 src/codec_utils/SYSINFO/TimeAlignmentTimer.h delete mode 100644 src/codec_utils/SYSINFO/TrackingAreaCode.c delete mode 100644 src/codec_utils/SYSINFO/TrackingAreaCode.h delete mode 100644 src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.c delete mode 100644 src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSet.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSet.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSetList.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringInfoSetList.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerCat.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerCat.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerCatList.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerCatList.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.h delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerPLMN.c delete mode 100644 src/codec_utils/SYSINFO/UAC-BarringPerPLMN.h delete mode 100644 src/codec_utils/SYSINFO/UE-TimersAndConstants.c delete mode 100644 src/codec_utils/SYSINFO/UE-TimersAndConstants.h delete mode 100644 src/codec_utils/SYSINFO/UplinkConfigCommonSIB.c delete mode 100644 src/codec_utils/SYSINFO/UplinkConfigCommonSIB.h diff --git a/build/common/asn_rrc.mak b/build/common/asn_rrc.mak new file mode 100755 index 000000000..7708b33ec --- /dev/null +++ b/build/common/asn_rrc.mak @@ -0,0 +1,49 @@ +################################################################################ +# Copyright (c) [2017-2019] [Radisys] # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +################################################################################ + +# This is makefile for ASN + +include ../common/rsys_fancy.mak +include ../common/env.mak +COLOR=$(COLOR_RED) + +SRC_DIR=$(ROOT_DIR)/src/codec_utils/RRC +C_SRCS=$(wildcard $(SRC_DIR)/*.c) +C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) +LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) +BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) +DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) + +lib: $(LIB_DIR)/libasn_rrc.a +include $(COM_BUILD_DIR)/compile.mak + +I_OPTS+=-I$(SRC_DIR)/../common +#-------------------------------------------------------------# +#Linker macros +#-------------------------------------------------------------# +$(LIB_DIR)/libasn_rrc.a:$(C_OBJS) $(C_WO_PED_OBJS) + @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" + $(Q)ar -cr $(LIB_DIR)/libasn_rrc.a $(C_OBJS) $(C_WO_PED_OBJS) + + +#-------------------------------------------------------------# +#Clean macros +#-------------------------------------------------------------# +clean: + @echo -e "$(COLOR_RED)Cleaning ASN$(REVERT_COLOR)" + @echo $(SRC_DIR) $(CM_DIR) + $(Q)\rm -f $(LIB_DIR)/libasn_rrc.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) + diff --git a/build/common/asn_sysinfo.mak b/build/common/asn_sysinfo.mak deleted file mode 100755 index b30992205..000000000 --- a/build/common/asn_sysinfo.mak +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# Copyright (c) [2017-2019] [Radisys] # -# # -# Licensed under the Apache License, Version 2.0 (the "License"); # -# you may not use this file except in compliance with the License. # -# You may obtain a copy of the License at # -# # -# http://www.apache.org/licenses/LICENSE-2.0 # -# # -# Unless required by applicable law or agreed to in writing, software # -# distributed under the License is distributed on an "AS IS" BASIS, # -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # -# See the License for the specific language governing permissions and # -# limitations under the License. # -################################################################################ - -# This is makefile for ASN - -include ../common/rsys_fancy.mak -include ../common/env.mak -COLOR=$(COLOR_RED) - -SRC_DIR=$(ROOT_DIR)/src/codec_utils/SYSINFO -C_SRCS=$(wildcard $(SRC_DIR)/*.c) -C_OBJS=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(C_SRCS)) -LOG_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i,$(C_SRCS)) -BAK_FILES=$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.bak,$(C_SRCS)) -DB_FILES =$(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.i.db,$(C_SRCS)) - -lib: $(LIB_DIR)/libasn_sysinfo.a -include $(COM_BUILD_DIR)/compile.mak - -I_OPTS+=-I$(SRC_DIR)/../common -#-------------------------------------------------------------# -#Linker macros -#-------------------------------------------------------------# -$(LIB_DIR)/libasn_sysinfo.a:$(C_OBJS) $(C_WO_PED_OBJS) - @echo -e "Creating Archive $(COLOR) $@ $(REVERT_COLOR)" - $(Q)ar -cr $(LIB_DIR)/libasn_sysinfo.a $(C_OBJS) $(C_WO_PED_OBJS) - - -#-------------------------------------------------------------# -#Clean macros -#-------------------------------------------------------------# -clean: - @echo -e "$(COLOR_RED)Cleaning ASN$(REVERT_COLOR)" - @echo $(SRC_DIR) $(CM_DIR) - $(Q)\rm -f $(LIB_DIR)/libasn_sysinfo.a $(C_OBJS) $(C_WO_PED_OBJS) $(LOG_FILES) $(BAK_FILES) - diff --git a/build/common/du_app.mak b/build/common/du_app.mak index d6135ba79..43151c0c1 100644 --- a/build/common/du_app.mak +++ b/build/common/du_app.mak @@ -41,7 +41,7 @@ include $(COM_BUILD_DIR)/compile.mak I_OPTS+=-I$(ROOT_DIR)/src/mt I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/common I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/F1AP -I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/SYSINFO +I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/RRC I_OPTS+=-I$(ROOT_DIR)/src/codec_utils/E2AP #-------------------------------------------------------------# diff --git a/build/odu/makefile b/build/odu/makefile index 98dc3a7f9..ff00e9be5 100644 --- a/build/odu/makefile +++ b/build/odu/makefile @@ -152,7 +152,7 @@ du: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_sysinfo.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/du_app.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' #$(Q)$(MAKE) -f $(COM_BUILD_DIR)/f1ap.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' @@ -172,7 +172,7 @@ clean_odu: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_sysinfo.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/kw.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mac.mak clean OBJ_DIR=$(OBJ_ROOT)/odu LIB_DIR=$(LIB_ROOT)/odu LOG_DIR=$(LOG_ROOT)/odu CC='$(CC1)' @@ -198,7 +198,7 @@ cu: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_sysinfo.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' @@ -206,7 +206,7 @@ clean_cu: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cu_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_f1ap.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_sysinfo.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/cu_stub LIB_DIR=$(LIB_ROOT)/cu_stub LOG_DIR=$(LOG_ROOT)/cu_stub CC='$(CC1)' $(Q)rm -rf $(OBJ_ROOT)/cu_stub/* @@ -234,7 +234,7 @@ clean_ric: $(Q)$(MAKE) -f $(COM_BUILD_DIR)/ric_stub.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_common.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_e2ap.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' - $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_sysinfo.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' + $(Q)$(MAKE) -f $(COM_BUILD_DIR)/asn_rrc.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/cm.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' $(Q)$(MAKE) -f $(COM_BUILD_DIR)/mt.mak clean OBJ_DIR=$(OBJ_ROOT)/ric_stub LIB_DIR=$(LIB_ROOT)/ric_stub LOG_DIR=$(LOG_ROOT)/ric_stub CC='$(CC1)' $(Q)rm -rf $(OBJ_ROOT)/ric_stub/* diff --git a/src/codec_utils/RRC/AMF-Identifier.c b/src/codec_utils/RRC/AMF-Identifier.c new file mode 100644 index 000000000..f8f4561da --- /dev/null +++ b/src/codec_utils/RRC/AMF-Identifier.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AMF-Identifier.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_AMF_Identifier_constr_1 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +asn_per_constraints_t asn_PER_type_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_AMF_Identifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMF_Identifier = { + "AMF-Identifier", + "AMF-Identifier", + &asn_OP_BIT_STRING, + asn_DEF_AMF_Identifier_tags_1, + sizeof(asn_DEF_AMF_Identifier_tags_1) + /sizeof(asn_DEF_AMF_Identifier_tags_1[0]), /* 1 */ + asn_DEF_AMF_Identifier_tags_1, /* Same as above */ + sizeof(asn_DEF_AMF_Identifier_tags_1) + /sizeof(asn_DEF_AMF_Identifier_tags_1[0]), /* 1 */ + { &asn_OER_type_AMF_Identifier_constr_1, &asn_PER_type_AMF_Identifier_constr_1, AMF_Identifier_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AMF-Identifier.h b/src/codec_utils/RRC/AMF-Identifier.h new file mode 100644 index 000000000..b0f3c5bd6 --- /dev/null +++ b/src/codec_utils/RRC/AMF-Identifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AMF_Identifier_H_ +#define _AMF_Identifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMF-Identifier */ +typedef BIT_STRING_t AMF_Identifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMF_Identifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMF_Identifier; +asn_struct_free_f AMF_Identifier_free; +asn_struct_print_f AMF_Identifier_print; +asn_constr_check_f AMF_Identifier_constraint; +ber_type_decoder_f AMF_Identifier_decode_ber; +der_type_encoder_f AMF_Identifier_encode_der; +xer_type_decoder_f AMF_Identifier_decode_xer; +xer_type_encoder_f AMF_Identifier_encode_xer; +oer_type_decoder_f AMF_Identifier_decode_oer; +oer_type_encoder_f AMF_Identifier_encode_oer; +per_type_decoder_f AMF_Identifier_decode_uper; +per_type_encoder_f AMF_Identifier_encode_uper; +per_type_decoder_f AMF_Identifier_decode_aper; +per_type_encoder_f AMF_Identifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMF_Identifier_H_ */ +#include diff --git a/src/codec_utils/RRC/ARFCN-ValueEUTRA.c b/src/codec_utils/RRC/ARFCN-ValueEUTRA.c new file mode 100644 index 000000000..10bc3201a --- /dev/null +++ b/src/codec_utils/RRC/ARFCN-ValueEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ARFCN-ValueEUTRA.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ARFCN_ValueEUTRA_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..262143) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ARFCN_ValueEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueEUTRA = { + "ARFCN-ValueEUTRA", + "ARFCN-ValueEUTRA", + &asn_OP_NativeInteger, + asn_DEF_ARFCN_ValueEUTRA_tags_1, + sizeof(asn_DEF_ARFCN_ValueEUTRA_tags_1) + /sizeof(asn_DEF_ARFCN_ValueEUTRA_tags_1[0]), /* 1 */ + asn_DEF_ARFCN_ValueEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ARFCN_ValueEUTRA_tags_1) + /sizeof(asn_DEF_ARFCN_ValueEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_ARFCN_ValueEUTRA_constr_1, &asn_PER_type_ARFCN_ValueEUTRA_constr_1, ARFCN_ValueEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ARFCN-ValueEUTRA.h b/src/codec_utils/RRC/ARFCN-ValueEUTRA.h new file mode 100644 index 000000000..63998af62 --- /dev/null +++ b/src/codec_utils/RRC/ARFCN-ValueEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ARFCN_ValueEUTRA_H_ +#define _ARFCN_ValueEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ARFCN-ValueEUTRA */ +typedef long ARFCN_ValueEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ARFCN_ValueEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueEUTRA; +asn_struct_free_f ARFCN_ValueEUTRA_free; +asn_struct_print_f ARFCN_ValueEUTRA_print; +asn_constr_check_f ARFCN_ValueEUTRA_constraint; +ber_type_decoder_f ARFCN_ValueEUTRA_decode_ber; +der_type_encoder_f ARFCN_ValueEUTRA_encode_der; +xer_type_decoder_f ARFCN_ValueEUTRA_decode_xer; +xer_type_encoder_f ARFCN_ValueEUTRA_encode_xer; +oer_type_decoder_f ARFCN_ValueEUTRA_decode_oer; +oer_type_encoder_f ARFCN_ValueEUTRA_encode_oer; +per_type_decoder_f ARFCN_ValueEUTRA_decode_uper; +per_type_encoder_f ARFCN_ValueEUTRA_encode_uper; +per_type_decoder_f ARFCN_ValueEUTRA_decode_aper; +per_type_encoder_f ARFCN_ValueEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ARFCN_ValueEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/ARFCN-ValueNR.c b/src/codec_utils/RRC/ARFCN-ValueNR.c new file mode 100644 index 000000000..9994400ba --- /dev/null +++ b/src/codec_utils/RRC/ARFCN-ValueNR.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ARFCN-ValueNR.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ARFCN_ValueNR_constr_1 CC_NOTUSED = { + { 4, 1 } /* (0..3279165) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ARFCN_ValueNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueNR = { + "ARFCN-ValueNR", + "ARFCN-ValueNR", + &asn_OP_NativeInteger, + asn_DEF_ARFCN_ValueNR_tags_1, + sizeof(asn_DEF_ARFCN_ValueNR_tags_1) + /sizeof(asn_DEF_ARFCN_ValueNR_tags_1[0]), /* 1 */ + asn_DEF_ARFCN_ValueNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ARFCN_ValueNR_tags_1) + /sizeof(asn_DEF_ARFCN_ValueNR_tags_1[0]), /* 1 */ + { &asn_OER_type_ARFCN_ValueNR_constr_1, &asn_PER_type_ARFCN_ValueNR_constr_1, ARFCN_ValueNR_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ARFCN-ValueNR.h b/src/codec_utils/RRC/ARFCN-ValueNR.h new file mode 100644 index 000000000..229d45d5f --- /dev/null +++ b/src/codec_utils/RRC/ARFCN-ValueNR.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ARFCN_ValueNR_H_ +#define _ARFCN_ValueNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ARFCN-ValueNR */ +typedef long ARFCN_ValueNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ARFCN_ValueNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueNR; +asn_struct_free_f ARFCN_ValueNR_free; +asn_struct_print_f ARFCN_ValueNR_print; +asn_constr_check_f ARFCN_ValueNR_constraint; +ber_type_decoder_f ARFCN_ValueNR_decode_ber; +der_type_encoder_f ARFCN_ValueNR_encode_der; +xer_type_decoder_f ARFCN_ValueNR_decode_xer; +xer_type_encoder_f ARFCN_ValueNR_encode_xer; +oer_type_decoder_f ARFCN_ValueNR_decode_oer; +oer_type_encoder_f ARFCN_ValueNR_encode_oer; +per_type_decoder_f ARFCN_ValueNR_decode_uper; +per_type_encoder_f ARFCN_ValueNR_encode_uper; +per_type_decoder_f ARFCN_ValueNR_decode_aper; +per_type_encoder_f ARFCN_ValueNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ARFCN_ValueNR_H_ */ +#include diff --git a/src/codec_utils/RRC/AS-Config.c b/src/codec_utils/RRC/AS-Config.c new file mode 100644 index 000000000..f8a051535 --- /dev/null +++ b/src/codec_utils/RRC/AS-Config.c @@ -0,0 +1,79 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AS-Config.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_rrcReconfiguration_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +asn_TYPE_member_t asn_MBR_AS_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AS_Config, rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_rrcReconfiguration_constr_2, &asn_PER_memb_rrcReconfiguration_constr_2, memb_rrcReconfiguration_constraint_1 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_AS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_AS_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcReconfiguration */ +}; +asn_SEQUENCE_specifics_t asn_SPC_AS_Config_specs_1 = { + sizeof(struct AS_Config), + offsetof(struct AS_Config, _asn_ctx), + asn_MAP_AS_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_AS_Config = { + "AS-Config", + "AS-Config", + &asn_OP_SEQUENCE, + asn_DEF_AS_Config_tags_1, + sizeof(asn_DEF_AS_Config_tags_1) + /sizeof(asn_DEF_AS_Config_tags_1[0]), /* 1 */ + asn_DEF_AS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_AS_Config_tags_1) + /sizeof(asn_DEF_AS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AS_Config_1, + 1, /* Elements count */ + &asn_SPC_AS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AS-Config.h b/src/codec_utils/RRC/AS-Config.h new file mode 100644 index 000000000..af16f2486 --- /dev/null +++ b/src/codec_utils/RRC/AS-Config.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AS_Config_H_ +#define _AS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AS-Config */ +typedef struct AS_Config { + OCTET_STRING_t rrcReconfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AS_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_AS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_AS_Config_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AS_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/AS-Context.c b/src/codec_utils/RRC/AS-Context.c new file mode 100644 index 000000000..6c1a89491 --- /dev/null +++ b/src/codec_utils/RRC/AS-Context.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AS-Context.h" + +#include "ReestablishmentInfo.h" +#include "ConfigRestrictInfoSCG.h" +#include "RAN-NotificationAreaInfo.h" +static asn_TYPE_member_t asn_MBR_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct AS_Context__ext1, ran_NotificationAreaInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RAN_NotificationAreaInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-NotificationAreaInfo" + }, +}; +static const int asn_MAP_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ran-NotificationAreaInfo */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_5 = { + sizeof(struct AS_Context__ext1), + offsetof(struct AS_Context__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_5, + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_5, + 1, /* Elements count */ + &asn_SPC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AS_Context_1[] = { + { ATF_POINTER, 3, offsetof(struct AS_Context, reestablishmentInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReestablishmentInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishmentInfo" + }, + { ATF_POINTER, 2, offsetof(struct AS_Context, configRestrictInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConfigRestrictInfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictInfo" + }, + { ATF_POINTER, 1, offsetof(struct AS_Context, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_AS_Context_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_AS_Context_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_AS_Context_specs_1 = { + sizeof(struct AS_Context), + offsetof(struct AS_Context, _asn_ctx), + asn_MAP_AS_Context_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_AS_Context_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AS_Context = { + "AS-Context", + "AS-Context", + &asn_OP_SEQUENCE, + asn_DEF_AS_Context_tags_1, + sizeof(asn_DEF_AS_Context_tags_1) + /sizeof(asn_DEF_AS_Context_tags_1[0]), /* 1 */ + asn_DEF_AS_Context_tags_1, /* Same as above */ + sizeof(asn_DEF_AS_Context_tags_1) + /sizeof(asn_DEF_AS_Context_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AS_Context_1, + 3, /* Elements count */ + &asn_SPC_AS_Context_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AS-Context.h b/src/codec_utils/RRC/AS-Context.h new file mode 100644 index 000000000..d76beeca7 --- /dev/null +++ b/src/codec_utils/RRC/AS-Context.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AS_Context_H_ +#define _AS_Context_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReestablishmentInfo; +struct ConfigRestrictInfoSCG; +struct RAN_NotificationAreaInfo; + +/* AS-Context */ +typedef struct AS_Context { + struct ReestablishmentInfo *reestablishmentInfo; /* OPTIONAL */ + struct ConfigRestrictInfoSCG *configRestrictInfo; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct AS_Context__ext1 { + struct RAN_NotificationAreaInfo *ran_NotificationAreaInfo; /* 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; +} AS_Context_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AS_Context; +extern asn_SEQUENCE_specifics_t asn_SPC_AS_Context_specs_1; +extern asn_TYPE_member_t asn_MBR_AS_Context_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AS_Context_H_ */ +#include diff --git a/src/codec_utils/RRC/AccessStratumRelease.c b/src/codec_utils/RRC/AccessStratumRelease.c new file mode 100644 index 000000000..619b1e5dc --- /dev/null +++ b/src/codec_utils/RRC/AccessStratumRelease.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AccessStratumRelease.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AccessStratumRelease_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_AccessStratumRelease_specs_1 = { + asn_MAP_AccessStratumRelease_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_AccessStratumRelease_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AccessStratumRelease = { + "AccessStratumRelease", + "AccessStratumRelease", + &asn_OP_NativeEnumerated, + asn_DEF_AccessStratumRelease_tags_1, + sizeof(asn_DEF_AccessStratumRelease_tags_1) + /sizeof(asn_DEF_AccessStratumRelease_tags_1[0]), /* 1 */ + asn_DEF_AccessStratumRelease_tags_1, /* Same as above */ + sizeof(asn_DEF_AccessStratumRelease_tags_1) + /sizeof(asn_DEF_AccessStratumRelease_tags_1[0]), /* 1 */ + { &asn_OER_type_AccessStratumRelease_constr_1, &asn_PER_type_AccessStratumRelease_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AccessStratumRelease_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AccessStratumRelease.h b/src/codec_utils/RRC/AccessStratumRelease.h new file mode 100644 index 000000000..0e530ba7f --- /dev/null +++ b/src/codec_utils/RRC/AccessStratumRelease.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AccessStratumRelease_H_ +#define _AccessStratumRelease_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AccessStratumRelease { + AccessStratumRelease_rel15 = 0, + AccessStratumRelease_spare7 = 1, + AccessStratumRelease_spare6 = 2, + AccessStratumRelease_spare5 = 3, + AccessStratumRelease_spare4 = 4, + AccessStratumRelease_spare3 = 5, + AccessStratumRelease_spare2 = 6, + AccessStratumRelease_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_AccessStratumRelease; + +/* AccessStratumRelease */ +typedef long AccessStratumRelease_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AccessStratumRelease_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AccessStratumRelease; +extern const asn_INTEGER_specifics_t asn_SPC_AccessStratumRelease_specs_1; +asn_struct_free_f AccessStratumRelease_free; +asn_struct_print_f AccessStratumRelease_print; +asn_constr_check_f AccessStratumRelease_constraint; +ber_type_decoder_f AccessStratumRelease_decode_ber; +der_type_encoder_f AccessStratumRelease_encode_der; +xer_type_decoder_f AccessStratumRelease_decode_xer; +xer_type_encoder_f AccessStratumRelease_encode_xer; +oer_type_decoder_f AccessStratumRelease_decode_oer; +oer_type_encoder_f AccessStratumRelease_encode_oer; +per_type_decoder_f AccessStratumRelease_decode_uper; +per_type_encoder_f AccessStratumRelease_encode_uper; +per_type_decoder_f AccessStratumRelease_decode_aper; +per_type_encoder_f AccessStratumRelease_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AccessStratumRelease_H_ */ +#include diff --git a/src/codec_utils/RRC/AdditionalSpectrumEmission.c b/src/codec_utils/RRC/AdditionalSpectrumEmission.c new file mode 100644 index 000000000..f53951003 --- /dev/null +++ b/src/codec_utils/RRC/AdditionalSpectrumEmission.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AdditionalSpectrumEmission.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_AdditionalSpectrumEmission_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_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_AdditionalSpectrumEmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AdditionalSpectrumEmission = { + "AdditionalSpectrumEmission", + "AdditionalSpectrumEmission", + &asn_OP_NativeInteger, + asn_DEF_AdditionalSpectrumEmission_tags_1, + sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1) + /sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ + asn_DEF_AdditionalSpectrumEmission_tags_1, /* Same as above */ + sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1) + /sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ + { &asn_OER_type_AdditionalSpectrumEmission_constr_1, &asn_PER_type_AdditionalSpectrumEmission_constr_1, AdditionalSpectrumEmission_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/AdditionalSpectrumEmission.h b/src/codec_utils/RRC/AdditionalSpectrumEmission.h new file mode 100644 index 000000000..961b2b5ab --- /dev/null +++ b/src/codec_utils/RRC/AdditionalSpectrumEmission.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AdditionalSpectrumEmission_H_ +#define _AdditionalSpectrumEmission_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AdditionalSpectrumEmission */ +typedef long AdditionalSpectrumEmission_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AdditionalSpectrumEmission_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpectrumEmission; +asn_struct_free_f AdditionalSpectrumEmission_free; +asn_struct_print_f AdditionalSpectrumEmission_print; +asn_constr_check_f AdditionalSpectrumEmission_constraint; +ber_type_decoder_f AdditionalSpectrumEmission_decode_ber; +der_type_encoder_f AdditionalSpectrumEmission_encode_der; +xer_type_decoder_f AdditionalSpectrumEmission_decode_xer; +xer_type_encoder_f AdditionalSpectrumEmission_encode_xer; +oer_type_decoder_f AdditionalSpectrumEmission_decode_oer; +oer_type_encoder_f AdditionalSpectrumEmission_encode_oer; +per_type_decoder_f AdditionalSpectrumEmission_decode_uper; +per_type_encoder_f AdditionalSpectrumEmission_encode_uper; +per_type_decoder_f AdditionalSpectrumEmission_decode_aper; +per_type_encoder_f AdditionalSpectrumEmission_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AdditionalSpectrumEmission_H_ */ +#include diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.c b/src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.c new file mode 100644 index 000000000..78c583fda --- /dev/null +++ b/src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AffectedCarrierFreqCombEUTRA.h" + +static asn_oer_constraints_t asn_OER_type_AffectedCarrierFreqCombEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_AffectedCarrierFreqCombEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AffectedCarrierFreqCombEUTRA_specs_1 = { + sizeof(struct AffectedCarrierFreqCombEUTRA), + offsetof(struct AffectedCarrierFreqCombEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombEUTRA = { + "AffectedCarrierFreqCombEUTRA", + "AffectedCarrierFreqCombEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1, + sizeof(asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1[0]), /* 1 */ + asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_AffectedCarrierFreqCombEUTRA_constr_1, &asn_PER_type_AffectedCarrierFreqCombEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AffectedCarrierFreqCombEUTRA_1, + 1, /* Single element */ + &asn_SPC_AffectedCarrierFreqCombEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.h b/src/codec_utils/RRC/AffectedCarrierFreqCombEUTRA.h new file mode 100644 index 000000000..53034a750 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AffectedCarrierFreqCombEUTRA_H_ +#define _AffectedCarrierFreqCombEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AffectedCarrierFreqCombEUTRA */ +typedef struct AffectedCarrierFreqCombEUTRA { + A_SEQUENCE_OF(ARFCN_ValueEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AffectedCarrierFreqCombEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_AffectedCarrierFreqCombEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_AffectedCarrierFreqCombEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_AffectedCarrierFreqCombEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AffectedCarrierFreqCombEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.c b/src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.c new file mode 100644 index 000000000..79f4f82d5 --- /dev/null +++ b/src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.c @@ -0,0 +1,189 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AffectedCarrierFreqCombInfoMRDC.h" + +#include "AffectedCarrierFreqCombEUTRA.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_interferenceDirectionMRDC_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_interferenceDirectionMRDC_specs_3 = { + asn_MAP_interferenceDirectionMRDC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_interferenceDirectionMRDC_3 = { + "interferenceDirectionMRDC", + "interferenceDirectionMRDC", + &asn_OP_NativeEnumerated, + asn_DEF_interferenceDirectionMRDC_tags_3, + sizeof(asn_DEF_interferenceDirectionMRDC_tags_3) + /sizeof(asn_DEF_interferenceDirectionMRDC_tags_3[0]) - 1, /* 1 */ + asn_DEF_interferenceDirectionMRDC_tags_3, /* Same as above */ + sizeof(asn_DEF_interferenceDirectionMRDC_tags_3) + /sizeof(asn_DEF_interferenceDirectionMRDC_tags_3[0]), /* 2 */ + { &asn_OER_type_interferenceDirectionMRDC_constr_3, &asn_PER_type_interferenceDirectionMRDC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_interferenceDirectionMRDC_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_affectedCarrierFreqCombMRDC_12[] = { + { ATF_POINTER, 1, offsetof(struct AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, affectedCarrierFreqCombEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AffectedCarrierFreqCombEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, affectedCarrierFreqCombNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AffectedCarrierFreqCombNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombNR" + }, +}; +static const int asn_MAP_affectedCarrierFreqCombMRDC_oms_12[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_affectedCarrierFreqCombMRDC_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_affectedCarrierFreqCombMRDC_specs_12 = { + sizeof(struct AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC), + offsetof(struct AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC, _asn_ctx), + asn_MAP_affectedCarrierFreqCombMRDC_tag2el_12, + 2, /* Count of tags in the map */ + asn_MAP_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_affectedCarrierFreqCombMRDC_12 = { + "affectedCarrierFreqCombMRDC", + "affectedCarrierFreqCombMRDC", + &asn_OP_SEQUENCE, + asn_DEF_affectedCarrierFreqCombMRDC_tags_12, + sizeof(asn_DEF_affectedCarrierFreqCombMRDC_tags_12) + /sizeof(asn_DEF_affectedCarrierFreqCombMRDC_tags_12[0]) - 1, /* 1 */ + asn_DEF_affectedCarrierFreqCombMRDC_tags_12, /* Same as above */ + sizeof(asn_DEF_affectedCarrierFreqCombMRDC_tags_12) + /sizeof(asn_DEF_affectedCarrierFreqCombMRDC_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_affectedCarrierFreqCombMRDC_12, + 2, /* Elements count */ + &asn_SPC_affectedCarrierFreqCombMRDC_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_AffectedCarrierFreqCombInfoMRDC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct AffectedCarrierFreqCombInfoMRDC, victimSystemType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_VictimSystemType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "victimSystemType" + }, + { ATF_NOFLAGS, 0, offsetof(struct AffectedCarrierFreqCombInfoMRDC, interferenceDirectionMRDC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_interferenceDirectionMRDC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interferenceDirectionMRDC" + }, + { ATF_POINTER, 1, offsetof(struct AffectedCarrierFreqCombInfoMRDC, affectedCarrierFreqCombMRDC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_affectedCarrierFreqCombMRDC_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombMRDC" + }, +}; +static const int asn_MAP_AffectedCarrierFreqCombInfoMRDC_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_AffectedCarrierFreqCombInfoMRDC_specs_1 = { + sizeof(struct AffectedCarrierFreqCombInfoMRDC), + offsetof(struct AffectedCarrierFreqCombInfoMRDC, _asn_ctx), + asn_MAP_AffectedCarrierFreqCombInfoMRDC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_AffectedCarrierFreqCombInfoMRDC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombInfoMRDC = { + "AffectedCarrierFreqCombInfoMRDC", + "AffectedCarrierFreqCombInfoMRDC", + &asn_OP_SEQUENCE, + asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1, + sizeof(asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1[0]), /* 1 */ + asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombInfoMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_AffectedCarrierFreqCombInfoMRDC_1, + 3, /* Elements count */ + &asn_SPC_AffectedCarrierFreqCombInfoMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.h b/src/codec_utils/RRC/AffectedCarrierFreqCombInfoMRDC.h new file mode 100644 index 000000000..367064d33 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AffectedCarrierFreqCombInfoMRDC_H_ +#define _AffectedCarrierFreqCombInfoMRDC_H_ + + +#include + +/* Including external dependencies */ +#include "VictimSystemType.h" +#include +#include "AffectedCarrierFreqCombNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC { + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_eutra_nr = 0, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_nr = 1, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_other = 2, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_utra_nr_other = 3, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_nr_other = 4, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare3 = 5, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare2 = 6, + AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC_spare1 = 7 +} e_AffectedCarrierFreqCombInfoMRDC__interferenceDirectionMRDC; + +/* Forward declarations */ +struct AffectedCarrierFreqCombEUTRA; + +/* AffectedCarrierFreqCombInfoMRDC */ +typedef struct AffectedCarrierFreqCombInfoMRDC { + VictimSystemType_t victimSystemType; + long interferenceDirectionMRDC; + struct AffectedCarrierFreqCombInfoMRDC__affectedCarrierFreqCombMRDC { + struct AffectedCarrierFreqCombEUTRA *affectedCarrierFreqCombEUTRA; /* OPTIONAL */ + 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; +} AffectedCarrierFreqCombInfoMRDC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_interferenceDirectionMRDC_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombInfoMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_AffectedCarrierFreqCombInfoMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_AffectedCarrierFreqCombInfoMRDC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _AffectedCarrierFreqCombInfoMRDC_H_ */ +#include diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombNR.c b/src/codec_utils/RRC/AffectedCarrierFreqCombNR.c new file mode 100644 index 000000000..1357ce948 --- /dev/null +++ b/src/codec_utils/RRC/AffectedCarrierFreqCombNR.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AffectedCarrierFreqCombNR.h" + +static asn_oer_constraints_t asn_OER_type_AffectedCarrierFreqCombNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_AffectedCarrierFreqCombNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_AffectedCarrierFreqCombNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_AffectedCarrierFreqCombNR_specs_1 = { + sizeof(struct AffectedCarrierFreqCombNR), + offsetof(struct AffectedCarrierFreqCombNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombNR = { + "AffectedCarrierFreqCombNR", + "AffectedCarrierFreqCombNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_AffectedCarrierFreqCombNR_tags_1, + sizeof(asn_DEF_AffectedCarrierFreqCombNR_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombNR_tags_1[0]), /* 1 */ + asn_DEF_AffectedCarrierFreqCombNR_tags_1, /* Same as above */ + sizeof(asn_DEF_AffectedCarrierFreqCombNR_tags_1) + /sizeof(asn_DEF_AffectedCarrierFreqCombNR_tags_1[0]), /* 1 */ + { &asn_OER_type_AffectedCarrierFreqCombNR_constr_1, &asn_PER_type_AffectedCarrierFreqCombNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_AffectedCarrierFreqCombNR_1, + 1, /* Single element */ + &asn_SPC_AffectedCarrierFreqCombNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AffectedCarrierFreqCombNR.h b/src/codec_utils/RRC/AffectedCarrierFreqCombNR.h new file mode 100644 index 000000000..de33f8eed --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AffectedCarrierFreqCombNR_H_ +#define _AffectedCarrierFreqCombNR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AffectedCarrierFreqCombNR */ +typedef struct AffectedCarrierFreqCombNR { + A_SEQUENCE_OF(ARFCN_ValueNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} AffectedCarrierFreqCombNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_AffectedCarrierFreqCombNR; +extern asn_SET_OF_specifics_t asn_SPC_AffectedCarrierFreqCombNR_specs_1; +extern asn_TYPE_member_t asn_MBR_AffectedCarrierFreqCombNR_1[1]; +extern asn_per_constraints_t asn_PER_type_AffectedCarrierFreqCombNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _AffectedCarrierFreqCombNR_H_ */ +#include diff --git a/src/codec_utils/RRC/AggregatedBandwidth.c b/src/codec_utils/RRC/AggregatedBandwidth.c new file mode 100644 index 000000000..2864f907f --- /dev/null +++ b/src/codec_utils/RRC/AggregatedBandwidth.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AggregatedBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AggregatedBandwidth_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_AggregatedBandwidth_specs_1 = { + asn_MAP_AggregatedBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_AggregatedBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AggregatedBandwidth = { + "AggregatedBandwidth", + "AggregatedBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_AggregatedBandwidth_tags_1, + sizeof(asn_DEF_AggregatedBandwidth_tags_1) + /sizeof(asn_DEF_AggregatedBandwidth_tags_1[0]), /* 1 */ + asn_DEF_AggregatedBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_AggregatedBandwidth_tags_1) + /sizeof(asn_DEF_AggregatedBandwidth_tags_1[0]), /* 1 */ + { &asn_OER_type_AggregatedBandwidth_constr_1, &asn_PER_type_AggregatedBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_AggregatedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/AggregatedBandwidth.h b/src/codec_utils/RRC/AggregatedBandwidth.h new file mode 100644 index 000000000..766e30bea --- /dev/null +++ b/src/codec_utils/RRC/AggregatedBandwidth.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AggregatedBandwidth_H_ +#define _AggregatedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum AggregatedBandwidth { + AggregatedBandwidth_mhz50 = 0, + AggregatedBandwidth_mhz100 = 1, + AggregatedBandwidth_mhz150 = 2, + AggregatedBandwidth_mhz200 = 3, + AggregatedBandwidth_mhz250 = 4, + AggregatedBandwidth_mhz300 = 5, + AggregatedBandwidth_mhz350 = 6, + AggregatedBandwidth_mhz400 = 7, + AggregatedBandwidth_mhz450 = 8, + AggregatedBandwidth_mhz500 = 9, + AggregatedBandwidth_mhz550 = 10, + AggregatedBandwidth_mhz600 = 11, + AggregatedBandwidth_mhz650 = 12, + AggregatedBandwidth_mhz700 = 13, + AggregatedBandwidth_mhz750 = 14, + AggregatedBandwidth_mhz800 = 15 +} e_AggregatedBandwidth; + +/* AggregatedBandwidth */ +typedef long AggregatedBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AggregatedBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AggregatedBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_AggregatedBandwidth_specs_1; +asn_struct_free_f AggregatedBandwidth_free; +asn_struct_print_f AggregatedBandwidth_print; +asn_constr_check_f AggregatedBandwidth_constraint; +ber_type_decoder_f AggregatedBandwidth_decode_ber; +der_type_encoder_f AggregatedBandwidth_encode_der; +xer_type_decoder_f AggregatedBandwidth_decode_xer; +xer_type_encoder_f AggregatedBandwidth_encode_xer; +oer_type_decoder_f AggregatedBandwidth_decode_oer; +oer_type_encoder_f AggregatedBandwidth_encode_oer; +per_type_decoder_f AggregatedBandwidth_decode_uper; +per_type_encoder_f AggregatedBandwidth_encode_uper; +per_type_decoder_f AggregatedBandwidth_decode_aper; +per_type_encoder_f AggregatedBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AggregatedBandwidth_H_ */ +#include diff --git a/src/codec_utils/RRC/Alpha.c b/src/codec_utils/RRC/Alpha.c new file mode 100644 index 000000000..a520cbeef --- /dev/null +++ b/src/codec_utils/RRC/Alpha.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Alpha.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Alpha_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_Alpha_specs_1 = { + asn_MAP_Alpha_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_Alpha_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Alpha = { + "Alpha", + "Alpha", + &asn_OP_NativeEnumerated, + asn_DEF_Alpha_tags_1, + sizeof(asn_DEF_Alpha_tags_1) + /sizeof(asn_DEF_Alpha_tags_1[0]), /* 1 */ + asn_DEF_Alpha_tags_1, /* Same as above */ + sizeof(asn_DEF_Alpha_tags_1) + /sizeof(asn_DEF_Alpha_tags_1[0]), /* 1 */ + { &asn_OER_type_Alpha_constr_1, &asn_PER_type_Alpha_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Alpha_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Alpha.h b/src/codec_utils/RRC/Alpha.h new file mode 100644 index 000000000..551feeca0 --- /dev/null +++ b/src/codec_utils/RRC/Alpha.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Alpha_H_ +#define _Alpha_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Alpha { + Alpha_alpha0 = 0, + Alpha_alpha04 = 1, + Alpha_alpha05 = 2, + Alpha_alpha06 = 3, + Alpha_alpha07 = 4, + Alpha_alpha08 = 5, + Alpha_alpha09 = 6, + Alpha_alpha1 = 7 +} e_Alpha; + +/* Alpha */ +typedef long Alpha_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Alpha_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Alpha; +extern const asn_INTEGER_specifics_t asn_SPC_Alpha_specs_1; +asn_struct_free_f Alpha_free; +asn_struct_print_f Alpha_print; +asn_constr_check_f Alpha_constraint; +ber_type_decoder_f Alpha_decode_ber; +der_type_encoder_f Alpha_encode_der; +xer_type_decoder_f Alpha_decode_xer; +xer_type_encoder_f Alpha_encode_xer; +oer_type_decoder_f Alpha_decode_oer; +oer_type_encoder_f Alpha_encode_oer; +per_type_decoder_f Alpha_decode_uper; +per_type_encoder_f Alpha_encode_uper; +per_type_decoder_f Alpha_decode_aper; +per_type_encoder_f Alpha_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Alpha_H_ */ +#include diff --git a/src/codec_utils/RRC/BCCH-BCH-Message.c b/src/codec_utils/RRC/BCCH-BCH-Message.c new file mode 100644 index 000000000..b03d379a5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BCCH-BCH-Message.h" + +static asn_TYPE_member_t asn_MBR_BCCH_BCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BCCH_BCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_BCCH_BCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_BCCH_BCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BCCH_BCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_BCCH_BCH_Message_specs_1 = { + sizeof(struct BCCH_BCH_Message), + offsetof(struct BCCH_BCH_Message, _asn_ctx), + asn_MAP_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_BCCH_BCH_Message = { + "BCCH-BCH-Message", + "BCCH-BCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_BCCH_BCH_Message_tags_1, + sizeof(asn_DEF_BCCH_BCH_Message_tags_1) + /sizeof(asn_DEF_BCCH_BCH_Message_tags_1[0]), /* 1 */ + asn_DEF_BCCH_BCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_BCCH_BCH_Message_tags_1) + /sizeof(asn_DEF_BCCH_BCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BCCH_BCH_Message_1, + 1, /* Elements count */ + &asn_SPC_BCCH_BCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BCCH-BCH-Message.h b/src/codec_utils/RRC/BCCH-BCH-Message.h new file mode 100644 index 000000000..882ef5e5a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BCCH_BCH_Message_H_ +#define _BCCH_BCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "BCCH-BCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BCCH-BCH-Message */ +typedef struct BCCH_BCH_Message { + BCCH_BCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BCCH_BCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BCCH_BCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _BCCH_BCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/BCCH-BCH-MessageType.c b/src/codec_utils/RRC/BCCH-BCH-MessageType.c new file mode 100644 index 000000000..7723650bf --- /dev/null +++ b/src/codec_utils/RRC/BCCH-BCH-MessageType.c @@ -0,0 +1,94 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BCCH-BCH-MessageType.h" + +#include "MIB.h" +static asn_oer_constraints_t asn_OER_type_BCCH_BCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_messageClassExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_3 = { + sizeof(struct BCCH_BCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_3 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_3, + sizeof(asn_DEF_messageClassExtension_tags_3) + /sizeof(asn_DEF_messageClassExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_3) + /sizeof(asn_DEF_messageClassExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BCCH_BCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct BCCH_BCH_MessageType, choice.mib), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mib" + }, + { ATF_POINTER, 0, offsetof(struct BCCH_BCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BCCH_BCH_MessageType_specs_1 = { + sizeof(struct BCCH_BCH_MessageType), + offsetof(struct BCCH_BCH_MessageType, _asn_ctx), + offsetof(struct BCCH_BCH_MessageType, present), + sizeof(((struct BCCH_BCH_MessageType *)0)->present), + asn_MAP_BCCH_BCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_BCCH_BCH_MessageType_constr_1, &asn_PER_type_BCCH_BCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_BCCH_BCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_BCCH_BCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BCCH-BCH-MessageType.h b/src/codec_utils/RRC/BCCH-BCH-MessageType.h new file mode 100644 index 000000000..c5e1fa648 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BCCH_BCH_MessageType_H_ +#define _BCCH_BCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BCCH_BCH_MessageType_PR { + BCCH_BCH_MessageType_PR_NOTHING, /* No components present */ + BCCH_BCH_MessageType_PR_mib, + BCCH_BCH_MessageType_PR_messageClassExtension +} BCCH_BCH_MessageType_PR; + +/* Forward declarations */ +struct MIB; + +/* BCCH-BCH-MessageType */ +typedef struct BCCH_BCH_MessageType { + BCCH_BCH_MessageType_PR present; + union BCCH_BCH_MessageType_u { + struct MIB *mib; + struct 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; +} BCCH_BCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BCCH_BCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_BCCH_BCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_BCCH_BCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_BCCH_BCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BCCH_BCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/BCCH-Config.c b/src/codec_utils/RRC/BCCH-Config.c new file mode 100644 index 000000000..f25a05625 --- /dev/null +++ b/src/codec_utils/RRC/BCCH-Config.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BCCH-Config.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_modificationPeriodCoeff_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_modificationPeriodCoeff_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" } +}; +static const unsigned int asn_MAP_modificationPeriodCoeff_enum2value_2[] = { + 3, /* n16(3) */ + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_modificationPeriodCoeff_specs_2 = { + asn_MAP_modificationPeriodCoeff_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_modificationPeriodCoeff_2 = { + "modificationPeriodCoeff", + "modificationPeriodCoeff", + &asn_OP_NativeEnumerated, + asn_DEF_modificationPeriodCoeff_tags_2, + sizeof(asn_DEF_modificationPeriodCoeff_tags_2) + /sizeof(asn_DEF_modificationPeriodCoeff_tags_2[0]) - 1, /* 1 */ + asn_DEF_modificationPeriodCoeff_tags_2, /* Same as above */ + sizeof(asn_DEF_modificationPeriodCoeff_tags_2) + /sizeof(asn_DEF_modificationPeriodCoeff_tags_2[0]), /* 2 */ + { &asn_OER_type_modificationPeriodCoeff_constr_2, &asn_PER_type_modificationPeriodCoeff_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_modificationPeriodCoeff_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BCCH_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BCCH_Config, modificationPeriodCoeff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_modificationPeriodCoeff_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "modificationPeriodCoeff" + }, +}; +static const ber_tlv_tag_t asn_DEF_BCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* modificationPeriodCoeff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BCCH_Config_specs_1 = { + sizeof(struct BCCH_Config), + offsetof(struct BCCH_Config, _asn_ctx), + asn_MAP_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_BCCH_Config = { + "BCCH-Config", + "BCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_BCCH_Config_tags_1, + sizeof(asn_DEF_BCCH_Config_tags_1) + /sizeof(asn_DEF_BCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_BCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_BCCH_Config_tags_1) + /sizeof(asn_DEF_BCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BCCH_Config_1, + 1, /* Elements count */ + &asn_SPC_BCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BCCH-Config.h b/src/codec_utils/RRC/BCCH-Config.h new file mode 100644 index 000000000..1144d0eb6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BCCH_Config_H_ +#define _BCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BCCH_Config__modificationPeriodCoeff { + BCCH_Config__modificationPeriodCoeff_n2 = 0, + BCCH_Config__modificationPeriodCoeff_n4 = 1, + BCCH_Config__modificationPeriodCoeff_n8 = 2, + BCCH_Config__modificationPeriodCoeff_n16 = 3 +} e_BCCH_Config__modificationPeriodCoeff; + +/* BCCH-Config */ +typedef struct BCCH_Config { + long modificationPeriodCoeff; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BCCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_modificationPeriodCoeff_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_BCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_BCCH_Config_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BCCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/BCCH-DL-SCH-Message.c b/src/codec_utils/RRC/BCCH-DL-SCH-Message.c new file mode 100644 index 000000000..a1c6fc497 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BCCH-DL-SCH-Message.h" + +static asn_TYPE_member_t asn_MBR_BCCH_DL_SCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BCCH_DL_SCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_BCCH_DL_SCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_BCCH_DL_SCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_BCCH_DL_SCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_BCCH_DL_SCH_Message_specs_1 = { + sizeof(struct BCCH_DL_SCH_Message), + offsetof(struct BCCH_DL_SCH_Message, _asn_ctx), + asn_MAP_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_BCCH_DL_SCH_Message = { + "BCCH-DL-SCH-Message", + "BCCH-DL-SCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_BCCH_DL_SCH_Message_tags_1, + sizeof(asn_DEF_BCCH_DL_SCH_Message_tags_1) + /sizeof(asn_DEF_BCCH_DL_SCH_Message_tags_1[0]), /* 1 */ + asn_DEF_BCCH_DL_SCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_BCCH_DL_SCH_Message_tags_1) + /sizeof(asn_DEF_BCCH_DL_SCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BCCH_DL_SCH_Message_1, + 1, /* Elements count */ + &asn_SPC_BCCH_DL_SCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BCCH-DL-SCH-Message.h b/src/codec_utils/RRC/BCCH-DL-SCH-Message.h new file mode 100644 index 000000000..26db9fb6a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BCCH_DL_SCH_Message_H_ +#define _BCCH_DL_SCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "BCCH-DL-SCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BCCH-DL-SCH-Message */ +typedef struct BCCH_DL_SCH_Message { + BCCH_DL_SCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BCCH_DL_SCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BCCH_DL_SCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _BCCH_DL_SCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/BCCH-DL-SCH-MessageType.c b/src/codec_utils/RRC/BCCH-DL-SCH-MessageType.c new file mode 100644 index 000000000..a82a42500 --- /dev/null +++ b/src/codec_utils/RRC/BCCH-DL-SCH-MessageType.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BCCH-DL-SCH-MessageType.h" + +#include "SystemInformation.h" +#include "SIB1.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_BCCH_DL_SCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct BCCH_DL_SCH_MessageType__c1, choice.systemInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SystemInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformation" + }, + { ATF_POINTER, 0, offsetof(struct BCCH_DL_SCH_MessageType__c1, choice.systemInformationBlockType1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformationBlockType1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_c1_specs_2 = { + sizeof(struct BCCH_DL_SCH_MessageType__c1), + offsetof(struct BCCH_DL_SCH_MessageType__c1, _asn_ctx), + offsetof(struct BCCH_DL_SCH_MessageType__c1, present), + sizeof(((struct BCCH_DL_SCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 2, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_5 = { + sizeof(struct BCCH_DL_SCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_5 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_5, + sizeof(asn_DEF_messageClassExtension_tags_5) + /sizeof(asn_DEF_messageClassExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_5) + /sizeof(asn_DEF_messageClassExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BCCH_DL_SCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct BCCH_DL_SCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct BCCH_DL_SCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BCCH_DL_SCH_MessageType_specs_1 = { + sizeof(struct BCCH_DL_SCH_MessageType), + offsetof(struct BCCH_DL_SCH_MessageType, _asn_ctx), + offsetof(struct BCCH_DL_SCH_MessageType, present), + sizeof(((struct BCCH_DL_SCH_MessageType *)0)->present), + asn_MAP_BCCH_DL_SCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_BCCH_DL_SCH_MessageType_constr_1, &asn_PER_type_BCCH_DL_SCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_BCCH_DL_SCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_BCCH_DL_SCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BCCH-DL-SCH-MessageType.h b/src/codec_utils/RRC/BCCH-DL-SCH-MessageType.h new file mode 100644 index 000000000..7d07ba62e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BCCH_DL_SCH_MessageType_H_ +#define _BCCH_DL_SCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BCCH_DL_SCH_MessageType_PR { + BCCH_DL_SCH_MessageType_PR_NOTHING, /* No components present */ + BCCH_DL_SCH_MessageType_PR_c1, + BCCH_DL_SCH_MessageType_PR_messageClassExtension +} BCCH_DL_SCH_MessageType_PR; +typedef enum BCCH_DL_SCH_MessageType__c1_PR { + BCCH_DL_SCH_MessageType__c1_PR_NOTHING, /* No components present */ + BCCH_DL_SCH_MessageType__c1_PR_systemInformation, + BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1 +} BCCH_DL_SCH_MessageType__c1_PR; + +/* Forward declarations */ +struct SystemInformation; +struct SIB1; + +/* BCCH-DL-SCH-MessageType */ +typedef struct BCCH_DL_SCH_MessageType { + BCCH_DL_SCH_MessageType_PR present; + union BCCH_DL_SCH_MessageType_u { + struct BCCH_DL_SCH_MessageType__c1 { + BCCH_DL_SCH_MessageType__c1_PR present; + union BCCH_DL_SCH_MessageType__c1_u { + struct SystemInformation *systemInformation; + struct SIB1 *systemInformationBlockType1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct 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; +} BCCH_DL_SCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BCCH_DL_SCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_BCCH_DL_SCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_BCCH_DL_SCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_BCCH_DL_SCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BCCH_DL_SCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/BFR-CSIRS-Resource.c b/src/codec_utils/RRC/BFR-CSIRS-Resource.c new file mode 100644 index 000000000..ef3763b6e --- /dev/null +++ b/src/codec_utils/RRC/BFR-CSIRS-Resource.c @@ -0,0 +1,217 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_memb_Member_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..511) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ra_OccasionList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ra_OccasionList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_PreambleIndex_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_ra_OccasionList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_4, &asn_PER_memb_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ra_OccasionList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ra_OccasionList_specs_3 = { + sizeof(struct BFR_CSIRS_Resource__ra_OccasionList), + offsetof(struct 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_ra_OccasionList_3 = { + "ra-OccasionList", + "ra-OccasionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ra_OccasionList_tags_3, + sizeof(asn_DEF_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ra_OccasionList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ra_OccasionList_tags_3, /* Same as above */ + sizeof(asn_DEF_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ra_OccasionList_tags_3[0]), /* 2 */ + { &asn_OER_type_ra_OccasionList_constr_3, &asn_PER_type_ra_OccasionList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ra_OccasionList_3, + 1, /* Single element */ + &asn_SPC_ra_OccasionList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BFR_CSIRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BFR_CSIRS_Resource, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_POINTER, 2, offsetof(struct BFR_CSIRS_Resource, ra_OccasionList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ra_OccasionList_3, + 0, + { &asn_OER_memb_ra_OccasionList_constr_3, &asn_PER_memb_ra_OccasionList_constr_3, memb_ra_OccasionList_constraint_1 }, + 0, 0, /* No default value */ + "ra-OccasionList" + }, + { ATF_POINTER, 1, offsetof(struct BFR_CSIRS_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_PreambleIndex_constr_5, &asn_PER_memb_ra_PreambleIndex_constr_5, memb_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const int asn_MAP_BFR_CSIRS_Resource_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BFR_CSIRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BFR_CSIRS_Resource_specs_1 = { + sizeof(struct BFR_CSIRS_Resource), + offsetof(struct BFR_CSIRS_Resource, _asn_ctx), + asn_MAP_BFR_CSIRS_Resource_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BFR_CSIRS_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BFR_CSIRS_Resource = { + "BFR-CSIRS-Resource", + "BFR-CSIRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_BFR_CSIRS_Resource_tags_1, + sizeof(asn_DEF_BFR_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_BFR_CSIRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_BFR_CSIRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_BFR_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_BFR_CSIRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BFR_CSIRS_Resource_1, + 3, /* Elements count */ + &asn_SPC_BFR_CSIRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BFR-CSIRS-Resource.h b/src/codec_utils/RRC/BFR-CSIRS-Resource.h new file mode 100644 index 000000000..e0e6943b1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BFR_CSIRS_Resource_H_ +#define _BFR_CSIRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "NZP-CSI-RS-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BFR-CSIRS-Resource */ +typedef struct BFR_CSIRS_Resource { + NZP_CSI_RS_ResourceId_t csi_RS; + struct 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; +} BFR_CSIRS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BFR_CSIRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_BFR_CSIRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_BFR_CSIRS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BFR_CSIRS_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/BFR-SSB-Resource.c b/src/codec_utils/RRC/BFR-SSB-Resource.c new file mode 100644 index 000000000..1b186df19 --- /dev/null +++ b/src/codec_utils/RRC/BFR-SSB-Resource.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BFR-SSB-Resource.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_ra_PreambleIndex_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_BFR_SSB_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BFR_SSB_Resource, ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_NOFLAGS, 0, offsetof(struct BFR_SSB_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_PreambleIndex_constr_3, &asn_PER_memb_ra_PreambleIndex_constr_3, memb_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_BFR_SSB_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BFR_SSB_Resource_specs_1 = { + sizeof(struct BFR_SSB_Resource), + offsetof(struct BFR_SSB_Resource, _asn_ctx), + asn_MAP_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_BFR_SSB_Resource = { + "BFR-SSB-Resource", + "BFR-SSB-Resource", + &asn_OP_SEQUENCE, + asn_DEF_BFR_SSB_Resource_tags_1, + sizeof(asn_DEF_BFR_SSB_Resource_tags_1) + /sizeof(asn_DEF_BFR_SSB_Resource_tags_1[0]), /* 1 */ + asn_DEF_BFR_SSB_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_BFR_SSB_Resource_tags_1) + /sizeof(asn_DEF_BFR_SSB_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BFR_SSB_Resource_1, + 2, /* Elements count */ + &asn_SPC_BFR_SSB_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BFR-SSB-Resource.h b/src/codec_utils/RRC/BFR-SSB-Resource.h new file mode 100644 index 000000000..c3abbd4ab --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BFR_SSB_Resource_H_ +#define _BFR_SSB_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BFR-SSB-Resource */ +typedef struct BFR_SSB_Resource { + 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; +} BFR_SSB_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BFR_SSB_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_BFR_SSB_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_BFR_SSB_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BFR_SSB_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/BSR-Config.c b/src/codec_utils/RRC/BSR-Config.c new file mode 100644 index 000000000..3d3c2d032 --- /dev/null +++ b/src/codec_utils/RRC/BSR-Config.c @@ -0,0 +1,287 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_periodicBSR_Timer_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_retxBSR_Timer_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_logicalChannelSR_DelayTimer_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_periodicBSR_Timer_specs_2 = { + asn_MAP_periodicBSR_Timer_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_periodicBSR_Timer_2 = { + "periodicBSR-Timer", + "periodicBSR-Timer", + &asn_OP_NativeEnumerated, + asn_DEF_periodicBSR_Timer_tags_2, + sizeof(asn_DEF_periodicBSR_Timer_tags_2) + /sizeof(asn_DEF_periodicBSR_Timer_tags_2[0]) - 1, /* 1 */ + asn_DEF_periodicBSR_Timer_tags_2, /* Same as above */ + sizeof(asn_DEF_periodicBSR_Timer_tags_2) + /sizeof(asn_DEF_periodicBSR_Timer_tags_2[0]), /* 2 */ + { &asn_OER_type_periodicBSR_Timer_constr_2, &asn_PER_type_periodicBSR_Timer_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_periodicBSR_Timer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_retxBSR_Timer_specs_19 = { + asn_MAP_retxBSR_Timer_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_retxBSR_Timer_19 = { + "retxBSR-Timer", + "retxBSR-Timer", + &asn_OP_NativeEnumerated, + asn_DEF_retxBSR_Timer_tags_19, + sizeof(asn_DEF_retxBSR_Timer_tags_19) + /sizeof(asn_DEF_retxBSR_Timer_tags_19[0]) - 1, /* 1 */ + asn_DEF_retxBSR_Timer_tags_19, /* Same as above */ + sizeof(asn_DEF_retxBSR_Timer_tags_19) + /sizeof(asn_DEF_retxBSR_Timer_tags_19[0]), /* 2 */ + { &asn_OER_type_retxBSR_Timer_constr_19, &asn_PER_type_retxBSR_Timer_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_retxBSR_Timer_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_logicalChannelSR_DelayTimer_specs_36 = { + asn_MAP_logicalChannelSR_DelayTimer_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_logicalChannelSR_DelayTimer_36 = { + "logicalChannelSR-DelayTimer", + "logicalChannelSR-DelayTimer", + &asn_OP_NativeEnumerated, + asn_DEF_logicalChannelSR_DelayTimer_tags_36, + sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_36) + /sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_36[0]) - 1, /* 1 */ + asn_DEF_logicalChannelSR_DelayTimer_tags_36, /* Same as above */ + sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_36) + /sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_36[0]), /* 2 */ + { &asn_OER_type_logicalChannelSR_DelayTimer_constr_36, &asn_PER_type_logicalChannelSR_DelayTimer_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_logicalChannelSR_DelayTimer_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BSR_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BSR_Config, periodicBSR_Timer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_periodicBSR_Timer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicBSR-Timer" + }, + { ATF_NOFLAGS, 0, offsetof(struct BSR_Config, retxBSR_Timer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_retxBSR_Timer_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "retxBSR-Timer" + }, + { ATF_POINTER, 1, offsetof(struct BSR_Config, logicalChannelSR_DelayTimer), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_logicalChannelSR_DelayTimer_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-DelayTimer" + }, +}; +static const int asn_MAP_BSR_Config_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_BSR_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BSR_Config_specs_1 = { + sizeof(struct BSR_Config), + offsetof(struct BSR_Config, _asn_ctx), + asn_MAP_BSR_Config_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BSR_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BSR_Config = { + "BSR-Config", + "BSR-Config", + &asn_OP_SEQUENCE, + asn_DEF_BSR_Config_tags_1, + sizeof(asn_DEF_BSR_Config_tags_1) + /sizeof(asn_DEF_BSR_Config_tags_1[0]), /* 1 */ + asn_DEF_BSR_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_BSR_Config_tags_1) + /sizeof(asn_DEF_BSR_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BSR_Config_1, + 3, /* Elements count */ + &asn_SPC_BSR_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BSR-Config.h b/src/codec_utils/RRC/BSR-Config.h new file mode 100644 index 000000000..d6c2d89b1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BSR_Config_H_ +#define _BSR_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BSR_Config__periodicBSR_Timer { + BSR_Config__periodicBSR_Timer_sf1 = 0, + BSR_Config__periodicBSR_Timer_sf5 = 1, + BSR_Config__periodicBSR_Timer_sf10 = 2, + BSR_Config__periodicBSR_Timer_sf16 = 3, + BSR_Config__periodicBSR_Timer_sf20 = 4, + BSR_Config__periodicBSR_Timer_sf32 = 5, + BSR_Config__periodicBSR_Timer_sf40 = 6, + BSR_Config__periodicBSR_Timer_sf64 = 7, + BSR_Config__periodicBSR_Timer_sf80 = 8, + BSR_Config__periodicBSR_Timer_sf128 = 9, + BSR_Config__periodicBSR_Timer_sf160 = 10, + BSR_Config__periodicBSR_Timer_sf320 = 11, + BSR_Config__periodicBSR_Timer_sf640 = 12, + BSR_Config__periodicBSR_Timer_sf1280 = 13, + BSR_Config__periodicBSR_Timer_sf2560 = 14, + BSR_Config__periodicBSR_Timer_infinity = 15 +} e_BSR_Config__periodicBSR_Timer; +typedef enum BSR_Config__retxBSR_Timer { + BSR_Config__retxBSR_Timer_sf10 = 0, + BSR_Config__retxBSR_Timer_sf20 = 1, + BSR_Config__retxBSR_Timer_sf40 = 2, + BSR_Config__retxBSR_Timer_sf80 = 3, + BSR_Config__retxBSR_Timer_sf160 = 4, + BSR_Config__retxBSR_Timer_sf320 = 5, + BSR_Config__retxBSR_Timer_sf640 = 6, + BSR_Config__retxBSR_Timer_sf1280 = 7, + BSR_Config__retxBSR_Timer_sf2560 = 8, + BSR_Config__retxBSR_Timer_sf5120 = 9, + BSR_Config__retxBSR_Timer_sf10240 = 10, + BSR_Config__retxBSR_Timer_spare5 = 11, + BSR_Config__retxBSR_Timer_spare4 = 12, + BSR_Config__retxBSR_Timer_spare3 = 13, + BSR_Config__retxBSR_Timer_spare2 = 14, + BSR_Config__retxBSR_Timer_spare1 = 15 +} e_BSR_Config__retxBSR_Timer; +typedef enum BSR_Config__logicalChannelSR_DelayTimer { + BSR_Config__logicalChannelSR_DelayTimer_sf20 = 0, + BSR_Config__logicalChannelSR_DelayTimer_sf40 = 1, + BSR_Config__logicalChannelSR_DelayTimer_sf64 = 2, + BSR_Config__logicalChannelSR_DelayTimer_sf128 = 3, + BSR_Config__logicalChannelSR_DelayTimer_sf512 = 4, + BSR_Config__logicalChannelSR_DelayTimer_sf1024 = 5, + BSR_Config__logicalChannelSR_DelayTimer_sf2560 = 6, + BSR_Config__logicalChannelSR_DelayTimer_spare1 = 7 +} e_BSR_Config__logicalChannelSR_DelayTimer; + +/* BSR-Config */ +typedef struct 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; +} BSR_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_periodicBSR_Timer_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_retxBSR_Timer_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_logicalChannelSR_DelayTimer_36; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BSR_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_BSR_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_BSR_Config_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BSR_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-Downlink.c b/src/codec_utils/RRC/BWP-Downlink.c new file mode 100644 index 000000000..ab79dece4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-Downlink.h" + +#include "BWP-DownlinkCommon.h" +#include "BWP-DownlinkDedicated.h" +asn_TYPE_member_t asn_MBR_BWP_Downlink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_Downlink, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_POINTER, 2, offsetof(struct BWP_Downlink, bwp_Common), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Common" + }, + { ATF_POINTER, 1, offsetof(struct BWP_Downlink, bwp_Dedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_DownlinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Dedicated" + }, +}; +static const int asn_MAP_BWP_Downlink_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BWP_Downlink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_Downlink_specs_1 = { + sizeof(struct BWP_Downlink), + offsetof(struct BWP_Downlink, _asn_ctx), + asn_MAP_BWP_Downlink_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BWP_Downlink_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_Downlink = { + "BWP-Downlink", + "BWP-Downlink", + &asn_OP_SEQUENCE, + asn_DEF_BWP_Downlink_tags_1, + sizeof(asn_DEF_BWP_Downlink_tags_1) + /sizeof(asn_DEF_BWP_Downlink_tags_1[0]), /* 1 */ + asn_DEF_BWP_Downlink_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_Downlink_tags_1) + /sizeof(asn_DEF_BWP_Downlink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_Downlink_1, + 3, /* Elements count */ + &asn_SPC_BWP_Downlink_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-Downlink.h b/src/codec_utils/RRC/BWP-Downlink.h new file mode 100644 index 000000000..cef0adf49 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_Downlink_H_ +#define _BWP_Downlink_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BWP_DownlinkCommon; +struct BWP_DownlinkDedicated; + +/* BWP-Downlink */ +typedef struct BWP_Downlink { + BWP_Id_t bwp_Id; + struct BWP_DownlinkCommon *bwp_Common; /* OPTIONAL */ + struct 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; +} BWP_Downlink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_Downlink; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_Downlink_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_Downlink_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_Downlink_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-DownlinkCommon.c b/src/codec_utils/RRC/BWP-DownlinkCommon.c new file mode 100644 index 000000000..d88e7cb88 --- /dev/null +++ b/src/codec_utils/RRC/BWP-DownlinkCommon.c @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-DownlinkCommon.h" + +#include "PDCCH-ConfigCommon.h" +#include "PDSCH-ConfigCommon.h" +static asn_oer_constraints_t asn_OER_type_pdcch_ConfigCommon_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdcch_ConfigCommon_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_oer_constraints_t asn_OER_type_pdsch_ConfigCommon_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_ConfigCommon_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_pdcch_ConfigCommon_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon__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 BWP_DownlinkCommon__pdcch_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdcch_ConfigCommon_tag2el_3[] = { + { (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_pdcch_ConfigCommon_specs_3 = { + sizeof(struct BWP_DownlinkCommon__pdcch_ConfigCommon), + offsetof(struct BWP_DownlinkCommon__pdcch_ConfigCommon, _asn_ctx), + offsetof(struct BWP_DownlinkCommon__pdcch_ConfigCommon, present), + sizeof(((struct BWP_DownlinkCommon__pdcch_ConfigCommon *)0)->present), + asn_MAP_pdcch_ConfigCommon_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_pdcch_ConfigCommon_3 = { + "pdcch-ConfigCommon", + "pdcch-ConfigCommon", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdcch_ConfigCommon_constr_3, &asn_PER_type_pdcch_ConfigCommon_constr_3, CHOICE_constraint }, + asn_MBR_pdcch_ConfigCommon_3, + 2, /* Elements count */ + &asn_SPC_pdcch_ConfigCommon_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdsch_ConfigCommon_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon__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 BWP_DownlinkCommon__pdsch_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdsch_ConfigCommon_tag2el_6[] = { + { (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_pdsch_ConfigCommon_specs_6 = { + sizeof(struct BWP_DownlinkCommon__pdsch_ConfigCommon), + offsetof(struct BWP_DownlinkCommon__pdsch_ConfigCommon, _asn_ctx), + offsetof(struct BWP_DownlinkCommon__pdsch_ConfigCommon, present), + sizeof(((struct BWP_DownlinkCommon__pdsch_ConfigCommon *)0)->present), + asn_MAP_pdsch_ConfigCommon_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_pdsch_ConfigCommon_6 = { + "pdsch-ConfigCommon", + "pdsch-ConfigCommon", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdsch_ConfigCommon_constr_6, &asn_PER_type_pdsch_ConfigCommon_constr_6, CHOICE_constraint }, + asn_MBR_pdsch_ConfigCommon_6, + 2, /* Elements count */ + &asn_SPC_pdsch_ConfigCommon_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BWP_DownlinkCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon, genericParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "genericParameters" + }, + { ATF_POINTER, 2, offsetof(struct BWP_DownlinkCommon, pdcch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdcch_ConfigCommon_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigCommon" + }, + { ATF_POINTER, 1, offsetof(struct BWP_DownlinkCommon, pdsch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdsch_ConfigCommon_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ConfigCommon" + }, +}; +static const int asn_MAP_BWP_DownlinkCommon_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BWP_DownlinkCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_DownlinkCommon_specs_1 = { + sizeof(struct BWP_DownlinkCommon), + offsetof(struct BWP_DownlinkCommon, _asn_ctx), + asn_MAP_BWP_DownlinkCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BWP_DownlinkCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkCommon = { + "BWP-DownlinkCommon", + "BWP-DownlinkCommon", + &asn_OP_SEQUENCE, + asn_DEF_BWP_DownlinkCommon_tags_1, + sizeof(asn_DEF_BWP_DownlinkCommon_tags_1) + /sizeof(asn_DEF_BWP_DownlinkCommon_tags_1[0]), /* 1 */ + asn_DEF_BWP_DownlinkCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_DownlinkCommon_tags_1) + /sizeof(asn_DEF_BWP_DownlinkCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_DownlinkCommon_1, + 3, /* Elements count */ + &asn_SPC_BWP_DownlinkCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-DownlinkCommon.h b/src/codec_utils/RRC/BWP-DownlinkCommon.h new file mode 100644 index 000000000..227a923c1 --- /dev/null +++ b/src/codec_utils/RRC/BWP-DownlinkCommon.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_DownlinkCommon_H_ +#define _BWP_DownlinkCommon_H_ + + +#include + +/* Including external dependencies */ +#include "BWP.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BWP_DownlinkCommon__pdcch_ConfigCommon_PR { + BWP_DownlinkCommon__pdcch_ConfigCommon_PR_NOTHING, /* No components present */ + BWP_DownlinkCommon__pdcch_ConfigCommon_PR_release, + BWP_DownlinkCommon__pdcch_ConfigCommon_PR_setup +} BWP_DownlinkCommon__pdcch_ConfigCommon_PR; +typedef enum BWP_DownlinkCommon__pdsch_ConfigCommon_PR { + BWP_DownlinkCommon__pdsch_ConfigCommon_PR_NOTHING, /* No components present */ + BWP_DownlinkCommon__pdsch_ConfigCommon_PR_release, + BWP_DownlinkCommon__pdsch_ConfigCommon_PR_setup +} BWP_DownlinkCommon__pdsch_ConfigCommon_PR; + +/* Forward declarations */ +struct PDCCH_ConfigCommon; +struct PDSCH_ConfigCommon; + +/* BWP-DownlinkCommon */ +typedef struct BWP_DownlinkCommon { + BWP_t genericParameters; + struct BWP_DownlinkCommon__pdcch_ConfigCommon { + BWP_DownlinkCommon__pdcch_ConfigCommon_PR present; + union BWP_DownlinkCommon__pdcch_ConfigCommon_u { + NULL_t release; + struct PDCCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdcch_ConfigCommon; + struct BWP_DownlinkCommon__pdsch_ConfigCommon { + BWP_DownlinkCommon__pdsch_ConfigCommon_PR present; + union BWP_DownlinkCommon__pdsch_ConfigCommon_u { + NULL_t release; + struct PDSCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_ConfigCommon; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BWP_DownlinkCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_DownlinkCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_DownlinkCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_DownlinkCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-DownlinkDedicated.c b/src/codec_utils/RRC/BWP-DownlinkDedicated.c new file mode 100644 index 000000000..84a843a84 --- /dev/null +++ b/src/codec_utils/RRC/BWP-DownlinkDedicated.c @@ -0,0 +1,314 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-DownlinkDedicated.h" + +#include "PDCCH-Config.h" +#include "PDSCH-Config.h" +#include "SPS-Config.h" +#include "RadioLinkMonitoringConfig.h" +static asn_oer_constraints_t asn_OER_type_pdcch_Config_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdcch_Config_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_pdsch_Config_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_Config_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_oer_constraints_t asn_OER_type_sps_Config_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_sps_Config_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_oer_constraints_t asn_OER_type_radioLinkMonitoringConfig_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_radioLinkMonitoringConfig_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_TYPE_member_t asn_MBR_pdcch_Config_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkDedicated__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 BWP_DownlinkDedicated__pdcch_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdcch_Config_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_pdcch_Config_specs_2 = { + sizeof(struct BWP_DownlinkDedicated__pdcch_Config), + offsetof(struct BWP_DownlinkDedicated__pdcch_Config, _asn_ctx), + offsetof(struct BWP_DownlinkDedicated__pdcch_Config, present), + sizeof(((struct BWP_DownlinkDedicated__pdcch_Config *)0)->present), + asn_MAP_pdcch_Config_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_pdcch_Config_2 = { + "pdcch-Config", + "pdcch-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdcch_Config_constr_2, &asn_PER_type_pdcch_Config_constr_2, CHOICE_constraint }, + asn_MBR_pdcch_Config_2, + 2, /* Elements count */ + &asn_SPC_pdcch_Config_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdsch_Config_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkDedicated__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 BWP_DownlinkDedicated__pdsch_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdsch_Config_tag2el_5[] = { + { (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_pdsch_Config_specs_5 = { + sizeof(struct BWP_DownlinkDedicated__pdsch_Config), + offsetof(struct BWP_DownlinkDedicated__pdsch_Config, _asn_ctx), + offsetof(struct BWP_DownlinkDedicated__pdsch_Config, present), + sizeof(((struct BWP_DownlinkDedicated__pdsch_Config *)0)->present), + asn_MAP_pdsch_Config_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_pdsch_Config_5 = { + "pdsch-Config", + "pdsch-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdsch_Config_constr_5, &asn_PER_type_pdsch_Config_constr_5, CHOICE_constraint }, + asn_MBR_pdsch_Config_5, + 2, /* Elements count */ + &asn_SPC_pdsch_Config_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sps_Config_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkDedicated__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 BWP_DownlinkDedicated__sps_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SPS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_sps_Config_tag2el_8[] = { + { (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_sps_Config_specs_8 = { + sizeof(struct BWP_DownlinkDedicated__sps_Config), + offsetof(struct BWP_DownlinkDedicated__sps_Config, _asn_ctx), + offsetof(struct BWP_DownlinkDedicated__sps_Config, present), + sizeof(((struct BWP_DownlinkDedicated__sps_Config *)0)->present), + asn_MAP_sps_Config_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_sps_Config_8 = { + "sps-Config", + "sps-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_sps_Config_constr_8, &asn_PER_type_sps_Config_constr_8, CHOICE_constraint }, + asn_MBR_sps_Config_8, + 2, /* Elements count */ + &asn_SPC_sps_Config_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_radioLinkMonitoringConfig_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkDedicated__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 BWP_DownlinkDedicated__radioLinkMonitoringConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadioLinkMonitoringConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_radioLinkMonitoringConfig_tag2el_11[] = { + { (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_radioLinkMonitoringConfig_specs_11 = { + sizeof(struct BWP_DownlinkDedicated__radioLinkMonitoringConfig), + offsetof(struct BWP_DownlinkDedicated__radioLinkMonitoringConfig, _asn_ctx), + offsetof(struct BWP_DownlinkDedicated__radioLinkMonitoringConfig, present), + sizeof(((struct BWP_DownlinkDedicated__radioLinkMonitoringConfig *)0)->present), + asn_MAP_radioLinkMonitoringConfig_tag2el_11, + 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_radioLinkMonitoringConfig_11 = { + "radioLinkMonitoringConfig", + "radioLinkMonitoringConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_radioLinkMonitoringConfig_constr_11, &asn_PER_type_radioLinkMonitoringConfig_constr_11, CHOICE_constraint }, + asn_MBR_radioLinkMonitoringConfig_11, + 2, /* Elements count */ + &asn_SPC_radioLinkMonitoringConfig_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BWP_DownlinkDedicated_1[] = { + { ATF_POINTER, 4, offsetof(struct BWP_DownlinkDedicated, pdcch_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdcch_Config_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-Config" + }, + { ATF_POINTER, 3, offsetof(struct BWP_DownlinkDedicated, pdsch_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdsch_Config_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-Config" + }, + { ATF_POINTER, 2, offsetof(struct BWP_DownlinkDedicated, sps_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_sps_Config_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sps-Config" + }, + { ATF_POINTER, 1, offsetof(struct BWP_DownlinkDedicated, radioLinkMonitoringConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_radioLinkMonitoringConfig_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioLinkMonitoringConfig" + }, +}; +static const int asn_MAP_BWP_DownlinkDedicated_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_BWP_DownlinkDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_DownlinkDedicated_specs_1 = { + sizeof(struct BWP_DownlinkDedicated), + offsetof(struct BWP_DownlinkDedicated, _asn_ctx), + asn_MAP_BWP_DownlinkDedicated_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_BWP_DownlinkDedicated_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkDedicated = { + "BWP-DownlinkDedicated", + "BWP-DownlinkDedicated", + &asn_OP_SEQUENCE, + asn_DEF_BWP_DownlinkDedicated_tags_1, + sizeof(asn_DEF_BWP_DownlinkDedicated_tags_1) + /sizeof(asn_DEF_BWP_DownlinkDedicated_tags_1[0]), /* 1 */ + asn_DEF_BWP_DownlinkDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_DownlinkDedicated_tags_1) + /sizeof(asn_DEF_BWP_DownlinkDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_DownlinkDedicated_1, + 4, /* Elements count */ + &asn_SPC_BWP_DownlinkDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-DownlinkDedicated.h b/src/codec_utils/RRC/BWP-DownlinkDedicated.h new file mode 100644 index 000000000..77f9b41e6 --- /dev/null +++ b/src/codec_utils/RRC/BWP-DownlinkDedicated.h @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_DownlinkDedicated_H_ +#define _BWP_DownlinkDedicated_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BWP_DownlinkDedicated__pdcch_Config_PR { + BWP_DownlinkDedicated__pdcch_Config_PR_NOTHING, /* No components present */ + BWP_DownlinkDedicated__pdcch_Config_PR_release, + BWP_DownlinkDedicated__pdcch_Config_PR_setup +} BWP_DownlinkDedicated__pdcch_Config_PR; +typedef enum BWP_DownlinkDedicated__pdsch_Config_PR { + BWP_DownlinkDedicated__pdsch_Config_PR_NOTHING, /* No components present */ + BWP_DownlinkDedicated__pdsch_Config_PR_release, + BWP_DownlinkDedicated__pdsch_Config_PR_setup +} BWP_DownlinkDedicated__pdsch_Config_PR; +typedef enum BWP_DownlinkDedicated__sps_Config_PR { + BWP_DownlinkDedicated__sps_Config_PR_NOTHING, /* No components present */ + BWP_DownlinkDedicated__sps_Config_PR_release, + BWP_DownlinkDedicated__sps_Config_PR_setup +} BWP_DownlinkDedicated__sps_Config_PR; +typedef enum BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR { + BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR_NOTHING, /* No components present */ + BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR_release, + BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR_setup +} BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR; + +/* Forward declarations */ +struct PDCCH_Config; +struct PDSCH_Config; +struct SPS_Config; +struct RadioLinkMonitoringConfig; + +/* BWP-DownlinkDedicated */ +typedef struct BWP_DownlinkDedicated { + struct BWP_DownlinkDedicated__pdcch_Config { + BWP_DownlinkDedicated__pdcch_Config_PR present; + union BWP_DownlinkDedicated__pdcch_Config_u { + NULL_t release; + struct PDCCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdcch_Config; + struct BWP_DownlinkDedicated__pdsch_Config { + BWP_DownlinkDedicated__pdsch_Config_PR present; + union BWP_DownlinkDedicated__pdsch_Config_u { + NULL_t release; + struct PDSCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_Config; + struct BWP_DownlinkDedicated__sps_Config { + BWP_DownlinkDedicated__sps_Config_PR present; + union BWP_DownlinkDedicated__sps_Config_u { + NULL_t release; + struct SPS_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sps_Config; + struct BWP_DownlinkDedicated__radioLinkMonitoringConfig { + BWP_DownlinkDedicated__radioLinkMonitoringConfig_PR present; + union BWP_DownlinkDedicated__radioLinkMonitoringConfig_u { + NULL_t release; + struct RadioLinkMonitoringConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *radioLinkMonitoringConfig; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BWP_DownlinkDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_DownlinkDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_DownlinkDedicated_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_DownlinkDedicated_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-Id.c b/src/codec_utils/RRC/BWP-Id.c new file mode 100644 index 000000000..0400a8ef5 --- /dev/null +++ b/src/codec_utils/RRC/BWP-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_BWP_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +asn_per_constraints_t asn_PER_type_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_BWP_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BWP_Id = { + "BWP-Id", + "BWP-Id", + &asn_OP_NativeInteger, + asn_DEF_BWP_Id_tags_1, + sizeof(asn_DEF_BWP_Id_tags_1) + /sizeof(asn_DEF_BWP_Id_tags_1[0]), /* 1 */ + asn_DEF_BWP_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_Id_tags_1) + /sizeof(asn_DEF_BWP_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_BWP_Id_constr_1, &asn_PER_type_BWP_Id_constr_1, BWP_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/BWP-Id.h b/src/codec_utils/RRC/BWP-Id.h new file mode 100644 index 000000000..fe2db7c60 --- /dev/null +++ b/src/codec_utils/RRC/BWP-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_Id_H_ +#define _BWP_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BWP-Id */ +typedef long BWP_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BWP_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BWP_Id; +asn_struct_free_f BWP_Id_free; +asn_struct_print_f BWP_Id_print; +asn_constr_check_f BWP_Id_constraint; +ber_type_decoder_f BWP_Id_decode_ber; +der_type_encoder_f BWP_Id_encode_der; +xer_type_decoder_f BWP_Id_decode_xer; +xer_type_encoder_f BWP_Id_encode_xer; +oer_type_decoder_f BWP_Id_decode_oer; +oer_type_encoder_f BWP_Id_encode_oer; +per_type_decoder_f BWP_Id_decode_uper; +per_type_encoder_f BWP_Id_encode_uper; +per_type_decoder_f BWP_Id_decode_aper; +per_type_encoder_f BWP_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-Uplink.c b/src/codec_utils/RRC/BWP-Uplink.c new file mode 100644 index 000000000..a929c6e08 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-Uplink.h" + +#include "BWP-UplinkCommon.h" +#include "BWP-UplinkDedicated.h" +asn_TYPE_member_t asn_MBR_BWP_Uplink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_Uplink, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_POINTER, 2, offsetof(struct BWP_Uplink, bwp_Common), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Common" + }, + { ATF_POINTER, 1, offsetof(struct BWP_Uplink, bwp_Dedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_UplinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Dedicated" + }, +}; +static const int asn_MAP_BWP_Uplink_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_BWP_Uplink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_Uplink_specs_1 = { + sizeof(struct BWP_Uplink), + offsetof(struct BWP_Uplink, _asn_ctx), + asn_MAP_BWP_Uplink_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BWP_Uplink_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_Uplink = { + "BWP-Uplink", + "BWP-Uplink", + &asn_OP_SEQUENCE, + asn_DEF_BWP_Uplink_tags_1, + sizeof(asn_DEF_BWP_Uplink_tags_1) + /sizeof(asn_DEF_BWP_Uplink_tags_1[0]), /* 1 */ + asn_DEF_BWP_Uplink_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_Uplink_tags_1) + /sizeof(asn_DEF_BWP_Uplink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_Uplink_1, + 3, /* Elements count */ + &asn_SPC_BWP_Uplink_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-Uplink.h b/src/codec_utils/RRC/BWP-Uplink.h new file mode 100644 index 000000000..610a84a65 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_Uplink_H_ +#define _BWP_Uplink_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BWP_UplinkCommon; +struct BWP_UplinkDedicated; + +/* BWP-Uplink */ +typedef struct BWP_Uplink { + BWP_Id_t bwp_Id; + struct BWP_UplinkCommon *bwp_Common; /* OPTIONAL */ + struct 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; +} BWP_Uplink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_Uplink; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_Uplink_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_Uplink_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_Uplink_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-UplinkCommon.c b/src/codec_utils/RRC/BWP-UplinkCommon.c new file mode 100644 index 000000000..6d4875f6d --- /dev/null +++ b/src/codec_utils/RRC/BWP-UplinkCommon.c @@ -0,0 +1,256 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-UplinkCommon.h" + +#include "RACH-ConfigCommon.h" +#include "PUSCH-ConfigCommon.h" +#include "PUCCH-ConfigCommon.h" +static asn_oer_constraints_t asn_OER_type_rach_ConfigCommon_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rach_ConfigCommon_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_oer_constraints_t asn_OER_type_pusch_ConfigCommon_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pusch_ConfigCommon_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_oer_constraints_t asn_OER_type_pucch_ConfigCommon_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pucch_ConfigCommon_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_TYPE_member_t asn_MBR_rach_ConfigCommon_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__rach_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_rach_ConfigCommon_tag2el_3[] = { + { (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_rach_ConfigCommon_specs_3 = { + sizeof(struct BWP_UplinkCommon__rach_ConfigCommon), + offsetof(struct BWP_UplinkCommon__rach_ConfigCommon, _asn_ctx), + offsetof(struct BWP_UplinkCommon__rach_ConfigCommon, present), + sizeof(((struct BWP_UplinkCommon__rach_ConfigCommon *)0)->present), + asn_MAP_rach_ConfigCommon_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_rach_ConfigCommon_3 = { + "rach-ConfigCommon", + "rach-ConfigCommon", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_rach_ConfigCommon_constr_3, &asn_PER_type_rach_ConfigCommon_constr_3, CHOICE_constraint }, + asn_MBR_rach_ConfigCommon_3, + 2, /* Elements count */ + &asn_SPC_rach_ConfigCommon_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pusch_ConfigCommon_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__pusch_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pusch_ConfigCommon_tag2el_6[] = { + { (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_pusch_ConfigCommon_specs_6 = { + sizeof(struct BWP_UplinkCommon__pusch_ConfigCommon), + offsetof(struct BWP_UplinkCommon__pusch_ConfigCommon, _asn_ctx), + offsetof(struct BWP_UplinkCommon__pusch_ConfigCommon, present), + sizeof(((struct BWP_UplinkCommon__pusch_ConfigCommon *)0)->present), + asn_MAP_pusch_ConfigCommon_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_pusch_ConfigCommon_6 = { + "pusch-ConfigCommon", + "pusch-ConfigCommon", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pusch_ConfigCommon_constr_6, &asn_PER_type_pusch_ConfigCommon_constr_6, CHOICE_constraint }, + asn_MBR_pusch_ConfigCommon_6, + 2, /* Elements count */ + &asn_SPC_pusch_ConfigCommon_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pucch_ConfigCommon_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__pucch_ConfigCommon, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pucch_ConfigCommon_tag2el_9[] = { + { (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_pucch_ConfigCommon_specs_9 = { + sizeof(struct BWP_UplinkCommon__pucch_ConfigCommon), + offsetof(struct BWP_UplinkCommon__pucch_ConfigCommon, _asn_ctx), + offsetof(struct BWP_UplinkCommon__pucch_ConfigCommon, present), + sizeof(((struct BWP_UplinkCommon__pucch_ConfigCommon *)0)->present), + asn_MAP_pucch_ConfigCommon_tag2el_9, + 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_pucch_ConfigCommon_9 = { + "pucch-ConfigCommon", + "pucch-ConfigCommon", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pucch_ConfigCommon_constr_9, &asn_PER_type_pucch_ConfigCommon_constr_9, CHOICE_constraint }, + asn_MBR_pucch_ConfigCommon_9, + 2, /* Elements count */ + &asn_SPC_pucch_ConfigCommon_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BWP_UplinkCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon, genericParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "genericParameters" + }, + { ATF_POINTER, 3, offsetof(struct BWP_UplinkCommon, rach_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_rach_ConfigCommon_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct BWP_UplinkCommon, pusch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pusch_ConfigCommon_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ConfigCommon" + }, + { ATF_POINTER, 1, offsetof(struct BWP_UplinkCommon, pucch_ConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pucch_ConfigCommon_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ConfigCommon" + }, +}; +static const int asn_MAP_BWP_UplinkCommon_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_BWP_UplinkCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_UplinkCommon_specs_1 = { + sizeof(struct BWP_UplinkCommon), + offsetof(struct BWP_UplinkCommon, _asn_ctx), + asn_MAP_BWP_UplinkCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_BWP_UplinkCommon_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_UplinkCommon = { + "BWP-UplinkCommon", + "BWP-UplinkCommon", + &asn_OP_SEQUENCE, + asn_DEF_BWP_UplinkCommon_tags_1, + sizeof(asn_DEF_BWP_UplinkCommon_tags_1) + /sizeof(asn_DEF_BWP_UplinkCommon_tags_1[0]), /* 1 */ + asn_DEF_BWP_UplinkCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_UplinkCommon_tags_1) + /sizeof(asn_DEF_BWP_UplinkCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_UplinkCommon_1, + 4, /* Elements count */ + &asn_SPC_BWP_UplinkCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-UplinkCommon.h b/src/codec_utils/RRC/BWP-UplinkCommon.h new file mode 100644 index 000000000..6e7902027 --- /dev/null +++ b/src/codec_utils/RRC/BWP-UplinkCommon.h @@ -0,0 +1,98 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_UplinkCommon_H_ +#define _BWP_UplinkCommon_H_ + + +#include + +/* Including external dependencies */ +#include "BWP.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BWP_UplinkCommon__rach_ConfigCommon_PR { + BWP_UplinkCommon__rach_ConfigCommon_PR_NOTHING, /* No components present */ + BWP_UplinkCommon__rach_ConfigCommon_PR_release, + BWP_UplinkCommon__rach_ConfigCommon_PR_setup +} BWP_UplinkCommon__rach_ConfigCommon_PR; +typedef enum BWP_UplinkCommon__pusch_ConfigCommon_PR { + BWP_UplinkCommon__pusch_ConfigCommon_PR_NOTHING, /* No components present */ + BWP_UplinkCommon__pusch_ConfigCommon_PR_release, + BWP_UplinkCommon__pusch_ConfigCommon_PR_setup +} BWP_UplinkCommon__pusch_ConfigCommon_PR; +typedef enum BWP_UplinkCommon__pucch_ConfigCommon_PR { + BWP_UplinkCommon__pucch_ConfigCommon_PR_NOTHING, /* No components present */ + BWP_UplinkCommon__pucch_ConfigCommon_PR_release, + BWP_UplinkCommon__pucch_ConfigCommon_PR_setup +} BWP_UplinkCommon__pucch_ConfigCommon_PR; + +/* Forward declarations */ +struct RACH_ConfigCommon; +struct PUSCH_ConfigCommon; +struct PUCCH_ConfigCommon; + +/* BWP-UplinkCommon */ +typedef struct BWP_UplinkCommon { + BWP_t genericParameters; + struct BWP_UplinkCommon__rach_ConfigCommon { + BWP_UplinkCommon__rach_ConfigCommon_PR present; + union BWP_UplinkCommon__rach_ConfigCommon_u { + NULL_t release; + struct RACH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rach_ConfigCommon; + struct BWP_UplinkCommon__pusch_ConfigCommon { + BWP_UplinkCommon__pusch_ConfigCommon_PR present; + union BWP_UplinkCommon__pusch_ConfigCommon_u { + NULL_t release; + struct PUSCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_ConfigCommon; + struct BWP_UplinkCommon__pucch_ConfigCommon { + BWP_UplinkCommon__pucch_ConfigCommon_PR present; + union BWP_UplinkCommon__pucch_ConfigCommon_u { + NULL_t release; + struct PUCCH_ConfigCommon *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pucch_ConfigCommon; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BWP_UplinkCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_UplinkCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_UplinkCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_UplinkCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_UplinkCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP-UplinkDedicated.c b/src/codec_utils/RRC/BWP-UplinkDedicated.c new file mode 100644 index 000000000..b54e0b9e9 --- /dev/null +++ b/src/codec_utils/RRC/BWP-UplinkDedicated.c @@ -0,0 +1,382 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP-UplinkDedicated.h" + +#include "PUCCH-Config.h" +#include "PUSCH-Config.h" +#include "ConfiguredGrantConfig.h" +#include "SRS-Config.h" +#include "BeamFailureRecoveryConfig.h" +static asn_oer_constraints_t asn_OER_type_pucch_Config_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pucch_Config_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_pusch_Config_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pusch_Config_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_oer_constraints_t asn_OER_type_configuredGrantConfig_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_configuredGrantConfig_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_oer_constraints_t asn_OER_type_srs_Config_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_srs_Config_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_oer_constraints_t asn_OER_type_beamFailureRecoveryConfig_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_beamFailureRecoveryConfig_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_TYPE_member_t asn_MBR_pucch_Config_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkDedicated__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 BWP_UplinkDedicated__pucch_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pucch_Config_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_pucch_Config_specs_2 = { + sizeof(struct BWP_UplinkDedicated__pucch_Config), + offsetof(struct BWP_UplinkDedicated__pucch_Config, _asn_ctx), + offsetof(struct BWP_UplinkDedicated__pucch_Config, present), + sizeof(((struct BWP_UplinkDedicated__pucch_Config *)0)->present), + asn_MAP_pucch_Config_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_pucch_Config_2 = { + "pucch-Config", + "pucch-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pucch_Config_constr_2, &asn_PER_type_pucch_Config_constr_2, CHOICE_constraint }, + asn_MBR_pucch_Config_2, + 2, /* Elements count */ + &asn_SPC_pucch_Config_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pusch_Config_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkDedicated__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 BWP_UplinkDedicated__pusch_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pusch_Config_tag2el_5[] = { + { (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_pusch_Config_specs_5 = { + sizeof(struct BWP_UplinkDedicated__pusch_Config), + offsetof(struct BWP_UplinkDedicated__pusch_Config, _asn_ctx), + offsetof(struct BWP_UplinkDedicated__pusch_Config, present), + sizeof(((struct BWP_UplinkDedicated__pusch_Config *)0)->present), + asn_MAP_pusch_Config_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_pusch_Config_5 = { + "pusch-Config", + "pusch-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pusch_Config_constr_5, &asn_PER_type_pusch_Config_constr_5, CHOICE_constraint }, + asn_MBR_pusch_Config_5, + 2, /* Elements count */ + &asn_SPC_pusch_Config_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_configuredGrantConfig_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkDedicated__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 BWP_UplinkDedicated__configuredGrantConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConfiguredGrantConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_configuredGrantConfig_tag2el_8[] = { + { (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_configuredGrantConfig_specs_8 = { + sizeof(struct BWP_UplinkDedicated__configuredGrantConfig), + offsetof(struct BWP_UplinkDedicated__configuredGrantConfig, _asn_ctx), + offsetof(struct BWP_UplinkDedicated__configuredGrantConfig, present), + sizeof(((struct BWP_UplinkDedicated__configuredGrantConfig *)0)->present), + asn_MAP_configuredGrantConfig_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_configuredGrantConfig_8 = { + "configuredGrantConfig", + "configuredGrantConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_configuredGrantConfig_constr_8, &asn_PER_type_configuredGrantConfig_constr_8, CHOICE_constraint }, + asn_MBR_configuredGrantConfig_8, + 2, /* Elements count */ + &asn_SPC_configuredGrantConfig_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_srs_Config_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkDedicated__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 BWP_UplinkDedicated__srs_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_srs_Config_tag2el_11[] = { + { (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_srs_Config_specs_11 = { + sizeof(struct BWP_UplinkDedicated__srs_Config), + offsetof(struct BWP_UplinkDedicated__srs_Config, _asn_ctx), + offsetof(struct BWP_UplinkDedicated__srs_Config, present), + sizeof(((struct BWP_UplinkDedicated__srs_Config *)0)->present), + asn_MAP_srs_Config_tag2el_11, + 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_srs_Config_11 = { + "srs-Config", + "srs-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_srs_Config_constr_11, &asn_PER_type_srs_Config_constr_11, CHOICE_constraint }, + asn_MBR_srs_Config_11, + 2, /* Elements count */ + &asn_SPC_srs_Config_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_beamFailureRecoveryConfig_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkDedicated__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 BWP_UplinkDedicated__beamFailureRecoveryConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BeamFailureRecoveryConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_beamFailureRecoveryConfig_tag2el_14[] = { + { (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_beamFailureRecoveryConfig_specs_14 = { + sizeof(struct BWP_UplinkDedicated__beamFailureRecoveryConfig), + offsetof(struct BWP_UplinkDedicated__beamFailureRecoveryConfig, _asn_ctx), + offsetof(struct BWP_UplinkDedicated__beamFailureRecoveryConfig, present), + sizeof(((struct BWP_UplinkDedicated__beamFailureRecoveryConfig *)0)->present), + asn_MAP_beamFailureRecoveryConfig_tag2el_14, + 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_beamFailureRecoveryConfig_14 = { + "beamFailureRecoveryConfig", + "beamFailureRecoveryConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_beamFailureRecoveryConfig_constr_14, &asn_PER_type_beamFailureRecoveryConfig_constr_14, CHOICE_constraint }, + asn_MBR_beamFailureRecoveryConfig_14, + 2, /* Elements count */ + &asn_SPC_beamFailureRecoveryConfig_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BWP_UplinkDedicated_1[] = { + { ATF_POINTER, 5, offsetof(struct BWP_UplinkDedicated, pucch_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pucch_Config_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Config" + }, + { ATF_POINTER, 4, offsetof(struct BWP_UplinkDedicated, pusch_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pusch_Config_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-Config" + }, + { ATF_POINTER, 3, offsetof(struct BWP_UplinkDedicated, configuredGrantConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_configuredGrantConfig_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredGrantConfig" + }, + { ATF_POINTER, 2, offsetof(struct BWP_UplinkDedicated, srs_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_srs_Config_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-Config" + }, + { ATF_POINTER, 1, offsetof(struct BWP_UplinkDedicated, beamFailureRecoveryConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_beamFailureRecoveryConfig_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureRecoveryConfig" + }, +}; +static const int asn_MAP_BWP_UplinkDedicated_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_BWP_UplinkDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_UplinkDedicated_specs_1 = { + sizeof(struct BWP_UplinkDedicated), + offsetof(struct BWP_UplinkDedicated, _asn_ctx), + asn_MAP_BWP_UplinkDedicated_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_BWP_UplinkDedicated_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP_UplinkDedicated = { + "BWP-UplinkDedicated", + "BWP-UplinkDedicated", + &asn_OP_SEQUENCE, + asn_DEF_BWP_UplinkDedicated_tags_1, + sizeof(asn_DEF_BWP_UplinkDedicated_tags_1) + /sizeof(asn_DEF_BWP_UplinkDedicated_tags_1[0]), /* 1 */ + asn_DEF_BWP_UplinkDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_UplinkDedicated_tags_1) + /sizeof(asn_DEF_BWP_UplinkDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_UplinkDedicated_1, + 5, /* Elements count */ + &asn_SPC_BWP_UplinkDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP-UplinkDedicated.h b/src/codec_utils/RRC/BWP-UplinkDedicated.h new file mode 100644 index 000000000..e1510d392 --- /dev/null +++ b/src/codec_utils/RRC/BWP-UplinkDedicated.h @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_UplinkDedicated_H_ +#define _BWP_UplinkDedicated_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BWP_UplinkDedicated__pucch_Config_PR { + BWP_UplinkDedicated__pucch_Config_PR_NOTHING, /* No components present */ + BWP_UplinkDedicated__pucch_Config_PR_release, + BWP_UplinkDedicated__pucch_Config_PR_setup +} BWP_UplinkDedicated__pucch_Config_PR; +typedef enum BWP_UplinkDedicated__pusch_Config_PR { + BWP_UplinkDedicated__pusch_Config_PR_NOTHING, /* No components present */ + BWP_UplinkDedicated__pusch_Config_PR_release, + BWP_UplinkDedicated__pusch_Config_PR_setup +} BWP_UplinkDedicated__pusch_Config_PR; +typedef enum BWP_UplinkDedicated__configuredGrantConfig_PR { + BWP_UplinkDedicated__configuredGrantConfig_PR_NOTHING, /* No components present */ + BWP_UplinkDedicated__configuredGrantConfig_PR_release, + BWP_UplinkDedicated__configuredGrantConfig_PR_setup +} BWP_UplinkDedicated__configuredGrantConfig_PR; +typedef enum BWP_UplinkDedicated__srs_Config_PR { + BWP_UplinkDedicated__srs_Config_PR_NOTHING, /* No components present */ + BWP_UplinkDedicated__srs_Config_PR_release, + BWP_UplinkDedicated__srs_Config_PR_setup +} BWP_UplinkDedicated__srs_Config_PR; +typedef enum BWP_UplinkDedicated__beamFailureRecoveryConfig_PR { + BWP_UplinkDedicated__beamFailureRecoveryConfig_PR_NOTHING, /* No components present */ + BWP_UplinkDedicated__beamFailureRecoveryConfig_PR_release, + BWP_UplinkDedicated__beamFailureRecoveryConfig_PR_setup +} BWP_UplinkDedicated__beamFailureRecoveryConfig_PR; + +/* Forward declarations */ +struct PUCCH_Config; +struct PUSCH_Config; +struct ConfiguredGrantConfig; +struct SRS_Config; +struct BeamFailureRecoveryConfig; + +/* BWP-UplinkDedicated */ +typedef struct BWP_UplinkDedicated { + struct BWP_UplinkDedicated__pucch_Config { + BWP_UplinkDedicated__pucch_Config_PR present; + union BWP_UplinkDedicated__pucch_Config_u { + NULL_t release; + struct PUCCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pucch_Config; + struct BWP_UplinkDedicated__pusch_Config { + BWP_UplinkDedicated__pusch_Config_PR present; + union BWP_UplinkDedicated__pusch_Config_u { + NULL_t release; + struct PUSCH_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_Config; + struct BWP_UplinkDedicated__configuredGrantConfig { + BWP_UplinkDedicated__configuredGrantConfig_PR present; + union BWP_UplinkDedicated__configuredGrantConfig_u { + NULL_t release; + struct ConfiguredGrantConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *configuredGrantConfig; + struct BWP_UplinkDedicated__srs_Config { + BWP_UplinkDedicated__srs_Config_PR present; + union BWP_UplinkDedicated__srs_Config_u { + NULL_t release; + struct SRS_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_Config; + struct BWP_UplinkDedicated__beamFailureRecoveryConfig { + BWP_UplinkDedicated__beamFailureRecoveryConfig_PR present; + union BWP_UplinkDedicated__beamFailureRecoveryConfig_u { + NULL_t release; + struct BeamFailureRecoveryConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *beamFailureRecoveryConfig; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BWP_UplinkDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BWP_UplinkDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_UplinkDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_UplinkDedicated_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_UplinkDedicated_H_ */ +#include diff --git a/src/codec_utils/RRC/BWP.c b/src/codec_utils/RRC/BWP.c new file mode 100644 index 000000000..60af8bf79 --- /dev/null +++ b/src/codec_utils/RRC/BWP.c @@ -0,0 +1,152 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BWP.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_cyclicPrefix_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_locationAndBandwidth_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..37949) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_cyclicPrefix_value2enum_4[] = { + { 0, 8, "extended" } +}; +static const unsigned int asn_MAP_cyclicPrefix_enum2value_4[] = { + 0 /* extended(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cyclicPrefix_specs_4 = { + asn_MAP_cyclicPrefix_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cyclicPrefix_4 = { + "cyclicPrefix", + "cyclicPrefix", + &asn_OP_NativeEnumerated, + asn_DEF_cyclicPrefix_tags_4, + sizeof(asn_DEF_cyclicPrefix_tags_4) + /sizeof(asn_DEF_cyclicPrefix_tags_4[0]) - 1, /* 1 */ + asn_DEF_cyclicPrefix_tags_4, /* Same as above */ + sizeof(asn_DEF_cyclicPrefix_tags_4) + /sizeof(asn_DEF_cyclicPrefix_tags_4[0]), /* 2 */ + { &asn_OER_type_cyclicPrefix_constr_4, &asn_PER_type_cyclicPrefix_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cyclicPrefix_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BWP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BWP, locationAndBandwidth), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_locationAndBandwidth_constr_2, &asn_PER_memb_locationAndBandwidth_constr_2, memb_locationAndBandwidth_constraint_1 }, + 0, 0, /* No default value */ + "locationAndBandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct BWP, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct BWP, cyclicPrefix), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cyclicPrefix_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cyclicPrefix" + }, +}; +static const int asn_MAP_BWP_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_BWP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BWP_specs_1 = { + sizeof(struct BWP), + offsetof(struct BWP, _asn_ctx), + asn_MAP_BWP_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_BWP_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BWP = { + "BWP", + "BWP", + &asn_OP_SEQUENCE, + asn_DEF_BWP_tags_1, + sizeof(asn_DEF_BWP_tags_1) + /sizeof(asn_DEF_BWP_tags_1[0]), /* 1 */ + asn_DEF_BWP_tags_1, /* Same as above */ + sizeof(asn_DEF_BWP_tags_1) + /sizeof(asn_DEF_BWP_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BWP_1, + 3, /* Elements count */ + &asn_SPC_BWP_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BWP.h b/src/codec_utils/RRC/BWP.h new file mode 100644 index 000000000..6a9ddd144 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BWP_H_ +#define _BWP_H_ + + +#include + +/* Including external dependencies */ +#include +#include "SubcarrierSpacing.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BWP__cyclicPrefix { + BWP__cyclicPrefix_extended = 0 +} e_BWP__cyclicPrefix; + +/* BWP */ +typedef struct BWP { + long locationAndBandwidth; + SubcarrierSpacing_t subcarrierSpacing; + long *cyclicPrefix; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BWP_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_cyclicPrefix_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BWP; +extern asn_SEQUENCE_specifics_t asn_SPC_BWP_specs_1; +extern asn_TYPE_member_t asn_MBR_BWP_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BWP_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombination.c b/src/codec_utils/RRC/BandCombination.c new file mode 100644 index 000000000..031c94c32 --- /dev/null +++ b/src/codec_utils/RRC/BandCombination.c @@ -0,0 +1,281 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombination.h" + +#include "CA-ParametersEUTRA.h" +#include "CA-ParametersNR.h" +#include "MRDC-Parameters.h" +#include "BandParameters.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_bandList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_powerClass_v1530_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_bandList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_supportedBandwidthCombinationSet_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_bandList_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_BandParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_bandList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_bandList_specs_2 = { + sizeof(struct BandCombination__bandList), + offsetof(struct BandCombination__bandList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_bandList_2 = { + "bandList", + "bandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_bandList_tags_2, + sizeof(asn_DEF_bandList_tags_2) + /sizeof(asn_DEF_bandList_tags_2[0]) - 1, /* 1 */ + asn_DEF_bandList_tags_2, /* Same as above */ + sizeof(asn_DEF_bandList_tags_2) + /sizeof(asn_DEF_bandList_tags_2[0]), /* 2 */ + { &asn_OER_type_bandList_constr_2, &asn_PER_type_bandList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_bandList_2, + 1, /* Single element */ + &asn_SPC_bandList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_powerClass_v1530_value2enum_9[] = { + { 0, 3, "pc2" } +}; +static const unsigned int asn_MAP_powerClass_v1530_enum2value_9[] = { + 0 /* pc2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_powerClass_v1530_specs_9 = { + asn_MAP_powerClass_v1530_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_powerClass_v1530_9 = { + "powerClass-v1530", + "powerClass-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_powerClass_v1530_tags_9, + sizeof(asn_DEF_powerClass_v1530_tags_9) + /sizeof(asn_DEF_powerClass_v1530_tags_9[0]) - 1, /* 1 */ + asn_DEF_powerClass_v1530_tags_9, /* Same as above */ + sizeof(asn_DEF_powerClass_v1530_tags_9) + /sizeof(asn_DEF_powerClass_v1530_tags_9[0]), /* 2 */ + { &asn_OER_type_powerClass_v1530_constr_9, &asn_PER_type_powerClass_v1530_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_powerClass_v1530_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BandCombination_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandCombination, bandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_bandList_2, + 0, + { &asn_OER_memb_bandList_constr_2, &asn_PER_memb_bandList_constr_2, memb_bandList_constraint_1 }, + 0, 0, /* No default value */ + "bandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct BandCombination, featureSetCombination), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetCombinationId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "featureSetCombination" + }, + { ATF_POINTER, 5, offsetof(struct BandCombination, ca_ParametersEUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_ParametersEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersEUTRA" + }, + { ATF_POINTER, 4, offsetof(struct BandCombination, ca_ParametersNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_ParametersNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-ParametersNR" + }, + { ATF_POINTER, 3, offsetof(struct BandCombination, mrdc_Parameters), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MRDC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-Parameters" + }, + { ATF_POINTER, 2, offsetof(struct BandCombination, supportedBandwidthCombinationSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_supportedBandwidthCombinationSet_constr_8, &asn_PER_memb_supportedBandwidthCombinationSet_constr_8, memb_supportedBandwidthCombinationSet_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandwidthCombinationSet" + }, + { ATF_POINTER, 1, offsetof(struct BandCombination, powerClass_v1530), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_powerClass_v1530_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerClass-v1530" + }, +}; +static const int asn_MAP_BandCombination_oms_1[] = { 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_BandCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BandCombination_specs_1 = { + sizeof(struct BandCombination), + offsetof(struct BandCombination, _asn_ctx), + asn_MAP_BandCombination_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_BandCombination_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BandCombination = { + "BandCombination", + "BandCombination", + &asn_OP_SEQUENCE, + asn_DEF_BandCombination_tags_1, + sizeof(asn_DEF_BandCombination_tags_1) + /sizeof(asn_DEF_BandCombination_tags_1[0]), /* 1 */ + asn_DEF_BandCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombination_tags_1) + /sizeof(asn_DEF_BandCombination_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BandCombination_1, + 7, /* Elements count */ + &asn_SPC_BandCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandCombination.h b/src/codec_utils/RRC/BandCombination.h new file mode 100644 index 000000000..c7a482fba --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombination_H_ +#define _BandCombination_H_ + + +#include + +/* Including external dependencies */ +#include "FeatureSetCombinationId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BandCombination__powerClass_v1530 { + BandCombination__powerClass_v1530_pc2 = 0 +} e_BandCombination__powerClass_v1530; + +/* Forward declarations */ +struct CA_ParametersEUTRA; +struct CA_ParametersNR; +struct MRDC_Parameters; +struct BandParameters; + +/* BandCombination */ +typedef struct BandCombination { + struct BandCombination__bandList { + A_SEQUENCE_OF(struct BandParameters) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } bandList; + FeatureSetCombinationId_t featureSetCombination; + struct CA_ParametersEUTRA *ca_ParametersEUTRA; /* OPTIONAL */ + struct CA_ParametersNR *ca_ParametersNR; /* OPTIONAL */ + struct 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; +} BandCombination_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_powerClass_v1530_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BandCombination; +extern asn_SEQUENCE_specifics_t asn_SPC_BandCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_BandCombination_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombination_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombinationIndex.c b/src/codec_utils/RRC/BandCombinationIndex.c new file mode 100644 index 000000000..3b26dd71c --- /dev/null +++ b/src/codec_utils/RRC/BandCombinationIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombinationIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_BandCombinationIndex_constr_1 CC_NOTUSED = { + { 4, 1 } /* (1..65536) */, + -1}; +asn_per_constraints_t asn_PER_type_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_BandCombinationIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_BandCombinationIndex = { + "BandCombinationIndex", + "BandCombinationIndex", + &asn_OP_NativeInteger, + asn_DEF_BandCombinationIndex_tags_1, + sizeof(asn_DEF_BandCombinationIndex_tags_1) + /sizeof(asn_DEF_BandCombinationIndex_tags_1[0]), /* 1 */ + asn_DEF_BandCombinationIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombinationIndex_tags_1) + /sizeof(asn_DEF_BandCombinationIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_BandCombinationIndex_constr_1, &asn_PER_type_BandCombinationIndex_constr_1, BandCombinationIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/BandCombinationIndex.h b/src/codec_utils/RRC/BandCombinationIndex.h new file mode 100644 index 000000000..679dcc439 --- /dev/null +++ b/src/codec_utils/RRC/BandCombinationIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombinationIndex_H_ +#define _BandCombinationIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BandCombinationIndex */ +typedef long BandCombinationIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_BandCombinationIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_BandCombinationIndex; +asn_struct_free_f BandCombinationIndex_free; +asn_struct_print_f BandCombinationIndex_print; +asn_constr_check_f BandCombinationIndex_constraint; +ber_type_decoder_f BandCombinationIndex_decode_ber; +der_type_encoder_f BandCombinationIndex_encode_der; +xer_type_decoder_f BandCombinationIndex_decode_xer; +xer_type_encoder_f BandCombinationIndex_encode_xer; +oer_type_decoder_f BandCombinationIndex_decode_oer; +oer_type_encoder_f BandCombinationIndex_encode_oer; +per_type_decoder_f BandCombinationIndex_decode_uper; +per_type_encoder_f BandCombinationIndex_encode_uper; +per_type_decoder_f BandCombinationIndex_decode_aper; +per_type_encoder_f BandCombinationIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombinationIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombinationInfo.c b/src/codec_utils/RRC/BandCombinationInfo.c new file mode 100644 index 000000000..fc26e0844 --- /dev/null +++ b/src/codec_utils/RRC/BandCombinationInfo.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombinationInfo.h" + +static int +memb_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_oer_constraints_t asn_OER_type_allowedFeatureSetsList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_allowedFeatureSetsList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_allowedFeatureSetsList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_allowedFeatureSetsList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_allowedFeatureSetsList_specs_3 = { + sizeof(struct BandCombinationInfo__allowedFeatureSetsList), + offsetof(struct BandCombinationInfo__allowedFeatureSetsList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_allowedFeatureSetsList_3 = { + "allowedFeatureSetsList", + "allowedFeatureSetsList", + &asn_OP_SEQUENCE_OF, + asn_DEF_allowedFeatureSetsList_tags_3, + sizeof(asn_DEF_allowedFeatureSetsList_tags_3) + /sizeof(asn_DEF_allowedFeatureSetsList_tags_3[0]) - 1, /* 1 */ + asn_DEF_allowedFeatureSetsList_tags_3, /* Same as above */ + sizeof(asn_DEF_allowedFeatureSetsList_tags_3) + /sizeof(asn_DEF_allowedFeatureSetsList_tags_3[0]), /* 2 */ + { &asn_OER_type_allowedFeatureSetsList_constr_3, &asn_PER_type_allowedFeatureSetsList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_allowedFeatureSetsList_3, + 1, /* Single element */ + &asn_SPC_allowedFeatureSetsList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BandCombinationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandCombinationInfo, bandCombinationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct BandCombinationInfo, allowedFeatureSetsList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_allowedFeatureSetsList_3, + 0, + { &asn_OER_memb_allowedFeatureSetsList_constr_3, &asn_PER_memb_allowedFeatureSetsList_constr_3, memb_allowedFeatureSetsList_constraint_1 }, + 0, 0, /* No default value */ + "allowedFeatureSetsList" + }, +}; +static const ber_tlv_tag_t asn_DEF_BandCombinationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BandCombinationInfo_specs_1 = { + sizeof(struct BandCombinationInfo), + offsetof(struct BandCombinationInfo, _asn_ctx), + asn_MAP_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_BandCombinationInfo = { + "BandCombinationInfo", + "BandCombinationInfo", + &asn_OP_SEQUENCE, + asn_DEF_BandCombinationInfo_tags_1, + sizeof(asn_DEF_BandCombinationInfo_tags_1) + /sizeof(asn_DEF_BandCombinationInfo_tags_1[0]), /* 1 */ + asn_DEF_BandCombinationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombinationInfo_tags_1) + /sizeof(asn_DEF_BandCombinationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BandCombinationInfo_1, + 2, /* Elements count */ + &asn_SPC_BandCombinationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandCombinationInfo.h b/src/codec_utils/RRC/BandCombinationInfo.h new file mode 100644 index 000000000..1b6d17f0e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombinationInfo_H_ +#define _BandCombinationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "BandCombinationIndex.h" +#include "FeatureSetEntryIndex.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BandCombinationInfo */ +typedef struct BandCombinationInfo { + BandCombinationIndex_t bandCombinationIndex; + struct BandCombinationInfo__allowedFeatureSetsList { + A_SEQUENCE_OF(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; +} BandCombinationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BandCombinationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_BandCombinationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_BandCombinationInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombinationInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombinationInfoList.c b/src/codec_utils/RRC/BandCombinationInfoList.c new file mode 100644 index 000000000..fd9ad5362 --- /dev/null +++ b/src/codec_utils/RRC/BandCombinationInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombinationInfoList.h" + +#include "BandCombinationInfo.h" +static asn_oer_constraints_t asn_OER_type_BandCombinationInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65536)) */}; +asn_per_constraints_t asn_PER_type_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_BandCombinationInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BandCombinationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_BandCombinationInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_BandCombinationInfoList_specs_1 = { + sizeof(struct BandCombinationInfoList), + offsetof(struct BandCombinationInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_BandCombinationInfoList = { + "BandCombinationInfoList", + "BandCombinationInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_BandCombinationInfoList_tags_1, + sizeof(asn_DEF_BandCombinationInfoList_tags_1) + /sizeof(asn_DEF_BandCombinationInfoList_tags_1[0]), /* 1 */ + asn_DEF_BandCombinationInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombinationInfoList_tags_1) + /sizeof(asn_DEF_BandCombinationInfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_BandCombinationInfoList_constr_1, &asn_PER_type_BandCombinationInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_BandCombinationInfoList_1, + 1, /* Single element */ + &asn_SPC_BandCombinationInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandCombinationInfoList.h b/src/codec_utils/RRC/BandCombinationInfoList.h new file mode 100644 index 000000000..32deec551 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombinationInfoList_H_ +#define _BandCombinationInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombinationInfo; + +/* BandCombinationInfoList */ +typedef struct BandCombinationInfoList { + A_SEQUENCE_OF(struct BandCombinationInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BandCombinationInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BandCombinationInfoList; +extern asn_SET_OF_specifics_t asn_SPC_BandCombinationInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_BandCombinationInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_BandCombinationInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombinationInfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombinationInfoSN.c b/src/codec_utils/RRC/BandCombinationInfoSN.c new file mode 100644 index 000000000..31235b6e4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombinationInfoSN.h" + +asn_TYPE_member_t asn_MBR_BandCombinationInfoSN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandCombinationInfoSN, bandCombinationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandCombinationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct BandCombinationInfoSN, requestedFeatureSets), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetEntryIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedFeatureSets" + }, +}; +static const ber_tlv_tag_t asn_DEF_BandCombinationInfoSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BandCombinationInfoSN_specs_1 = { + sizeof(struct BandCombinationInfoSN), + offsetof(struct BandCombinationInfoSN, _asn_ctx), + asn_MAP_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_BandCombinationInfoSN = { + "BandCombinationInfoSN", + "BandCombinationInfoSN", + &asn_OP_SEQUENCE, + asn_DEF_BandCombinationInfoSN_tags_1, + sizeof(asn_DEF_BandCombinationInfoSN_tags_1) + /sizeof(asn_DEF_BandCombinationInfoSN_tags_1[0]), /* 1 */ + asn_DEF_BandCombinationInfoSN_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombinationInfoSN_tags_1) + /sizeof(asn_DEF_BandCombinationInfoSN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BandCombinationInfoSN_1, + 2, /* Elements count */ + &asn_SPC_BandCombinationInfoSN_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandCombinationInfoSN.h b/src/codec_utils/RRC/BandCombinationInfoSN.h new file mode 100644 index 000000000..85b645639 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombinationInfoSN_H_ +#define _BandCombinationInfoSN_H_ + + +#include + +/* Including external dependencies */ +#include "BandCombinationIndex.h" +#include "FeatureSetEntryIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BandCombinationInfoSN */ +typedef struct BandCombinationInfoSN { + BandCombinationIndex_t bandCombinationIndex; + FeatureSetEntryIndex_t requestedFeatureSets; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BandCombinationInfoSN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BandCombinationInfoSN; +extern asn_SEQUENCE_specifics_t asn_SPC_BandCombinationInfoSN_specs_1; +extern asn_TYPE_member_t asn_MBR_BandCombinationInfoSN_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombinationInfoSN_H_ */ +#include diff --git a/src/codec_utils/RRC/BandCombinationList.c b/src/codec_utils/RRC/BandCombinationList.c new file mode 100644 index 000000000..7ac91c480 --- /dev/null +++ b/src/codec_utils/RRC/BandCombinationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandCombinationList.h" + +#include "BandCombination.h" +static asn_oer_constraints_t asn_OER_type_BandCombinationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..65536)) */}; +asn_per_constraints_t asn_PER_type_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_BandCombinationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BandCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_BandCombinationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_BandCombinationList_specs_1 = { + sizeof(struct BandCombinationList), + offsetof(struct BandCombinationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_BandCombinationList = { + "BandCombinationList", + "BandCombinationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_BandCombinationList_tags_1, + sizeof(asn_DEF_BandCombinationList_tags_1) + /sizeof(asn_DEF_BandCombinationList_tags_1[0]), /* 1 */ + asn_DEF_BandCombinationList_tags_1, /* Same as above */ + sizeof(asn_DEF_BandCombinationList_tags_1) + /sizeof(asn_DEF_BandCombinationList_tags_1[0]), /* 1 */ + { &asn_OER_type_BandCombinationList_constr_1, &asn_PER_type_BandCombinationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_BandCombinationList_1, + 1, /* Single element */ + &asn_SPC_BandCombinationList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandCombinationList.h b/src/codec_utils/RRC/BandCombinationList.h new file mode 100644 index 000000000..775879594 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandCombinationList_H_ +#define _BandCombinationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombination; + +/* BandCombinationList */ +typedef struct BandCombinationList { + A_SEQUENCE_OF(struct BandCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BandCombinationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BandCombinationList; +extern asn_SET_OF_specifics_t asn_SPC_BandCombinationList_specs_1; +extern asn_TYPE_member_t asn_MBR_BandCombinationList_1[1]; +extern asn_per_constraints_t asn_PER_type_BandCombinationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandCombinationList_H_ */ +#include diff --git a/src/codec_utils/RRC/BandNR.c b/src/codec_utils/RRC/BandNR.c new file mode 100644 index 000000000..522a94330 --- /dev/null +++ b/src/codec_utils/RRC/BandNR.c @@ -0,0 +1,1564 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandNR.h" + +#include "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_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_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_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_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_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_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_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_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_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_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. + */ +static int +memb_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_oer_constraints_t asn_OER_type_extendedCP_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_multipleTCI_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bwp_WithoutRestriction_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bwp_SameNumerology_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bwp_DiffNumerology_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_crossCarrierScheduling_SameSCS_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_256QAM_FR2_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_256QAM_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ue_PowerClass_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rateMatchingLTE_CRS_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_15kHz_constr_31 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_30kHz_constr_32 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_60kHz_constr_33 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_60kHz_constr_35 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_120kHz_constr_36 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_channelBWs_DL_v1530_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_15kHz_constr_39 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_30kHz_constr_40 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_60kHz_constr_41 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_60kHz_constr_43 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_120kHz_constr_44 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_channelBWs_UL_v1530_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxUplinkDutyCycle_PC2_FR1_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_modifiedMPR_Behaviour_constr_3 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_extendedCP_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_extendedCP_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_extendedCP_specs_5 = { + asn_MAP_extendedCP_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_extendedCP_5 = { + "extendedCP", + "extendedCP", + &asn_OP_NativeEnumerated, + asn_DEF_extendedCP_tags_5, + sizeof(asn_DEF_extendedCP_tags_5) + /sizeof(asn_DEF_extendedCP_tags_5[0]) - 1, /* 1 */ + asn_DEF_extendedCP_tags_5, /* Same as above */ + sizeof(asn_DEF_extendedCP_tags_5) + /sizeof(asn_DEF_extendedCP_tags_5[0]), /* 2 */ + { &asn_OER_type_extendedCP_constr_5, &asn_PER_type_extendedCP_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_extendedCP_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_multipleTCI_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleTCI_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleTCI_specs_7 = { + asn_MAP_multipleTCI_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multipleTCI_7 = { + "multipleTCI", + "multipleTCI", + &asn_OP_NativeEnumerated, + asn_DEF_multipleTCI_tags_7, + sizeof(asn_DEF_multipleTCI_tags_7) + /sizeof(asn_DEF_multipleTCI_tags_7[0]) - 1, /* 1 */ + asn_DEF_multipleTCI_tags_7, /* Same as above */ + sizeof(asn_DEF_multipleTCI_tags_7) + /sizeof(asn_DEF_multipleTCI_tags_7[0]), /* 2 */ + { &asn_OER_type_multipleTCI_constr_7, &asn_PER_type_multipleTCI_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleTCI_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bwp_WithoutRestriction_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_bwp_WithoutRestriction_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bwp_WithoutRestriction_specs_9 = { + asn_MAP_bwp_WithoutRestriction_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bwp_WithoutRestriction_9 = { + "bwp-WithoutRestriction", + "bwp-WithoutRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_bwp_WithoutRestriction_tags_9, + sizeof(asn_DEF_bwp_WithoutRestriction_tags_9) + /sizeof(asn_DEF_bwp_WithoutRestriction_tags_9[0]) - 1, /* 1 */ + asn_DEF_bwp_WithoutRestriction_tags_9, /* Same as above */ + sizeof(asn_DEF_bwp_WithoutRestriction_tags_9) + /sizeof(asn_DEF_bwp_WithoutRestriction_tags_9[0]), /* 2 */ + { &asn_OER_type_bwp_WithoutRestriction_constr_9, &asn_PER_type_bwp_WithoutRestriction_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bwp_WithoutRestriction_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bwp_SameNumerology_value2enum_11[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" } +}; +static const unsigned int asn_MAP_bwp_SameNumerology_enum2value_11[] = { + 0, /* upto2(0) */ + 1 /* upto4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bwp_SameNumerology_specs_11 = { + asn_MAP_bwp_SameNumerology_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bwp_SameNumerology_11 = { + "bwp-SameNumerology", + "bwp-SameNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_bwp_SameNumerology_tags_11, + sizeof(asn_DEF_bwp_SameNumerology_tags_11) + /sizeof(asn_DEF_bwp_SameNumerology_tags_11[0]) - 1, /* 1 */ + asn_DEF_bwp_SameNumerology_tags_11, /* Same as above */ + sizeof(asn_DEF_bwp_SameNumerology_tags_11) + /sizeof(asn_DEF_bwp_SameNumerology_tags_11[0]), /* 2 */ + { &asn_OER_type_bwp_SameNumerology_constr_11, &asn_PER_type_bwp_SameNumerology_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bwp_SameNumerology_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bwp_DiffNumerology_value2enum_14[] = { + { 0, 5, "upto4" } +}; +static const unsigned int asn_MAP_bwp_DiffNumerology_enum2value_14[] = { + 0 /* upto4(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bwp_DiffNumerology_specs_14 = { + asn_MAP_bwp_DiffNumerology_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bwp_DiffNumerology_14 = { + "bwp-DiffNumerology", + "bwp-DiffNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_bwp_DiffNumerology_tags_14, + sizeof(asn_DEF_bwp_DiffNumerology_tags_14) + /sizeof(asn_DEF_bwp_DiffNumerology_tags_14[0]) - 1, /* 1 */ + asn_DEF_bwp_DiffNumerology_tags_14, /* Same as above */ + sizeof(asn_DEF_bwp_DiffNumerology_tags_14) + /sizeof(asn_DEF_bwp_DiffNumerology_tags_14[0]), /* 2 */ + { &asn_OER_type_bwp_DiffNumerology_constr_14, &asn_PER_type_bwp_DiffNumerology_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bwp_DiffNumerology_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_crossCarrierScheduling_SameSCS_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_crossCarrierScheduling_SameSCS_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_crossCarrierScheduling_SameSCS_specs_16 = { + asn_MAP_crossCarrierScheduling_SameSCS_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_crossCarrierScheduling_SameSCS_16 = { + "crossCarrierScheduling-SameSCS", + "crossCarrierScheduling-SameSCS", + &asn_OP_NativeEnumerated, + asn_DEF_crossCarrierScheduling_SameSCS_tags_16, + sizeof(asn_DEF_crossCarrierScheduling_SameSCS_tags_16) + /sizeof(asn_DEF_crossCarrierScheduling_SameSCS_tags_16[0]) - 1, /* 1 */ + asn_DEF_crossCarrierScheduling_SameSCS_tags_16, /* Same as above */ + sizeof(asn_DEF_crossCarrierScheduling_SameSCS_tags_16) + /sizeof(asn_DEF_crossCarrierScheduling_SameSCS_tags_16[0]), /* 2 */ + { &asn_OER_type_crossCarrierScheduling_SameSCS_constr_16, &asn_PER_type_crossCarrierScheduling_SameSCS_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_crossCarrierScheduling_SameSCS_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_256QAM_FR2_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdsch_256QAM_FR2_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_256QAM_FR2_specs_18 = { + asn_MAP_pdsch_256QAM_FR2_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_256QAM_FR2_18 = { + "pdsch-256QAM-FR2", + "pdsch-256QAM-FR2", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_256QAM_FR2_tags_18, + sizeof(asn_DEF_pdsch_256QAM_FR2_tags_18) + /sizeof(asn_DEF_pdsch_256QAM_FR2_tags_18[0]) - 1, /* 1 */ + asn_DEF_pdsch_256QAM_FR2_tags_18, /* Same as above */ + sizeof(asn_DEF_pdsch_256QAM_FR2_tags_18) + /sizeof(asn_DEF_pdsch_256QAM_FR2_tags_18[0]), /* 2 */ + { &asn_OER_type_pdsch_256QAM_FR2_constr_18, &asn_PER_type_pdsch_256QAM_FR2_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_256QAM_FR2_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_256QAM_value2enum_20[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pusch_256QAM_enum2value_20[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_256QAM_specs_20 = { + asn_MAP_pusch_256QAM_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pusch_256QAM_20 = { + "pusch-256QAM", + "pusch-256QAM", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_256QAM_tags_20, + sizeof(asn_DEF_pusch_256QAM_tags_20) + /sizeof(asn_DEF_pusch_256QAM_tags_20[0]) - 1, /* 1 */ + asn_DEF_pusch_256QAM_tags_20, /* Same as above */ + sizeof(asn_DEF_pusch_256QAM_tags_20) + /sizeof(asn_DEF_pusch_256QAM_tags_20[0]), /* 2 */ + { &asn_OER_type_pusch_256QAM_constr_20, &asn_PER_type_pusch_256QAM_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_256QAM_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ue_PowerClass_value2enum_22[] = { + { 0, 3, "pc1" }, + { 1, 3, "pc2" }, + { 2, 3, "pc3" }, + { 3, 3, "pc4" } +}; +static const unsigned int asn_MAP_ue_PowerClass_enum2value_22[] = { + 0, /* pc1(0) */ + 1, /* pc2(1) */ + 2, /* pc3(2) */ + 3 /* pc4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ue_PowerClass_specs_22 = { + asn_MAP_ue_PowerClass_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ue_PowerClass_22 = { + "ue-PowerClass", + "ue-PowerClass", + &asn_OP_NativeEnumerated, + asn_DEF_ue_PowerClass_tags_22, + sizeof(asn_DEF_ue_PowerClass_tags_22) + /sizeof(asn_DEF_ue_PowerClass_tags_22[0]) - 1, /* 1 */ + asn_DEF_ue_PowerClass_tags_22, /* Same as above */ + sizeof(asn_DEF_ue_PowerClass_tags_22) + /sizeof(asn_DEF_ue_PowerClass_tags_22[0]), /* 2 */ + { &asn_OER_type_ue_PowerClass_constr_22, &asn_PER_type_ue_PowerClass_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ue_PowerClass_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rateMatchingLTE_CRS_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_rateMatchingLTE_CRS_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rateMatchingLTE_CRS_specs_27 = { + asn_MAP_rateMatchingLTE_CRS_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_rateMatchingLTE_CRS_27 = { + "rateMatchingLTE-CRS", + "rateMatchingLTE-CRS", + &asn_OP_NativeEnumerated, + asn_DEF_rateMatchingLTE_CRS_tags_27, + sizeof(asn_DEF_rateMatchingLTE_CRS_tags_27) + /sizeof(asn_DEF_rateMatchingLTE_CRS_tags_27[0]) - 1, /* 1 */ + asn_DEF_rateMatchingLTE_CRS_tags_27, /* Same as above */ + sizeof(asn_DEF_rateMatchingLTE_CRS_tags_27) + /sizeof(asn_DEF_rateMatchingLTE_CRS_tags_27[0]), /* 2 */ + { &asn_OER_type_rateMatchingLTE_CRS_constr_27, &asn_PER_type_rateMatchingLTE_CRS_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rateMatchingLTE_CRS_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_fr1_30[] = { + { ATF_POINTER, 3, offsetof(struct BandNR__channelBWs_DL_v1530__fr1, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_15kHz_constr_31, &asn_PER_memb_scs_15kHz_constr_31, memb_scs_15kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct BandNR__channelBWs_DL_v1530__fr1, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_30kHz_constr_32, &asn_PER_memb_scs_30kHz_constr_32, memb_scs_30kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct BandNR__channelBWs_DL_v1530__fr1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_60kHz_constr_33, &asn_PER_memb_scs_60kHz_constr_33, memb_scs_60kHz_constraint_30 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_fr1_oms_30[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_fr1_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_fr1_specs_30 = { + sizeof(struct BandNR__channelBWs_DL_v1530__fr1), + offsetof(struct BandNR__channelBWs_DL_v1530__fr1, _asn_ctx), + asn_MAP_fr1_tag2el_30, + 3, /* Count of tags in the map */ + asn_MAP_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_fr1_30 = { + "fr1", + "fr1", + &asn_OP_SEQUENCE, + asn_DEF_fr1_tags_30, + sizeof(asn_DEF_fr1_tags_30) + /sizeof(asn_DEF_fr1_tags_30[0]) - 1, /* 1 */ + asn_DEF_fr1_tags_30, /* Same as above */ + sizeof(asn_DEF_fr1_tags_30) + /sizeof(asn_DEF_fr1_tags_30[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_fr1_30, + 3, /* Elements count */ + &asn_SPC_fr1_specs_30 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_fr2_34[] = { + { ATF_POINTER, 2, offsetof(struct BandNR__channelBWs_DL_v1530__fr2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_60kHz_constr_35, &asn_PER_memb_scs_60kHz_constr_35, memb_scs_60kHz_constraint_34 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct BandNR__channelBWs_DL_v1530__fr2, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_120kHz_constr_36, &asn_PER_memb_scs_120kHz_constr_36, memb_scs_120kHz_constraint_34 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_fr2_oms_34[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_fr2_tags_34[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_fr2_specs_34 = { + sizeof(struct BandNR__channelBWs_DL_v1530__fr2), + offsetof(struct BandNR__channelBWs_DL_v1530__fr2, _asn_ctx), + asn_MAP_fr2_tag2el_34, + 2, /* Count of tags in the map */ + asn_MAP_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_fr2_34 = { + "fr2", + "fr2", + &asn_OP_SEQUENCE, + asn_DEF_fr2_tags_34, + sizeof(asn_DEF_fr2_tags_34) + /sizeof(asn_DEF_fr2_tags_34[0]) - 1, /* 1 */ + asn_DEF_fr2_tags_34, /* Same as above */ + sizeof(asn_DEF_fr2_tags_34) + /sizeof(asn_DEF_fr2_tags_34[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_fr2_34, + 2, /* Elements count */ + &asn_SPC_fr2_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_channelBWs_DL_v1530_29[] = { + { ATF_POINTER, 0, offsetof(struct BandNR__channelBWs_DL_v1530, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_fr1_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_POINTER, 0, offsetof(struct BandNR__channelBWs_DL_v1530, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_fr2_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_channelBWs_DL_v1530_specs_29 = { + sizeof(struct BandNR__channelBWs_DL_v1530), + offsetof(struct BandNR__channelBWs_DL_v1530, _asn_ctx), + offsetof(struct BandNR__channelBWs_DL_v1530, present), + sizeof(((struct BandNR__channelBWs_DL_v1530 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_channelBWs_DL_v1530_constr_29, &asn_PER_type_channelBWs_DL_v1530_constr_29, CHOICE_constraint }, + asn_MBR_channelBWs_DL_v1530_29, + 2, /* Elements count */ + &asn_SPC_channelBWs_DL_v1530_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_fr1_38[] = { + { ATF_POINTER, 3, offsetof(struct BandNR__channelBWs_UL_v1530__fr1, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_15kHz_constr_39, &asn_PER_memb_scs_15kHz_constr_39, memb_scs_15kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 2, offsetof(struct BandNR__channelBWs_UL_v1530__fr1, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_30kHz_constr_40, &asn_PER_memb_scs_30kHz_constr_40, memb_scs_30kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 1, offsetof(struct BandNR__channelBWs_UL_v1530__fr1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_60kHz_constr_41, &asn_PER_memb_scs_60kHz_constr_41, memb_scs_60kHz_constraint_38 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, +}; +static const int asn_MAP_fr1_oms_38[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_fr1_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_fr1_specs_38 = { + sizeof(struct BandNR__channelBWs_UL_v1530__fr1), + offsetof(struct BandNR__channelBWs_UL_v1530__fr1, _asn_ctx), + asn_MAP_fr1_tag2el_38, + 3, /* Count of tags in the map */ + asn_MAP_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_fr1_38 = { + "fr1", + "fr1", + &asn_OP_SEQUENCE, + asn_DEF_fr1_tags_38, + sizeof(asn_DEF_fr1_tags_38) + /sizeof(asn_DEF_fr1_tags_38[0]) - 1, /* 1 */ + asn_DEF_fr1_tags_38, /* Same as above */ + sizeof(asn_DEF_fr1_tags_38) + /sizeof(asn_DEF_fr1_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_fr1_38, + 3, /* Elements count */ + &asn_SPC_fr1_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_fr2_42[] = { + { ATF_POINTER, 2, offsetof(struct BandNR__channelBWs_UL_v1530__fr2, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_60kHz_constr_43, &asn_PER_memb_scs_60kHz_constr_43, memb_scs_60kHz_constraint_42 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct BandNR__channelBWs_UL_v1530__fr2, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_scs_120kHz_constr_44, &asn_PER_memb_scs_120kHz_constr_44, memb_scs_120kHz_constraint_42 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_fr2_oms_42[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_fr2_tags_42[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_fr2_specs_42 = { + sizeof(struct BandNR__channelBWs_UL_v1530__fr2), + offsetof(struct BandNR__channelBWs_UL_v1530__fr2, _asn_ctx), + asn_MAP_fr2_tag2el_42, + 2, /* Count of tags in the map */ + asn_MAP_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_fr2_42 = { + "fr2", + "fr2", + &asn_OP_SEQUENCE, + asn_DEF_fr2_tags_42, + sizeof(asn_DEF_fr2_tags_42) + /sizeof(asn_DEF_fr2_tags_42[0]) - 1, /* 1 */ + asn_DEF_fr2_tags_42, /* Same as above */ + sizeof(asn_DEF_fr2_tags_42) + /sizeof(asn_DEF_fr2_tags_42[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_fr2_42, + 2, /* Elements count */ + &asn_SPC_fr2_specs_42 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_channelBWs_UL_v1530_37[] = { + { ATF_POINTER, 0, offsetof(struct BandNR__channelBWs_UL_v1530, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_fr1_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_POINTER, 0, offsetof(struct BandNR__channelBWs_UL_v1530, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_fr2_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_channelBWs_UL_v1530_specs_37 = { + sizeof(struct BandNR__channelBWs_UL_v1530), + offsetof(struct BandNR__channelBWs_UL_v1530, _asn_ctx), + offsetof(struct BandNR__channelBWs_UL_v1530, present), + sizeof(((struct BandNR__channelBWs_UL_v1530 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_channelBWs_UL_v1530_constr_37, &asn_PER_type_channelBWs_UL_v1530_constr_37, CHOICE_constraint }, + asn_MBR_channelBWs_UL_v1530_37, + 2, /* Elements count */ + &asn_SPC_channelBWs_UL_v1530_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxUplinkDutyCycle_PC2_FR1_specs_47 = { + asn_MAP_maxUplinkDutyCycle_PC2_FR1_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxUplinkDutyCycle_PC2_FR1_47 = { + "maxUplinkDutyCycle-PC2-FR1", + "maxUplinkDutyCycle-PC2-FR1", + &asn_OP_NativeEnumerated, + asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47, + sizeof(asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47) + /sizeof(asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47[0]) - 1, /* 1 */ + asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47, /* Same as above */ + sizeof(asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47) + /sizeof(asn_DEF_maxUplinkDutyCycle_PC2_FR1_tags_47[0]), /* 2 */ + { &asn_OER_type_maxUplinkDutyCycle_PC2_FR1_constr_47, &asn_PER_type_maxUplinkDutyCycle_PC2_FR1_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxUplinkDutyCycle_PC2_FR1_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_46[] = { + { ATF_POINTER, 1, offsetof(struct BandNR__ext1, maxUplinkDutyCycle_PC2_FR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxUplinkDutyCycle_PC2_FR1_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxUplinkDutyCycle-PC2-FR1" + }, +}; +static const int asn_MAP_ext1_oms_46[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_46[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_46[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxUplinkDutyCycle-PC2-FR1 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_46 = { + sizeof(struct BandNR__ext1), + offsetof(struct BandNR__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_46, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_46 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_46, + sizeof(asn_DEF_ext1_tags_46) + /sizeof(asn_DEF_ext1_tags_46[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_46, /* Same as above */ + sizeof(asn_DEF_ext1_tags_46) + /sizeof(asn_DEF_ext1_tags_46[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_46, + 1, /* Elements count */ + &asn_SPC_ext1_specs_46 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BandNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandNR, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 15, offsetof(struct BandNR, modifiedMPR_Behaviour), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_modifiedMPR_Behaviour_constr_3, &asn_PER_memb_modifiedMPR_Behaviour_constr_3, memb_modifiedMPR_Behaviour_constraint_1 }, + 0, 0, /* No default value */ + "modifiedMPR-Behaviour" + }, + { ATF_POINTER, 14, offsetof(struct BandNR, mimo_ParametersPerBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_ParametersPerBand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mimo-ParametersPerBand" + }, + { ATF_POINTER, 13, offsetof(struct BandNR, extendedCP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_extendedCP_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "extendedCP" + }, + { ATF_POINTER, 12, offsetof(struct BandNR, multipleTCI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleTCI_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleTCI" + }, + { ATF_POINTER, 11, offsetof(struct BandNR, bwp_WithoutRestriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bwp_WithoutRestriction_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-WithoutRestriction" + }, + { ATF_POINTER, 10, offsetof(struct BandNR, bwp_SameNumerology), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bwp_SameNumerology_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-SameNumerology" + }, + { ATF_POINTER, 9, offsetof(struct BandNR, bwp_DiffNumerology), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bwp_DiffNumerology_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-DiffNumerology" + }, + { ATF_POINTER, 8, offsetof(struct BandNR, crossCarrierScheduling_SameSCS), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_crossCarrierScheduling_SameSCS_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-SameSCS" + }, + { ATF_POINTER, 7, offsetof(struct BandNR, pdsch_256QAM_FR2), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_256QAM_FR2_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-256QAM-FR2" + }, + { ATF_POINTER, 6, offsetof(struct BandNR, pusch_256QAM), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_256QAM_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-256QAM" + }, + { ATF_POINTER, 5, offsetof(struct BandNR, ue_PowerClass), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ue_PowerClass_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-PowerClass" + }, + { ATF_POINTER, 4, offsetof(struct BandNR, rateMatchingLTE_CRS), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rateMatchingLTE_CRS_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingLTE-CRS" + }, + { ATF_POINTER, 3, offsetof(struct BandNR, channelBWs_DL_v1530), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_channelBWs_DL_v1530_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBWs-DL-v1530" + }, + { ATF_POINTER, 2, offsetof(struct BandNR, channelBWs_UL_v1530), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_channelBWs_UL_v1530_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBWs-UL-v1530" + }, + { ATF_POINTER, 1, offsetof(struct BandNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_ext1_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_BandNR_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_BandNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_BandNR_specs_1 = { + sizeof(struct BandNR), + offsetof(struct BandNR, _asn_ctx), + asn_MAP_BandNR_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_BandNR_oms_1, /* Optional members */ + 14, 1, /* Root/Additions */ + 15, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BandNR = { + "BandNR", + "BandNR", + &asn_OP_SEQUENCE, + asn_DEF_BandNR_tags_1, + sizeof(asn_DEF_BandNR_tags_1) + /sizeof(asn_DEF_BandNR_tags_1[0]), /* 1 */ + asn_DEF_BandNR_tags_1, /* Same as above */ + sizeof(asn_DEF_BandNR_tags_1) + /sizeof(asn_DEF_BandNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BandNR_1, + 16, /* Elements count */ + &asn_SPC_BandNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandNR.h b/src/codec_utils/RRC/BandNR.h new file mode 100644 index 000000000..e50941672 --- /dev/null +++ b/src/codec_utils/RRC/BandNR.h @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandNR_H_ +#define _BandNR_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorNR.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BandNR__extendedCP { + BandNR__extendedCP_supported = 0 +} e_BandNR__extendedCP; +typedef enum BandNR__multipleTCI { + BandNR__multipleTCI_supported = 0 +} e_BandNR__multipleTCI; +typedef enum BandNR__bwp_WithoutRestriction { + BandNR__bwp_WithoutRestriction_supported = 0 +} e_BandNR__bwp_WithoutRestriction; +typedef enum BandNR__bwp_SameNumerology { + BandNR__bwp_SameNumerology_upto2 = 0, + BandNR__bwp_SameNumerology_upto4 = 1 +} e_BandNR__bwp_SameNumerology; +typedef enum BandNR__bwp_DiffNumerology { + BandNR__bwp_DiffNumerology_upto4 = 0 +} e_BandNR__bwp_DiffNumerology; +typedef enum BandNR__crossCarrierScheduling_SameSCS { + BandNR__crossCarrierScheduling_SameSCS_supported = 0 +} e_BandNR__crossCarrierScheduling_SameSCS; +typedef enum BandNR__pdsch_256QAM_FR2 { + BandNR__pdsch_256QAM_FR2_supported = 0 +} e_BandNR__pdsch_256QAM_FR2; +typedef enum BandNR__pusch_256QAM { + BandNR__pusch_256QAM_supported = 0 +} e_BandNR__pusch_256QAM; +typedef enum BandNR__ue_PowerClass { + BandNR__ue_PowerClass_pc1 = 0, + BandNR__ue_PowerClass_pc2 = 1, + BandNR__ue_PowerClass_pc3 = 2, + BandNR__ue_PowerClass_pc4 = 3 +} e_BandNR__ue_PowerClass; +typedef enum BandNR__rateMatchingLTE_CRS { + BandNR__rateMatchingLTE_CRS_supported = 0 +} e_BandNR__rateMatchingLTE_CRS; +typedef enum BandNR__channelBWs_DL_v1530_PR { + BandNR__channelBWs_DL_v1530_PR_NOTHING, /* No components present */ + BandNR__channelBWs_DL_v1530_PR_fr1, + BandNR__channelBWs_DL_v1530_PR_fr2 +} BandNR__channelBWs_DL_v1530_PR; +typedef enum BandNR__channelBWs_UL_v1530_PR { + BandNR__channelBWs_UL_v1530_PR_NOTHING, /* No components present */ + BandNR__channelBWs_UL_v1530_PR_fr1, + BandNR__channelBWs_UL_v1530_PR_fr2 +} BandNR__channelBWs_UL_v1530_PR; +typedef enum BandNR__ext1__maxUplinkDutyCycle_PC2_FR1 { + BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n60 = 0, + BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n70 = 1, + BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n80 = 2, + BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n90 = 3, + BandNR__ext1__maxUplinkDutyCycle_PC2_FR1_n100 = 4 +} e_BandNR__ext1__maxUplinkDutyCycle_PC2_FR1; + +/* Forward declarations */ +struct MIMO_ParametersPerBand; + +/* BandNR */ +typedef struct BandNR { + FreqBandIndicatorNR_t bandNR; + BIT_STRING_t *modifiedMPR_Behaviour; /* OPTIONAL */ + struct 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 BandNR__channelBWs_DL_v1530 { + BandNR__channelBWs_DL_v1530_PR present; + union BandNR__channelBWs_DL_v1530_u { + struct 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 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 BandNR__channelBWs_UL_v1530 { + BandNR__channelBWs_UL_v1530_PR present; + union BandNR__channelBWs_UL_v1530_u { + struct 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 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 BandNR__ext1 { + long *maxUplinkDutyCycle_PC2_FR1; /* 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; +} BandNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_extendedCP_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleTCI_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bwp_WithoutRestriction_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bwp_SameNumerology_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bwp_DiffNumerology_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_crossCarrierScheduling_SameSCS_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_256QAM_FR2_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_256QAM_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ue_PowerClass_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rateMatchingLTE_CRS_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxUplinkDutyCycle_PC2_FR1_47; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BandNR; +extern asn_SEQUENCE_specifics_t asn_SPC_BandNR_specs_1; +extern asn_TYPE_member_t asn_MBR_BandNR_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandNR_H_ */ +#include diff --git a/src/codec_utils/RRC/BandParameters.c b/src/codec_utils/RRC/BandParameters.c new file mode 100644 index 000000000..80926be56 --- /dev/null +++ b/src/codec_utils/RRC/BandParameters.c @@ -0,0 +1,195 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BandParameters.h" + +static asn_oer_constraints_t asn_OER_type_BandParameters_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_eutra_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandParameters__eutra, bandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct BandParameters__eutra, ca_BandwidthClassDL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct BandParameters__eutra, ca_BandwidthClassUL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-EUTRA" + }, +}; +static const int asn_MAP_eutra_oms_2[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_eutra_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eutra_specs_2 = { + sizeof(struct BandParameters__eutra), + offsetof(struct BandParameters__eutra, _asn_ctx), + asn_MAP_eutra_tag2el_2, + 3, /* Count of tags in the map */ + asn_MAP_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_eutra_2 = { + "eutra", + "eutra", + &asn_OP_SEQUENCE, + asn_DEF_eutra_tags_2, + sizeof(asn_DEF_eutra_tags_2) + /sizeof(asn_DEF_eutra_tags_2[0]) - 1, /* 1 */ + asn_DEF_eutra_tags_2, /* Same as above */ + sizeof(asn_DEF_eutra_tags_2) + /sizeof(asn_DEF_eutra_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eutra_2, + 3, /* Elements count */ + &asn_SPC_eutra_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nr_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct BandParameters__nr, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 2, offsetof(struct BandParameters__nr, ca_BandwidthClassDL_NR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-NR" + }, + { ATF_POINTER, 1, offsetof(struct BandParameters__nr, ca_BandwidthClassUL_NR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-NR" + }, +}; +static const int asn_MAP_nr_oms_6[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_nr_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nr_specs_6 = { + sizeof(struct BandParameters__nr), + offsetof(struct BandParameters__nr, _asn_ctx), + asn_MAP_nr_tag2el_6, + 3, /* Count of tags in the map */ + asn_MAP_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_nr_6 = { + "nr", + "nr", + &asn_OP_SEQUENCE, + asn_DEF_nr_tags_6, + sizeof(asn_DEF_nr_tags_6) + /sizeof(asn_DEF_nr_tags_6[0]) - 1, /* 1 */ + asn_DEF_nr_tags_6, /* Same as above */ + sizeof(asn_DEF_nr_tags_6) + /sizeof(asn_DEF_nr_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nr_6, + 3, /* Elements count */ + &asn_SPC_nr_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BandParameters_1[] = { + { ATF_POINTER, 0, offsetof(struct BandParameters, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_eutra_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, + { ATF_POINTER, 0, offsetof(struct BandParameters, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nr_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BandParameters_specs_1 = { + sizeof(struct BandParameters), + offsetof(struct BandParameters, _asn_ctx), + offsetof(struct BandParameters, present), + sizeof(((struct BandParameters *)0)->present), + asn_MAP_BandParameters_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_BandParameters = { + "BandParameters", + "BandParameters", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_BandParameters_constr_1, &asn_PER_type_BandParameters_constr_1, CHOICE_constraint }, + asn_MBR_BandParameters_1, + 2, /* Elements count */ + &asn_SPC_BandParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BandParameters.h b/src/codec_utils/RRC/BandParameters.h new file mode 100644 index 000000000..5073e41fd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BandParameters_H_ +#define _BandParameters_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorEUTRA.h" +#include "CA-BandwidthClassEUTRA.h" +#include +#include "FreqBandIndicatorNR.h" +#include "CA-BandwidthClassNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BandParameters_PR { + BandParameters_PR_NOTHING, /* No components present */ + BandParameters_PR_eutra, + BandParameters_PR_nr +} BandParameters_PR; + +/* BandParameters */ +typedef struct BandParameters { + BandParameters_PR present; + union BandParameters_u { + struct BandParameters__eutra { + FreqBandIndicatorEUTRA_t bandEUTRA; + CA_BandwidthClassEUTRA_t *ca_BandwidthClassDL_EUTRA; /* OPTIONAL */ + CA_BandwidthClassEUTRA_t *ca_BandwidthClassUL_EUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eutra; + struct BandParameters__nr { + FreqBandIndicatorNR_t bandNR; + CA_BandwidthClassNR_t *ca_BandwidthClassDL_NR; /* OPTIONAL */ + 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; +} BandParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BandParameters; +extern asn_CHOICE_specifics_t asn_SPC_BandParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_BandParameters_1[2]; +extern asn_per_constraints_t asn_PER_type_BandParameters_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _BandParameters_H_ */ +#include diff --git a/src/codec_utils/RRC/BeamFailureRecoveryConfig.c b/src/codec_utils/RRC/BeamFailureRecoveryConfig.c new file mode 100644 index 000000000..904803d5e --- /dev/null +++ b/src/codec_utils/RRC/BeamFailureRecoveryConfig.c @@ -0,0 +1,457 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BeamFailureRecoveryConfig.h" + +#include "RACH-ConfigGeneric.h" +#include "RA-Prioritization.h" +#include "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_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_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_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_oer_constraints_t asn_OER_type_candidateBeamRSList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_beamFailureRecoveryTimer_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_rootSequenceIndex_BFR_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..137) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_candidateBeamRSList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_16 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_candidateBeamRSList_5[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_PRACH_ResourceDedicatedBFR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_candidateBeamRSList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_candidateBeamRSList_specs_5 = { + sizeof(struct BeamFailureRecoveryConfig__candidateBeamRSList), + offsetof(struct BeamFailureRecoveryConfig__candidateBeamRSList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_candidateBeamRSList_5 = { + "candidateBeamRSList", + "candidateBeamRSList", + &asn_OP_SEQUENCE_OF, + asn_DEF_candidateBeamRSList_tags_5, + sizeof(asn_DEF_candidateBeamRSList_tags_5) + /sizeof(asn_DEF_candidateBeamRSList_tags_5[0]) - 1, /* 1 */ + asn_DEF_candidateBeamRSList_tags_5, /* Same as above */ + sizeof(asn_DEF_candidateBeamRSList_tags_5) + /sizeof(asn_DEF_candidateBeamRSList_tags_5[0]), /* 2 */ + { &asn_OER_type_candidateBeamRSList_constr_5, &asn_PER_type_candidateBeamRSList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_candidateBeamRSList_5, + 1, /* Single element */ + &asn_SPC_candidateBeamRSList_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ssb_perRACH_Occasion_specs_7 = { + asn_MAP_ssb_perRACH_Occasion_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_perRACH_Occasion_7 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_perRACH_Occasion_tags_7, + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7[0]) - 1, /* 1 */ + asn_DEF_ssb_perRACH_Occasion_tags_7, /* Same as above */ + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_7[0]), /* 2 */ + { &asn_OER_type_ssb_perRACH_Occasion_constr_7, &asn_PER_type_ssb_perRACH_Occasion_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_perRACH_Occasion_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_beamFailureRecoveryTimer_specs_19 = { + asn_MAP_beamFailureRecoveryTimer_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_beamFailureRecoveryTimer_19 = { + "beamFailureRecoveryTimer", + "beamFailureRecoveryTimer", + &asn_OP_NativeEnumerated, + asn_DEF_beamFailureRecoveryTimer_tags_19, + sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19) + /sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19[0]) - 1, /* 1 */ + asn_DEF_beamFailureRecoveryTimer_tags_19, /* Same as above */ + sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19) + /sizeof(asn_DEF_beamFailureRecoveryTimer_tags_19[0]), /* 2 */ + { &asn_OER_type_beamFailureRecoveryTimer_constr_19, &asn_PER_type_beamFailureRecoveryTimer_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_beamFailureRecoveryTimer_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_29[] = { + { ATF_POINTER, 1, offsetof(struct BeamFailureRecoveryConfig__ext1, msg1_SubcarrierSpacing_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-SubcarrierSpacing-v1530" + }, +}; +static const int asn_MAP_ext1_oms_29[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* msg1-SubcarrierSpacing-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_29 = { + sizeof(struct BeamFailureRecoveryConfig__ext1), + offsetof(struct BeamFailureRecoveryConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_29, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_29 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_29, + sizeof(asn_DEF_ext1_tags_29) + /sizeof(asn_DEF_ext1_tags_29[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_29, /* Same as above */ + sizeof(asn_DEF_ext1_tags_29) + /sizeof(asn_DEF_ext1_tags_29[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_29, + 1, /* Elements count */ + &asn_SPC_ext1_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BeamFailureRecoveryConfig_1[] = { + { ATF_POINTER, 10, offsetof(struct BeamFailureRecoveryConfig, rootSequenceIndex_BFR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_rootSequenceIndex_BFR_constr_2, &asn_PER_memb_rootSequenceIndex_BFR_constr_2, memb_rootSequenceIndex_BFR_constraint_1 }, + 0, 0, /* No default value */ + "rootSequenceIndex-BFR" + }, + { ATF_POINTER, 9, offsetof(struct BeamFailureRecoveryConfig, rach_ConfigBFR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigBFR" + }, + { ATF_POINTER, 8, offsetof(struct BeamFailureRecoveryConfig, rsrp_ThresholdSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB" + }, + { ATF_POINTER, 7, offsetof(struct BeamFailureRecoveryConfig, candidateBeamRSList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_candidateBeamRSList_5, + 0, + { &asn_OER_memb_candidateBeamRSList_constr_5, &asn_PER_memb_candidateBeamRSList_constr_5, memb_candidateBeamRSList_constraint_1 }, + 0, 0, /* No default value */ + "candidateBeamRSList" + }, + { ATF_POINTER, 6, offsetof(struct BeamFailureRecoveryConfig, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_perRACH_Occasion_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, + { ATF_POINTER, 5, offsetof(struct BeamFailureRecoveryConfig, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_16, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_16, memb_ra_ssb_OccasionMaskIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, + { ATF_POINTER, 4, offsetof(struct BeamFailureRecoveryConfig, recoverySearchSpaceId), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recoverySearchSpaceId" + }, + { ATF_POINTER, 3, offsetof(struct BeamFailureRecoveryConfig, ra_Prioritization), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RA_Prioritization, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Prioritization" + }, + { ATF_POINTER, 2, offsetof(struct BeamFailureRecoveryConfig, beamFailureRecoveryTimer), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_beamFailureRecoveryTimer_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureRecoveryTimer" + }, + { ATF_POINTER, 1, offsetof(struct BeamFailureRecoveryConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ext1_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_BeamFailureRecoveryConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_BeamFailureRecoveryConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BeamFailureRecoveryConfig_specs_1 = { + sizeof(struct BeamFailureRecoveryConfig), + offsetof(struct BeamFailureRecoveryConfig, _asn_ctx), + asn_MAP_BeamFailureRecoveryConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_BeamFailureRecoveryConfig_oms_1, /* Optional members */ + 9, 1, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BeamFailureRecoveryConfig = { + "BeamFailureRecoveryConfig", + "BeamFailureRecoveryConfig", + &asn_OP_SEQUENCE, + asn_DEF_BeamFailureRecoveryConfig_tags_1, + sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1) + /sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */ + asn_DEF_BeamFailureRecoveryConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1) + /sizeof(asn_DEF_BeamFailureRecoveryConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BeamFailureRecoveryConfig_1, + 10, /* Elements count */ + &asn_SPC_BeamFailureRecoveryConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BeamFailureRecoveryConfig.h b/src/codec_utils/RRC/BeamFailureRecoveryConfig.h new file mode 100644 index 000000000..1384937b6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BeamFailureRecoveryConfig_H_ +#define _BeamFailureRecoveryConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RSRP-Range.h" +#include +#include "SearchSpaceId.h" +#include +#include +#include "SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BeamFailureRecoveryConfig__ssb_perRACH_Occasion { + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneEighth = 0, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneFourth = 1, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_oneHalf = 2, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_one = 3, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_two = 4, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_four = 5, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_eight = 6, + BeamFailureRecoveryConfig__ssb_perRACH_Occasion_sixteen = 7 +} e_BeamFailureRecoveryConfig__ssb_perRACH_Occasion; +typedef enum BeamFailureRecoveryConfig__beamFailureRecoveryTimer { + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms10 = 0, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms20 = 1, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms40 = 2, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms60 = 3, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms80 = 4, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms100 = 5, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms150 = 6, + BeamFailureRecoveryConfig__beamFailureRecoveryTimer_ms200 = 7 +} e_BeamFailureRecoveryConfig__beamFailureRecoveryTimer; + +/* Forward declarations */ +struct RACH_ConfigGeneric; +struct RA_Prioritization; +struct PRACH_ResourceDedicatedBFR; + +/* BeamFailureRecoveryConfig */ +typedef struct BeamFailureRecoveryConfig { + long *rootSequenceIndex_BFR; /* OPTIONAL */ + struct RACH_ConfigGeneric *rach_ConfigBFR; /* OPTIONAL */ + RSRP_Range_t *rsrp_ThresholdSSB; /* OPTIONAL */ + struct BeamFailureRecoveryConfig__candidateBeamRSList { + A_SEQUENCE_OF(struct 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 */ + SearchSpaceId_t *recoverySearchSpaceId; /* OPTIONAL */ + struct RA_Prioritization *ra_Prioritization; /* OPTIONAL */ + long *beamFailureRecoveryTimer; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct BeamFailureRecoveryConfig__ext1 { + 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; +} BeamFailureRecoveryConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_beamFailureRecoveryTimer_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BeamFailureRecoveryConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_BeamFailureRecoveryConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_BeamFailureRecoveryConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BeamFailureRecoveryConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.c b/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.c new file mode 100644 index 000000000..99c7d90b0 --- /dev/null +++ b/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.c @@ -0,0 +1,233 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberCSI_RS_ResourceTwoTx_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_maxNumberCSI_RS_ResourceTwoTx_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_oer_constraints_t asn_OER_type_supportedCSI_RS_Density_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_supportedCSI_RS_Density_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 const asn_INTEGER_enum_map_t asn_MAP_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_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_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 = { + asn_MAP_maxNumberSSB_CSI_RS_ResourceOneTx_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberSSB_CSI_RS_ResourceOneTx_2 = { + "maxNumberSSB-CSI-RS-ResourceOneTx", + "maxNumberSSB-CSI-RS-ResourceOneTx", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, + sizeof(asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2) + /sizeof(asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2, &asn_PER_type_maxNumberSSB_CSI_RS_ResourceOneTx_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberSSB_CSI_RS_ResourceOneTx_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberCSI_RS_ResourceTwoTx_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_maxNumberCSI_RS_ResourceTwoTx_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_maxNumberCSI_RS_ResourceTwoTx_specs_8 = { + asn_MAP_maxNumberCSI_RS_ResourceTwoTx_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_maxNumberCSI_RS_ResourceTwoTx_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_maxNumberCSI_RS_ResourceTwoTx_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_maxNumberCSI_RS_ResourceTwoTx_8 = { + "maxNumberCSI-RS-ResourceTwoTx", + "maxNumberCSI-RS-ResourceTwoTx", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8, + sizeof(asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8) + /sizeof(asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8[0]) - 1, /* 1 */ + asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8, /* Same as above */ + sizeof(asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8) + /sizeof(asn_DEF_maxNumberCSI_RS_ResourceTwoTx_tags_8[0]), /* 2 */ + { &asn_OER_type_maxNumberCSI_RS_ResourceTwoTx_constr_8, &asn_PER_type_maxNumberCSI_RS_ResourceTwoTx_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberCSI_RS_ResourceTwoTx_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedCSI_RS_Density_value2enum_15[] = { + { 0, 3, "one" }, + { 1, 5, "three" }, + { 2, 11, "oneAndThree" } +}; +static const unsigned int asn_MAP_supportedCSI_RS_Density_enum2value_15[] = { + 0, /* one(0) */ + 2, /* oneAndThree(2) */ + 1 /* three(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedCSI_RS_Density_specs_15 = { + asn_MAP_supportedCSI_RS_Density_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_supportedCSI_RS_Density_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_supportedCSI_RS_Density_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_supportedCSI_RS_Density_15 = { + "supportedCSI-RS-Density", + "supportedCSI-RS-Density", + &asn_OP_NativeEnumerated, + asn_DEF_supportedCSI_RS_Density_tags_15, + sizeof(asn_DEF_supportedCSI_RS_Density_tags_15) + /sizeof(asn_DEF_supportedCSI_RS_Density_tags_15[0]) - 1, /* 1 */ + asn_DEF_supportedCSI_RS_Density_tags_15, /* Same as above */ + sizeof(asn_DEF_supportedCSI_RS_Density_tags_15) + /sizeof(asn_DEF_supportedCSI_RS_Density_tags_15[0]), /* 2 */ + { &asn_OER_type_supportedCSI_RS_Density_constr_15, &asn_PER_type_supportedCSI_RS_Density_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedCSI_RS_Density_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_BeamManagementSSB_CSI_RS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct BeamManagementSSB_CSI_RS, maxNumberSSB_CSI_RS_ResourceOneTx), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSSB-CSI-RS-ResourceOneTx" + }, + { ATF_NOFLAGS, 0, offsetof(struct BeamManagementSSB_CSI_RS, maxNumberCSI_RS_ResourceTwoTx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberCSI_RS_ResourceTwoTx_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-ResourceTwoTx" + }, + { ATF_NOFLAGS, 0, offsetof(struct BeamManagementSSB_CSI_RS, supportedCSI_RS_Density), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedCSI_RS_Density_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCSI-RS-Density" + }, +}; +static const ber_tlv_tag_t asn_DEF_BeamManagementSSB_CSI_RS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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-ResourceTwoTx */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* supportedCSI-RS-Density */ +}; +asn_SEQUENCE_specifics_t asn_SPC_BeamManagementSSB_CSI_RS_specs_1 = { + sizeof(struct BeamManagementSSB_CSI_RS), + offsetof(struct BeamManagementSSB_CSI_RS, _asn_ctx), + asn_MAP_BeamManagementSSB_CSI_RS_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_BeamManagementSSB_CSI_RS = { + "BeamManagementSSB-CSI-RS", + "BeamManagementSSB-CSI-RS", + &asn_OP_SEQUENCE, + asn_DEF_BeamManagementSSB_CSI_RS_tags_1, + sizeof(asn_DEF_BeamManagementSSB_CSI_RS_tags_1) + /sizeof(asn_DEF_BeamManagementSSB_CSI_RS_tags_1[0]), /* 1 */ + asn_DEF_BeamManagementSSB_CSI_RS_tags_1, /* Same as above */ + sizeof(asn_DEF_BeamManagementSSB_CSI_RS_tags_1) + /sizeof(asn_DEF_BeamManagementSSB_CSI_RS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BeamManagementSSB_CSI_RS_1, + 3, /* Elements count */ + &asn_SPC_BeamManagementSSB_CSI_RS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.h b/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.h new file mode 100644 index 000000000..5544bd95f --- /dev/null +++ b/src/codec_utils/RRC/BeamManagementSSB-CSI-RS.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BeamManagementSSB_CSI_RS_H_ +#define _BeamManagementSSB_CSI_RS_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx { + BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n0 = 0, + BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n8 = 1, + BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n16 = 2, + BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n32 = 3, + BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx_n64 = 4 +} e_BeamManagementSSB_CSI_RS__maxNumberSSB_CSI_RS_ResourceOneTx; +typedef enum BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx { + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n0 = 0, + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n4 = 1, + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n8 = 2, + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n16 = 3, + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n32 = 4, + BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx_n64 = 5 +} e_BeamManagementSSB_CSI_RS__maxNumberCSI_RS_ResourceTwoTx; +typedef enum BeamManagementSSB_CSI_RS__supportedCSI_RS_Density { + BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_one = 0, + BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_three = 1, + BeamManagementSSB_CSI_RS__supportedCSI_RS_Density_oneAndThree = 2 +} e_BeamManagementSSB_CSI_RS__supportedCSI_RS_Density; + +/* BeamManagementSSB-CSI-RS */ +typedef struct BeamManagementSSB_CSI_RS { + long maxNumberSSB_CSI_RS_ResourceOneTx; + long maxNumberCSI_RS_ResourceTwoTx; + long supportedCSI_RS_Density; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} BeamManagementSSB_CSI_RS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberSSB_CSI_RS_ResourceOneTx_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberCSI_RS_ResourceTwoTx_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedCSI_RS_Density_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_BeamManagementSSB_CSI_RS; +extern asn_SEQUENCE_specifics_t asn_SPC_BeamManagementSSB_CSI_RS_specs_1; +extern asn_TYPE_member_t asn_MBR_BeamManagementSSB_CSI_RS_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BeamManagementSSB_CSI_RS_H_ */ +#include diff --git a/src/codec_utils/RRC/BetaOffsets.c b/src/codec_utils/RRC/BetaOffsets.c new file mode 100644 index 000000000..3b957a156 --- /dev/null +++ b/src/codec_utils/RRC/BetaOffsets.c @@ -0,0 +1,343 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "BetaOffsets.h" + +static int +memb_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_betaOffsetACK_Index1_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetACK_Index2_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetACK_Index3_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetCSI_Part1_Index1_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetCSI_Part1_Index2_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetCSI_Part2_Index1_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_betaOffsetCSI_Part2_Index2_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_BetaOffsets_1[] = { + { ATF_POINTER, 7, offsetof(struct BetaOffsets, betaOffsetACK_Index1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetACK_Index1_constr_2, &asn_PER_memb_betaOffsetACK_Index1_constr_2, memb_betaOffsetACK_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index1" + }, + { ATF_POINTER, 6, offsetof(struct BetaOffsets, betaOffsetACK_Index2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetACK_Index2_constr_3, &asn_PER_memb_betaOffsetACK_Index2_constr_3, memb_betaOffsetACK_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index2" + }, + { ATF_POINTER, 5, offsetof(struct BetaOffsets, betaOffsetACK_Index3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetACK_Index3_constr_4, &asn_PER_memb_betaOffsetACK_Index3_constr_4, memb_betaOffsetACK_Index3_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetACK-Index3" + }, + { ATF_POINTER, 4, offsetof(struct BetaOffsets, betaOffsetCSI_Part1_Index1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetCSI_Part1_Index1_constr_5, &asn_PER_memb_betaOffsetCSI_Part1_Index1_constr_5, memb_betaOffsetCSI_Part1_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part1-Index1" + }, + { ATF_POINTER, 3, offsetof(struct BetaOffsets, betaOffsetCSI_Part1_Index2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetCSI_Part1_Index2_constr_6, &asn_PER_memb_betaOffsetCSI_Part1_Index2_constr_6, memb_betaOffsetCSI_Part1_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part1-Index2" + }, + { ATF_POINTER, 2, offsetof(struct BetaOffsets, betaOffsetCSI_Part2_Index1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetCSI_Part2_Index1_constr_7, &asn_PER_memb_betaOffsetCSI_Part2_Index1_constr_7, memb_betaOffsetCSI_Part2_Index1_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part2-Index1" + }, + { ATF_POINTER, 1, offsetof(struct BetaOffsets, betaOffsetCSI_Part2_Index2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_betaOffsetCSI_Part2_Index2_constr_8, &asn_PER_memb_betaOffsetCSI_Part2_Index2_constr_8, memb_betaOffsetCSI_Part2_Index2_constraint_1 }, + 0, 0, /* No default value */ + "betaOffsetCSI-Part2-Index2" + }, +}; +static const int asn_MAP_BetaOffsets_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_BetaOffsets_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_BetaOffsets_specs_1 = { + sizeof(struct BetaOffsets), + offsetof(struct BetaOffsets, _asn_ctx), + asn_MAP_BetaOffsets_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_BetaOffsets_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_BetaOffsets = { + "BetaOffsets", + "BetaOffsets", + &asn_OP_SEQUENCE, + asn_DEF_BetaOffsets_tags_1, + sizeof(asn_DEF_BetaOffsets_tags_1) + /sizeof(asn_DEF_BetaOffsets_tags_1[0]), /* 1 */ + asn_DEF_BetaOffsets_tags_1, /* Same as above */ + sizeof(asn_DEF_BetaOffsets_tags_1) + /sizeof(asn_DEF_BetaOffsets_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_BetaOffsets_1, + 7, /* Elements count */ + &asn_SPC_BetaOffsets_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/BetaOffsets.h b/src/codec_utils/RRC/BetaOffsets.h new file mode 100644 index 000000000..1af05d1e5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _BetaOffsets_H_ +#define _BetaOffsets_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* BetaOffsets */ +typedef struct 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; +} BetaOffsets_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_BetaOffsets; +extern asn_SEQUENCE_specifics_t asn_SPC_BetaOffsets_specs_1; +extern asn_TYPE_member_t asn_MBR_BetaOffsets_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _BetaOffsets_H_ */ +#include diff --git a/src/codec_utils/RRC/CA-BandwidthClassEUTRA.c b/src/codec_utils/RRC/CA-BandwidthClassEUTRA.c new file mode 100644 index 000000000..3316d1c39 --- /dev/null +++ b/src/codec_utils/RRC/CA-BandwidthClassEUTRA.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CA-BandwidthClassEUTRA.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CA_BandwidthClassEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_CA_BandwidthClassEUTRA_specs_1 = { + asn_MAP_CA_BandwidthClassEUTRA_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_CA_BandwidthClassEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CA_BandwidthClassEUTRA = { + "CA-BandwidthClassEUTRA", + "CA-BandwidthClassEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_CA_BandwidthClassEUTRA_tags_1, + sizeof(asn_DEF_CA_BandwidthClassEUTRA_tags_1) + /sizeof(asn_DEF_CA_BandwidthClassEUTRA_tags_1[0]), /* 1 */ + asn_DEF_CA_BandwidthClassEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_CA_BandwidthClassEUTRA_tags_1) + /sizeof(asn_DEF_CA_BandwidthClassEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_CA_BandwidthClassEUTRA_constr_1, &asn_PER_type_CA_BandwidthClassEUTRA_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CA_BandwidthClassEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CA-BandwidthClassEUTRA.h b/src/codec_utils/RRC/CA-BandwidthClassEUTRA.h new file mode 100644 index 000000000..3f25a8d88 --- /dev/null +++ b/src/codec_utils/RRC/CA-BandwidthClassEUTRA.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CA_BandwidthClassEUTRA_H_ +#define _CA_BandwidthClassEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CA_BandwidthClassEUTRA { + CA_BandwidthClassEUTRA_a = 0, + CA_BandwidthClassEUTRA_b = 1, + CA_BandwidthClassEUTRA_c = 2, + CA_BandwidthClassEUTRA_d = 3, + CA_BandwidthClassEUTRA_e = 4, + CA_BandwidthClassEUTRA_f = 5 + /* + * Enumeration is extensible + */ +} e_CA_BandwidthClassEUTRA; + +/* CA-BandwidthClassEUTRA */ +typedef long CA_BandwidthClassEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CA_BandwidthClassEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CA_BandwidthClassEUTRA; +extern const asn_INTEGER_specifics_t asn_SPC_CA_BandwidthClassEUTRA_specs_1; +asn_struct_free_f CA_BandwidthClassEUTRA_free; +asn_struct_print_f CA_BandwidthClassEUTRA_print; +asn_constr_check_f CA_BandwidthClassEUTRA_constraint; +ber_type_decoder_f CA_BandwidthClassEUTRA_decode_ber; +der_type_encoder_f CA_BandwidthClassEUTRA_encode_der; +xer_type_decoder_f CA_BandwidthClassEUTRA_decode_xer; +xer_type_encoder_f CA_BandwidthClassEUTRA_encode_xer; +oer_type_decoder_f CA_BandwidthClassEUTRA_decode_oer; +oer_type_encoder_f CA_BandwidthClassEUTRA_encode_oer; +per_type_decoder_f CA_BandwidthClassEUTRA_decode_uper; +per_type_encoder_f CA_BandwidthClassEUTRA_encode_uper; +per_type_decoder_f CA_BandwidthClassEUTRA_decode_aper; +per_type_encoder_f CA_BandwidthClassEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CA_BandwidthClassEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/CA-BandwidthClassNR.c b/src/codec_utils/RRC/CA-BandwidthClassNR.c new file mode 100644 index 000000000..93f749ae3 --- /dev/null +++ b/src/codec_utils/RRC/CA-BandwidthClassNR.c @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CA-BandwidthClassNR.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CA_BandwidthClassNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_CA_BandwidthClassNR_specs_1 = { + asn_MAP_CA_BandwidthClassNR_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_CA_BandwidthClassNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CA_BandwidthClassNR = { + "CA-BandwidthClassNR", + "CA-BandwidthClassNR", + &asn_OP_NativeEnumerated, + asn_DEF_CA_BandwidthClassNR_tags_1, + sizeof(asn_DEF_CA_BandwidthClassNR_tags_1) + /sizeof(asn_DEF_CA_BandwidthClassNR_tags_1[0]), /* 1 */ + asn_DEF_CA_BandwidthClassNR_tags_1, /* Same as above */ + sizeof(asn_DEF_CA_BandwidthClassNR_tags_1) + /sizeof(asn_DEF_CA_BandwidthClassNR_tags_1[0]), /* 1 */ + { &asn_OER_type_CA_BandwidthClassNR_constr_1, &asn_PER_type_CA_BandwidthClassNR_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CA_BandwidthClassNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CA-BandwidthClassNR.h b/src/codec_utils/RRC/CA-BandwidthClassNR.h new file mode 100644 index 000000000..2458d07d2 --- /dev/null +++ b/src/codec_utils/RRC/CA-BandwidthClassNR.h @@ -0,0 +1,71 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CA_BandwidthClassNR_H_ +#define _CA_BandwidthClassNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CA_BandwidthClassNR { + CA_BandwidthClassNR_a = 0, + CA_BandwidthClassNR_b = 1, + CA_BandwidthClassNR_c = 2, + CA_BandwidthClassNR_d = 3, + CA_BandwidthClassNR_e = 4, + CA_BandwidthClassNR_f = 5, + CA_BandwidthClassNR_g = 6, + CA_BandwidthClassNR_h = 7, + CA_BandwidthClassNR_i = 8, + CA_BandwidthClassNR_j = 9, + CA_BandwidthClassNR_k = 10, + CA_BandwidthClassNR_l = 11, + CA_BandwidthClassNR_m = 12, + CA_BandwidthClassNR_n = 13, + CA_BandwidthClassNR_o = 14, + CA_BandwidthClassNR_p = 15, + CA_BandwidthClassNR_q = 16 + /* + * Enumeration is extensible + */ +} e_CA_BandwidthClassNR; + +/* CA-BandwidthClassNR */ +typedef long CA_BandwidthClassNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CA_BandwidthClassNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CA_BandwidthClassNR; +extern const asn_INTEGER_specifics_t asn_SPC_CA_BandwidthClassNR_specs_1; +asn_struct_free_f CA_BandwidthClassNR_free; +asn_struct_print_f CA_BandwidthClassNR_print; +asn_constr_check_f CA_BandwidthClassNR_constraint; +ber_type_decoder_f CA_BandwidthClassNR_decode_ber; +der_type_encoder_f CA_BandwidthClassNR_encode_der; +xer_type_decoder_f CA_BandwidthClassNR_decode_xer; +xer_type_encoder_f CA_BandwidthClassNR_encode_xer; +oer_type_decoder_f CA_BandwidthClassNR_decode_oer; +oer_type_encoder_f CA_BandwidthClassNR_encode_oer; +per_type_decoder_f CA_BandwidthClassNR_decode_uper; +per_type_encoder_f CA_BandwidthClassNR_encode_uper; +per_type_decoder_f CA_BandwidthClassNR_decode_aper; +per_type_encoder_f CA_BandwidthClassNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CA_BandwidthClassNR_H_ */ +#include diff --git a/src/codec_utils/RRC/CA-ParametersEUTRA.c b/src/codec_utils/RRC/CA-ParametersEUTRA.c new file mode 100644 index 000000000..646789c67 --- /dev/null +++ b/src/codec_utils/RRC/CA-ParametersEUTRA.c @@ -0,0 +1,368 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_multipleTimingAdvance_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousRx_Tx_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_additionalRx_Tx_PerformanceReq_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ue_CA_PowerClass_N_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_supportedNAICS_2CRS_AP_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_supportedBandwidthCombinationSetEUTRA_v1530_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_multipleTimingAdvance_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleTimingAdvance_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleTimingAdvance_specs_2 = { + asn_MAP_multipleTimingAdvance_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multipleTimingAdvance_2 = { + "multipleTimingAdvance", + "multipleTimingAdvance", + &asn_OP_NativeEnumerated, + asn_DEF_multipleTimingAdvance_tags_2, + sizeof(asn_DEF_multipleTimingAdvance_tags_2) + /sizeof(asn_DEF_multipleTimingAdvance_tags_2[0]) - 1, /* 1 */ + asn_DEF_multipleTimingAdvance_tags_2, /* Same as above */ + sizeof(asn_DEF_multipleTimingAdvance_tags_2) + /sizeof(asn_DEF_multipleTimingAdvance_tags_2[0]), /* 2 */ + { &asn_OER_type_multipleTimingAdvance_constr_2, &asn_PER_type_multipleTimingAdvance_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleTimingAdvance_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousRx_Tx_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousRx_Tx_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousRx_Tx_specs_4 = { + asn_MAP_simultaneousRx_Tx_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousRx_Tx_4 = { + "simultaneousRx-Tx", + "simultaneousRx-Tx", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousRx_Tx_tags_4, + sizeof(asn_DEF_simultaneousRx_Tx_tags_4) + /sizeof(asn_DEF_simultaneousRx_Tx_tags_4[0]) - 1, /* 1 */ + asn_DEF_simultaneousRx_Tx_tags_4, /* Same as above */ + sizeof(asn_DEF_simultaneousRx_Tx_tags_4) + /sizeof(asn_DEF_simultaneousRx_Tx_tags_4[0]), /* 2 */ + { &asn_OER_type_simultaneousRx_Tx_constr_4, &asn_PER_type_simultaneousRx_Tx_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousRx_Tx_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_additionalRx_Tx_PerformanceReq_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_additionalRx_Tx_PerformanceReq_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_additionalRx_Tx_PerformanceReq_specs_7 = { + asn_MAP_additionalRx_Tx_PerformanceReq_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_additionalRx_Tx_PerformanceReq_7 = { + "additionalRx-Tx-PerformanceReq", + "additionalRx-Tx-PerformanceReq", + &asn_OP_NativeEnumerated, + asn_DEF_additionalRx_Tx_PerformanceReq_tags_7, + sizeof(asn_DEF_additionalRx_Tx_PerformanceReq_tags_7) + /sizeof(asn_DEF_additionalRx_Tx_PerformanceReq_tags_7[0]) - 1, /* 1 */ + asn_DEF_additionalRx_Tx_PerformanceReq_tags_7, /* Same as above */ + sizeof(asn_DEF_additionalRx_Tx_PerformanceReq_tags_7) + /sizeof(asn_DEF_additionalRx_Tx_PerformanceReq_tags_7[0]), /* 2 */ + { &asn_OER_type_additionalRx_Tx_PerformanceReq_constr_7, &asn_PER_type_additionalRx_Tx_PerformanceReq_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_additionalRx_Tx_PerformanceReq_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ue_CA_PowerClass_N_value2enum_9[] = { + { 0, 6, "class2" } +}; +static const unsigned int asn_MAP_ue_CA_PowerClass_N_enum2value_9[] = { + 0 /* class2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ue_CA_PowerClass_N_specs_9 = { + asn_MAP_ue_CA_PowerClass_N_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ue_CA_PowerClass_N_9 = { + "ue-CA-PowerClass-N", + "ue-CA-PowerClass-N", + &asn_OP_NativeEnumerated, + asn_DEF_ue_CA_PowerClass_N_tags_9, + sizeof(asn_DEF_ue_CA_PowerClass_N_tags_9) + /sizeof(asn_DEF_ue_CA_PowerClass_N_tags_9[0]) - 1, /* 1 */ + asn_DEF_ue_CA_PowerClass_N_tags_9, /* Same as above */ + sizeof(asn_DEF_ue_CA_PowerClass_N_tags_9) + /sizeof(asn_DEF_ue_CA_PowerClass_N_tags_9[0]), /* 2 */ + { &asn_OER_type_ue_CA_PowerClass_N_constr_9, &asn_PER_type_ue_CA_PowerClass_N_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ue_CA_PowerClass_N_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CA_ParametersEUTRA_1[] = { + { ATF_POINTER, 6, offsetof(struct CA_ParametersEUTRA, multipleTimingAdvance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleTimingAdvance_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleTimingAdvance" + }, + { ATF_POINTER, 5, offsetof(struct CA_ParametersEUTRA, simultaneousRx_Tx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousRx_Tx_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRx-Tx" + }, + { ATF_POINTER, 4, offsetof(struct CA_ParametersEUTRA, supportedNAICS_2CRS_AP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_supportedNAICS_2CRS_AP_constr_6, &asn_PER_memb_supportedNAICS_2CRS_AP_constr_6, memb_supportedNAICS_2CRS_AP_constraint_1 }, + 0, 0, /* No default value */ + "supportedNAICS-2CRS-AP" + }, + { ATF_POINTER, 3, offsetof(struct CA_ParametersEUTRA, additionalRx_Tx_PerformanceReq), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_additionalRx_Tx_PerformanceReq_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalRx-Tx-PerformanceReq" + }, + { ATF_POINTER, 2, offsetof(struct CA_ParametersEUTRA, ue_CA_PowerClass_N), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ue_CA_PowerClass_N_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CA-PowerClass-N" + }, + { ATF_POINTER, 1, offsetof(struct CA_ParametersEUTRA, supportedBandwidthCombinationSetEUTRA_v1530), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_supportedBandwidthCombinationSetEUTRA_v1530_constr_11, &asn_PER_memb_supportedBandwidthCombinationSetEUTRA_v1530_constr_11, memb_supportedBandwidthCombinationSetEUTRA_v1530_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandwidthCombinationSetEUTRA-v1530" + }, +}; +static const int asn_MAP_CA_ParametersEUTRA_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_CA_ParametersEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CA_ParametersEUTRA_specs_1 = { + sizeof(struct CA_ParametersEUTRA), + offsetof(struct CA_ParametersEUTRA, _asn_ctx), + asn_MAP_CA_ParametersEUTRA_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_CA_ParametersEUTRA_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CA_ParametersEUTRA = { + "CA-ParametersEUTRA", + "CA-ParametersEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_CA_ParametersEUTRA_tags_1, + sizeof(asn_DEF_CA_ParametersEUTRA_tags_1) + /sizeof(asn_DEF_CA_ParametersEUTRA_tags_1[0]), /* 1 */ + asn_DEF_CA_ParametersEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_CA_ParametersEUTRA_tags_1) + /sizeof(asn_DEF_CA_ParametersEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CA_ParametersEUTRA_1, + 6, /* Elements count */ + &asn_SPC_CA_ParametersEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CA-ParametersEUTRA.h b/src/codec_utils/RRC/CA-ParametersEUTRA.h new file mode 100644 index 000000000..53bd9bdb7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CA_ParametersEUTRA_H_ +#define _CA_ParametersEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CA_ParametersEUTRA__multipleTimingAdvance { + CA_ParametersEUTRA__multipleTimingAdvance_supported = 0 +} e_CA_ParametersEUTRA__multipleTimingAdvance; +typedef enum CA_ParametersEUTRA__simultaneousRx_Tx { + CA_ParametersEUTRA__simultaneousRx_Tx_supported = 0 +} e_CA_ParametersEUTRA__simultaneousRx_Tx; +typedef enum CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq { + CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq_supported = 0 +} e_CA_ParametersEUTRA__additionalRx_Tx_PerformanceReq; +typedef enum CA_ParametersEUTRA__ue_CA_PowerClass_N { + CA_ParametersEUTRA__ue_CA_PowerClass_N_class2 = 0 +} e_CA_ParametersEUTRA__ue_CA_PowerClass_N; + +/* CA-ParametersEUTRA */ +typedef struct 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; +} CA_ParametersEUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleTimingAdvance_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousRx_Tx_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_additionalRx_Tx_PerformanceReq_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ue_CA_PowerClass_N_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CA_ParametersEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_CA_ParametersEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_CA_ParametersEUTRA_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CA_ParametersEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/CA-ParametersNR.c b/src/codec_utils/RRC/CA-ParametersNR.c new file mode 100644 index 000000000..7f46752f5 --- /dev/null +++ b/src/codec_utils/RRC/CA-ParametersNR.c @@ -0,0 +1,502 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_multipleTimingAdvances_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_multipleTimingAdvances_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_oer_constraints_t asn_OER_type_parallelTxSRS_PUCCH_PUSCH_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_parallelTxPRACH_SRS_PUCCH_PUSCH_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousRxTxInterBandCA_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousRxTxSUL_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_diffNumerologyAcrossPUCCH_Group_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_diffNumerologyWithinPUCCH_Group_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_diffNumerologyWithinPUCCH_Group_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_oer_constraints_t asn_OER_type_supportedNumberTAG_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_multipleTimingAdvances_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleTimingAdvances_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleTimingAdvances_specs_2 = { + asn_MAP_multipleTimingAdvances_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_multipleTimingAdvances_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_multipleTimingAdvances_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_multipleTimingAdvances_2 = { + "multipleTimingAdvances", + "multipleTimingAdvances", + &asn_OP_NativeEnumerated, + asn_DEF_multipleTimingAdvances_tags_2, + sizeof(asn_DEF_multipleTimingAdvances_tags_2) + /sizeof(asn_DEF_multipleTimingAdvances_tags_2[0]) - 1, /* 1 */ + asn_DEF_multipleTimingAdvances_tags_2, /* Same as above */ + sizeof(asn_DEF_multipleTimingAdvances_tags_2) + /sizeof(asn_DEF_multipleTimingAdvances_tags_2[0]), /* 2 */ + { &asn_OER_type_multipleTimingAdvances_constr_2, &asn_PER_type_multipleTimingAdvances_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleTimingAdvances_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_parallelTxSRS_PUCCH_PUSCH_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_parallelTxSRS_PUCCH_PUSCH_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_parallelTxSRS_PUCCH_PUSCH_specs_4 = { + asn_MAP_parallelTxSRS_PUCCH_PUSCH_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_parallelTxSRS_PUCCH_PUSCH_4 = { + "parallelTxSRS-PUCCH-PUSCH", + "parallelTxSRS-PUCCH-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4, + sizeof(asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4) + /sizeof(asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4[0]) - 1, /* 1 */ + asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4, /* Same as above */ + sizeof(asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4) + /sizeof(asn_DEF_parallelTxSRS_PUCCH_PUSCH_tags_4[0]), /* 2 */ + { &asn_OER_type_parallelTxSRS_PUCCH_PUSCH_constr_4, &asn_PER_type_parallelTxSRS_PUCCH_PUSCH_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_parallelTxSRS_PUCCH_PUSCH_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_parallelTxPRACH_SRS_PUCCH_PUSCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_parallelTxPRACH_SRS_PUCCH_PUSCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_parallelTxPRACH_SRS_PUCCH_PUSCH_specs_6 = { + asn_MAP_parallelTxPRACH_SRS_PUCCH_PUSCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_parallelTxPRACH_SRS_PUCCH_PUSCH_6 = { + "parallelTxPRACH-SRS-PUCCH-PUSCH", + "parallelTxPRACH-SRS-PUCCH-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6, + sizeof(asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6) + /sizeof(asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6) + /sizeof(asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_tags_6[0]), /* 2 */ + { &asn_OER_type_parallelTxPRACH_SRS_PUCCH_PUSCH_constr_6, &asn_PER_type_parallelTxPRACH_SRS_PUCCH_PUSCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_parallelTxPRACH_SRS_PUCCH_PUSCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousRxTxInterBandCA_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousRxTxInterBandCA_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousRxTxInterBandCA_specs_8 = { + asn_MAP_simultaneousRxTxInterBandCA_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousRxTxInterBandCA_8 = { + "simultaneousRxTxInterBandCA", + "simultaneousRxTxInterBandCA", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousRxTxInterBandCA_tags_8, + sizeof(asn_DEF_simultaneousRxTxInterBandCA_tags_8) + /sizeof(asn_DEF_simultaneousRxTxInterBandCA_tags_8[0]) - 1, /* 1 */ + asn_DEF_simultaneousRxTxInterBandCA_tags_8, /* Same as above */ + sizeof(asn_DEF_simultaneousRxTxInterBandCA_tags_8) + /sizeof(asn_DEF_simultaneousRxTxInterBandCA_tags_8[0]), /* 2 */ + { &asn_OER_type_simultaneousRxTxInterBandCA_constr_8, &asn_PER_type_simultaneousRxTxInterBandCA_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousRxTxInterBandCA_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousRxTxSUL_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousRxTxSUL_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousRxTxSUL_specs_10 = { + asn_MAP_simultaneousRxTxSUL_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousRxTxSUL_10 = { + "simultaneousRxTxSUL", + "simultaneousRxTxSUL", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousRxTxSUL_tags_10, + sizeof(asn_DEF_simultaneousRxTxSUL_tags_10) + /sizeof(asn_DEF_simultaneousRxTxSUL_tags_10[0]) - 1, /* 1 */ + asn_DEF_simultaneousRxTxSUL_tags_10, /* Same as above */ + sizeof(asn_DEF_simultaneousRxTxSUL_tags_10) + /sizeof(asn_DEF_simultaneousRxTxSUL_tags_10[0]), /* 2 */ + { &asn_OER_type_simultaneousRxTxSUL_constr_10, &asn_PER_type_simultaneousRxTxSUL_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousRxTxSUL_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_diffNumerologyAcrossPUCCH_Group_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_diffNumerologyAcrossPUCCH_Group_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_diffNumerologyAcrossPUCCH_Group_specs_12 = { + asn_MAP_diffNumerologyAcrossPUCCH_Group_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_diffNumerologyAcrossPUCCH_Group_12 = { + "diffNumerologyAcrossPUCCH-Group", + "diffNumerologyAcrossPUCCH-Group", + &asn_OP_NativeEnumerated, + asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12, + sizeof(asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12) + /sizeof(asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12[0]) - 1, /* 1 */ + asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12, /* Same as above */ + sizeof(asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12) + /sizeof(asn_DEF_diffNumerologyAcrossPUCCH_Group_tags_12[0]), /* 2 */ + { &asn_OER_type_diffNumerologyAcrossPUCCH_Group_constr_12, &asn_PER_type_diffNumerologyAcrossPUCCH_Group_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_diffNumerologyAcrossPUCCH_Group_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_diffNumerologyWithinPUCCH_Group_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_diffNumerologyWithinPUCCH_Group_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_diffNumerologyWithinPUCCH_Group_specs_14 = { + asn_MAP_diffNumerologyWithinPUCCH_Group_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_diffNumerologyWithinPUCCH_Group_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_diffNumerologyWithinPUCCH_Group_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_diffNumerologyWithinPUCCH_Group_14 = { + "diffNumerologyWithinPUCCH-Group", + "diffNumerologyWithinPUCCH-Group", + &asn_OP_NativeEnumerated, + asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14, + sizeof(asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14) + /sizeof(asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14[0]) - 1, /* 1 */ + asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14, /* Same as above */ + sizeof(asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14) + /sizeof(asn_DEF_diffNumerologyWithinPUCCH_Group_tags_14[0]), /* 2 */ + { &asn_OER_type_diffNumerologyWithinPUCCH_Group_constr_14, &asn_PER_type_diffNumerologyWithinPUCCH_Group_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_diffNumerologyWithinPUCCH_Group_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedNumberTAG_value2enum_16[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_supportedNumberTAG_enum2value_16[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedNumberTAG_specs_16 = { + asn_MAP_supportedNumberTAG_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedNumberTAG_16 = { + "supportedNumberTAG", + "supportedNumberTAG", + &asn_OP_NativeEnumerated, + asn_DEF_supportedNumberTAG_tags_16, + sizeof(asn_DEF_supportedNumberTAG_tags_16) + /sizeof(asn_DEF_supportedNumberTAG_tags_16[0]) - 1, /* 1 */ + asn_DEF_supportedNumberTAG_tags_16, /* Same as above */ + sizeof(asn_DEF_supportedNumberTAG_tags_16) + /sizeof(asn_DEF_supportedNumberTAG_tags_16[0]), /* 2 */ + { &asn_OER_type_supportedNumberTAG_constr_16, &asn_PER_type_supportedNumberTAG_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedNumberTAG_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CA_ParametersNR_1[] = { + { ATF_POINTER, 8, offsetof(struct CA_ParametersNR, multipleTimingAdvances), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleTimingAdvances_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleTimingAdvances" + }, + { ATF_POINTER, 7, offsetof(struct CA_ParametersNR, parallelTxSRS_PUCCH_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_parallelTxSRS_PUCCH_PUSCH_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parallelTxSRS-PUCCH-PUSCH" + }, + { ATF_POINTER, 6, offsetof(struct CA_ParametersNR, parallelTxPRACH_SRS_PUCCH_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "parallelTxPRACH-SRS-PUCCH-PUSCH" + }, + { ATF_POINTER, 5, offsetof(struct CA_ParametersNR, simultaneousRxTxInterBandCA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousRxTxInterBandCA_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxInterBandCA" + }, + { ATF_POINTER, 4, offsetof(struct CA_ParametersNR, simultaneousRxTxSUL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousRxTxSUL_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxSUL" + }, + { ATF_POINTER, 3, offsetof(struct CA_ParametersNR, diffNumerologyAcrossPUCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_diffNumerologyAcrossPUCCH_Group_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffNumerologyAcrossPUCCH-Group" + }, + { ATF_POINTER, 2, offsetof(struct CA_ParametersNR, diffNumerologyWithinPUCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_diffNumerologyWithinPUCCH_Group_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "diffNumerologyWithinPUCCH-Group" + }, + { ATF_POINTER, 1, offsetof(struct CA_ParametersNR, supportedNumberTAG), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedNumberTAG_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedNumberTAG" + }, +}; +static const int asn_MAP_CA_ParametersNR_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_CA_ParametersNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CA_ParametersNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* multipleTimingAdvances */ + { (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-Group */ + { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* supportedNumberTAG */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CA_ParametersNR_specs_1 = { + sizeof(struct CA_ParametersNR), + offsetof(struct CA_ParametersNR, _asn_ctx), + asn_MAP_CA_ParametersNR_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_CA_ParametersNR_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CA_ParametersNR = { + "CA-ParametersNR", + "CA-ParametersNR", + &asn_OP_SEQUENCE, + asn_DEF_CA_ParametersNR_tags_1, + sizeof(asn_DEF_CA_ParametersNR_tags_1) + /sizeof(asn_DEF_CA_ParametersNR_tags_1[0]), /* 1 */ + asn_DEF_CA_ParametersNR_tags_1, /* Same as above */ + sizeof(asn_DEF_CA_ParametersNR_tags_1) + /sizeof(asn_DEF_CA_ParametersNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CA_ParametersNR_1, + 8, /* Elements count */ + &asn_SPC_CA_ParametersNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CA-ParametersNR.h b/src/codec_utils/RRC/CA-ParametersNR.h new file mode 100644 index 000000000..14e00ec60 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CA_ParametersNR_H_ +#define _CA_ParametersNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CA_ParametersNR__multipleTimingAdvances { + CA_ParametersNR__multipleTimingAdvances_supported = 0 +} e_CA_ParametersNR__multipleTimingAdvances; +typedef enum CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH { + CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH_supported = 0 +} e_CA_ParametersNR__parallelTxSRS_PUCCH_PUSCH; +typedef enum CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH { + CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH_supported = 0 +} e_CA_ParametersNR__parallelTxPRACH_SRS_PUCCH_PUSCH; +typedef enum CA_ParametersNR__simultaneousRxTxInterBandCA { + CA_ParametersNR__simultaneousRxTxInterBandCA_supported = 0 +} e_CA_ParametersNR__simultaneousRxTxInterBandCA; +typedef enum CA_ParametersNR__simultaneousRxTxSUL { + CA_ParametersNR__simultaneousRxTxSUL_supported = 0 +} e_CA_ParametersNR__simultaneousRxTxSUL; +typedef enum CA_ParametersNR__diffNumerologyAcrossPUCCH_Group { + CA_ParametersNR__diffNumerologyAcrossPUCCH_Group_supported = 0 +} e_CA_ParametersNR__diffNumerologyAcrossPUCCH_Group; +typedef enum CA_ParametersNR__diffNumerologyWithinPUCCH_Group { + CA_ParametersNR__diffNumerologyWithinPUCCH_Group_supported = 0 +} e_CA_ParametersNR__diffNumerologyWithinPUCCH_Group; +typedef enum CA_ParametersNR__supportedNumberTAG { + CA_ParametersNR__supportedNumberTAG_n2 = 0, + CA_ParametersNR__supportedNumberTAG_n3 = 1, + CA_ParametersNR__supportedNumberTAG_n4 = 2 +} e_CA_ParametersNR__supportedNumberTAG; + +/* CA-ParametersNR */ +typedef struct CA_ParametersNR { + long *multipleTimingAdvances; /* OPTIONAL */ + long *parallelTxSRS_PUCCH_PUSCH; /* OPTIONAL */ + long *parallelTxPRACH_SRS_PUCCH_PUSCH; /* OPTIONAL */ + long *simultaneousRxTxInterBandCA; /* OPTIONAL */ + long *simultaneousRxTxSUL; /* OPTIONAL */ + long *diffNumerologyAcrossPUCCH_Group; /* OPTIONAL */ + long *diffNumerologyWithinPUCCH_Group; /* OPTIONAL */ + long *supportedNumberTAG; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CA_ParametersNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleTimingAdvances_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_parallelTxSRS_PUCCH_PUSCH_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_parallelTxPRACH_SRS_PUCCH_PUSCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousRxTxInterBandCA_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousRxTxSUL_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_diffNumerologyAcrossPUCCH_Group_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_diffNumerologyWithinPUCCH_Group_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedNumberTAG_16; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CA_ParametersNR; +extern asn_SEQUENCE_specifics_t asn_SPC_CA_ParametersNR_specs_1; +extern asn_TYPE_member_t asn_MBR_CA_ParametersNR_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CA_ParametersNR_H_ */ +#include diff --git a/src/codec_utils/RRC/CFRA-CSIRS-Resource.c b/src/codec_utils/RRC/CFRA-CSIRS-Resource.c new file mode 100644 index 000000000..77f454b9e --- /dev/null +++ b/src/codec_utils/RRC/CFRA-CSIRS-Resource.c @@ -0,0 +1,215 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_memb_Member_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..511) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ra_OccasionList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ra_OccasionList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_PreambleIndex_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_ra_OccasionList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_4, &asn_PER_memb_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ra_OccasionList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ra_OccasionList_specs_3 = { + sizeof(struct CFRA_CSIRS_Resource__ra_OccasionList), + offsetof(struct 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_ra_OccasionList_3 = { + "ra-OccasionList", + "ra-OccasionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ra_OccasionList_tags_3, + sizeof(asn_DEF_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ra_OccasionList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ra_OccasionList_tags_3, /* Same as above */ + sizeof(asn_DEF_ra_OccasionList_tags_3) + /sizeof(asn_DEF_ra_OccasionList_tags_3[0]), /* 2 */ + { &asn_OER_type_ra_OccasionList_constr_3, &asn_PER_type_ra_OccasionList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ra_OccasionList_3, + 1, /* Single element */ + &asn_SPC_ra_OccasionList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CFRA_CSIRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CFRA_CSIRS_Resource, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA_CSIRS_Resource, ra_OccasionList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ra_OccasionList_3, + 0, + { &asn_OER_memb_ra_OccasionList_constr_3, &asn_PER_memb_ra_OccasionList_constr_3, memb_ra_OccasionList_constraint_1 }, + 0, 0, /* No default value */ + "ra-OccasionList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA_CSIRS_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_PreambleIndex_constr_5, &asn_PER_memb_ra_PreambleIndex_constr_5, memb_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_CFRA_CSIRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CFRA_CSIRS_Resource_specs_1 = { + sizeof(struct CFRA_CSIRS_Resource), + offsetof(struct CFRA_CSIRS_Resource, _asn_ctx), + asn_MAP_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_CFRA_CSIRS_Resource = { + "CFRA-CSIRS-Resource", + "CFRA-CSIRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_CFRA_CSIRS_Resource_tags_1, + sizeof(asn_DEF_CFRA_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_CFRA_CSIRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_CFRA_CSIRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_CFRA_CSIRS_Resource_tags_1) + /sizeof(asn_DEF_CFRA_CSIRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CFRA_CSIRS_Resource_1, + 3, /* Elements count */ + &asn_SPC_CFRA_CSIRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CFRA-CSIRS-Resource.h b/src/codec_utils/RRC/CFRA-CSIRS-Resource.h new file mode 100644 index 000000000..4a0363345 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CFRA_CSIRS_Resource_H_ +#define _CFRA_CSIRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-RS-Index.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CFRA-CSIRS-Resource */ +typedef struct CFRA_CSIRS_Resource { + CSI_RS_Index_t csi_RS; + struct 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; +} CFRA_CSIRS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CFRA_CSIRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_CFRA_CSIRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_CFRA_CSIRS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CFRA_CSIRS_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/CFRA-SSB-Resource.c b/src/codec_utils/RRC/CFRA-SSB-Resource.c new file mode 100644 index 000000000..4d25196a3 --- /dev/null +++ b/src/codec_utils/RRC/CFRA-SSB-Resource.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CFRA-SSB-Resource.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_ra_PreambleIndex_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_CFRA_SSB_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CFRA_SSB_Resource, ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA_SSB_Resource, ra_PreambleIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_PreambleIndex_constr_3, &asn_PER_memb_ra_PreambleIndex_constr_3, memb_ra_PreambleIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_CFRA_SSB_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CFRA_SSB_Resource_specs_1 = { + sizeof(struct CFRA_SSB_Resource), + offsetof(struct CFRA_SSB_Resource, _asn_ctx), + asn_MAP_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_CFRA_SSB_Resource = { + "CFRA-SSB-Resource", + "CFRA-SSB-Resource", + &asn_OP_SEQUENCE, + asn_DEF_CFRA_SSB_Resource_tags_1, + sizeof(asn_DEF_CFRA_SSB_Resource_tags_1) + /sizeof(asn_DEF_CFRA_SSB_Resource_tags_1[0]), /* 1 */ + asn_DEF_CFRA_SSB_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_CFRA_SSB_Resource_tags_1) + /sizeof(asn_DEF_CFRA_SSB_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CFRA_SSB_Resource_1, + 2, /* Elements count */ + &asn_SPC_CFRA_SSB_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CFRA-SSB-Resource.h b/src/codec_utils/RRC/CFRA-SSB-Resource.h new file mode 100644 index 000000000..c0b95c7c3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CFRA_SSB_Resource_H_ +#define _CFRA_SSB_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CFRA-SSB-Resource */ +typedef struct CFRA_SSB_Resource { + 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; +} CFRA_SSB_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CFRA_SSB_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_CFRA_SSB_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_CFRA_SSB_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CFRA_SSB_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/CFRA.c b/src/codec_utils/RRC/CFRA.c new file mode 100644 index 000000000..d09cf152e --- /dev/null +++ b/src/codec_utils/RRC/CFRA.c @@ -0,0 +1,622 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CFRA.h" + +#include "CFRA-SSB-Resource.h" +#include "CFRA-CSIRS-Resource.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ssb_ResourceList_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ssb_ResourceList_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_csirs_ResourceList_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csirs_ResourceList_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_resources_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_totalNumberOfRA_Preambles_v1530_constr_24 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_ssb_perRACH_Occasion_specs_4 = { + asn_MAP_ssb_perRACH_Occasion_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_perRACH_Occasion_4 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_perRACH_Occasion_tags_4, + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */ + asn_DEF_ssb_perRACH_Occasion_tags_4, /* Same as above */ + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]), /* 2 */ + { &asn_OER_type_ssb_perRACH_Occasion_constr_4, &asn_PER_type_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_perRACH_Occasion_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_occasions_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct CFRA__occasions, rach_ConfigGeneric), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigGeneric" + }, + { ATF_POINTER, 1, offsetof(struct CFRA__occasions, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_perRACH_Occasion_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, +}; +static const int asn_MAP_occasions_oms_2[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_occasions_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_occasions_specs_2 = { + sizeof(struct CFRA__occasions), + offsetof(struct CFRA__occasions, _asn_ctx), + asn_MAP_occasions_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_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_occasions_2 = { + "occasions", + "occasions", + &asn_OP_SEQUENCE, + asn_DEF_occasions_tags_2, + sizeof(asn_DEF_occasions_tags_2) + /sizeof(asn_DEF_occasions_tags_2[0]) - 1, /* 1 */ + asn_DEF_occasions_tags_2, /* Same as above */ + sizeof(asn_DEF_occasions_tags_2) + /sizeof(asn_DEF_occasions_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_occasions_2, + 2, /* Elements count */ + &asn_SPC_occasions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_ResourceList_15[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CFRA_SSB_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ssb_ResourceList_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ssb_ResourceList_specs_15 = { + sizeof(struct CFRA__resources__ssb__ssb_ResourceList), + offsetof(struct 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_ssb_ResourceList_15 = { + "ssb-ResourceList", + "ssb-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ssb_ResourceList_tags_15, + sizeof(asn_DEF_ssb_ResourceList_tags_15) + /sizeof(asn_DEF_ssb_ResourceList_tags_15[0]) - 1, /* 1 */ + asn_DEF_ssb_ResourceList_tags_15, /* Same as above */ + sizeof(asn_DEF_ssb_ResourceList_tags_15) + /sizeof(asn_DEF_ssb_ResourceList_tags_15[0]), /* 2 */ + { &asn_OER_type_ssb_ResourceList_constr_15, &asn_PER_type_ssb_ResourceList_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ssb_ResourceList_15, + 1, /* Single element */ + &asn_SPC_ssb_ResourceList_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__ssb, ssb_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ssb_ResourceList_15, + 0, + { &asn_OER_memb_ssb_ResourceList_constr_15, &asn_PER_memb_ssb_ResourceList_constr_15, memb_ssb_ResourceList_constraint_14 }, + 0, 0, /* No default value */ + "ssb-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__ssb, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_17, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_17, memb_ra_ssb_OccasionMaskIndex_constraint_14 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_ssb_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ssb_specs_14 = { + sizeof(struct CFRA__resources__ssb), + offsetof(struct CFRA__resources__ssb, _asn_ctx), + asn_MAP_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_ssb_14 = { + "ssb", + "ssb", + &asn_OP_SEQUENCE, + asn_DEF_ssb_tags_14, + sizeof(asn_DEF_ssb_tags_14) + /sizeof(asn_DEF_ssb_tags_14[0]) - 1, /* 1 */ + asn_DEF_ssb_tags_14, /* Same as above */ + sizeof(asn_DEF_ssb_tags_14) + /sizeof(asn_DEF_ssb_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ssb_14, + 2, /* Elements count */ + &asn_SPC_ssb_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csirs_ResourceList_19[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CFRA_CSIRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csirs_ResourceList_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csirs_ResourceList_specs_19 = { + sizeof(struct CFRA__resources__csirs__csirs_ResourceList), + offsetof(struct 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_csirs_ResourceList_19 = { + "csirs-ResourceList", + "csirs-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csirs_ResourceList_tags_19, + sizeof(asn_DEF_csirs_ResourceList_tags_19) + /sizeof(asn_DEF_csirs_ResourceList_tags_19[0]) - 1, /* 1 */ + asn_DEF_csirs_ResourceList_tags_19, /* Same as above */ + sizeof(asn_DEF_csirs_ResourceList_tags_19) + /sizeof(asn_DEF_csirs_ResourceList_tags_19[0]), /* 2 */ + { &asn_OER_type_csirs_ResourceList_constr_19, &asn_PER_type_csirs_ResourceList_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_csirs_ResourceList_19, + 1, /* Single element */ + &asn_SPC_csirs_ResourceList_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csirs_18[] = { + { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__csirs, csirs_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_csirs_ResourceList_19, + 0, + { &asn_OER_memb_csirs_ResourceList_constr_19, &asn_PER_memb_csirs_ResourceList_constr_19, memb_csirs_ResourceList_constraint_18 }, + 0, 0, /* No default value */ + "csirs-ResourceList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA__resources__csirs, rsrp_ThresholdCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdCSI-RS" + }, +}; +static const ber_tlv_tag_t asn_DEF_csirs_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_csirs_specs_18 = { + sizeof(struct CFRA__resources__csirs), + offsetof(struct CFRA__resources__csirs, _asn_ctx), + asn_MAP_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_csirs_18 = { + "csirs", + "csirs", + &asn_OP_SEQUENCE, + asn_DEF_csirs_tags_18, + sizeof(asn_DEF_csirs_tags_18) + /sizeof(asn_DEF_csirs_tags_18[0]) - 1, /* 1 */ + asn_DEF_csirs_tags_18, /* Same as above */ + sizeof(asn_DEF_csirs_tags_18) + /sizeof(asn_DEF_csirs_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_csirs_18, + 2, /* Elements count */ + &asn_SPC_csirs_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resources_13[] = { + { ATF_POINTER, 0, offsetof(struct CFRA__resources, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ssb_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_POINTER, 0, offsetof(struct CFRA__resources, choice.csirs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csirs_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csirs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_resources_specs_13 = { + sizeof(struct CFRA__resources), + offsetof(struct CFRA__resources, _asn_ctx), + offsetof(struct CFRA__resources, present), + sizeof(((struct CFRA__resources *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_resources_constr_13, &asn_PER_type_resources_constr_13, CHOICE_constraint }, + asn_MBR_resources_13, + 2, /* Elements count */ + &asn_SPC_resources_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_23[] = { + { ATF_POINTER, 1, offsetof(struct CFRA__ext1, totalNumberOfRA_Preambles_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberOfRA_Preambles_v1530_constr_24, &asn_PER_memb_totalNumberOfRA_Preambles_v1530_constr_24, memb_totalNumberOfRA_Preambles_v1530_constraint_23 }, + 0, 0, /* No default value */ + "totalNumberOfRA-Preambles-v1530" + }, +}; +static const int asn_MAP_ext1_oms_23[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_23[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* totalNumberOfRA-Preambles-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_23 = { + sizeof(struct CFRA__ext1), + offsetof(struct CFRA__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_23, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_23 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_23, + sizeof(asn_DEF_ext1_tags_23) + /sizeof(asn_DEF_ext1_tags_23[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_23, /* Same as above */ + sizeof(asn_DEF_ext1_tags_23) + /sizeof(asn_DEF_ext1_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_23, + 1, /* Elements count */ + &asn_SPC_ext1_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CFRA_1[] = { + { ATF_POINTER, 1, offsetof(struct CFRA, occasions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_occasions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occasions" + }, + { ATF_NOFLAGS, 0, offsetof(struct CFRA, resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_resources_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resources" + }, + { ATF_POINTER, 1, offsetof(struct CFRA, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_CFRA_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_CFRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CFRA_specs_1 = { + sizeof(struct CFRA), + offsetof(struct CFRA, _asn_ctx), + asn_MAP_CFRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CFRA_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CFRA = { + "CFRA", + "CFRA", + &asn_OP_SEQUENCE, + asn_DEF_CFRA_tags_1, + sizeof(asn_DEF_CFRA_tags_1) + /sizeof(asn_DEF_CFRA_tags_1[0]), /* 1 */ + asn_DEF_CFRA_tags_1, /* Same as above */ + sizeof(asn_DEF_CFRA_tags_1) + /sizeof(asn_DEF_CFRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CFRA_1, + 3, /* Elements count */ + &asn_SPC_CFRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CFRA.h b/src/codec_utils/RRC/CFRA.h new file mode 100644 index 000000000..ccb68886c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CFRA_H_ +#define _CFRA_H_ + + +#include + +/* Including external dependencies */ +#include "RACH-ConfigGeneric.h" +#include +#include +#include +#include +#include +#include "RSRP-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CFRA__occasions__ssb_perRACH_Occasion { + CFRA__occasions__ssb_perRACH_Occasion_oneEighth = 0, + CFRA__occasions__ssb_perRACH_Occasion_oneFourth = 1, + CFRA__occasions__ssb_perRACH_Occasion_oneHalf = 2, + CFRA__occasions__ssb_perRACH_Occasion_one = 3, + CFRA__occasions__ssb_perRACH_Occasion_two = 4, + CFRA__occasions__ssb_perRACH_Occasion_four = 5, + CFRA__occasions__ssb_perRACH_Occasion_eight = 6, + CFRA__occasions__ssb_perRACH_Occasion_sixteen = 7 +} e_CFRA__occasions__ssb_perRACH_Occasion; +typedef enum CFRA__resources_PR { + CFRA__resources_PR_NOTHING, /* No components present */ + CFRA__resources_PR_ssb, + CFRA__resources_PR_csirs +} CFRA__resources_PR; + +/* Forward declarations */ +struct CFRA_SSB_Resource; +struct CFRA_CSIRS_Resource; + +/* CFRA */ +typedef struct CFRA { + struct CFRA__occasions { + RACH_ConfigGeneric_t rach_ConfigGeneric; + long *ssb_perRACH_Occasion; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *occasions; + struct CFRA__resources { + CFRA__resources_PR present; + union CFRA__resources_u { + struct CFRA__resources__ssb { + struct CFRA__resources__ssb__ssb_ResourceList { + A_SEQUENCE_OF(struct 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 CFRA__resources__csirs { + struct CFRA__resources__csirs__csirs_ResourceList { + A_SEQUENCE_OF(struct CFRA_CSIRS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } csirs_ResourceList; + 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 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; +} CFRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CFRA; +extern asn_SEQUENCE_specifics_t asn_SPC_CFRA_specs_1; +extern asn_TYPE_member_t asn_MBR_CFRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CFRA_H_ */ +#include diff --git a/src/codec_utils/RRC/CG-Config-IEs.c b/src/codec_utils/RRC/CG-Config-IEs.c new file mode 100644 index 000000000..a578473bb --- /dev/null +++ b/src/codec_utils/RRC/CG-Config-IEs.c @@ -0,0 +1,263 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-Config-IEs.h" + +#include "ConfigRestrictModReqSCG.h" +#include "DRX-Info.h" +#include "MeasConfigSN.h" +#include "BandCombinationInfoSN.h" +#include "FR-InfoList.h" +#include "CandidateServingFreqListNR.h" +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_scg_CellGroupConfig_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scg_RB_Config_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_candidateCellInfoListSN_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_11 = { + sizeof(struct CG_Config_IEs__nonCriticalExtension), + offsetof(struct CG_Config_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_nonCriticalExtension_11 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_11, + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_11, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CG_Config_IEs_1[] = { + { ATF_POINTER, 10, offsetof(struct CG_Config_IEs, scg_CellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_scg_CellGroupConfig_constr_2, &asn_PER_memb_scg_CellGroupConfig_constr_2, memb_scg_CellGroupConfig_constraint_1 }, + 0, 0, /* No default value */ + "scg-CellGroupConfig" + }, + { ATF_POINTER, 9, offsetof(struct CG_Config_IEs, scg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_scg_RB_Config_constr_3, &asn_PER_memb_scg_RB_Config_constr_3, memb_scg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "scg-RB-Config" + }, + { ATF_POINTER, 8, offsetof(struct CG_Config_IEs, configRestrictModReq), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConfigRestrictModReqSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictModReq" + }, + { ATF_POINTER, 7, offsetof(struct CG_Config_IEs, drx_InfoSCG), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRX_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InfoSCG" + }, + { ATF_POINTER, 6, offsetof(struct CG_Config_IEs, candidateCellInfoListSN), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_candidateCellInfoListSN_constr_6, &asn_PER_memb_candidateCellInfoListSN_constr_6, memb_candidateCellInfoListSN_constraint_1 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN" + }, + { ATF_POINTER, 5, offsetof(struct CG_Config_IEs, measConfigSN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasConfigSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfigSN" + }, + { ATF_POINTER, 4, offsetof(struct CG_Config_IEs, selectedBandCombinationNR), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationInfoSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "selectedBandCombinationNR" + }, + { ATF_POINTER, 3, offsetof(struct CG_Config_IEs, fr_InfoListSCG), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FR_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr-InfoListSCG" + }, + { ATF_POINTER, 2, offsetof(struct CG_Config_IEs, candidateServingFreqListNR), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CandidateServingFreqListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateServingFreqListNR" + }, + { ATF_POINTER, 1, offsetof(struct CG_Config_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_nonCriticalExtension_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_CG_Config_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_CG_Config_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 }, /* selectedBandCombinationNR */ + { (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_CG_Config_IEs_specs_1 = { + sizeof(struct CG_Config_IEs), + offsetof(struct CG_Config_IEs, _asn_ctx), + asn_MAP_CG_Config_IEs_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_CG_Config_IEs_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CG_Config_IEs = { + "CG-Config-IEs", + "CG-Config-IEs", + &asn_OP_SEQUENCE, + asn_DEF_CG_Config_IEs_tags_1, + sizeof(asn_DEF_CG_Config_IEs_tags_1) + /sizeof(asn_DEF_CG_Config_IEs_tags_1[0]), /* 1 */ + asn_DEF_CG_Config_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_CG_Config_IEs_tags_1) + /sizeof(asn_DEF_CG_Config_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CG_Config_IEs_1, + 10, /* Elements count */ + &asn_SPC_CG_Config_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CG-Config-IEs.h b/src/codec_utils/RRC/CG-Config-IEs.h new file mode 100644 index 000000000..b84be5fe5 --- /dev/null +++ b/src/codec_utils/RRC/CG-Config-IEs.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_Config_IEs_H_ +#define _CG_Config_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ConfigRestrictModReqSCG; +struct DRX_Info; +struct MeasConfigSN; +struct BandCombinationInfoSN; +struct FR_InfoList; +struct CandidateServingFreqListNR; + +/* CG-Config-IEs */ +typedef struct CG_Config_IEs { + OCTET_STRING_t *scg_CellGroupConfig; /* OPTIONAL */ + OCTET_STRING_t *scg_RB_Config; /* OPTIONAL */ + struct ConfigRestrictModReqSCG *configRestrictModReq; /* OPTIONAL */ + struct DRX_Info *drx_InfoSCG; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN; /* OPTIONAL */ + struct MeasConfigSN *measConfigSN; /* OPTIONAL */ + struct BandCombinationInfoSN *selectedBandCombinationNR; /* OPTIONAL */ + struct FR_InfoList *fr_InfoListSCG; /* OPTIONAL */ + struct CandidateServingFreqListNR *candidateServingFreqListNR; /* OPTIONAL */ + struct CG_Config_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; +} CG_Config_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CG_Config_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CG_Config_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_CG_Config_IEs_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_Config_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/CG-Config.c b/src/codec_utils/RRC/CG-Config.c new file mode 100644 index 000000000..9f624b9c4 --- /dev/null +++ b/src/codec_utils/RRC/CG-Config.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-Config.h" + +#include "CG-Config-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct CG_Config__criticalExtensions__c1, choice.cg_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CG_Config_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_3 = { + sizeof(struct CG_Config__criticalExtensions__c1), + offsetof(struct CG_Config__criticalExtensions__c1, _asn_ctx), + offsetof(struct CG_Config__criticalExtensions__c1, present), + sizeof(((struct CG_Config__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 4, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_8 = { + sizeof(struct CG_Config__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct CG_Config__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct CG_Config__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct CG_Config__criticalExtensions), + offsetof(struct CG_Config__criticalExtensions, _asn_ctx), + offsetof(struct CG_Config__criticalExtensions, present), + sizeof(((struct CG_Config__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_CG_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CG_Config, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_CG_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CG_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CG_Config_specs_1 = { + sizeof(struct CG_Config), + offsetof(struct CG_Config, _asn_ctx), + asn_MAP_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_CG_Config = { + "CG-Config", + "CG-Config", + &asn_OP_SEQUENCE, + asn_DEF_CG_Config_tags_1, + sizeof(asn_DEF_CG_Config_tags_1) + /sizeof(asn_DEF_CG_Config_tags_1[0]), /* 1 */ + asn_DEF_CG_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_CG_Config_tags_1) + /sizeof(asn_DEF_CG_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CG_Config_1, + 1, /* Elements count */ + &asn_SPC_CG_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CG-Config.h b/src/codec_utils/RRC/CG-Config.h new file mode 100644 index 000000000..06ca59cde --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_Config_H_ +#define _CG_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CG_Config__criticalExtensions_PR { + CG_Config__criticalExtensions_PR_NOTHING, /* No components present */ + CG_Config__criticalExtensions_PR_c1, + CG_Config__criticalExtensions_PR_criticalExtensionsFuture +} CG_Config__criticalExtensions_PR; +typedef enum CG_Config__criticalExtensions__c1_PR { + CG_Config__criticalExtensions__c1_PR_NOTHING, /* No components present */ + CG_Config__criticalExtensions__c1_PR_cg_Config, + CG_Config__criticalExtensions__c1_PR_spare3, + CG_Config__criticalExtensions__c1_PR_spare2, + CG_Config__criticalExtensions__c1_PR_spare1 +} CG_Config__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct CG_Config_IEs; + +/* CG-Config */ +typedef struct CG_Config { + struct CG_Config__criticalExtensions { + CG_Config__criticalExtensions_PR present; + union CG_Config__criticalExtensions_u { + struct CG_Config__criticalExtensions__c1 { + CG_Config__criticalExtensions__c1_PR present; + union CG_Config__criticalExtensions__c1_u { + struct 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 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; +} CG_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CG_Config; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/CG-ConfigInfo-IEs.c b/src/codec_utils/RRC/CG-ConfigInfo-IEs.c new file mode 100644 index 000000000..7c9092c8f --- /dev/null +++ b/src/codec_utils/RRC/CG-ConfigInfo-IEs.c @@ -0,0 +1,490 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-ConfigInfo-IEs.h" + +#include "MeasResultList2NR.h" +#include "MeasResultCellListSFTD.h" +#include "ConfigRestrictInfoSCG.h" +#include "DRX-Info.h" +#include "MeasConfigMN.h" +#include "MRDC-AssistanceInfo.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_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_oer_constraints_t asn_OER_type_failureType_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_measResultSCG_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ue_CapabilityInfo_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_candidateCellInfoListSN_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sourceConfigSCG_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scg_RB_Config_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_mcg_RB_Config_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_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_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_failureType_specs_7 = { + asn_MAP_failureType_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_failureType_7 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_failureType_tags_7, + sizeof(asn_DEF_failureType_tags_7) + /sizeof(asn_DEF_failureType_tags_7[0]) - 1, /* 1 */ + asn_DEF_failureType_tags_7, /* Same as above */ + sizeof(asn_DEF_failureType_tags_7) + /sizeof(asn_DEF_failureType_tags_7[0]), /* 2 */ + { &asn_OER_type_failureType_constr_7, &asn_PER_type_failureType_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_failureType_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_scgFailureInfo_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct CG_ConfigInfo_IEs__scgFailureInfo, failureType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_failureType_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, + { ATF_NOFLAGS, 0, offsetof(struct CG_ConfigInfo_IEs__scgFailureInfo, measResultSCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_measResultSCG_constr_14, &asn_PER_memb_measResultSCG_constr_14, memb_measResultSCG_constraint_6 }, + 0, 0, /* No default value */ + "measResultSCG" + }, +}; +static const ber_tlv_tag_t asn_DEF_scgFailureInfo_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_scgFailureInfo_specs_6 = { + sizeof(struct CG_ConfigInfo_IEs__scgFailureInfo), + offsetof(struct CG_ConfigInfo_IEs__scgFailureInfo, _asn_ctx), + asn_MAP_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_scgFailureInfo_6 = { + "scgFailureInfo", + "scgFailureInfo", + &asn_OP_SEQUENCE, + asn_DEF_scgFailureInfo_tags_6, + sizeof(asn_DEF_scgFailureInfo_tags_6) + /sizeof(asn_DEF_scgFailureInfo_tags_6[0]) - 1, /* 1 */ + asn_DEF_scgFailureInfo_tags_6, /* Same as above */ + sizeof(asn_DEF_scgFailureInfo_tags_6) + /sizeof(asn_DEF_scgFailureInfo_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_scgFailureInfo_6, + 2, /* Elements count */ + &asn_SPC_scgFailureInfo_specs_6 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_22 = { + sizeof(struct CG_ConfigInfo_IEs__nonCriticalExtension), + offsetof(struct CG_ConfigInfo_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_nonCriticalExtension_22 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_22, + sizeof(asn_DEF_nonCriticalExtension_tags_22) + /sizeof(asn_DEF_nonCriticalExtension_tags_22[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_22, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_22) + /sizeof(asn_DEF_nonCriticalExtension_tags_22[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_22 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CG_ConfigInfo_IEs_1[] = { + { ATF_POINTER, 13, offsetof(struct CG_ConfigInfo_IEs, ue_CapabilityInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_ue_CapabilityInfo_constr_2, &asn_PER_memb_ue_CapabilityInfo_constr_2, memb_ue_CapabilityInfo_constraint_1 }, + 0, 0, /* No default value */ + "ue-CapabilityInfo" + }, + { ATF_POINTER, 12, offsetof(struct CG_ConfigInfo_IEs, candidateCellInfoListMN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoListMN" + }, + { ATF_POINTER, 11, offsetof(struct CG_ConfigInfo_IEs, candidateCellInfoListSN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_candidateCellInfoListSN_constr_4, &asn_PER_memb_candidateCellInfoListSN_constr_4, memb_candidateCellInfoListSN_constraint_1 }, + 0, 0, /* No default value */ + "candidateCellInfoListSN" + }, + { ATF_POINTER, 10, offsetof(struct CG_ConfigInfo_IEs, measResultCellListSFTD), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultCellListSFTD, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultCellListSFTD" + }, + { ATF_POINTER, 9, offsetof(struct CG_ConfigInfo_IEs, scgFailureInfo), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_scgFailureInfo_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scgFailureInfo" + }, + { ATF_POINTER, 8, offsetof(struct CG_ConfigInfo_IEs, configRestrictInfo), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConfigRestrictInfoSCG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configRestrictInfo" + }, + { ATF_POINTER, 7, offsetof(struct CG_ConfigInfo_IEs, drx_InfoMCG), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRX_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InfoMCG" + }, + { ATF_POINTER, 6, offsetof(struct CG_ConfigInfo_IEs, measConfigMN), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasConfigMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfigMN" + }, + { ATF_POINTER, 5, offsetof(struct CG_ConfigInfo_IEs, sourceConfigSCG), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_sourceConfigSCG_constr_18, &asn_PER_memb_sourceConfigSCG_constr_18, memb_sourceConfigSCG_constraint_1 }, + 0, 0, /* No default value */ + "sourceConfigSCG" + }, + { ATF_POINTER, 4, offsetof(struct CG_ConfigInfo_IEs, scg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_scg_RB_Config_constr_19, &asn_PER_memb_scg_RB_Config_constr_19, memb_scg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "scg-RB-Config" + }, + { ATF_POINTER, 3, offsetof(struct CG_ConfigInfo_IEs, mcg_RB_Config), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_mcg_RB_Config_constr_20, &asn_PER_memb_mcg_RB_Config_constr_20, memb_mcg_RB_Config_constraint_1 }, + 0, 0, /* No default value */ + "mcg-RB-Config" + }, + { ATF_POINTER, 2, offsetof(struct CG_ConfigInfo_IEs, mrdc_AssistanceInfo), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MRDC_AssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mrdc-AssistanceInfo" + }, + { ATF_POINTER, 1, offsetof(struct CG_ConfigInfo_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_nonCriticalExtension_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_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_CG_ConfigInfo_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 */ + { (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_CG_ConfigInfo_IEs_specs_1 = { + sizeof(struct CG_ConfigInfo_IEs), + offsetof(struct CG_ConfigInfo_IEs, _asn_ctx), + asn_MAP_CG_ConfigInfo_IEs_tag2el_1, + 13, /* Count of tags in the map */ + asn_MAP_CG_ConfigInfo_IEs_oms_1, /* Optional members */ + 13, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CG_ConfigInfo_IEs = { + "CG-ConfigInfo-IEs", + "CG-ConfigInfo-IEs", + &asn_OP_SEQUENCE, + asn_DEF_CG_ConfigInfo_IEs_tags_1, + sizeof(asn_DEF_CG_ConfigInfo_IEs_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_IEs_tags_1[0]), /* 1 */ + asn_DEF_CG_ConfigInfo_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_CG_ConfigInfo_IEs_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CG_ConfigInfo_IEs_1, + 13, /* Elements count */ + &asn_SPC_CG_ConfigInfo_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CG-ConfigInfo-IEs.h b/src/codec_utils/RRC/CG-ConfigInfo-IEs.h new file mode 100644 index 000000000..89f8e0015 --- /dev/null +++ b/src/codec_utils/RRC/CG-ConfigInfo-IEs.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_ConfigInfo_IEs_H_ +#define _CG_ConfigInfo_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CG_ConfigInfo_IEs__scgFailureInfo__failureType { + CG_ConfigInfo_IEs__scgFailureInfo__failureType_t310_Expiry = 0, + CG_ConfigInfo_IEs__scgFailureInfo__failureType_randomAccessProblem = 1, + CG_ConfigInfo_IEs__scgFailureInfo__failureType_rlc_MaxNumRetx = 2, + CG_ConfigInfo_IEs__scgFailureInfo__failureType_synchReconfigFailure_SCG = 3, + CG_ConfigInfo_IEs__scgFailureInfo__failureType_scg_reconfigFailure = 4, + CG_ConfigInfo_IEs__scgFailureInfo__failureType_srb3_IntegrityFailure = 5 +} e_CG_ConfigInfo_IEs__scgFailureInfo__failureType; + +/* Forward declarations */ +struct MeasResultList2NR; +struct MeasResultCellListSFTD; +struct ConfigRestrictInfoSCG; +struct DRX_Info; +struct MeasConfigMN; +struct MRDC_AssistanceInfo; + +/* CG-ConfigInfo-IEs */ +typedef struct CG_ConfigInfo_IEs { + OCTET_STRING_t *ue_CapabilityInfo; /* OPTIONAL */ + struct MeasResultList2NR *candidateCellInfoListMN; /* OPTIONAL */ + OCTET_STRING_t *candidateCellInfoListSN; /* OPTIONAL */ + struct MeasResultCellListSFTD *measResultCellListSFTD; /* OPTIONAL */ + struct CG_ConfigInfo_IEs__scgFailureInfo { + long failureType; + OCTET_STRING_t measResultSCG; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *scgFailureInfo; + struct ConfigRestrictInfoSCG *configRestrictInfo; /* OPTIONAL */ + struct DRX_Info *drx_InfoMCG; /* OPTIONAL */ + struct MeasConfigMN *measConfigMN; /* OPTIONAL */ + OCTET_STRING_t *sourceConfigSCG; /* OPTIONAL */ + OCTET_STRING_t *scg_RB_Config; /* OPTIONAL */ + OCTET_STRING_t *mcg_RB_Config; /* OPTIONAL */ + struct MRDC_AssistanceInfo *mrdc_AssistanceInfo; /* OPTIONAL */ + struct CG_ConfigInfo_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; +} CG_ConfigInfo_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_failureType_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CG_ConfigInfo_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CG_ConfigInfo_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_CG_ConfigInfo_IEs_1[13]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_ConfigInfo_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/CG-ConfigInfo.c b/src/codec_utils/RRC/CG-ConfigInfo.c new file mode 100644 index 000000000..f8cacdc8d --- /dev/null +++ b/src/codec_utils/RRC/CG-ConfigInfo.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-ConfigInfo.h" + +#include "CG-ConfigInfo-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct CG_ConfigInfo__criticalExtensions__c1, choice.cg_ConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CG_ConfigInfo_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-ConfigInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_3 = { + sizeof(struct CG_ConfigInfo__criticalExtensions__c1), + offsetof(struct CG_ConfigInfo__criticalExtensions__c1, _asn_ctx), + offsetof(struct CG_ConfigInfo__criticalExtensions__c1, present), + sizeof(((struct CG_ConfigInfo__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 4, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_8 = { + sizeof(struct CG_ConfigInfo__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct CG_ConfigInfo__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct CG_ConfigInfo__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct CG_ConfigInfo__criticalExtensions), + offsetof(struct CG_ConfigInfo__criticalExtensions, _asn_ctx), + offsetof(struct CG_ConfigInfo__criticalExtensions, present), + sizeof(((struct CG_ConfigInfo__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_CG_ConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CG_ConfigInfo, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_CG_ConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CG_ConfigInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_CG_ConfigInfo_specs_1 = { + sizeof(struct CG_ConfigInfo), + offsetof(struct CG_ConfigInfo, _asn_ctx), + asn_MAP_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_CG_ConfigInfo = { + "CG-ConfigInfo", + "CG-ConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_CG_ConfigInfo_tags_1, + sizeof(asn_DEF_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_CG_ConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_CG_ConfigInfo_tags_1) + /sizeof(asn_DEF_CG_ConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CG_ConfigInfo_1, + 1, /* Elements count */ + &asn_SPC_CG_ConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CG-ConfigInfo.h b/src/codec_utils/RRC/CG-ConfigInfo.h new file mode 100644 index 000000000..ec6662e02 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_ConfigInfo_H_ +#define _CG_ConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CG_ConfigInfo__criticalExtensions_PR { + CG_ConfigInfo__criticalExtensions_PR_NOTHING, /* No components present */ + CG_ConfigInfo__criticalExtensions_PR_c1, + CG_ConfigInfo__criticalExtensions_PR_criticalExtensionsFuture +} CG_ConfigInfo__criticalExtensions_PR; +typedef enum CG_ConfigInfo__criticalExtensions__c1_PR { + CG_ConfigInfo__criticalExtensions__c1_PR_NOTHING, /* No components present */ + CG_ConfigInfo__criticalExtensions__c1_PR_cg_ConfigInfo, + CG_ConfigInfo__criticalExtensions__c1_PR_spare3, + CG_ConfigInfo__criticalExtensions__c1_PR_spare2, + CG_ConfigInfo__criticalExtensions__c1_PR_spare1 +} CG_ConfigInfo__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct CG_ConfigInfo_IEs; + +/* CG-ConfigInfo */ +typedef struct CG_ConfigInfo { + struct CG_ConfigInfo__criticalExtensions { + CG_ConfigInfo__criticalExtensions_PR present; + union CG_ConfigInfo__criticalExtensions_u { + struct CG_ConfigInfo__criticalExtensions__c1 { + CG_ConfigInfo__criticalExtensions__c1_PR present; + union CG_ConfigInfo__criticalExtensions__c1_u { + struct 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 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; +} CG_ConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CG_ConfigInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_ConfigInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/CG-UCI-OnPUSCH.c b/src/codec_utils/RRC/CG-UCI-OnPUSCH.c new file mode 100644 index 000000000..e583a5bd8 --- /dev/null +++ b/src/codec_utils/RRC/CG-UCI-OnPUSCH.c @@ -0,0 +1,145 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CG-UCI-OnPUSCH.h" + +#include "BetaOffsets.h" +static int +memb_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_oer_constraints_t asn_OER_type_dynamic_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_dynamic_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_CG_UCI_OnPUSCH_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_dynamic_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_dynamic_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_dynamic_specs_2 = { + sizeof(struct CG_UCI_OnPUSCH__dynamic), + offsetof(struct CG_UCI_OnPUSCH__dynamic, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dynamic_2 = { + "dynamic", + "dynamic", + &asn_OP_SEQUENCE_OF, + asn_DEF_dynamic_tags_2, + sizeof(asn_DEF_dynamic_tags_2) + /sizeof(asn_DEF_dynamic_tags_2[0]) - 1, /* 1 */ + asn_DEF_dynamic_tags_2, /* Same as above */ + sizeof(asn_DEF_dynamic_tags_2) + /sizeof(asn_DEF_dynamic_tags_2[0]), /* 2 */ + { &asn_OER_type_dynamic_constr_2, &asn_PER_type_dynamic_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_dynamic_2, + 1, /* Single element */ + &asn_SPC_dynamic_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CG_UCI_OnPUSCH_1[] = { + { ATF_POINTER, 0, offsetof(struct CG_UCI_OnPUSCH, choice.dynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_dynamic_2, + 0, + { &asn_OER_memb_dynamic_constr_2, &asn_PER_memb_dynamic_constr_2, memb_dynamic_constraint_1 }, + 0, 0, /* No default value */ + "dynamic" + }, + { ATF_POINTER, 0, offsetof(struct CG_UCI_OnPUSCH, choice.semiStatic), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStatic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CG_UCI_OnPUSCH_specs_1 = { + sizeof(struct CG_UCI_OnPUSCH), + offsetof(struct CG_UCI_OnPUSCH, _asn_ctx), + offsetof(struct CG_UCI_OnPUSCH, present), + sizeof(((struct CG_UCI_OnPUSCH *)0)->present), + asn_MAP_CG_UCI_OnPUSCH_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_CG_UCI_OnPUSCH_constr_1, &asn_PER_type_CG_UCI_OnPUSCH_constr_1, CHOICE_constraint }, + asn_MBR_CG_UCI_OnPUSCH_1, + 2, /* Elements count */ + &asn_SPC_CG_UCI_OnPUSCH_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CG-UCI-OnPUSCH.h b/src/codec_utils/RRC/CG-UCI-OnPUSCH.h new file mode 100644 index 000000000..6a3a909a0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CG_UCI_OnPUSCH_H_ +#define _CG_UCI_OnPUSCH_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CG_UCI_OnPUSCH_PR { + CG_UCI_OnPUSCH_PR_NOTHING, /* No components present */ + CG_UCI_OnPUSCH_PR_dynamic, + CG_UCI_OnPUSCH_PR_semiStatic +} CG_UCI_OnPUSCH_PR; + +/* Forward declarations */ +struct BetaOffsets; + +/* CG-UCI-OnPUSCH */ +typedef struct CG_UCI_OnPUSCH { + CG_UCI_OnPUSCH_PR present; + union CG_UCI_OnPUSCH_u { + struct CG_UCI_OnPUSCH__dynamic { + A_SEQUENCE_OF(struct BetaOffsets) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dynamic; + struct BetaOffsets *semiStatic; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CG_UCI_OnPUSCH_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CG_UCI_OnPUSCH; +extern asn_CHOICE_specifics_t asn_SPC_CG_UCI_OnPUSCH_specs_1; +extern asn_TYPE_member_t asn_MBR_CG_UCI_OnPUSCH_1[2]; +extern asn_per_constraints_t asn_PER_type_CG_UCI_OnPUSCH_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CG_UCI_OnPUSCH_H_ */ +#include diff --git a/src/codec_utils/RRC/CGI-Info.c b/src/codec_utils/RRC/CGI-Info.c new file mode 100644 index 000000000..e7d75edff --- /dev/null +++ b/src/codec_utils/RRC/CGI-Info.c @@ -0,0 +1,160 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CGI-Info.h" + +#include "PLMN-IdentityInfoList.h" +#include "MultiFrequencyBandListNR.h" +static int +memb_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_oer_constraints_t asn_OER_memb_ssb_SubcarrierOffset_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_noSIB1_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct CGI_Info__noSIB1, ssb_SubcarrierOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ssb_SubcarrierOffset_constr_5, &asn_PER_memb_ssb_SubcarrierOffset_constr_5, memb_ssb_SubcarrierOffset_constraint_4 }, + 0, 0, /* No default value */ + "ssb-SubcarrierOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct CGI_Info__noSIB1, pdcch_ConfigSIB1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCCH_ConfigSIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigSIB1" + }, +}; +static const ber_tlv_tag_t asn_DEF_noSIB1_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_noSIB1_specs_4 = { + sizeof(struct CGI_Info__noSIB1), + offsetof(struct CGI_Info__noSIB1, _asn_ctx), + asn_MAP_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_noSIB1_4 = { + "noSIB1", + "noSIB1", + &asn_OP_SEQUENCE, + asn_DEF_noSIB1_tags_4, + sizeof(asn_DEF_noSIB1_tags_4) + /sizeof(asn_DEF_noSIB1_tags_4[0]) - 1, /* 1 */ + asn_DEF_noSIB1_tags_4, /* Same as above */ + sizeof(asn_DEF_noSIB1_tags_4) + /sizeof(asn_DEF_noSIB1_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_noSIB1_4, + 2, /* Elements count */ + &asn_SPC_noSIB1_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CGI_Info_1[] = { + { ATF_POINTER, 3, offsetof(struct CGI_Info, plmn_IdentityInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentityInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityInfoList" + }, + { ATF_POINTER, 2, offsetof(struct CGI_Info, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct CGI_Info, noSIB1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_noSIB1_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "noSIB1" + }, +}; +static const int asn_MAP_CGI_Info_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_CGI_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CGI_Info_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_CGI_Info_specs_1 = { + sizeof(struct CGI_Info), + offsetof(struct CGI_Info, _asn_ctx), + asn_MAP_CGI_Info_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CGI_Info_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CGI_Info = { + "CGI-Info", + "CGI-Info", + &asn_OP_SEQUENCE, + asn_DEF_CGI_Info_tags_1, + sizeof(asn_DEF_CGI_Info_tags_1) + /sizeof(asn_DEF_CGI_Info_tags_1[0]), /* 1 */ + asn_DEF_CGI_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_CGI_Info_tags_1) + /sizeof(asn_DEF_CGI_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CGI_Info_1, + 3, /* Elements count */ + &asn_SPC_CGI_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CGI-Info.h b/src/codec_utils/RRC/CGI-Info.h new file mode 100644 index 000000000..f4914fc6b --- /dev/null +++ b/src/codec_utils/RRC/CGI-Info.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CGI_Info_H_ +#define _CGI_Info_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PDCCH-ConfigSIB1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentityInfoList; +struct MultiFrequencyBandListNR; + +/* CGI-Info */ +typedef struct CGI_Info { + struct PLMN_IdentityInfoList *plmn_IdentityInfoList; /* OPTIONAL */ + struct MultiFrequencyBandListNR *frequencyBandList; /* OPTIONAL */ + struct CGI_Info__noSIB1 { + long ssb_SubcarrierOffset; + 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; +} CGI_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CGI_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_CGI_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_CGI_Info_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CGI_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-AperiodicTriggerState.c b/src/codec_utils/RRC/CSI-AperiodicTriggerState.c new file mode 100644 index 000000000..2e4a8c60c --- /dev/null +++ b/src/codec_utils/RRC/CSI-AperiodicTriggerState.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-AperiodicTriggerState.h" + +#include "CSI-AssociatedReportConfigInfo.h" +static int +memb_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_oer_constraints_t asn_OER_type_associatedReportConfigInfoList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_associatedReportConfigInfoList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_associatedReportConfigInfoList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_AssociatedReportConfigInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_associatedReportConfigInfoList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_associatedReportConfigInfoList_specs_2 = { + sizeof(struct CSI_AperiodicTriggerState__associatedReportConfigInfoList), + offsetof(struct CSI_AperiodicTriggerState__associatedReportConfigInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_associatedReportConfigInfoList_2 = { + "associatedReportConfigInfoList", + "associatedReportConfigInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_associatedReportConfigInfoList_tags_2, + sizeof(asn_DEF_associatedReportConfigInfoList_tags_2) + /sizeof(asn_DEF_associatedReportConfigInfoList_tags_2[0]) - 1, /* 1 */ + asn_DEF_associatedReportConfigInfoList_tags_2, /* Same as above */ + sizeof(asn_DEF_associatedReportConfigInfoList_tags_2) + /sizeof(asn_DEF_associatedReportConfigInfoList_tags_2[0]), /* 2 */ + { &asn_OER_type_associatedReportConfigInfoList_constr_2, &asn_PER_type_associatedReportConfigInfoList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_associatedReportConfigInfoList_2, + 1, /* Single element */ + &asn_SPC_associatedReportConfigInfoList_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_AperiodicTriggerState_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_AperiodicTriggerState, associatedReportConfigInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_associatedReportConfigInfoList_2, + 0, + { &asn_OER_memb_associatedReportConfigInfoList_constr_2, &asn_PER_memb_associatedReportConfigInfoList_constr_2, memb_associatedReportConfigInfoList_constraint_1 }, + 0, 0, /* No default value */ + "associatedReportConfigInfoList" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_AperiodicTriggerState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CSI_AperiodicTriggerState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedReportConfigInfoList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CSI_AperiodicTriggerState_specs_1 = { + sizeof(struct CSI_AperiodicTriggerState), + offsetof(struct CSI_AperiodicTriggerState, _asn_ctx), + asn_MAP_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_CSI_AperiodicTriggerState = { + "CSI-AperiodicTriggerState", + "CSI-AperiodicTriggerState", + &asn_OP_SEQUENCE, + asn_DEF_CSI_AperiodicTriggerState_tags_1, + sizeof(asn_DEF_CSI_AperiodicTriggerState_tags_1) + /sizeof(asn_DEF_CSI_AperiodicTriggerState_tags_1[0]), /* 1 */ + asn_DEF_CSI_AperiodicTriggerState_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_AperiodicTriggerState_tags_1) + /sizeof(asn_DEF_CSI_AperiodicTriggerState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_AperiodicTriggerState_1, + 1, /* Elements count */ + &asn_SPC_CSI_AperiodicTriggerState_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-AperiodicTriggerState.h b/src/codec_utils/RRC/CSI-AperiodicTriggerState.h new file mode 100644 index 000000000..5f1cf9a1e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_AperiodicTriggerState_H_ +#define _CSI_AperiodicTriggerState_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CSI_AssociatedReportConfigInfo; + +/* CSI-AperiodicTriggerState */ +typedef struct CSI_AperiodicTriggerState { + struct CSI_AperiodicTriggerState__associatedReportConfigInfoList { + A_SEQUENCE_OF(struct 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; +} CSI_AperiodicTriggerState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_AperiodicTriggerState; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_AperiodicTriggerState_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_AperiodicTriggerState_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_AperiodicTriggerState_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-AperiodicTriggerStateList.c b/src/codec_utils/RRC/CSI-AperiodicTriggerStateList.c new file mode 100644 index 000000000..4cddf8b58 --- /dev/null +++ b/src/codec_utils/RRC/CSI-AperiodicTriggerStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-AperiodicTriggerStateList.h" + +#include "CSI-AperiodicTriggerState.h" +static asn_oer_constraints_t asn_OER_type_CSI_AperiodicTriggerStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_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_CSI_AperiodicTriggerStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_AperiodicTriggerState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_AperiodicTriggerStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CSI_AperiodicTriggerStateList_specs_1 = { + sizeof(struct CSI_AperiodicTriggerStateList), + offsetof(struct CSI_AperiodicTriggerStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_AperiodicTriggerStateList = { + "CSI-AperiodicTriggerStateList", + "CSI-AperiodicTriggerStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_CSI_AperiodicTriggerStateList_tags_1, + sizeof(asn_DEF_CSI_AperiodicTriggerStateList_tags_1) + /sizeof(asn_DEF_CSI_AperiodicTriggerStateList_tags_1[0]), /* 1 */ + asn_DEF_CSI_AperiodicTriggerStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_AperiodicTriggerStateList_tags_1) + /sizeof(asn_DEF_CSI_AperiodicTriggerStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_AperiodicTriggerStateList_constr_1, &asn_PER_type_CSI_AperiodicTriggerStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CSI_AperiodicTriggerStateList_1, + 1, /* Single element */ + &asn_SPC_CSI_AperiodicTriggerStateList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-AperiodicTriggerStateList.h b/src/codec_utils/RRC/CSI-AperiodicTriggerStateList.h new file mode 100644 index 000000000..5c619533a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_AperiodicTriggerStateList_H_ +#define _CSI_AperiodicTriggerStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CSI_AperiodicTriggerState; + +/* CSI-AperiodicTriggerStateList */ +typedef struct CSI_AperiodicTriggerStateList { + A_SEQUENCE_OF(struct CSI_AperiodicTriggerState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_AperiodicTriggerStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_AperiodicTriggerStateList; +extern asn_SET_OF_specifics_t asn_SPC_CSI_AperiodicTriggerStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_AperiodicTriggerStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_CSI_AperiodicTriggerStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_AperiodicTriggerStateList_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.c b/src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.c new file mode 100644 index 000000000..8f7de80aa --- /dev/null +++ b/src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.c @@ -0,0 +1,405 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-AssociatedReportConfigInfo.h" + +static int +memb_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_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_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_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_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_oer_constraints_t asn_OER_type_qcl_info_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_resourceSet_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_qcl_info_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_SSB_ResourceSet_constr_8 CC_NOTUSED = { + { 1, 1 } /* (1..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_resourcesForChannel_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_IM_ResourcesForInterference_constr_9 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourcesForInterference_constr_10 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_qcl_info_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_qcl_info_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_qcl_info_specs_6 = { + sizeof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS__qcl_info), + offsetof(struct 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_qcl_info_6 = { + "qcl-info", + "qcl-info", + &asn_OP_SEQUENCE_OF, + asn_DEF_qcl_info_tags_6, + sizeof(asn_DEF_qcl_info_tags_6) + /sizeof(asn_DEF_qcl_info_tags_6[0]) - 1, /* 1 */ + asn_DEF_qcl_info_tags_6, /* Same as above */ + sizeof(asn_DEF_qcl_info_tags_6) + /sizeof(asn_DEF_qcl_info_tags_6[0]), /* 2 */ + { &asn_OER_type_qcl_info_constr_6, &asn_PER_type_qcl_info_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_qcl_info_6, + 1, /* Single element */ + &asn_SPC_qcl_info_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nzp_CSI_RS_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, resourceSet), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_resourceSet_constr_5, &asn_PER_memb_resourceSet_constr_5, memb_resourceSet_constraint_4 }, + 0, 0, /* No default value */ + "resourceSet" + }, + { ATF_POINTER, 1, offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, qcl_info), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_qcl_info_6, + 0, + { &asn_OER_memb_qcl_info_constr_6, &asn_PER_memb_qcl_info_constr_6, memb_qcl_info_constraint_4 }, + 0, 0, /* No default value */ + "qcl-info" + }, +}; +static const int asn_MAP_nzp_CSI_RS_oms_4[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_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_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_nzp_CSI_RS_specs_4 = { + sizeof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS), + offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS, _asn_ctx), + asn_MAP_nzp_CSI_RS_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_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_nzp_CSI_RS_4 = { + "nzp-CSI-RS", + "nzp-CSI-RS", + &asn_OP_SEQUENCE, + asn_DEF_nzp_CSI_RS_tags_4, + sizeof(asn_DEF_nzp_CSI_RS_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_tags_4[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_tags_4, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nzp_CSI_RS_4, + 2, /* Elements count */ + &asn_SPC_nzp_CSI_RS_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourcesForChannel_3[] = { + { ATF_POINTER, 0, offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel, choice.nzp_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel, choice.csi_SSB_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_csi_SSB_ResourceSet_constr_8, &asn_PER_memb_csi_SSB_ResourceSet_constr_8, memb_csi_SSB_ResourceSet_constraint_3 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSet" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_resourcesForChannel_specs_3 = { + sizeof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel), + offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel, _asn_ctx), + offsetof(struct CSI_AssociatedReportConfigInfo__resourcesForChannel, present), + sizeof(((struct CSI_AssociatedReportConfigInfo__resourcesForChannel *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_resourcesForChannel_constr_3, &asn_PER_type_resourcesForChannel_constr_3, CHOICE_constraint }, + asn_MBR_resourcesForChannel_3, + 2, /* Elements count */ + &asn_SPC_resourcesForChannel_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_AssociatedReportConfigInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_AssociatedReportConfigInfo, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_AssociatedReportConfigInfo, resourcesForChannel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_resourcesForChannel_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourcesForChannel" + }, + { ATF_POINTER, 2, offsetof(struct CSI_AssociatedReportConfigInfo, csi_IM_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_csi_IM_ResourcesForInterference_constr_9, &asn_PER_memb_csi_IM_ResourcesForInterference_constr_9, memb_csi_IM_ResourcesForInterference_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourcesForInterference" + }, + { ATF_POINTER, 1, offsetof(struct CSI_AssociatedReportConfigInfo, nzp_CSI_RS_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourcesForInterference_constr_10, &asn_PER_memb_nzp_CSI_RS_ResourcesForInterference_constr_10, memb_nzp_CSI_RS_ResourcesForInterference_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourcesForInterference" + }, +}; +static const int asn_MAP_CSI_AssociatedReportConfigInfo_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_CSI_AssociatedReportConfigInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_AssociatedReportConfigInfo_specs_1 = { + sizeof(struct CSI_AssociatedReportConfigInfo), + offsetof(struct CSI_AssociatedReportConfigInfo, _asn_ctx), + asn_MAP_CSI_AssociatedReportConfigInfo_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CSI_AssociatedReportConfigInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_AssociatedReportConfigInfo = { + "CSI-AssociatedReportConfigInfo", + "CSI-AssociatedReportConfigInfo", + &asn_OP_SEQUENCE, + asn_DEF_CSI_AssociatedReportConfigInfo_tags_1, + sizeof(asn_DEF_CSI_AssociatedReportConfigInfo_tags_1) + /sizeof(asn_DEF_CSI_AssociatedReportConfigInfo_tags_1[0]), /* 1 */ + asn_DEF_CSI_AssociatedReportConfigInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_AssociatedReportConfigInfo_tags_1) + /sizeof(asn_DEF_CSI_AssociatedReportConfigInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_AssociatedReportConfigInfo_1, + 4, /* Elements count */ + &asn_SPC_CSI_AssociatedReportConfigInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.h b/src/codec_utils/RRC/CSI-AssociatedReportConfigInfo.h new file mode 100644 index 000000000..1e05f28ca --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_AssociatedReportConfigInfo_H_ +#define _CSI_AssociatedReportConfigInfo_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-ReportConfigId.h" +#include +#include "TCI-StateId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_AssociatedReportConfigInfo__resourcesForChannel_PR { + CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_NOTHING, /* No components present */ + CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_nzp_CSI_RS, + CSI_AssociatedReportConfigInfo__resourcesForChannel_PR_csi_SSB_ResourceSet +} CSI_AssociatedReportConfigInfo__resourcesForChannel_PR; + +/* CSI-AssociatedReportConfigInfo */ +typedef struct CSI_AssociatedReportConfigInfo { + CSI_ReportConfigId_t reportConfigId; + struct CSI_AssociatedReportConfigInfo__resourcesForChannel { + CSI_AssociatedReportConfigInfo__resourcesForChannel_PR present; + union CSI_AssociatedReportConfigInfo__resourcesForChannel_u { + struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS { + long resourceSet; + struct CSI_AssociatedReportConfigInfo__resourcesForChannel__nzp_CSI_RS__qcl_info { + A_SEQUENCE_OF(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; +} CSI_AssociatedReportConfigInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_AssociatedReportConfigInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_AssociatedReportConfigInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_AssociatedReportConfigInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_AssociatedReportConfigInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-FrequencyOccupation.c b/src/codec_utils/RRC/CSI-FrequencyOccupation.c new file mode 100644 index 000000000..f70ee0b61 --- /dev/null +++ b/src/codec_utils/RRC/CSI-FrequencyOccupation.c @@ -0,0 +1,126 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-FrequencyOccupation.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_startingRB_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..274) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofRBs_constr_3 CC_NOTUSED = { + { 2, 1 } /* (24..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_CSI_FrequencyOccupation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_FrequencyOccupation, startingRB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingRB_constr_2, &asn_PER_memb_startingRB_constr_2, memb_startingRB_constraint_1 }, + 0, 0, /* No default value */ + "startingRB" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_FrequencyOccupation, nrofRBs), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofRBs_constr_3, &asn_PER_memb_nrofRBs_constr_3, memb_nrofRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofRBs" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_FrequencyOccupation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_FrequencyOccupation_specs_1 = { + sizeof(struct CSI_FrequencyOccupation), + offsetof(struct CSI_FrequencyOccupation, _asn_ctx), + asn_MAP_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_CSI_FrequencyOccupation = { + "CSI-FrequencyOccupation", + "CSI-FrequencyOccupation", + &asn_OP_SEQUENCE, + asn_DEF_CSI_FrequencyOccupation_tags_1, + sizeof(asn_DEF_CSI_FrequencyOccupation_tags_1) + /sizeof(asn_DEF_CSI_FrequencyOccupation_tags_1[0]), /* 1 */ + asn_DEF_CSI_FrequencyOccupation_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_FrequencyOccupation_tags_1) + /sizeof(asn_DEF_CSI_FrequencyOccupation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_FrequencyOccupation_1, + 2, /* Elements count */ + &asn_SPC_CSI_FrequencyOccupation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-FrequencyOccupation.h b/src/codec_utils/RRC/CSI-FrequencyOccupation.h new file mode 100644 index 000000000..ce191ff24 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_FrequencyOccupation_H_ +#define _CSI_FrequencyOccupation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-FrequencyOccupation */ +typedef struct 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; +} CSI_FrequencyOccupation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_FrequencyOccupation; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_FrequencyOccupation_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_FrequencyOccupation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_FrequencyOccupation_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-IM-Resource.c b/src/codec_utils/RRC/CSI-IM-Resource.c new file mode 100644 index 000000000..2b16009bf --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-Resource.c @@ -0,0 +1,421 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-IM-Resource.h" + +#include "CSI-FrequencyOccupation.h" +#include "CSI-ResourcePeriodicityAndOffset.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_subcarrierLocation_p0_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_symbolLocation_p0_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_subcarrierLocation_p1_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_symbolLocation_p1_constr_18 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_csi_IM_ResourceElementPattern_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_subcarrierLocation_p0_specs_5 = { + asn_MAP_subcarrierLocation_p0_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_subcarrierLocation_p0_5 = { + "subcarrierLocation-p0", + "subcarrierLocation-p0", + &asn_OP_NativeEnumerated, + asn_DEF_subcarrierLocation_p0_tags_5, + sizeof(asn_DEF_subcarrierLocation_p0_tags_5) + /sizeof(asn_DEF_subcarrierLocation_p0_tags_5[0]) - 1, /* 1 */ + asn_DEF_subcarrierLocation_p0_tags_5, /* Same as above */ + sizeof(asn_DEF_subcarrierLocation_p0_tags_5) + /sizeof(asn_DEF_subcarrierLocation_p0_tags_5[0]), /* 2 */ + { &asn_OER_type_subcarrierLocation_p0_constr_5, &asn_PER_type_subcarrierLocation_p0_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_subcarrierLocation_p0_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pattern0_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0, subcarrierLocation_p0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_subcarrierLocation_p0_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierLocation-p0" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_symbolLocation_p0_constr_12, &asn_PER_memb_symbolLocation_p0_constr_12, memb_symbolLocation_p0_constraint_4 }, + 0, 0, /* No default value */ + "symbolLocation-p0" + }, +}; +static const ber_tlv_tag_t asn_DEF_pattern0_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_pattern0_specs_4 = { + sizeof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0), + offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0, _asn_ctx), + asn_MAP_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_pattern0_4 = { + "pattern0", + "pattern0", + &asn_OP_SEQUENCE, + asn_DEF_pattern0_tags_4, + sizeof(asn_DEF_pattern0_tags_4) + /sizeof(asn_DEF_pattern0_tags_4[0]) - 1, /* 1 */ + asn_DEF_pattern0_tags_4, /* Same as above */ + sizeof(asn_DEF_pattern0_tags_4) + /sizeof(asn_DEF_pattern0_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pattern0_4, + 2, /* Elements count */ + &asn_SPC_pattern0_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_subcarrierLocation_p1_value2enum_14[] = { + { 0, 2, "s0" }, + { 1, 2, "s4" }, + { 2, 2, "s8" } +}; +static const unsigned int asn_MAP_subcarrierLocation_p1_enum2value_14[] = { + 0, /* s0(0) */ + 1, /* s4(1) */ + 2 /* s8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_subcarrierLocation_p1_specs_14 = { + asn_MAP_subcarrierLocation_p1_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_subcarrierLocation_p1_14 = { + "subcarrierLocation-p1", + "subcarrierLocation-p1", + &asn_OP_NativeEnumerated, + asn_DEF_subcarrierLocation_p1_tags_14, + sizeof(asn_DEF_subcarrierLocation_p1_tags_14) + /sizeof(asn_DEF_subcarrierLocation_p1_tags_14[0]) - 1, /* 1 */ + asn_DEF_subcarrierLocation_p1_tags_14, /* Same as above */ + sizeof(asn_DEF_subcarrierLocation_p1_tags_14) + /sizeof(asn_DEF_subcarrierLocation_p1_tags_14[0]), /* 2 */ + { &asn_OER_type_subcarrierLocation_p1_constr_14, &asn_PER_type_subcarrierLocation_p1_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_subcarrierLocation_p1_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pattern1_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1, subcarrierLocation_p1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_subcarrierLocation_p1_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierLocation-p1" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_symbolLocation_p1_constr_18, &asn_PER_memb_symbolLocation_p1_constr_18, memb_symbolLocation_p1_constraint_13 }, + 0, 0, /* No default value */ + "symbolLocation-p1" + }, +}; +static const ber_tlv_tag_t asn_DEF_pattern1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_pattern1_specs_13 = { + sizeof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1), + offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1, _asn_ctx), + asn_MAP_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_pattern1_13 = { + "pattern1", + "pattern1", + &asn_OP_SEQUENCE, + asn_DEF_pattern1_tags_13, + sizeof(asn_DEF_pattern1_tags_13) + /sizeof(asn_DEF_pattern1_tags_13[0]) - 1, /* 1 */ + asn_DEF_pattern1_tags_13, /* Same as above */ + sizeof(asn_DEF_pattern1_tags_13) + /sizeof(asn_DEF_pattern1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pattern1_13, + 2, /* Elements count */ + &asn_SPC_pattern1_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceElementPattern_3[] = { + { ATF_POINTER, 0, offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern, choice.pattern0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_pattern0_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern0" + }, + { ATF_POINTER, 0, offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern, choice.pattern1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_pattern1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_csi_IM_ResourceElementPattern_specs_3 = { + sizeof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern), + offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern, _asn_ctx), + offsetof(struct CSI_IM_Resource__csi_IM_ResourceElementPattern, present), + sizeof(((struct CSI_IM_Resource__csi_IM_ResourceElementPattern *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_csi_IM_ResourceElementPattern_constr_3, &asn_PER_type_csi_IM_ResourceElementPattern_constr_3, CHOICE_constraint }, + asn_MBR_csi_IM_ResourceElementPattern_3, + 2, /* Elements count */ + &asn_SPC_csi_IM_ResourceElementPattern_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_IM_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_IM_Resource, csi_IM_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceId" + }, + { ATF_POINTER, 3, offsetof(struct CSI_IM_Resource, csi_IM_ResourceElementPattern), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_csi_IM_ResourceElementPattern_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceElementPattern" + }, + { ATF_POINTER, 2, offsetof(struct CSI_IM_Resource, freqBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_FrequencyOccupation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBand" + }, + { ATF_POINTER, 1, offsetof(struct CSI_IM_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, +}; +static const int asn_MAP_CSI_IM_Resource_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_CSI_IM_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_IM_Resource_specs_1 = { + sizeof(struct CSI_IM_Resource), + offsetof(struct CSI_IM_Resource, _asn_ctx), + asn_MAP_CSI_IM_Resource_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CSI_IM_Resource_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_IM_Resource = { + "CSI-IM-Resource", + "CSI-IM-Resource", + &asn_OP_SEQUENCE, + asn_DEF_CSI_IM_Resource_tags_1, + sizeof(asn_DEF_CSI_IM_Resource_tags_1) + /sizeof(asn_DEF_CSI_IM_Resource_tags_1[0]), /* 1 */ + asn_DEF_CSI_IM_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_IM_Resource_tags_1) + /sizeof(asn_DEF_CSI_IM_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_IM_Resource_1, + 4, /* Elements count */ + &asn_SPC_CSI_IM_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-IM-Resource.h b/src/codec_utils/RRC/CSI-IM-Resource.h new file mode 100644 index 000000000..bebacd238 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_IM_Resource_H_ +#define _CSI_IM_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-IM-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_IM_Resource__csi_IM_ResourceElementPattern_PR { + CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_NOTHING, /* No components present */ + CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern0, + CSI_IM_Resource__csi_IM_ResourceElementPattern_PR_pattern1 +} CSI_IM_Resource__csi_IM_ResourceElementPattern_PR; +typedef enum CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0 { + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s0 = 0, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s2 = 1, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s4 = 2, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s6 = 3, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s8 = 4, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0_s10 = 5 +} e_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern0__subcarrierLocation_p0; +typedef enum CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1 { + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s0 = 0, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s4 = 1, + CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1_s8 = 2 +} e_CSI_IM_Resource__csi_IM_ResourceElementPattern__pattern1__subcarrierLocation_p1; + +/* Forward declarations */ +struct CSI_FrequencyOccupation; +struct CSI_ResourcePeriodicityAndOffset; + +/* CSI-IM-Resource */ +typedef struct CSI_IM_Resource { + CSI_IM_ResourceId_t csi_IM_ResourceId; + struct CSI_IM_Resource__csi_IM_ResourceElementPattern { + CSI_IM_Resource__csi_IM_ResourceElementPattern_PR present; + union CSI_IM_Resource__csi_IM_ResourceElementPattern_u { + struct 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 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 CSI_FrequencyOccupation *freqBand; /* OPTIONAL */ + struct CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_IM_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_subcarrierLocation_p0_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_subcarrierLocation_p1_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_IM_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_IM_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_IM_Resource_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_IM_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-IM-ResourceId.c b/src/codec_utils/RRC/CSI-IM-ResourceId.c new file mode 100644 index 000000000..cc1ed5fa5 --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-ResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-IM-ResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_IM_ResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_IM_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_IM_ResourceId = { + "CSI-IM-ResourceId", + "CSI-IM-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_CSI_IM_ResourceId_tags_1, + sizeof(asn_DEF_CSI_IM_ResourceId_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_CSI_IM_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_IM_ResourceId_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_IM_ResourceId_constr_1, &asn_PER_type_CSI_IM_ResourceId_constr_1, CSI_IM_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-IM-ResourceId.h b/src/codec_utils/RRC/CSI-IM-ResourceId.h new file mode 100644 index 000000000..67a178e41 --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-ResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_IM_ResourceId_H_ +#define _CSI_IM_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-IM-ResourceId */ +typedef long CSI_IM_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_IM_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_IM_ResourceId; +asn_struct_free_f CSI_IM_ResourceId_free; +asn_struct_print_f CSI_IM_ResourceId_print; +asn_constr_check_f CSI_IM_ResourceId_constraint; +ber_type_decoder_f CSI_IM_ResourceId_decode_ber; +der_type_encoder_f CSI_IM_ResourceId_encode_der; +xer_type_decoder_f CSI_IM_ResourceId_decode_xer; +xer_type_encoder_f CSI_IM_ResourceId_encode_xer; +oer_type_decoder_f CSI_IM_ResourceId_decode_oer; +oer_type_encoder_f CSI_IM_ResourceId_encode_oer; +per_type_decoder_f CSI_IM_ResourceId_decode_uper; +per_type_encoder_f CSI_IM_ResourceId_encode_uper; +per_type_decoder_f CSI_IM_ResourceId_decode_aper; +per_type_encoder_f CSI_IM_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_IM_ResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-IM-ResourceSet.c b/src/codec_utils/RRC/CSI-IM-ResourceSet.c new file mode 100644 index 000000000..02efa8df2 --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-ResourceSet.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-IM-ResourceSet.h" + +static int +memb_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_oer_constraints_t asn_OER_type_csi_IM_Resources_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_IM_Resources_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_csi_IM_Resources_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_Resources_specs_3 = { + sizeof(struct CSI_IM_ResourceSet__csi_IM_Resources), + offsetof(struct 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_csi_IM_Resources_3 = { + "csi-IM-Resources", + "csi-IM-Resources", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_Resources_tags_3, + sizeof(asn_DEF_csi_IM_Resources_tags_3) + /sizeof(asn_DEF_csi_IM_Resources_tags_3[0]) - 1, /* 1 */ + asn_DEF_csi_IM_Resources_tags_3, /* Same as above */ + sizeof(asn_DEF_csi_IM_Resources_tags_3) + /sizeof(asn_DEF_csi_IM_Resources_tags_3[0]), /* 2 */ + { &asn_OER_type_csi_IM_Resources_constr_3, &asn_PER_type_csi_IM_Resources_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_Resources_3, + 1, /* Single element */ + &asn_SPC_csi_IM_Resources_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_IM_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_IM_ResourceSet, csi_IM_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_IM_ResourceSet, csi_IM_Resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_IM_Resources_3, + 0, + { &asn_OER_memb_csi_IM_Resources_constr_3, &asn_PER_memb_csi_IM_Resources_constr_3, memb_csi_IM_Resources_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-Resources" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_IM_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_IM_ResourceSet_specs_1 = { + sizeof(struct CSI_IM_ResourceSet), + offsetof(struct CSI_IM_ResourceSet, _asn_ctx), + asn_MAP_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_CSI_IM_ResourceSet = { + "CSI-IM-ResourceSet", + "CSI-IM-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_CSI_IM_ResourceSet_tags_1, + sizeof(asn_DEF_CSI_IM_ResourceSet_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_CSI_IM_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_IM_ResourceSet_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_IM_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_CSI_IM_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-IM-ResourceSet.h b/src/codec_utils/RRC/CSI-IM-ResourceSet.h new file mode 100644 index 000000000..550e59bcc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_IM_ResourceSet_H_ +#define _CSI_IM_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-IM-ResourceSetId.h" +#include "CSI-IM-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-IM-ResourceSet */ +typedef struct CSI_IM_ResourceSet { + CSI_IM_ResourceSetId_t csi_IM_ResourceSetId; + struct CSI_IM_ResourceSet__csi_IM_Resources { + A_SEQUENCE_OF(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; +} CSI_IM_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_IM_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_IM_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_IM_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_IM_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-IM-ResourceSetId.c b/src/codec_utils/RRC/CSI-IM-ResourceSetId.c new file mode 100644 index 000000000..0ee3b0369 --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-IM-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_IM_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_IM_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_IM_ResourceSetId = { + "CSI-IM-ResourceSetId", + "CSI-IM-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_CSI_IM_ResourceSetId_tags_1, + sizeof(asn_DEF_CSI_IM_ResourceSetId_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_CSI_IM_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_IM_ResourceSetId_tags_1) + /sizeof(asn_DEF_CSI_IM_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_IM_ResourceSetId_constr_1, &asn_PER_type_CSI_IM_ResourceSetId_constr_1, CSI_IM_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-IM-ResourceSetId.h b/src/codec_utils/RRC/CSI-IM-ResourceSetId.h new file mode 100644 index 000000000..c93189ef8 --- /dev/null +++ b/src/codec_utils/RRC/CSI-IM-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_IM_ResourceSetId_H_ +#define _CSI_IM_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-IM-ResourceSetId */ +typedef long CSI_IM_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_IM_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_IM_ResourceSetId; +asn_struct_free_f CSI_IM_ResourceSetId_free; +asn_struct_print_f CSI_IM_ResourceSetId_print; +asn_constr_check_f CSI_IM_ResourceSetId_constraint; +ber_type_decoder_f CSI_IM_ResourceSetId_decode_ber; +der_type_encoder_f CSI_IM_ResourceSetId_encode_der; +xer_type_decoder_f CSI_IM_ResourceSetId_decode_xer; +xer_type_encoder_f CSI_IM_ResourceSetId_encode_xer; +oer_type_decoder_f CSI_IM_ResourceSetId_decode_oer; +oer_type_encoder_f CSI_IM_ResourceSetId_encode_oer; +per_type_decoder_f CSI_IM_ResourceSetId_decode_uper; +per_type_encoder_f CSI_IM_ResourceSetId_encode_uper; +per_type_decoder_f CSI_IM_ResourceSetId_decode_aper; +per_type_encoder_f CSI_IM_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_IM_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-MeasConfig.c b/src/codec_utils/RRC/CSI-MeasConfig.c new file mode 100644 index 000000000..ea78d829d --- /dev/null +++ b/src/codec_utils/RRC/CSI-MeasConfig.c @@ -0,0 +1,1474 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-MeasConfig.h" + +#include "NZP-CSI-RS-Resource.h" +#include "NZP-CSI-RS-ResourceSet.h" +#include "CSI-IM-Resource.h" +#include "CSI-IM-ResourceSet.h" +#include "CSI-SSB-ResourceSet.h" +#include "CSI-ResourceConfig.h" +#include "CSI-ReportConfig.h" +#include "CSI-AperiodicTriggerStateList.h" +#include "CSI-SemiPersistentOnPUSCH-TriggerStateList.h" +static int +memb_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_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_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_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_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_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_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_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_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_csi_SSB_ResourceSetToAddReleaseList_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_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_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_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_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_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_ResourceToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..192)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_ResourceToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..192)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_ResourceSetToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_ResourceSetToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_IM_ResourceToAddModList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_IM_ResourceToReleaseList_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_IM_ResourceSetToAddModList_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_IM_ResourceSetToReleaseList_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_SSB_ResourceSetToAddModList_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_SSB_ResourceSetToAddReleaseList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_csi_SSB_ResourceSetToAddReleaseList_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_oer_constraints_t asn_OER_type_csi_ResourceConfigToAddModList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..112)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_ResourceConfigToReleaseList_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..112)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_ReportConfigToAddModList_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..48)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_ReportConfigToReleaseList_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..48)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aperiodicTriggerStateList_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_aperiodicTriggerStateList_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_semiPersistentOnPUSCH_TriggerStateList_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_semiPersistentOnPUSCH_TriggerStateList_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourceToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..192)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourceToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..192)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourceSetToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourceSetToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_IM_ResourceToAddModList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_IM_ResourceToReleaseList_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_IM_ResourceSetToAddModList_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_IM_ResourceSetToReleaseList_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_SSB_ResourceSetToAddModList_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_SSB_ResourceSetToAddReleaseList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_csi_SSB_ResourceSetToAddReleaseList_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_oer_constraints_t asn_OER_memb_csi_ResourceConfigToAddModList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..112)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_ResourceConfigToReleaseList_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..112)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_ReportConfigToAddModList_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..48)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_ReportConfigToReleaseList_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..48)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_reportTriggerSize_constr_30 CC_NOTUSED = { + { 1, 1 } /* (0..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_nzp_CSI_RS_ResourceToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_ResourceToAddModList_specs_2 = { + sizeof(struct CSI_MeasConfig__nzp_CSI_RS_ResourceToAddModList), + offsetof(struct 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_nzp_CSI_RS_ResourceToAddModList_2 = { + "nzp-CSI-RS-ResourceToAddModList", + "nzp-CSI-RS-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2, + sizeof(asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_ResourceToAddModList_constr_2, &asn_PER_type_nzp_CSI_RS_ResourceToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_ResourceToAddModList_2, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_ResourceToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nzp_CSI_RS_ResourceToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_ResourceToReleaseList_specs_4 = { + sizeof(struct CSI_MeasConfig__nzp_CSI_RS_ResourceToReleaseList), + offsetof(struct 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_nzp_CSI_RS_ResourceToReleaseList_4 = { + "nzp-CSI-RS-ResourceToReleaseList", + "nzp-CSI-RS-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4, + sizeof(asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_ResourceToReleaseList_constr_4, &asn_PER_type_nzp_CSI_RS_ResourceToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_ResourceToReleaseList_4, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_ResourceToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nzp_CSI_RS_ResourceSetToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_ResourceSetToAddModList_specs_6 = { + sizeof(struct CSI_MeasConfig__nzp_CSI_RS_ResourceSetToAddModList), + offsetof(struct 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_nzp_CSI_RS_ResourceSetToAddModList_6 = { + "nzp-CSI-RS-ResourceSetToAddModList", + "nzp-CSI-RS-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6, + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_tags_6[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_ResourceSetToAddModList_constr_6, &asn_PER_type_nzp_CSI_RS_ResourceSetToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_ResourceSetToAddModList_6, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_ResourceSetToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nzp_CSI_RS_ResourceSetToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_ResourceSetToReleaseList_specs_8 = { + sizeof(struct CSI_MeasConfig__nzp_CSI_RS_ResourceSetToReleaseList), + offsetof(struct 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_nzp_CSI_RS_ResourceSetToReleaseList_8 = { + "nzp-CSI-RS-ResourceSetToReleaseList", + "nzp-CSI-RS-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8, + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_tags_8[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, &asn_PER_type_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_ResourceSetToReleaseList_8, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_ResourceSetToReleaseList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceToAddModList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_IM_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_ResourceToAddModList_specs_10 = { + sizeof(struct CSI_MeasConfig__csi_IM_ResourceToAddModList), + offsetof(struct 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_csi_IM_ResourceToAddModList_10 = { + "csi-IM-ResourceToAddModList", + "csi-IM-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_ResourceToAddModList_tags_10, + sizeof(asn_DEF_csi_IM_ResourceToAddModList_tags_10) + /sizeof(asn_DEF_csi_IM_ResourceToAddModList_tags_10[0]) - 1, /* 1 */ + asn_DEF_csi_IM_ResourceToAddModList_tags_10, /* Same as above */ + sizeof(asn_DEF_csi_IM_ResourceToAddModList_tags_10) + /sizeof(asn_DEF_csi_IM_ResourceToAddModList_tags_10[0]), /* 2 */ + { &asn_OER_type_csi_IM_ResourceToAddModList_constr_10, &asn_PER_type_csi_IM_ResourceToAddModList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_ResourceToAddModList_10, + 1, /* Single element */ + &asn_SPC_csi_IM_ResourceToAddModList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceToReleaseList_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_IM_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_ResourceToReleaseList_specs_12 = { + sizeof(struct CSI_MeasConfig__csi_IM_ResourceToReleaseList), + offsetof(struct 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_csi_IM_ResourceToReleaseList_12 = { + "csi-IM-ResourceToReleaseList", + "csi-IM-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_ResourceToReleaseList_tags_12, + sizeof(asn_DEF_csi_IM_ResourceToReleaseList_tags_12) + /sizeof(asn_DEF_csi_IM_ResourceToReleaseList_tags_12[0]) - 1, /* 1 */ + asn_DEF_csi_IM_ResourceToReleaseList_tags_12, /* Same as above */ + sizeof(asn_DEF_csi_IM_ResourceToReleaseList_tags_12) + /sizeof(asn_DEF_csi_IM_ResourceToReleaseList_tags_12[0]), /* 2 */ + { &asn_OER_type_csi_IM_ResourceToReleaseList_constr_12, &asn_PER_type_csi_IM_ResourceToReleaseList_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_ResourceToReleaseList_12, + 1, /* Single element */ + &asn_SPC_csi_IM_ResourceToReleaseList_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceSetToAddModList_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_IM_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_ResourceSetToAddModList_specs_14 = { + sizeof(struct CSI_MeasConfig__csi_IM_ResourceSetToAddModList), + offsetof(struct 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_csi_IM_ResourceSetToAddModList_14 = { + "csi-IM-ResourceSetToAddModList", + "csi-IM-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_ResourceSetToAddModList_tags_14, + sizeof(asn_DEF_csi_IM_ResourceSetToAddModList_tags_14) + /sizeof(asn_DEF_csi_IM_ResourceSetToAddModList_tags_14[0]) - 1, /* 1 */ + asn_DEF_csi_IM_ResourceSetToAddModList_tags_14, /* Same as above */ + sizeof(asn_DEF_csi_IM_ResourceSetToAddModList_tags_14) + /sizeof(asn_DEF_csi_IM_ResourceSetToAddModList_tags_14[0]), /* 2 */ + { &asn_OER_type_csi_IM_ResourceSetToAddModList_constr_14, &asn_PER_type_csi_IM_ResourceSetToAddModList_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_ResourceSetToAddModList_14, + 1, /* Single element */ + &asn_SPC_csi_IM_ResourceSetToAddModList_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceSetToReleaseList_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_ResourceSetToReleaseList_specs_16 = { + sizeof(struct CSI_MeasConfig__csi_IM_ResourceSetToReleaseList), + offsetof(struct 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_csi_IM_ResourceSetToReleaseList_16 = { + "csi-IM-ResourceSetToReleaseList", + "csi-IM-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16, + sizeof(asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16) + /sizeof(asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16[0]) - 1, /* 1 */ + asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16, /* Same as above */ + sizeof(asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16) + /sizeof(asn_DEF_csi_IM_ResourceSetToReleaseList_tags_16[0]), /* 2 */ + { &asn_OER_type_csi_IM_ResourceSetToReleaseList_constr_16, &asn_PER_type_csi_IM_ResourceSetToReleaseList_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_ResourceSetToReleaseList_16, + 1, /* Single element */ + &asn_SPC_csi_IM_ResourceSetToReleaseList_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_SSB_ResourceSetToAddModList_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_SSB_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_SSB_ResourceSetToAddModList_specs_18 = { + sizeof(struct CSI_MeasConfig__csi_SSB_ResourceSetToAddModList), + offsetof(struct 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_csi_SSB_ResourceSetToAddModList_18 = { + "csi-SSB-ResourceSetToAddModList", + "csi-SSB-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18, + sizeof(asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18) + /sizeof(asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18[0]) - 1, /* 1 */ + asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18, /* Same as above */ + sizeof(asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18) + /sizeof(asn_DEF_csi_SSB_ResourceSetToAddModList_tags_18[0]), /* 2 */ + { &asn_OER_type_csi_SSB_ResourceSetToAddModList_constr_18, &asn_PER_type_csi_SSB_ResourceSetToAddModList_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_csi_SSB_ResourceSetToAddModList_18, + 1, /* Single element */ + &asn_SPC_csi_SSB_ResourceSetToAddModList_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_SSB_ResourceSetToAddReleaseList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csi_SSB_ResourceSetToAddReleaseList_specs_20 = { + sizeof(struct CSI_MeasConfig__csi_SSB_ResourceSetToAddReleaseList), + offsetof(struct CSI_MeasConfig__csi_SSB_ResourceSetToAddReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_csi_SSB_ResourceSetToAddReleaseList_20 = { + "csi-SSB-ResourceSetToAddReleaseList", + "csi-SSB-ResourceSetToAddReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20, + sizeof(asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20) + /sizeof(asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20[0]) - 1, /* 1 */ + asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20, /* Same as above */ + sizeof(asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20) + /sizeof(asn_DEF_csi_SSB_ResourceSetToAddReleaseList_tags_20[0]), /* 2 */ + { &asn_OER_type_csi_SSB_ResourceSetToAddReleaseList_constr_20, &asn_PER_type_csi_SSB_ResourceSetToAddReleaseList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_csi_SSB_ResourceSetToAddReleaseList_20, + 1, /* Single element */ + &asn_SPC_csi_SSB_ResourceSetToAddReleaseList_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_ResourceConfigToAddModList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_ResourceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csi_ResourceConfigToAddModList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csi_ResourceConfigToAddModList_specs_22 = { + sizeof(struct CSI_MeasConfig__csi_ResourceConfigToAddModList), + offsetof(struct CSI_MeasConfig__csi_ResourceConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_csi_ResourceConfigToAddModList_22 = { + "csi-ResourceConfigToAddModList", + "csi-ResourceConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_ResourceConfigToAddModList_tags_22, + sizeof(asn_DEF_csi_ResourceConfigToAddModList_tags_22) + /sizeof(asn_DEF_csi_ResourceConfigToAddModList_tags_22[0]) - 1, /* 1 */ + asn_DEF_csi_ResourceConfigToAddModList_tags_22, /* Same as above */ + sizeof(asn_DEF_csi_ResourceConfigToAddModList_tags_22) + /sizeof(asn_DEF_csi_ResourceConfigToAddModList_tags_22[0]), /* 2 */ + { &asn_OER_type_csi_ResourceConfigToAddModList_constr_22, &asn_PER_type_csi_ResourceConfigToAddModList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_csi_ResourceConfigToAddModList_22, + 1, /* Single element */ + &asn_SPC_csi_ResourceConfigToAddModList_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_ResourceConfigToReleaseList_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csi_ResourceConfigToReleaseList_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csi_ResourceConfigToReleaseList_specs_24 = { + sizeof(struct CSI_MeasConfig__csi_ResourceConfigToReleaseList), + offsetof(struct CSI_MeasConfig__csi_ResourceConfigToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_csi_ResourceConfigToReleaseList_24 = { + "csi-ResourceConfigToReleaseList", + "csi-ResourceConfigToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_ResourceConfigToReleaseList_tags_24, + sizeof(asn_DEF_csi_ResourceConfigToReleaseList_tags_24) + /sizeof(asn_DEF_csi_ResourceConfigToReleaseList_tags_24[0]) - 1, /* 1 */ + asn_DEF_csi_ResourceConfigToReleaseList_tags_24, /* Same as above */ + sizeof(asn_DEF_csi_ResourceConfigToReleaseList_tags_24) + /sizeof(asn_DEF_csi_ResourceConfigToReleaseList_tags_24[0]), /* 2 */ + { &asn_OER_type_csi_ResourceConfigToReleaseList_constr_24, &asn_PER_type_csi_ResourceConfigToReleaseList_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_csi_ResourceConfigToReleaseList_24, + 1, /* Single element */ + &asn_SPC_csi_ResourceConfigToReleaseList_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_ReportConfigToAddModList_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_ReportConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csi_ReportConfigToAddModList_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csi_ReportConfigToAddModList_specs_26 = { + sizeof(struct CSI_MeasConfig__csi_ReportConfigToAddModList), + offsetof(struct CSI_MeasConfig__csi_ReportConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_csi_ReportConfigToAddModList_26 = { + "csi-ReportConfigToAddModList", + "csi-ReportConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_ReportConfigToAddModList_tags_26, + sizeof(asn_DEF_csi_ReportConfigToAddModList_tags_26) + /sizeof(asn_DEF_csi_ReportConfigToAddModList_tags_26[0]) - 1, /* 1 */ + asn_DEF_csi_ReportConfigToAddModList_tags_26, /* Same as above */ + sizeof(asn_DEF_csi_ReportConfigToAddModList_tags_26) + /sizeof(asn_DEF_csi_ReportConfigToAddModList_tags_26[0]), /* 2 */ + { &asn_OER_type_csi_ReportConfigToAddModList_constr_26, &asn_PER_type_csi_ReportConfigToAddModList_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_csi_ReportConfigToAddModList_26, + 1, /* Single element */ + &asn_SPC_csi_ReportConfigToAddModList_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_ReportConfigToReleaseList_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_csi_ReportConfigToReleaseList_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_csi_ReportConfigToReleaseList_specs_28 = { + sizeof(struct CSI_MeasConfig__csi_ReportConfigToReleaseList), + offsetof(struct CSI_MeasConfig__csi_ReportConfigToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_csi_ReportConfigToReleaseList_28 = { + "csi-ReportConfigToReleaseList", + "csi-ReportConfigToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_ReportConfigToReleaseList_tags_28, + sizeof(asn_DEF_csi_ReportConfigToReleaseList_tags_28) + /sizeof(asn_DEF_csi_ReportConfigToReleaseList_tags_28[0]) - 1, /* 1 */ + asn_DEF_csi_ReportConfigToReleaseList_tags_28, /* Same as above */ + sizeof(asn_DEF_csi_ReportConfigToReleaseList_tags_28) + /sizeof(asn_DEF_csi_ReportConfigToReleaseList_tags_28[0]), /* 2 */ + { &asn_OER_type_csi_ReportConfigToReleaseList_constr_28, &asn_PER_type_csi_ReportConfigToReleaseList_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_csi_ReportConfigToReleaseList_28, + 1, /* Single element */ + &asn_SPC_csi_ReportConfigToReleaseList_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodicTriggerStateList_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_MeasConfig__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 CSI_MeasConfig__aperiodicTriggerStateList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_AperiodicTriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_aperiodicTriggerStateList_tag2el_31[] = { + { (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_aperiodicTriggerStateList_specs_31 = { + sizeof(struct CSI_MeasConfig__aperiodicTriggerStateList), + offsetof(struct CSI_MeasConfig__aperiodicTriggerStateList, _asn_ctx), + offsetof(struct CSI_MeasConfig__aperiodicTriggerStateList, present), + sizeof(((struct CSI_MeasConfig__aperiodicTriggerStateList *)0)->present), + asn_MAP_aperiodicTriggerStateList_tag2el_31, + 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_aperiodicTriggerStateList_31 = { + "aperiodicTriggerStateList", + "aperiodicTriggerStateList", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_aperiodicTriggerStateList_constr_31, &asn_PER_type_aperiodicTriggerStateList_constr_31, CHOICE_constraint }, + asn_MBR_aperiodicTriggerStateList_31, + 2, /* Elements count */ + &asn_SPC_aperiodicTriggerStateList_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semiPersistentOnPUSCH_TriggerStateList_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_MeasConfig__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 CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_semiPersistentOnPUSCH_TriggerStateList_tag2el_34[] = { + { (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_semiPersistentOnPUSCH_TriggerStateList_specs_34 = { + sizeof(struct CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList), + offsetof(struct CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList, _asn_ctx), + offsetof(struct CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList, present), + sizeof(((struct CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList *)0)->present), + asn_MAP_semiPersistentOnPUSCH_TriggerStateList_tag2el_34, + 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_semiPersistentOnPUSCH_TriggerStateList_34 = { + "semiPersistentOnPUSCH-TriggerStateList", + "semiPersistentOnPUSCH-TriggerStateList", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_semiPersistentOnPUSCH_TriggerStateList_constr_34, &asn_PER_type_semiPersistentOnPUSCH_TriggerStateList_constr_34, CHOICE_constraint }, + asn_MBR_semiPersistentOnPUSCH_TriggerStateList_34, + 2, /* Elements count */ + &asn_SPC_semiPersistentOnPUSCH_TriggerStateList_specs_34 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_MeasConfig_1[] = { + { ATF_POINTER, 17, offsetof(struct CSI_MeasConfig, nzp_CSI_RS_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_ResourceToAddModList_2, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourceToAddModList_constr_2, &asn_PER_memb_nzp_CSI_RS_ResourceToAddModList_constr_2, memb_nzp_CSI_RS_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceToAddModList" + }, + { ATF_POINTER, 16, offsetof(struct CSI_MeasConfig, nzp_CSI_RS_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_ResourceToReleaseList_4, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourceToReleaseList_constr_4, &asn_PER_memb_nzp_CSI_RS_ResourceToReleaseList_constr_4, memb_nzp_CSI_RS_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceToReleaseList" + }, + { ATF_POINTER, 15, offsetof(struct CSI_MeasConfig, nzp_CSI_RS_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_ResourceSetToAddModList_6, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourceSetToAddModList_constr_6, &asn_PER_memb_nzp_CSI_RS_ResourceSetToAddModList_constr_6, memb_nzp_CSI_RS_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetToAddModList" + }, + { ATF_POINTER, 14, offsetof(struct CSI_MeasConfig, nzp_CSI_RS_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_ResourceSetToReleaseList_8, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, &asn_PER_memb_nzp_CSI_RS_ResourceSetToReleaseList_constr_8, memb_nzp_CSI_RS_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetToReleaseList" + }, + { ATF_POINTER, 13, offsetof(struct CSI_MeasConfig, csi_IM_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_csi_IM_ResourceToAddModList_10, + 0, + { &asn_OER_memb_csi_IM_ResourceToAddModList_constr_10, &asn_PER_memb_csi_IM_ResourceToAddModList_constr_10, memb_csi_IM_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceToAddModList" + }, + { ATF_POINTER, 12, offsetof(struct CSI_MeasConfig, csi_IM_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_csi_IM_ResourceToReleaseList_12, + 0, + { &asn_OER_memb_csi_IM_ResourceToReleaseList_constr_12, &asn_PER_memb_csi_IM_ResourceToReleaseList_constr_12, memb_csi_IM_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct CSI_MeasConfig, csi_IM_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_csi_IM_ResourceSetToAddModList_14, + 0, + { &asn_OER_memb_csi_IM_ResourceSetToAddModList_constr_14, &asn_PER_memb_csi_IM_ResourceSetToAddModList_constr_14, memb_csi_IM_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetToAddModList" + }, + { ATF_POINTER, 10, offsetof(struct CSI_MeasConfig, csi_IM_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_csi_IM_ResourceSetToReleaseList_16, + 0, + { &asn_OER_memb_csi_IM_ResourceSetToReleaseList_constr_16, &asn_PER_memb_csi_IM_ResourceSetToReleaseList_constr_16, memb_csi_IM_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetToReleaseList" + }, + { ATF_POINTER, 9, offsetof(struct CSI_MeasConfig, csi_SSB_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_csi_SSB_ResourceSetToAddModList_18, + 0, + { &asn_OER_memb_csi_SSB_ResourceSetToAddModList_constr_18, &asn_PER_memb_csi_SSB_ResourceSetToAddModList_constr_18, memb_csi_SSB_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetToAddModList" + }, + { ATF_POINTER, 8, offsetof(struct CSI_MeasConfig, csi_SSB_ResourceSetToAddReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_csi_SSB_ResourceSetToAddReleaseList_20, + 0, + { &asn_OER_memb_csi_SSB_ResourceSetToAddReleaseList_constr_20, &asn_PER_memb_csi_SSB_ResourceSetToAddReleaseList_constr_20, memb_csi_SSB_ResourceSetToAddReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetToAddReleaseList" + }, + { ATF_POINTER, 7, offsetof(struct CSI_MeasConfig, csi_ResourceConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_csi_ResourceConfigToAddModList_22, + 0, + { &asn_OER_memb_csi_ResourceConfigToAddModList_constr_22, &asn_PER_memb_csi_ResourceConfigToAddModList_constr_22, memb_csi_ResourceConfigToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ResourceConfigToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct CSI_MeasConfig, csi_ResourceConfigToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_csi_ResourceConfigToReleaseList_24, + 0, + { &asn_OER_memb_csi_ResourceConfigToReleaseList_constr_24, &asn_PER_memb_csi_ResourceConfigToReleaseList_constr_24, memb_csi_ResourceConfigToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ResourceConfigToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct CSI_MeasConfig, csi_ReportConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_csi_ReportConfigToAddModList_26, + 0, + { &asn_OER_memb_csi_ReportConfigToAddModList_constr_26, &asn_PER_memb_csi_ReportConfigToAddModList_constr_26, memb_csi_ReportConfigToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ReportConfigToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct CSI_MeasConfig, csi_ReportConfigToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_csi_ReportConfigToReleaseList_28, + 0, + { &asn_OER_memb_csi_ReportConfigToReleaseList_constr_28, &asn_PER_memb_csi_ReportConfigToReleaseList_constr_28, memb_csi_ReportConfigToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "csi-ReportConfigToReleaseList" + }, + { ATF_POINTER, 3, offsetof(struct CSI_MeasConfig, reportTriggerSize), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_reportTriggerSize_constr_30, &asn_PER_memb_reportTriggerSize_constr_30, memb_reportTriggerSize_constraint_1 }, + 0, 0, /* No default value */ + "reportTriggerSize" + }, + { ATF_POINTER, 2, offsetof(struct CSI_MeasConfig, aperiodicTriggerStateList), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_aperiodicTriggerStateList_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicTriggerStateList" + }, + { ATF_POINTER, 1, offsetof(struct CSI_MeasConfig, semiPersistentOnPUSCH_TriggerStateList), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_semiPersistentOnPUSCH_TriggerStateList_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH-TriggerStateList" + }, +}; +static const int asn_MAP_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_CSI_MeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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-ResourceSetToAddReleaseList */ + { (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_CSI_MeasConfig_specs_1 = { + sizeof(struct CSI_MeasConfig), + offsetof(struct CSI_MeasConfig, _asn_ctx), + asn_MAP_CSI_MeasConfig_tag2el_1, + 17, /* Count of tags in the map */ + asn_MAP_CSI_MeasConfig_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 17, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_MeasConfig = { + "CSI-MeasConfig", + "CSI-MeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_CSI_MeasConfig_tags_1, + sizeof(asn_DEF_CSI_MeasConfig_tags_1) + /sizeof(asn_DEF_CSI_MeasConfig_tags_1[0]), /* 1 */ + asn_DEF_CSI_MeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_MeasConfig_tags_1) + /sizeof(asn_DEF_CSI_MeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_MeasConfig_1, + 17, /* Elements count */ + &asn_SPC_CSI_MeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-MeasConfig.h b/src/codec_utils/RRC/CSI-MeasConfig.h new file mode 100644 index 000000000..19abb784f --- /dev/null +++ b/src/codec_utils/RRC/CSI-MeasConfig.h @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_MeasConfig_H_ +#define _CSI_MeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "NZP-CSI-RS-ResourceId.h" +#include "NZP-CSI-RS-ResourceSetId.h" +#include "CSI-IM-ResourceId.h" +#include "CSI-IM-ResourceSetId.h" +#include "CSI-SSB-ResourceSetId.h" +#include "CSI-ResourceConfigId.h" +#include "CSI-ReportConfigId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_MeasConfig__aperiodicTriggerStateList_PR { + CSI_MeasConfig__aperiodicTriggerStateList_PR_NOTHING, /* No components present */ + CSI_MeasConfig__aperiodicTriggerStateList_PR_release, + CSI_MeasConfig__aperiodicTriggerStateList_PR_setup +} CSI_MeasConfig__aperiodicTriggerStateList_PR; +typedef enum CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR { + CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR_NOTHING, /* No components present */ + CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR_release, + CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR_setup +} CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR; + +/* Forward declarations */ +struct NZP_CSI_RS_Resource; +struct NZP_CSI_RS_ResourceSet; +struct CSI_IM_Resource; +struct CSI_IM_ResourceSet; +struct CSI_SSB_ResourceSet; +struct CSI_ResourceConfig; +struct CSI_ReportConfig; +struct CSI_AperiodicTriggerStateList; +struct CSI_SemiPersistentOnPUSCH_TriggerStateList; + +/* CSI-MeasConfig */ +typedef struct CSI_MeasConfig { + struct CSI_MeasConfig__nzp_CSI_RS_ResourceToAddModList { + A_SEQUENCE_OF(struct NZP_CSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceToAddModList; + struct CSI_MeasConfig__nzp_CSI_RS_ResourceToReleaseList { + A_SEQUENCE_OF(NZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceToReleaseList; + struct CSI_MeasConfig__nzp_CSI_RS_ResourceSetToAddModList { + A_SEQUENCE_OF(struct NZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetToAddModList; + struct CSI_MeasConfig__nzp_CSI_RS_ResourceSetToReleaseList { + A_SEQUENCE_OF(NZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetToReleaseList; + struct CSI_MeasConfig__csi_IM_ResourceToAddModList { + A_SEQUENCE_OF(struct CSI_IM_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceToAddModList; + struct CSI_MeasConfig__csi_IM_ResourceToReleaseList { + A_SEQUENCE_OF(CSI_IM_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceToReleaseList; + struct CSI_MeasConfig__csi_IM_ResourceSetToAddModList { + A_SEQUENCE_OF(struct CSI_IM_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceSetToAddModList; + struct CSI_MeasConfig__csi_IM_ResourceSetToReleaseList { + A_SEQUENCE_OF(CSI_IM_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_IM_ResourceSetToReleaseList; + struct CSI_MeasConfig__csi_SSB_ResourceSetToAddModList { + A_SEQUENCE_OF(struct CSI_SSB_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_SSB_ResourceSetToAddModList; + struct CSI_MeasConfig__csi_SSB_ResourceSetToAddReleaseList { + A_SEQUENCE_OF(CSI_SSB_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_SSB_ResourceSetToAddReleaseList; + struct CSI_MeasConfig__csi_ResourceConfigToAddModList { + A_SEQUENCE_OF(struct CSI_ResourceConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ResourceConfigToAddModList; + struct CSI_MeasConfig__csi_ResourceConfigToReleaseList { + A_SEQUENCE_OF(CSI_ResourceConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ResourceConfigToReleaseList; + struct CSI_MeasConfig__csi_ReportConfigToAddModList { + A_SEQUENCE_OF(struct CSI_ReportConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ReportConfigToAddModList; + struct CSI_MeasConfig__csi_ReportConfigToReleaseList { + A_SEQUENCE_OF(CSI_ReportConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_ReportConfigToReleaseList; + long *reportTriggerSize; /* OPTIONAL */ + struct CSI_MeasConfig__aperiodicTriggerStateList { + CSI_MeasConfig__aperiodicTriggerStateList_PR present; + union CSI_MeasConfig__aperiodicTriggerStateList_u { + NULL_t release; + struct CSI_AperiodicTriggerStateList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodicTriggerStateList; + struct CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList { + CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_PR present; + union CSI_MeasConfig__semiPersistentOnPUSCH_TriggerStateList_u { + NULL_t release; + struct CSI_SemiPersistentOnPUSCH_TriggerStateList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semiPersistentOnPUSCH_TriggerStateList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_MeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_MeasConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_MeasConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_MeasConfig_1[17]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_MeasConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-CellMobility.c b/src/codec_utils/RRC/CSI-RS-CellMobility.c new file mode 100644 index 000000000..1b32ac2ab --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-CellMobility.c @@ -0,0 +1,352 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-CellMobility.h" + +#include "CSI-RS-Resource-Mobility.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_nrofPRBs_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_startPRB_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..2169) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_density_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_rs_ResourceList_Mobility_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_rs_ResourceList_Mobility_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_memb_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_nrofPRBs_value2enum_4[] = { + { 0, 6, "size24" }, + { 1, 6, "size48" }, + { 2, 6, "size96" }, + { 3, 7, "size192" }, + { 4, 7, "size264" } +}; +static const unsigned int asn_MAP_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_nrofPRBs_specs_4 = { + asn_MAP_nrofPRBs_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofPRBs_4 = { + "nrofPRBs", + "nrofPRBs", + &asn_OP_NativeEnumerated, + asn_DEF_nrofPRBs_tags_4, + sizeof(asn_DEF_nrofPRBs_tags_4) + /sizeof(asn_DEF_nrofPRBs_tags_4[0]) - 1, /* 1 */ + asn_DEF_nrofPRBs_tags_4, /* Same as above */ + sizeof(asn_DEF_nrofPRBs_tags_4) + /sizeof(asn_DEF_nrofPRBs_tags_4[0]), /* 2 */ + { &asn_OER_type_nrofPRBs_constr_4, &asn_PER_type_nrofPRBs_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofPRBs_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_rs_MeasurementBW_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_CellMobility__csi_rs_MeasurementBW, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofPRBs_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_CellMobility__csi_rs_MeasurementBW, startPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startPRB_constr_10, &asn_PER_memb_startPRB_constr_10, memb_startPRB_constraint_3 }, + 0, 0, /* No default value */ + "startPRB" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_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_csi_rs_MeasurementBW_specs_3 = { + sizeof(struct CSI_RS_CellMobility__csi_rs_MeasurementBW), + offsetof(struct CSI_RS_CellMobility__csi_rs_MeasurementBW, _asn_ctx), + asn_MAP_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_csi_rs_MeasurementBW_3 = { + "csi-rs-MeasurementBW", + "csi-rs-MeasurementBW", + &asn_OP_SEQUENCE, + asn_DEF_csi_rs_MeasurementBW_tags_3, + sizeof(asn_DEF_csi_rs_MeasurementBW_tags_3) + /sizeof(asn_DEF_csi_rs_MeasurementBW_tags_3[0]) - 1, /* 1 */ + asn_DEF_csi_rs_MeasurementBW_tags_3, /* Same as above */ + sizeof(asn_DEF_csi_rs_MeasurementBW_tags_3) + /sizeof(asn_DEF_csi_rs_MeasurementBW_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_csi_rs_MeasurementBW_3, + 2, /* Elements count */ + &asn_SPC_csi_rs_MeasurementBW_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_density_value2enum_11[] = { + { 0, 2, "d1" }, + { 1, 2, "d3" } +}; +static const unsigned int asn_MAP_density_enum2value_11[] = { + 0, /* d1(0) */ + 1 /* d3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_density_specs_11 = { + asn_MAP_density_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_density_11 = { + "density", + "density", + &asn_OP_NativeEnumerated, + asn_DEF_density_tags_11, + sizeof(asn_DEF_density_tags_11) + /sizeof(asn_DEF_density_tags_11[0]) - 1, /* 1 */ + asn_DEF_density_tags_11, /* Same as above */ + sizeof(asn_DEF_density_tags_11) + /sizeof(asn_DEF_density_tags_11[0]), /* 2 */ + { &asn_OER_type_density_constr_11, &asn_PER_type_density_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_density_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_rs_ResourceList_Mobility_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_RS_Resource_Mobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_rs_ResourceList_Mobility_specs_14 = { + sizeof(struct CSI_RS_CellMobility__csi_rs_ResourceList_Mobility), + offsetof(struct 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_csi_rs_ResourceList_Mobility_14 = { + "csi-rs-ResourceList-Mobility", + "csi-rs-ResourceList-Mobility", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_rs_ResourceList_Mobility_tags_14, + sizeof(asn_DEF_csi_rs_ResourceList_Mobility_tags_14) + /sizeof(asn_DEF_csi_rs_ResourceList_Mobility_tags_14[0]) - 1, /* 1 */ + asn_DEF_csi_rs_ResourceList_Mobility_tags_14, /* Same as above */ + sizeof(asn_DEF_csi_rs_ResourceList_Mobility_tags_14) + /sizeof(asn_DEF_csi_rs_ResourceList_Mobility_tags_14[0]), /* 2 */ + { &asn_OER_type_csi_rs_ResourceList_Mobility_constr_14, &asn_PER_type_csi_rs_ResourceList_Mobility_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_csi_rs_ResourceList_Mobility_14, + 1, /* Single element */ + &asn_SPC_csi_rs_ResourceList_Mobility_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_RS_CellMobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_CellMobility, cellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_CellMobility, csi_rs_MeasurementBW), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_rs_MeasurementBW_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs-MeasurementBW" + }, + { ATF_POINTER, 1, offsetof(struct CSI_RS_CellMobility, density), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_density_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "density" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_CellMobility, csi_rs_ResourceList_Mobility), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_csi_rs_ResourceList_Mobility_14, + 0, + { &asn_OER_memb_csi_rs_ResourceList_Mobility_constr_14, &asn_PER_memb_csi_rs_ResourceList_Mobility_constr_14, memb_csi_rs_ResourceList_Mobility_constraint_1 }, + 0, 0, /* No default value */ + "csi-rs-ResourceList-Mobility" + }, +}; +static const int asn_MAP_CSI_RS_CellMobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CSI_RS_CellMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_RS_CellMobility_specs_1 = { + sizeof(struct CSI_RS_CellMobility), + offsetof(struct CSI_RS_CellMobility, _asn_ctx), + asn_MAP_CSI_RS_CellMobility_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CSI_RS_CellMobility_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_CellMobility = { + "CSI-RS-CellMobility", + "CSI-RS-CellMobility", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_CellMobility_tags_1, + sizeof(asn_DEF_CSI_RS_CellMobility_tags_1) + /sizeof(asn_DEF_CSI_RS_CellMobility_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_CellMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_CellMobility_tags_1) + /sizeof(asn_DEF_CSI_RS_CellMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_CellMobility_1, + 4, /* Elements count */ + &asn_SPC_CSI_RS_CellMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-CellMobility.h b/src/codec_utils/RRC/CSI-RS-CellMobility.h new file mode 100644 index 000000000..3b2065137 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_CellMobility_H_ +#define _CSI_RS_CellMobility_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs { + CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size24 = 0, + CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size48 = 1, + CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size96 = 2, + CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size192 = 3, + CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs_size264 = 4 +} e_CSI_RS_CellMobility__csi_rs_MeasurementBW__nrofPRBs; +typedef enum CSI_RS_CellMobility__density { + CSI_RS_CellMobility__density_d1 = 0, + CSI_RS_CellMobility__density_d3 = 1 +} e_CSI_RS_CellMobility__density; + +/* Forward declarations */ +struct CSI_RS_Resource_Mobility; + +/* CSI-RS-CellMobility */ +typedef struct CSI_RS_CellMobility { + PhysCellId_t cellId; + struct 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 CSI_RS_CellMobility__csi_rs_ResourceList_Mobility { + A_SEQUENCE_OF(struct 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; +} CSI_RS_CellMobility_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofPRBs_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_density_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_CellMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_CellMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_CellMobility_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_CellMobility_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-ForTracking.c b/src/codec_utils/RRC/CSI-RS-ForTracking.c new file mode 100644 index 000000000..68ee3d8f1 --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-ForTracking.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-ForTracking.h" + +static int +memb_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_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_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_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_oer_constraints_t asn_OER_memb_burstLength_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxSimultaneousResourceSetsPerCC_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxConfiguredResourceSetsPerCC_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxConfiguredResourceSetsAllCC_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_CSI_RS_ForTracking_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ForTracking, burstLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_burstLength_constr_2, &asn_PER_memb_burstLength_constr_2, memb_burstLength_constraint_1 }, + 0, 0, /* No default value */ + "burstLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ForTracking, maxSimultaneousResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxSimultaneousResourceSetsPerCC_constr_3, &asn_PER_memb_maxSimultaneousResourceSetsPerCC_constr_3, memb_maxSimultaneousResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxSimultaneousResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ForTracking, maxConfiguredResourceSetsPerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxConfiguredResourceSetsPerCC_constr_4, &asn_PER_memb_maxConfiguredResourceSetsPerCC_constr_4, memb_maxConfiguredResourceSetsPerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsPerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ForTracking, maxConfiguredResourceSetsAllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxConfiguredResourceSetsAllCC_constr_5, &asn_PER_memb_maxConfiguredResourceSetsAllCC_constr_5, memb_maxConfiguredResourceSetsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "maxConfiguredResourceSetsAllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_RS_ForTracking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CSI_RS_ForTracking_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_CSI_RS_ForTracking_specs_1 = { + sizeof(struct CSI_RS_ForTracking), + offsetof(struct CSI_RS_ForTracking, _asn_ctx), + asn_MAP_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_CSI_RS_ForTracking = { + "CSI-RS-ForTracking", + "CSI-RS-ForTracking", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_ForTracking_tags_1, + sizeof(asn_DEF_CSI_RS_ForTracking_tags_1) + /sizeof(asn_DEF_CSI_RS_ForTracking_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_ForTracking_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_ForTracking_tags_1) + /sizeof(asn_DEF_CSI_RS_ForTracking_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_ForTracking_1, + 4, /* Elements count */ + &asn_SPC_CSI_RS_ForTracking_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-ForTracking.h b/src/codec_utils/RRC/CSI-RS-ForTracking.h new file mode 100644 index 000000000..b0a419674 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_ForTracking_H_ +#define _CSI_RS_ForTracking_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-RS-ForTracking */ +typedef struct CSI_RS_ForTracking { + long burstLength; + long maxSimultaneousResourceSetsPerCC; + long maxConfiguredResourceSetsPerCC; + long maxConfiguredResourceSetsAllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_RS_ForTracking_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_ForTracking; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_ForTracking_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_ForTracking_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_ForTracking_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.c b/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.c new file mode 100644 index 000000000..ae2f564b9 --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.c @@ -0,0 +1,517 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-IM-ReceptionForFeedback.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_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_oer_constraints_t asn_OER_type_maxNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberCS_IM_PerCC_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_constr_46 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberNZP_CSI_RS_PerCC_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_maxNumberPortsAcrossNZP_CSI_RS_PerCC_specs_3 = { + asn_MAP_maxNumberPortsAcrossNZP_CSI_RS_PerCC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3 = { + "maxNumberPortsAcrossNZP-CSI-RS-PerCC", + "maxNumberPortsAcrossNZP-CSI-RS-PerCC", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3, + sizeof(asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3) + /sizeof(asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3[0]) - 1, /* 1 */ + asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3, /* Same as above */ + sizeof(asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3) + /sizeof(asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_tags_3[0]), /* 2 */ + { &asn_OER_type_maxNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3, &asn_PER_type_maxNumberPortsAcrossNZP_CSI_RS_PerCC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberPortsAcrossNZP_CSI_RS_PerCC_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxNumberCS_IM_PerCC_specs_39 = { + asn_MAP_maxNumberCS_IM_PerCC_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberCS_IM_PerCC_39 = { + "maxNumberCS-IM-PerCC", + "maxNumberCS-IM-PerCC", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberCS_IM_PerCC_tags_39, + sizeof(asn_DEF_maxNumberCS_IM_PerCC_tags_39) + /sizeof(asn_DEF_maxNumberCS_IM_PerCC_tags_39[0]) - 1, /* 1 */ + asn_DEF_maxNumberCS_IM_PerCC_tags_39, /* Same as above */ + sizeof(asn_DEF_maxNumberCS_IM_PerCC_tags_39) + /sizeof(asn_DEF_maxNumberCS_IM_PerCC_tags_39[0]), /* 2 */ + { &asn_OER_type_maxNumberCS_IM_PerCC_constr_39, &asn_PER_type_maxNumberCS_IM_PerCC_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberCS_IM_PerCC_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_specs_46 = { + asn_MAP_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46 = { + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC", + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46, + sizeof(asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46) + /sizeof(asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46[0]) - 1, /* 1 */ + asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46, /* Same as above */ + sizeof(asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46) + /sizeof(asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_tags_46[0]), /* 2 */ + { &asn_OER_type_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_constr_46, &asn_PER_type_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_specs_80 = { + asn_MAP_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_80 = { + "totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC", + "totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC", + &asn_OP_NativeEnumerated, + asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80, + sizeof(asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80) + /sizeof(asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80[0]) - 1, /* 1 */ + asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80, /* Same as above */ + sizeof(asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80) + /sizeof(asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_tags_80[0]), /* 2 */ + { &asn_OER_type_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_constr_80, &asn_PER_type_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_specs_80 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_RS_IM_ReceptionForFeedback_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_IM_ReceptionForFeedback, maxNumberNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberNZP_CSI_RS_PerCC_constr_2, &asn_PER_memb_maxNumberNZP_CSI_RS_PerCC_constr_2, memb_maxNumberNZP_CSI_RS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_IM_ReceptionForFeedback, maxNumberPortsAcrossNZP_CSI_RS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberPortsAcrossNZP-CSI-RS-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_IM_ReceptionForFeedback, maxNumberCS_IM_PerCC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberCS_IM_PerCC_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberCS-IM-PerCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_IM_ReceptionForFeedback, maxNumberSimultaneousCSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousCSI-RS-ActBWP-AllCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_IM_ReceptionForFeedback, totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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_CSI_RS_IM_ReceptionForFeedback_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CSI_RS_IM_ReceptionForFeedback_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_CSI_RS_IM_ReceptionForFeedback_specs_1 = { + sizeof(struct CSI_RS_IM_ReceptionForFeedback), + offsetof(struct CSI_RS_IM_ReceptionForFeedback, _asn_ctx), + asn_MAP_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_CSI_RS_IM_ReceptionForFeedback = { + "CSI-RS-IM-ReceptionForFeedback", + "CSI-RS-IM-ReceptionForFeedback", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1, + sizeof(asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1) + /sizeof(asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1) + /sizeof(asn_DEF_CSI_RS_IM_ReceptionForFeedback_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_IM_ReceptionForFeedback_1, + 5, /* Elements count */ + &asn_SPC_CSI_RS_IM_ReceptionForFeedback_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.h b/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.h new file mode 100644 index 000000000..59f2da360 --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-IM-ReceptionForFeedback.h @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_IM_ReceptionForFeedback_H_ +#define _CSI_RS_IM_ReceptionForFeedback_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC { + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p2 = 0, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p4 = 1, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p8 = 2, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p12 = 3, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p16 = 4, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p24 = 5, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p32 = 6, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p40 = 7, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p48 = 8, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p56 = 9, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p64 = 10, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p72 = 11, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p80 = 12, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p88 = 13, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p96 = 14, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p104 = 15, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p112 = 16, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p120 = 17, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p128 = 18, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p136 = 19, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p144 = 20, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p152 = 21, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p160 = 22, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p168 = 23, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p176 = 24, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p184 = 25, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p192 = 26, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p200 = 27, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p208 = 28, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p216 = 29, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p224 = 30, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p232 = 31, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p240 = 32, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p248 = 33, + CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC_p256 = 34 +} e_CSI_RS_IM_ReceptionForFeedback__maxNumberPortsAcrossNZP_CSI_RS_PerCC; +typedef enum CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC { + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n1 = 0, + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n2 = 1, + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n4 = 2, + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n8 = 3, + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n16 = 4, + CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC_n32 = 5 +} e_CSI_RS_IM_ReceptionForFeedback__maxNumberCS_IM_PerCC; +typedef enum CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC { + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n5 = 0, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n6 = 1, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n7 = 2, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n8 = 3, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n9 = 4, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n10 = 5, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n12 = 6, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n14 = 7, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n16 = 8, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n18 = 9, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n20 = 10, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n22 = 11, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n24 = 12, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n26 = 13, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n28 = 14, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n30 = 15, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n32 = 16, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n34 = 17, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n36 = 18, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n38 = 19, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n40 = 20, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n42 = 21, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n44 = 22, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n46 = 23, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n48 = 24, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n50 = 25, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n52 = 26, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n54 = 27, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n56 = 28, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n58 = 29, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n60 = 30, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n62 = 31, + CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC_n64 = 32 +} e_CSI_RS_IM_ReceptionForFeedback__maxNumberSimultaneousCSI_RS_ActBWP_AllCC; +typedef enum CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC { + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p8 = 0, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p12 = 1, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p16 = 2, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p24 = 3, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p32 = 4, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p40 = 5, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p48 = 6, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p56 = 7, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p64 = 8, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p72 = 9, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p80 = 10, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p88 = 11, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p96 = 12, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p104 = 13, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p112 = 14, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p120 = 15, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p128 = 16, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p136 = 17, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p144 = 18, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p152 = 19, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p160 = 20, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p168 = 21, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p176 = 22, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p184 = 23, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p192 = 24, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p200 = 25, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p208 = 26, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p216 = 27, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p224 = 28, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p232 = 29, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p240 = 30, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p248 = 31, + CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_p256 = 32 +} e_CSI_RS_IM_ReceptionForFeedback__totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC; + +/* CSI-RS-IM-ReceptionForFeedback */ +typedef struct CSI_RS_IM_ReceptionForFeedback { + 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; +} CSI_RS_IM_ReceptionForFeedback_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberPortsAcrossNZP_CSI_RS_PerCC_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberCS_IM_PerCC_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberSimultaneousCSI_RS_ActBWP_AllCC_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_totalNumberPortsSimultaneousCSI_RS_ActBWP_AllCC_80; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_IM_ReceptionForFeedback; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_IM_ReceptionForFeedback_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_IM_ReceptionForFeedback_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_IM_ReceptionForFeedback_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-Index.c b/src/codec_utils/RRC/CSI-RS-Index.c new file mode 100644 index 000000000..3febf086e --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-Index.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-Index.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_RS_Index_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..95) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index = { + "CSI-RS-Index", + "CSI-RS-Index", + &asn_OP_NativeInteger, + asn_DEF_CSI_RS_Index_tags_1, + sizeof(asn_DEF_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_Index_tags_1) + /sizeof(asn_DEF_CSI_RS_Index_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_RS_Index_constr_1, &asn_PER_type_CSI_RS_Index_constr_1, CSI_RS_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-Index.h b/src/codec_utils/RRC/CSI-RS-Index.h new file mode 100644 index 000000000..614da8450 --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-Index.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_Index_H_ +#define _CSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-RS-Index */ +typedef long CSI_RS_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_RS_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_Index; +asn_struct_free_f CSI_RS_Index_free; +asn_struct_print_f CSI_RS_Index_print; +asn_constr_check_f CSI_RS_Index_constraint; +ber_type_decoder_f CSI_RS_Index_decode_ber; +der_type_encoder_f CSI_RS_Index_encode_der; +xer_type_decoder_f CSI_RS_Index_decode_xer; +xer_type_encoder_f CSI_RS_Index_encode_xer; +oer_type_decoder_f CSI_RS_Index_decode_oer; +oer_type_encoder_f CSI_RS_Index_encode_oer; +per_type_decoder_f CSI_RS_Index_decode_uper; +per_type_encoder_f CSI_RS_Index_encode_uper; +per_type_decoder_f CSI_RS_Index_decode_aper; +per_type_encoder_f CSI_RS_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_Index_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-Resource-Mobility.c b/src/codec_utils/RRC/CSI-RS-Resource-Mobility.c new file mode 100644 index 000000000..6a7ee81ff --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-Resource-Mobility.c @@ -0,0 +1,608 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-Resource-Mobility.h" + +static int +memb_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_ms4_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms5_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms10_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms20_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms40_constr_8 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_slotConfig_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_row1_constr_13 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_row2_constr_14 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_frequencyDomainAllocation_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_15 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sequenceGenerationConfig_constr_16 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_slotConfig_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__slotConfig, choice.ms4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms4_constr_4, &asn_PER_memb_ms4_constr_4, memb_ms4_constraint_3 }, + 0, 0, /* No default value */ + "ms4" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__slotConfig, choice.ms5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms5_constr_5, &asn_PER_memb_ms5_constr_5, memb_ms5_constraint_3 }, + 0, 0, /* No default value */ + "ms5" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__slotConfig, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms10_constr_6, &asn_PER_memb_ms10_constr_6, memb_ms10_constraint_3 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__slotConfig, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms20_constr_7, &asn_PER_memb_ms20_constr_7, memb_ms20_constraint_3 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__slotConfig, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms40_constr_8, &asn_PER_memb_ms40_constr_8, memb_ms40_constraint_3 }, + 0, 0, /* No default value */ + "ms40" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_slotConfig_specs_3 = { + sizeof(struct CSI_RS_Resource_Mobility__slotConfig), + offsetof(struct CSI_RS_Resource_Mobility__slotConfig, _asn_ctx), + offsetof(struct CSI_RS_Resource_Mobility__slotConfig, present), + sizeof(((struct CSI_RS_Resource_Mobility__slotConfig *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_slotConfig_constr_3, &asn_PER_type_slotConfig_constr_3, CHOICE_constraint }, + asn_MBR_slotConfig_3, + 5, /* Elements count */ + &asn_SPC_slotConfig_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_associatedSSB_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__associatedSSB, ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_associatedSSB_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_associatedSSB_specs_9 = { + sizeof(struct CSI_RS_Resource_Mobility__associatedSSB), + offsetof(struct CSI_RS_Resource_Mobility__associatedSSB, _asn_ctx), + asn_MAP_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_associatedSSB_9 = { + "associatedSSB", + "associatedSSB", + &asn_OP_SEQUENCE, + asn_DEF_associatedSSB_tags_9, + sizeof(asn_DEF_associatedSSB_tags_9) + /sizeof(asn_DEF_associatedSSB_tags_9[0]) - 1, /* 1 */ + asn_DEF_associatedSSB_tags_9, /* Same as above */ + sizeof(asn_DEF_associatedSSB_tags_9) + /sizeof(asn_DEF_associatedSSB_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_associatedSSB_9, + 2, /* Elements count */ + &asn_SPC_associatedSSB_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_frequencyDomainAllocation_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__frequencyDomainAllocation, choice.row1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_row1_constr_13, &asn_PER_memb_row1_constr_13, memb_row1_constraint_12 }, + 0, 0, /* No default value */ + "row1" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility__frequencyDomainAllocation, choice.row2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_row2_constr_14, &asn_PER_memb_row2_constr_14, memb_row2_constraint_12 }, + 0, 0, /* No default value */ + "row2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_frequencyDomainAllocation_specs_12 = { + sizeof(struct CSI_RS_Resource_Mobility__frequencyDomainAllocation), + offsetof(struct CSI_RS_Resource_Mobility__frequencyDomainAllocation, _asn_ctx), + offsetof(struct CSI_RS_Resource_Mobility__frequencyDomainAllocation, present), + sizeof(((struct CSI_RS_Resource_Mobility__frequencyDomainAllocation *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_frequencyDomainAllocation_constr_12, &asn_PER_type_frequencyDomainAllocation_constr_12, CHOICE_constraint }, + asn_MBR_frequencyDomainAllocation_12, + 2, /* Elements count */ + &asn_SPC_frequencyDomainAllocation_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_RS_Resource_Mobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility, csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility, slotConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_slotConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotConfig" + }, + { ATF_POINTER, 1, offsetof(struct CSI_RS_Resource_Mobility, associatedSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_associatedSSB_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedSSB" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_frequencyDomainAllocation_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility, firstOFDMSymbolInTimeDomain), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_15, &asn_PER_memb_firstOFDMSymbolInTimeDomain_constr_15, memb_firstOFDMSymbolInTimeDomain_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_Resource_Mobility, sequenceGenerationConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sequenceGenerationConfig_constr_16, &asn_PER_memb_sequenceGenerationConfig_constr_16, memb_sequenceGenerationConfig_constraint_1 }, + 0, 0, /* No default value */ + "sequenceGenerationConfig" + }, +}; +static const int asn_MAP_CSI_RS_Resource_Mobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CSI_RS_Resource_Mobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_RS_Resource_Mobility_specs_1 = { + sizeof(struct CSI_RS_Resource_Mobility), + offsetof(struct CSI_RS_Resource_Mobility, _asn_ctx), + asn_MAP_CSI_RS_Resource_Mobility_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_CSI_RS_Resource_Mobility_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_Resource_Mobility = { + "CSI-RS-Resource-Mobility", + "CSI-RS-Resource-Mobility", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_Resource_Mobility_tags_1, + sizeof(asn_DEF_CSI_RS_Resource_Mobility_tags_1) + /sizeof(asn_DEF_CSI_RS_Resource_Mobility_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_Resource_Mobility_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_Resource_Mobility_tags_1) + /sizeof(asn_DEF_CSI_RS_Resource_Mobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_Resource_Mobility_1, + 6, /* Elements count */ + &asn_SPC_CSI_RS_Resource_Mobility_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-Resource-Mobility.h b/src/codec_utils/RRC/CSI-RS-Resource-Mobility.h new file mode 100644 index 000000000..777e24ee4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_Resource_Mobility_H_ +#define _CSI_RS_Resource_Mobility_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-RS-Index.h" +#include +#include +#include "SSB-Index.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_RS_Resource_Mobility__slotConfig_PR { + CSI_RS_Resource_Mobility__slotConfig_PR_NOTHING, /* No components present */ + CSI_RS_Resource_Mobility__slotConfig_PR_ms4, + CSI_RS_Resource_Mobility__slotConfig_PR_ms5, + CSI_RS_Resource_Mobility__slotConfig_PR_ms10, + CSI_RS_Resource_Mobility__slotConfig_PR_ms20, + CSI_RS_Resource_Mobility__slotConfig_PR_ms40 +} CSI_RS_Resource_Mobility__slotConfig_PR; +typedef enum CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR { + CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_NOTHING, /* No components present */ + CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_row1, + CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR_row2 +} CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR; + +/* CSI-RS-Resource-Mobility */ +typedef struct CSI_RS_Resource_Mobility { + CSI_RS_Index_t csi_RS_Index; + struct CSI_RS_Resource_Mobility__slotConfig { + CSI_RS_Resource_Mobility__slotConfig_PR present; + union CSI_RS_Resource_Mobility__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 CSI_RS_Resource_Mobility__associatedSSB { + SSB_Index_t ssb_Index; + BOOLEAN_t isQuasiColocated; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *associatedSSB; + struct CSI_RS_Resource_Mobility__frequencyDomainAllocation { + CSI_RS_Resource_Mobility__frequencyDomainAllocation_PR present; + union CSI_RS_Resource_Mobility__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; +} CSI_RS_Resource_Mobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_Resource_Mobility; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_Resource_Mobility_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_Resource_Mobility_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_Resource_Mobility_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.c b/src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.c new file mode 100644 index 000000000..dd0c8f3b8 --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.c @@ -0,0 +1,197 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-ResourceConfigMobility.h" + +#include "CSI-RS-CellMobility.h" +static int +memb_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_oer_constraints_t asn_OER_type_csi_RS_CellList_Mobility_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_RS_CellList_Mobility_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..96)) */}; +static asn_per_constraints_t asn_PER_memb_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_csi_RS_CellList_Mobility_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_RS_CellMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_RS_CellList_Mobility_specs_3 = { + sizeof(struct CSI_RS_ResourceConfigMobility__csi_RS_CellList_Mobility), + offsetof(struct 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_csi_RS_CellList_Mobility_3 = { + "csi-RS-CellList-Mobility", + "csi-RS-CellList-Mobility", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_RS_CellList_Mobility_tags_3, + sizeof(asn_DEF_csi_RS_CellList_Mobility_tags_3) + /sizeof(asn_DEF_csi_RS_CellList_Mobility_tags_3[0]) - 1, /* 1 */ + asn_DEF_csi_RS_CellList_Mobility_tags_3, /* Same as above */ + sizeof(asn_DEF_csi_RS_CellList_Mobility_tags_3) + /sizeof(asn_DEF_csi_RS_CellList_Mobility_tags_3[0]), /* 2 */ + { &asn_OER_type_csi_RS_CellList_Mobility_constr_3, &asn_PER_type_csi_RS_CellList_Mobility_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_csi_RS_CellList_Mobility_3, + 1, /* Single element */ + &asn_SPC_csi_RS_CellList_Mobility_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct CSI_RS_ResourceConfigMobility__ext1, refServCellIndex_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refServCellIndex-v1530" + }, +}; +static const int asn_MAP_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* refServCellIndex-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_6 = { + sizeof(struct CSI_RS_ResourceConfigMobility__ext1), + offsetof(struct CSI_RS_ResourceConfigMobility__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_6, + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_6, + 1, /* Elements count */ + &asn_SPC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_RS_ResourceConfigMobility_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceConfigMobility, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceConfigMobility, csi_RS_CellList_Mobility), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_RS_CellList_Mobility_3, + 0, + { &asn_OER_memb_csi_RS_CellList_Mobility_constr_3, &asn_PER_memb_csi_RS_CellList_Mobility_constr_3, memb_csi_RS_CellList_Mobility_constraint_1 }, + 0, 0, /* No default value */ + "csi-RS-CellList-Mobility" + }, + { ATF_POINTER, 1, offsetof(struct CSI_RS_ResourceConfigMobility, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_CSI_RS_ResourceConfigMobility_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CSI_RS_ResourceConfigMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_RS_ResourceConfigMobility_specs_1 = { + sizeof(struct CSI_RS_ResourceConfigMobility), + offsetof(struct CSI_RS_ResourceConfigMobility, _asn_ctx), + asn_MAP_CSI_RS_ResourceConfigMobility_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CSI_RS_ResourceConfigMobility_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_ResourceConfigMobility = { + "CSI-RS-ResourceConfigMobility", + "CSI-RS-ResourceConfigMobility", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_ResourceConfigMobility_tags_1, + sizeof(asn_DEF_CSI_RS_ResourceConfigMobility_tags_1) + /sizeof(asn_DEF_CSI_RS_ResourceConfigMobility_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_ResourceConfigMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_ResourceConfigMobility_tags_1) + /sizeof(asn_DEF_CSI_RS_ResourceConfigMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_ResourceConfigMobility_1, + 3, /* Elements count */ + &asn_SPC_CSI_RS_ResourceConfigMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.h b/src/codec_utils/RRC/CSI-RS-ResourceConfigMobility.h new file mode 100644 index 000000000..8ee80bef1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_ResourceConfigMobility_H_ +#define _CSI_RS_ResourceConfigMobility_H_ + + +#include + +/* Including external dependencies */ +#include "SubcarrierSpacing.h" +#include +#include +#include "ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CSI_RS_CellMobility; + +/* CSI-RS-ResourceConfigMobility */ +typedef struct CSI_RS_ResourceConfigMobility { + SubcarrierSpacing_t subcarrierSpacing; + struct CSI_RS_ResourceConfigMobility__csi_RS_CellList_Mobility { + A_SEQUENCE_OF(struct 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 CSI_RS_ResourceConfigMobility__ext1 { + 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; +} CSI_RS_ResourceConfigMobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_ResourceConfigMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_ResourceConfigMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_ResourceConfigMobility_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_ResourceConfigMobility_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-RS-ResourceMapping.c b/src/codec_utils/RRC/CSI-RS-ResourceMapping.c new file mode 100644 index 000000000..55903643f --- /dev/null +++ b/src/codec_utils/RRC/CSI-RS-ResourceMapping.c @@ -0,0 +1,651 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-RS-ResourceMapping.h" + +static int +memb_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_row1_constr_3 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_row2_constr_4 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_row4_constr_5 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_other_constr_6 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_frequencyDomainAllocation_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofPorts_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cdm_Type_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dot5_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_density_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_16 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_firstOFDMSymbolInTimeDomain2_constr_17 CC_NOTUSED = { + { 1, 1 } /* (2..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_frequencyDomainAllocation_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_row1_constr_3, &asn_PER_memb_row1_constr_3, memb_row1_constraint_2 }, + 0, 0, /* No default value */ + "row1" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_row2_constr_4, &asn_PER_memb_row2_constr_4, memb_row2_constraint_2 }, + 0, 0, /* No default value */ + "row2" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.row4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_row4_constr_5, &asn_PER_memb_row4_constr_5, memb_row4_constraint_2 }, + 0, 0, /* No default value */ + "row4" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, choice.other), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_other_constr_6, &asn_PER_memb_other_constr_6, memb_other_constraint_2 }, + 0, 0, /* No default value */ + "other" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_frequencyDomainAllocation_specs_2 = { + sizeof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation), + offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, _asn_ctx), + offsetof(struct CSI_RS_ResourceMapping__frequencyDomainAllocation, present), + sizeof(((struct CSI_RS_ResourceMapping__frequencyDomainAllocation *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_frequencyDomainAllocation_constr_2, &asn_PER_type_frequencyDomainAllocation_constr_2, CHOICE_constraint }, + asn_MBR_frequencyDomainAllocation_2, + 4, /* Elements count */ + &asn_SPC_frequencyDomainAllocation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_nrofPorts_specs_7 = { + asn_MAP_nrofPorts_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofPorts_7 = { + "nrofPorts", + "nrofPorts", + &asn_OP_NativeEnumerated, + asn_DEF_nrofPorts_tags_7, + sizeof(asn_DEF_nrofPorts_tags_7) + /sizeof(asn_DEF_nrofPorts_tags_7[0]) - 1, /* 1 */ + asn_DEF_nrofPorts_tags_7, /* Same as above */ + sizeof(asn_DEF_nrofPorts_tags_7) + /sizeof(asn_DEF_nrofPorts_tags_7[0]), /* 2 */ + { &asn_OER_type_nrofPorts_constr_7, &asn_PER_type_nrofPorts_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofPorts_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_cdm_Type_specs_18 = { + asn_MAP_cdm_Type_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cdm_Type_18 = { + "cdm-Type", + "cdm-Type", + &asn_OP_NativeEnumerated, + asn_DEF_cdm_Type_tags_18, + sizeof(asn_DEF_cdm_Type_tags_18) + /sizeof(asn_DEF_cdm_Type_tags_18[0]) - 1, /* 1 */ + asn_DEF_cdm_Type_tags_18, /* Same as above */ + sizeof(asn_DEF_cdm_Type_tags_18) + /sizeof(asn_DEF_cdm_Type_tags_18[0]), /* 2 */ + { &asn_OER_type_cdm_Type_constr_18, &asn_PER_type_cdm_Type_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cdm_Type_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dot5_value2enum_24[] = { + { 0, 8, "evenPRBs" }, + { 1, 7, "oddPRBs" } +}; +static const unsigned int asn_MAP_dot5_enum2value_24[] = { + 0, /* evenPRBs(0) */ + 1 /* oddPRBs(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dot5_specs_24 = { + asn_MAP_dot5_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dot5_24 = { + "dot5", + "dot5", + &asn_OP_NativeEnumerated, + asn_DEF_dot5_tags_24, + sizeof(asn_DEF_dot5_tags_24) + /sizeof(asn_DEF_dot5_tags_24[0]) - 1, /* 1 */ + asn_DEF_dot5_tags_24, /* Same as above */ + sizeof(asn_DEF_dot5_tags_24) + /sizeof(asn_DEF_dot5_tags_24[0]), /* 2 */ + { &asn_OER_type_dot5_constr_24, &asn_PER_type_dot5_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dot5_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_density_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping__density, choice.dot5), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dot5_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dot5" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_density_specs_23 = { + sizeof(struct CSI_RS_ResourceMapping__density), + offsetof(struct CSI_RS_ResourceMapping__density, _asn_ctx), + offsetof(struct CSI_RS_ResourceMapping__density, present), + sizeof(((struct CSI_RS_ResourceMapping__density *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_density_constr_23, &asn_PER_type_density_constr_23, CHOICE_constraint }, + asn_MBR_density_23, + 4, /* Elements count */ + &asn_SPC_density_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_RS_ResourceMapping_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_frequencyDomainAllocation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, nrofPorts), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofPorts_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_firstOFDMSymbolInTimeDomain_constr_16, &asn_PER_memb_firstOFDMSymbolInTimeDomain_constr_16, memb_firstOFDMSymbolInTimeDomain_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain" + }, + { ATF_POINTER, 1, offsetof(struct CSI_RS_ResourceMapping, firstOFDMSymbolInTimeDomain2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_firstOFDMSymbolInTimeDomain2_constr_17, &asn_PER_memb_firstOFDMSymbolInTimeDomain2_constr_17, memb_firstOFDMSymbolInTimeDomain2_constraint_1 }, + 0, 0, /* No default value */ + "firstOFDMSymbolInTimeDomain2" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, cdm_Type), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cdm_Type_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cdm-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, density), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_density_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "density" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_RS_ResourceMapping, freqBand), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_FrequencyOccupation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBand" + }, +}; +static const int asn_MAP_CSI_RS_ResourceMapping_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_CSI_RS_ResourceMapping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_RS_ResourceMapping_specs_1 = { + sizeof(struct CSI_RS_ResourceMapping), + offsetof(struct CSI_RS_ResourceMapping, _asn_ctx), + asn_MAP_CSI_RS_ResourceMapping_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_CSI_RS_ResourceMapping_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_RS_ResourceMapping = { + "CSI-RS-ResourceMapping", + "CSI-RS-ResourceMapping", + &asn_OP_SEQUENCE, + asn_DEF_CSI_RS_ResourceMapping_tags_1, + sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1) + /sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */ + asn_DEF_CSI_RS_ResourceMapping_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1) + /sizeof(asn_DEF_CSI_RS_ResourceMapping_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_RS_ResourceMapping_1, + 7, /* Elements count */ + &asn_SPC_CSI_RS_ResourceMapping_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-RS-ResourceMapping.h b/src/codec_utils/RRC/CSI-RS-ResourceMapping.h new file mode 100644 index 000000000..8b937fbc4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_RS_ResourceMapping_H_ +#define _CSI_RS_ResourceMapping_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "CSI-FrequencyOccupation.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_RS_ResourceMapping__frequencyDomainAllocation_PR { + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_NOTHING, /* No components present */ + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row1, + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row2, + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_row4, + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR_other +} CSI_RS_ResourceMapping__frequencyDomainAllocation_PR; +typedef enum CSI_RS_ResourceMapping__nrofPorts { + CSI_RS_ResourceMapping__nrofPorts_p1 = 0, + CSI_RS_ResourceMapping__nrofPorts_p2 = 1, + CSI_RS_ResourceMapping__nrofPorts_p4 = 2, + CSI_RS_ResourceMapping__nrofPorts_p8 = 3, + CSI_RS_ResourceMapping__nrofPorts_p12 = 4, + CSI_RS_ResourceMapping__nrofPorts_p16 = 5, + CSI_RS_ResourceMapping__nrofPorts_p24 = 6, + CSI_RS_ResourceMapping__nrofPorts_p32 = 7 +} e_CSI_RS_ResourceMapping__nrofPorts; +typedef enum CSI_RS_ResourceMapping__cdm_Type { + CSI_RS_ResourceMapping__cdm_Type_noCDM = 0, + CSI_RS_ResourceMapping__cdm_Type_fd_CDM2 = 1, + CSI_RS_ResourceMapping__cdm_Type_cdm4_FD2_TD2 = 2, + CSI_RS_ResourceMapping__cdm_Type_cdm8_FD2_TD4 = 3 +} e_CSI_RS_ResourceMapping__cdm_Type; +typedef enum CSI_RS_ResourceMapping__density_PR { + CSI_RS_ResourceMapping__density_PR_NOTHING, /* No components present */ + CSI_RS_ResourceMapping__density_PR_dot5, + CSI_RS_ResourceMapping__density_PR_one, + CSI_RS_ResourceMapping__density_PR_three, + CSI_RS_ResourceMapping__density_PR_spare +} CSI_RS_ResourceMapping__density_PR; +typedef enum CSI_RS_ResourceMapping__density__dot5 { + CSI_RS_ResourceMapping__density__dot5_evenPRBs = 0, + CSI_RS_ResourceMapping__density__dot5_oddPRBs = 1 +} e_CSI_RS_ResourceMapping__density__dot5; + +/* CSI-RS-ResourceMapping */ +typedef struct CSI_RS_ResourceMapping { + struct CSI_RS_ResourceMapping__frequencyDomainAllocation { + CSI_RS_ResourceMapping__frequencyDomainAllocation_PR present; + union CSI_RS_ResourceMapping__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 CSI_RS_ResourceMapping__density { + CSI_RS_ResourceMapping__density_PR present; + union CSI_RS_ResourceMapping__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; + CSI_FrequencyOccupation_t freqBand; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_RS_ResourceMapping_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofPorts_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cdm_Type_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dot5_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_RS_ResourceMapping; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_RS_ResourceMapping_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_RS_ResourceMapping_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_RS_ResourceMapping_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ReportConfig.c b/src/codec_utils/RRC/CSI-ReportConfig.c new file mode 100644 index 000000000..29f741aa9 --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportConfig.c @@ -0,0 +1,2811 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ReportConfig.h" + +#include "CodebookConfig.h" +#include "PUCCH-CSI-Resource.h" +#include "PortIndexFor8Ranks.h" +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_pucch_CSI_ResourceList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_pucch_CSI_ResourceList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_pucch_CSI_ResourceList_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_pucch_CSI_ResourceList_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_reportSlotConfig_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_26 CC_NOTUSED = { + { 1, 1 } /* (0..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_reportSlotOffsetList_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_reportSlotOffsetList_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_Member_constr_30 CC_NOTUSED = { + { 1, 1 } /* (0..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_reportSlotOffsetList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_reportSlotOffsetList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_reportConfigType_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_BundleSizeForCSI_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportQuantity_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cqi_FormatIndicator_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pmi_FormatIndicator_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_subbands3_constr_51 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands4_constr_52 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands5_constr_53 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands6_constr_54 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands7_constr_55 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands8_constr_56 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands9_constr_57 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands10_constr_58 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands11_constr_59 CC_NOTUSED = { + { 0, 0 }, + 11 /* (SIZE(11..11)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands12_constr_60 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands13_constr_61 CC_NOTUSED = { + { 0, 0 }, + 13 /* (SIZE(13..13)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands14_constr_62 CC_NOTUSED = { + { 0, 0 }, + 14 /* (SIZE(14..14)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands15_constr_63 CC_NOTUSED = { + { 0, 0 }, + 15 /* (SIZE(15..15)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands16_constr_64 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands17_constr_65 CC_NOTUSED = { + { 0, 0 }, + 17 /* (SIZE(17..17)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands18_constr_66 CC_NOTUSED = { + { 0, 0 }, + 18 /* (SIZE(18..18)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_subbands19_v1530_constr_68 CC_NOTUSED = { + { 0, 0 }, + 19 /* (SIZE(19..19)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_csi_ReportingBand_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_timeRestrictionForChannelMeasurements_constr_69 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_timeRestrictionForInterferenceMeasurements_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy_constr_76 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofReportedRS_constr_82 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_groupBasedBeamReporting_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cqi_Table_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_subbandSize_constr_92 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_non_PMI_PortIndication_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportSlotConfig_v1530_constr_100 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_non_PMI_PortIndication_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_pucch_CSI_ResourceList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_CSI_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_pucch_CSI_ResourceList_specs_10 = { + sizeof(struct CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList), + offsetof(struct 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_pucch_CSI_ResourceList_10 = { + "pucch-CSI-ResourceList", + "pucch-CSI-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_pucch_CSI_ResourceList_tags_10, + sizeof(asn_DEF_pucch_CSI_ResourceList_tags_10) + /sizeof(asn_DEF_pucch_CSI_ResourceList_tags_10[0]) - 1, /* 1 */ + asn_DEF_pucch_CSI_ResourceList_tags_10, /* Same as above */ + sizeof(asn_DEF_pucch_CSI_ResourceList_tags_10) + /sizeof(asn_DEF_pucch_CSI_ResourceList_tags_10[0]), /* 2 */ + { &asn_OER_type_pucch_CSI_ResourceList_constr_10, &asn_PER_type_pucch_CSI_ResourceList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_pucch_CSI_ResourceList_10, + 1, /* Single element */ + &asn_SPC_pucch_CSI_ResourceList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_periodic_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__periodic, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CSI_ReportPeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__periodic, pucch_CSI_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_pucch_CSI_ResourceList_10, + 0, + { &asn_OER_memb_pucch_CSI_ResourceList_constr_10, &asn_PER_memb_pucch_CSI_ResourceList_constr_10, memb_pucch_CSI_ResourceList_constraint_8 }, + 0, 0, /* No default value */ + "pucch-CSI-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_periodic_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_periodic_specs_8 = { + sizeof(struct CSI_ReportConfig__reportConfigType__periodic), + offsetof(struct CSI_ReportConfig__reportConfigType__periodic, _asn_ctx), + asn_MAP_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_periodic_8 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_periodic_tags_8, + sizeof(asn_DEF_periodic_tags_8) + /sizeof(asn_DEF_periodic_tags_8[0]) - 1, /* 1 */ + asn_DEF_periodic_tags_8, /* Same as above */ + sizeof(asn_DEF_periodic_tags_8) + /sizeof(asn_DEF_periodic_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_periodic_8, + 2, /* Elements count */ + &asn_SPC_periodic_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pucch_CSI_ResourceList_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_CSI_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_pucch_CSI_ResourceList_specs_14 = { + sizeof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList), + offsetof(struct 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_pucch_CSI_ResourceList_14 = { + "pucch-CSI-ResourceList", + "pucch-CSI-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_pucch_CSI_ResourceList_tags_14, + sizeof(asn_DEF_pucch_CSI_ResourceList_tags_14) + /sizeof(asn_DEF_pucch_CSI_ResourceList_tags_14[0]) - 1, /* 1 */ + asn_DEF_pucch_CSI_ResourceList_tags_14, /* Same as above */ + sizeof(asn_DEF_pucch_CSI_ResourceList_tags_14) + /sizeof(asn_DEF_pucch_CSI_ResourceList_tags_14[0]), /* 2 */ + { &asn_OER_type_pucch_CSI_ResourceList_constr_14, &asn_PER_type_pucch_CSI_ResourceList_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_pucch_CSI_ResourceList_14, + 1, /* Single element */ + &asn_SPC_pucch_CSI_ResourceList_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semiPersistentOnPUCCH_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CSI_ReportPeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, pucch_CSI_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_pucch_CSI_ResourceList_14, + 0, + { &asn_OER_memb_pucch_CSI_ResourceList_constr_14, &asn_PER_memb_pucch_CSI_ResourceList_constr_14, memb_pucch_CSI_ResourceList_constraint_12 }, + 0, 0, /* No default value */ + "pucch-CSI-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_semiPersistentOnPUCCH_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_semiPersistentOnPUCCH_specs_12 = { + sizeof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH), + offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, _asn_ctx), + asn_MAP_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_semiPersistentOnPUCCH_12 = { + "semiPersistentOnPUCCH", + "semiPersistentOnPUCCH", + &asn_OP_SEQUENCE, + asn_DEF_semiPersistentOnPUCCH_tags_12, + sizeof(asn_DEF_semiPersistentOnPUCCH_tags_12) + /sizeof(asn_DEF_semiPersistentOnPUCCH_tags_12[0]) - 1, /* 1 */ + asn_DEF_semiPersistentOnPUCCH_tags_12, /* Same as above */ + sizeof(asn_DEF_semiPersistentOnPUCCH_tags_12) + /sizeof(asn_DEF_semiPersistentOnPUCCH_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_semiPersistentOnPUCCH_12, + 2, /* Elements count */ + &asn_SPC_semiPersistentOnPUCCH_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_reportSlotConfig_specs_17 = { + asn_MAP_reportSlotConfig_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportSlotConfig_17 = { + "reportSlotConfig", + "reportSlotConfig", + &asn_OP_NativeEnumerated, + asn_DEF_reportSlotConfig_tags_17, + sizeof(asn_DEF_reportSlotConfig_tags_17) + /sizeof(asn_DEF_reportSlotConfig_tags_17[0]) - 1, /* 1 */ + asn_DEF_reportSlotConfig_tags_17, /* Same as above */ + sizeof(asn_DEF_reportSlotConfig_tags_17) + /sizeof(asn_DEF_reportSlotConfig_tags_17[0]), /* 2 */ + { &asn_OER_type_reportSlotConfig_constr_17, &asn_PER_type_reportSlotConfig_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportSlotConfig_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reportSlotOffsetList_25[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_26, &asn_PER_memb_Member_constr_26, memb_NativeInteger_constraint_25 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_reportSlotOffsetList_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_reportSlotOffsetList_specs_25 = { + sizeof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList), + offsetof(struct 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_reportSlotOffsetList_25 = { + "reportSlotOffsetList", + "reportSlotOffsetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_reportSlotOffsetList_tags_25, + sizeof(asn_DEF_reportSlotOffsetList_tags_25) + /sizeof(asn_DEF_reportSlotOffsetList_tags_25[0]) - 1, /* 1 */ + asn_DEF_reportSlotOffsetList_tags_25, /* Same as above */ + sizeof(asn_DEF_reportSlotOffsetList_tags_25) + /sizeof(asn_DEF_reportSlotOffsetList_tags_25[0]), /* 2 */ + { &asn_OER_type_reportSlotOffsetList_constr_25, &asn_PER_type_reportSlotOffsetList_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_reportSlotOffsetList_25, + 1, /* Single element */ + &asn_SPC_reportSlotOffsetList_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semiPersistentOnPUSCH_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportSlotConfig_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotOffsetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_reportSlotOffsetList_25, + 0, + { &asn_OER_memb_reportSlotOffsetList_constr_25, &asn_PER_memb_reportSlotOffsetList_constr_25, memb_reportSlotOffsetList_constraint_16 }, + 0, 0, /* No default value */ + "reportSlotOffsetList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, p0alpha), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0alpha" + }, +}; +static const ber_tlv_tag_t asn_DEF_semiPersistentOnPUSCH_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_semiPersistentOnPUSCH_specs_16 = { + sizeof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH), + offsetof(struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, _asn_ctx), + asn_MAP_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_semiPersistentOnPUSCH_16 = { + "semiPersistentOnPUSCH", + "semiPersistentOnPUSCH", + &asn_OP_SEQUENCE, + asn_DEF_semiPersistentOnPUSCH_tags_16, + sizeof(asn_DEF_semiPersistentOnPUSCH_tags_16) + /sizeof(asn_DEF_semiPersistentOnPUSCH_tags_16[0]) - 1, /* 1 */ + asn_DEF_semiPersistentOnPUSCH_tags_16, /* Same as above */ + sizeof(asn_DEF_semiPersistentOnPUSCH_tags_16) + /sizeof(asn_DEF_semiPersistentOnPUSCH_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_semiPersistentOnPUSCH_16, + 3, /* Elements count */ + &asn_SPC_semiPersistentOnPUSCH_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reportSlotOffsetList_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_30, &asn_PER_memb_Member_constr_30, memb_NativeInteger_constraint_29 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_reportSlotOffsetList_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_reportSlotOffsetList_specs_29 = { + sizeof(struct CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList), + offsetof(struct 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_reportSlotOffsetList_29 = { + "reportSlotOffsetList", + "reportSlotOffsetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_reportSlotOffsetList_tags_29, + sizeof(asn_DEF_reportSlotOffsetList_tags_29) + /sizeof(asn_DEF_reportSlotOffsetList_tags_29[0]) - 1, /* 1 */ + asn_DEF_reportSlotOffsetList_tags_29, /* Same as above */ + sizeof(asn_DEF_reportSlotOffsetList_tags_29) + /sizeof(asn_DEF_reportSlotOffsetList_tags_29[0]), /* 2 */ + { &asn_OER_type_reportSlotOffsetList_constr_29, &asn_PER_type_reportSlotOffsetList_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_reportSlotOffsetList_29, + 1, /* Single element */ + &asn_SPC_reportSlotOffsetList_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodic_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportConfigType__aperiodic, reportSlotOffsetList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_reportSlotOffsetList_29, + 0, + { &asn_OER_memb_reportSlotOffsetList_constr_29, &asn_PER_memb_reportSlotOffsetList_constr_29, memb_reportSlotOffsetList_constraint_28 }, + 0, 0, /* No default value */ + "reportSlotOffsetList" + }, +}; +static const ber_tlv_tag_t asn_DEF_aperiodic_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_aperiodic_tag2el_28[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotOffsetList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_aperiodic_specs_28 = { + sizeof(struct CSI_ReportConfig__reportConfigType__aperiodic), + offsetof(struct CSI_ReportConfig__reportConfigType__aperiodic, _asn_ctx), + asn_MAP_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_aperiodic_28 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_aperiodic_tags_28, + sizeof(asn_DEF_aperiodic_tags_28) + /sizeof(asn_DEF_aperiodic_tags_28[0]) - 1, /* 1 */ + asn_DEF_aperiodic_tags_28, /* Same as above */ + sizeof(asn_DEF_aperiodic_tags_28) + /sizeof(asn_DEF_aperiodic_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_aperiodic_28, + 1, /* Elements count */ + &asn_SPC_aperiodic_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reportConfigType_7[] = { + { ATF_POINTER, 0, offsetof(struct CSI_ReportConfig__reportConfigType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_periodic_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, + { ATF_POINTER, 0, offsetof(struct CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUCCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_semiPersistentOnPUCCH_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUCCH" + }, + { ATF_POINTER, 0, offsetof(struct CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_semiPersistentOnPUSCH_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH" + }, + { ATF_POINTER, 0, offsetof(struct CSI_ReportConfig__reportConfigType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_aperiodic_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reportConfigType_specs_7 = { + sizeof(struct CSI_ReportConfig__reportConfigType), + offsetof(struct CSI_ReportConfig__reportConfigType, _asn_ctx), + offsetof(struct CSI_ReportConfig__reportConfigType, present), + sizeof(((struct CSI_ReportConfig__reportConfigType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_reportConfigType_constr_7, &asn_PER_type_reportConfigType_constr_7, CHOICE_constraint }, + asn_MBR_reportConfigType_7, + 4, /* Elements count */ + &asn_SPC_reportConfigType_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_BundleSizeForCSI_value2enum_36[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_pdsch_BundleSizeForCSI_enum2value_36[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_BundleSizeForCSI_specs_36 = { + asn_MAP_pdsch_BundleSizeForCSI_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_BundleSizeForCSI_36 = { + "pdsch-BundleSizeForCSI", + "pdsch-BundleSizeForCSI", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_BundleSizeForCSI_tags_36, + sizeof(asn_DEF_pdsch_BundleSizeForCSI_tags_36) + /sizeof(asn_DEF_pdsch_BundleSizeForCSI_tags_36[0]) - 1, /* 1 */ + asn_DEF_pdsch_BundleSizeForCSI_tags_36, /* Same as above */ + sizeof(asn_DEF_pdsch_BundleSizeForCSI_tags_36) + /sizeof(asn_DEF_pdsch_BundleSizeForCSI_tags_36[0]), /* 2 */ + { &asn_OER_type_pdsch_BundleSizeForCSI_constr_36, &asn_PER_type_pdsch_BundleSizeForCSI_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_BundleSizeForCSI_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cri_RI_i1_CQI_35[] = { + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, pdsch_BundleSizeForCSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_BundleSizeForCSI_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-BundleSizeForCSI" + }, +}; +static const int asn_MAP_cri_RI_i1_CQI_oms_35[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_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_cri_RI_i1_CQI_tag2el_35[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-BundleSizeForCSI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cri_RI_i1_CQI_specs_35 = { + sizeof(struct CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI), + offsetof(struct CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, _asn_ctx), + asn_MAP_cri_RI_i1_CQI_tag2el_35, + 1, /* Count of tags in the map */ + asn_MAP_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_cri_RI_i1_CQI_35 = { + "cri-RI-i1-CQI", + "cri-RI-i1-CQI", + &asn_OP_SEQUENCE, + asn_DEF_cri_RI_i1_CQI_tags_35, + sizeof(asn_DEF_cri_RI_i1_CQI_tags_35) + /sizeof(asn_DEF_cri_RI_i1_CQI_tags_35[0]) - 1, /* 1 */ + asn_DEF_cri_RI_i1_CQI_tags_35, /* Same as above */ + sizeof(asn_DEF_cri_RI_i1_CQI_tags_35) + /sizeof(asn_DEF_cri_RI_i1_CQI_tags_35[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cri_RI_i1_CQI_35, + 1, /* Elements count */ + &asn_SPC_cri_RI_i1_CQI_specs_35 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reportQuantity_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 CSI_ReportConfig__reportQuantity, choice.cri_RI_i1_CQI), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_cri_RI_i1_CQI_35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cri-RI-i1-CQI" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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_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_reportQuantity_specs_31 = { + sizeof(struct CSI_ReportConfig__reportQuantity), + offsetof(struct CSI_ReportConfig__reportQuantity, _asn_ctx), + offsetof(struct CSI_ReportConfig__reportQuantity, present), + sizeof(((struct CSI_ReportConfig__reportQuantity *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_reportQuantity_constr_31, &asn_PER_type_reportQuantity_constr_31, CHOICE_constraint }, + asn_MBR_reportQuantity_31, + 8, /* Elements count */ + &asn_SPC_reportQuantity_specs_31 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cqi_FormatIndicator_value2enum_44[] = { + { 0, 11, "widebandCQI" }, + { 1, 10, "subbandCQI" } +}; +static const unsigned int asn_MAP_cqi_FormatIndicator_enum2value_44[] = { + 1, /* subbandCQI(1) */ + 0 /* widebandCQI(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cqi_FormatIndicator_specs_44 = { + asn_MAP_cqi_FormatIndicator_value2enum_44, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cqi_FormatIndicator_44 = { + "cqi-FormatIndicator", + "cqi-FormatIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_cqi_FormatIndicator_tags_44, + sizeof(asn_DEF_cqi_FormatIndicator_tags_44) + /sizeof(asn_DEF_cqi_FormatIndicator_tags_44[0]) - 1, /* 1 */ + asn_DEF_cqi_FormatIndicator_tags_44, /* Same as above */ + sizeof(asn_DEF_cqi_FormatIndicator_tags_44) + /sizeof(asn_DEF_cqi_FormatIndicator_tags_44[0]), /* 2 */ + { &asn_OER_type_cqi_FormatIndicator_constr_44, &asn_PER_type_cqi_FormatIndicator_constr_44, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cqi_FormatIndicator_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pmi_FormatIndicator_value2enum_47[] = { + { 0, 11, "widebandPMI" }, + { 1, 10, "subbandPMI" } +}; +static const unsigned int asn_MAP_pmi_FormatIndicator_enum2value_47[] = { + 1, /* subbandPMI(1) */ + 0 /* widebandPMI(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pmi_FormatIndicator_specs_47 = { + asn_MAP_pmi_FormatIndicator_value2enum_47, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pmi_FormatIndicator_47 = { + "pmi-FormatIndicator", + "pmi-FormatIndicator", + &asn_OP_NativeEnumerated, + asn_DEF_pmi_FormatIndicator_tags_47, + sizeof(asn_DEF_pmi_FormatIndicator_tags_47) + /sizeof(asn_DEF_pmi_FormatIndicator_tags_47[0]) - 1, /* 1 */ + asn_DEF_pmi_FormatIndicator_tags_47, /* Same as above */ + sizeof(asn_DEF_pmi_FormatIndicator_tags_47) + /sizeof(asn_DEF_pmi_FormatIndicator_tags_47[0]), /* 2 */ + { &asn_OER_type_pmi_FormatIndicator_constr_47, &asn_PER_type_pmi_FormatIndicator_constr_47, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pmi_FormatIndicator_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_ReportingBand_50[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands3_constr_51, &asn_PER_memb_subbands3_constr_51, memb_subbands3_constraint_50 }, + 0, 0, /* No default value */ + "subbands3" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands4_constr_52, &asn_PER_memb_subbands4_constr_52, memb_subbands4_constraint_50 }, + 0, 0, /* No default value */ + "subbands4" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands5), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands5_constr_53, &asn_PER_memb_subbands5_constr_53, memb_subbands5_constraint_50 }, + 0, 0, /* No default value */ + "subbands5" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands6), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands6_constr_54, &asn_PER_memb_subbands6_constr_54, memb_subbands6_constraint_50 }, + 0, 0, /* No default value */ + "subbands6" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands7), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands7_constr_55, &asn_PER_memb_subbands7_constr_55, memb_subbands7_constraint_50 }, + 0, 0, /* No default value */ + "subbands7" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands8), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands8_constr_56, &asn_PER_memb_subbands8_constr_56, memb_subbands8_constraint_50 }, + 0, 0, /* No default value */ + "subbands8" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands9), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands9_constr_57, &asn_PER_memb_subbands9_constr_57, memb_subbands9_constraint_50 }, + 0, 0, /* No default value */ + "subbands9" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands10), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands10_constr_58, &asn_PER_memb_subbands10_constr_58, memb_subbands10_constraint_50 }, + 0, 0, /* No default value */ + "subbands10" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands11), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands11_constr_59, &asn_PER_memb_subbands11_constr_59, memb_subbands11_constraint_50 }, + 0, 0, /* No default value */ + "subbands11" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands12), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands12_constr_60, &asn_PER_memb_subbands12_constr_60, memb_subbands12_constraint_50 }, + 0, 0, /* No default value */ + "subbands12" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands13), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands13_constr_61, &asn_PER_memb_subbands13_constr_61, memb_subbands13_constraint_50 }, + 0, 0, /* No default value */ + "subbands13" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands14), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands14_constr_62, &asn_PER_memb_subbands14_constr_62, memb_subbands14_constraint_50 }, + 0, 0, /* No default value */ + "subbands14" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands15), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands15_constr_63, &asn_PER_memb_subbands15_constr_63, memb_subbands15_constraint_50 }, + 0, 0, /* No default value */ + "subbands15" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands16), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands16_constr_64, &asn_PER_memb_subbands16_constr_64, memb_subbands16_constraint_50 }, + 0, 0, /* No default value */ + "subbands16" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands17), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands17_constr_65, &asn_PER_memb_subbands17_constr_65, memb_subbands17_constraint_50 }, + 0, 0, /* No default value */ + "subbands17" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands18), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_subbands18_constr_66, &asn_PER_memb_subbands18_constr_66, memb_subbands18_constraint_50 }, + 0, 0, /* No default value */ + "subbands18" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_subbands19_v1530_constr_68, &asn_PER_memb_subbands19_v1530_constr_68, memb_subbands19_v1530_constraint_50 }, + 0, 0, /* No default value */ + "subbands19-v1530" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_csi_ReportingBand_specs_50 = { + sizeof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand), + offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, _asn_ctx), + offsetof(struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, present), + sizeof(((struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_csi_ReportingBand_constr_50, &asn_PER_type_csi_ReportingBand_constr_50, CHOICE_constraint }, + asn_MBR_csi_ReportingBand_50, + 17, /* Elements count */ + &asn_SPC_csi_ReportingBand_specs_50 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reportFreqConfiguration_43[] = { + { ATF_POINTER, 3, offsetof(struct CSI_ReportConfig__reportFreqConfiguration, cqi_FormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cqi_FormatIndicator_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cqi-FormatIndicator" + }, + { ATF_POINTER, 2, offsetof(struct CSI_ReportConfig__reportFreqConfiguration, pmi_FormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pmi_FormatIndicator_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pmi-FormatIndicator" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig__reportFreqConfiguration, csi_ReportingBand), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_csi_ReportingBand_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportingBand" + }, +}; +static const int asn_MAP_reportFreqConfiguration_oms_43[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_reportFreqConfiguration_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reportFreqConfiguration_specs_43 = { + sizeof(struct CSI_ReportConfig__reportFreqConfiguration), + offsetof(struct CSI_ReportConfig__reportFreqConfiguration, _asn_ctx), + asn_MAP_reportFreqConfiguration_tag2el_43, + 3, /* Count of tags in the map */ + asn_MAP_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_reportFreqConfiguration_43 = { + "reportFreqConfiguration", + "reportFreqConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_reportFreqConfiguration_tags_43, + sizeof(asn_DEF_reportFreqConfiguration_tags_43) + /sizeof(asn_DEF_reportFreqConfiguration_tags_43[0]) - 1, /* 1 */ + asn_DEF_reportFreqConfiguration_tags_43, /* Same as above */ + sizeof(asn_DEF_reportFreqConfiguration_tags_43) + /sizeof(asn_DEF_reportFreqConfiguration_tags_43[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reportFreqConfiguration_43, + 3, /* Elements count */ + &asn_SPC_reportFreqConfiguration_specs_43 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_timeRestrictionForChannelMeasurements_value2enum_69[] = { + { 0, 10, "configured" }, + { 1, 13, "notConfigured" } +}; +static const unsigned int asn_MAP_timeRestrictionForChannelMeasurements_enum2value_69[] = { + 0, /* configured(0) */ + 1 /* notConfigured(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_timeRestrictionForChannelMeasurements_specs_69 = { + asn_MAP_timeRestrictionForChannelMeasurements_value2enum_69, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_timeRestrictionForChannelMeasurements_69 = { + "timeRestrictionForChannelMeasurements", + "timeRestrictionForChannelMeasurements", + &asn_OP_NativeEnumerated, + asn_DEF_timeRestrictionForChannelMeasurements_tags_69, + sizeof(asn_DEF_timeRestrictionForChannelMeasurements_tags_69) + /sizeof(asn_DEF_timeRestrictionForChannelMeasurements_tags_69[0]) - 1, /* 1 */ + asn_DEF_timeRestrictionForChannelMeasurements_tags_69, /* Same as above */ + sizeof(asn_DEF_timeRestrictionForChannelMeasurements_tags_69) + /sizeof(asn_DEF_timeRestrictionForChannelMeasurements_tags_69[0]), /* 2 */ + { &asn_OER_type_timeRestrictionForChannelMeasurements_constr_69, &asn_PER_type_timeRestrictionForChannelMeasurements_constr_69, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_timeRestrictionForChannelMeasurements_specs_69 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_timeRestrictionForInterferenceMeasurements_value2enum_72[] = { + { 0, 10, "configured" }, + { 1, 13, "notConfigured" } +}; +static const unsigned int asn_MAP_timeRestrictionForInterferenceMeasurements_enum2value_72[] = { + 0, /* configured(0) */ + 1 /* notConfigured(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_timeRestrictionForInterferenceMeasurements_specs_72 = { + asn_MAP_timeRestrictionForInterferenceMeasurements_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_timeRestrictionForInterferenceMeasurements_72 = { + "timeRestrictionForInterferenceMeasurements", + "timeRestrictionForInterferenceMeasurements", + &asn_OP_NativeEnumerated, + asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72, + sizeof(asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72) + /sizeof(asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72[0]) - 1, /* 1 */ + asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72, /* Same as above */ + sizeof(asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72) + /sizeof(asn_DEF_timeRestrictionForInterferenceMeasurements_tags_72[0]), /* 2 */ + { &asn_OER_type_timeRestrictionForInterferenceMeasurements_constr_72, &asn_PER_type_timeRestrictionForInterferenceMeasurements_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_timeRestrictionForInterferenceMeasurements_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dummy_value2enum_76[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_dummy_enum2value_76[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dummy_specs_76 = { + asn_MAP_dummy_value2enum_76, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dummy_76 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_dummy_tags_76, + sizeof(asn_DEF_dummy_tags_76) + /sizeof(asn_DEF_dummy_tags_76[0]) - 1, /* 1 */ + asn_DEF_dummy_tags_76, /* Same as above */ + sizeof(asn_DEF_dummy_tags_76) + /sizeof(asn_DEF_dummy_tags_76[0]), /* 2 */ + { &asn_OER_type_dummy_constr_76, &asn_PER_type_dummy_constr_76, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dummy_specs_76 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nrofReportedRS_value2enum_82[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_nrofReportedRS_enum2value_82[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nrofReportedRS_specs_82 = { + asn_MAP_nrofReportedRS_value2enum_82, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofReportedRS_82 = { + "nrofReportedRS", + "nrofReportedRS", + &asn_OP_NativeEnumerated, + asn_DEF_nrofReportedRS_tags_82, + sizeof(asn_DEF_nrofReportedRS_tags_82) + /sizeof(asn_DEF_nrofReportedRS_tags_82[0]) - 1, /* 1 */ + asn_DEF_nrofReportedRS_tags_82, /* Same as above */ + sizeof(asn_DEF_nrofReportedRS_tags_82) + /sizeof(asn_DEF_nrofReportedRS_tags_82[0]), /* 2 */ + { &asn_OER_type_nrofReportedRS_constr_82, &asn_PER_type_nrofReportedRS_constr_82, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofReportedRS_specs_82 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_disabled_81[] = { + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig__groupBasedBeamReporting__disabled, nrofReportedRS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofReportedRS_82, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofReportedRS" + }, +}; +static const int asn_MAP_disabled_oms_81[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_disabled_tags_81[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_disabled_tag2el_81[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofReportedRS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_disabled_specs_81 = { + sizeof(struct CSI_ReportConfig__groupBasedBeamReporting__disabled), + offsetof(struct CSI_ReportConfig__groupBasedBeamReporting__disabled, _asn_ctx), + asn_MAP_disabled_tag2el_81, + 1, /* Count of tags in the map */ + asn_MAP_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_disabled_81 = { + "disabled", + "disabled", + &asn_OP_SEQUENCE, + asn_DEF_disabled_tags_81, + sizeof(asn_DEF_disabled_tags_81) + /sizeof(asn_DEF_disabled_tags_81[0]) - 1, /* 1 */ + asn_DEF_disabled_tags_81, /* Same as above */ + sizeof(asn_DEF_disabled_tags_81) + /sizeof(asn_DEF_disabled_tags_81[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_disabled_81, + 1, /* Elements count */ + &asn_SPC_disabled_specs_81 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_groupBasedBeamReporting_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 CSI_ReportConfig__groupBasedBeamReporting, choice.disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_disabled_81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "disabled" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_groupBasedBeamReporting_specs_79 = { + sizeof(struct CSI_ReportConfig__groupBasedBeamReporting), + offsetof(struct CSI_ReportConfig__groupBasedBeamReporting, _asn_ctx), + offsetof(struct CSI_ReportConfig__groupBasedBeamReporting, present), + sizeof(((struct CSI_ReportConfig__groupBasedBeamReporting *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_groupBasedBeamReporting_constr_79, &asn_PER_type_groupBasedBeamReporting_constr_79, CHOICE_constraint }, + asn_MBR_groupBasedBeamReporting_79, + 2, /* Elements count */ + &asn_SPC_groupBasedBeamReporting_specs_79 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cqi_Table_value2enum_87[] = { + { 0, 6, "table1" }, + { 1, 6, "table2" }, + { 2, 6, "table3" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_cqi_Table_enum2value_87[] = { + 3, /* spare1(3) */ + 0, /* table1(0) */ + 1, /* table2(1) */ + 2 /* table3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cqi_Table_specs_87 = { + asn_MAP_cqi_Table_value2enum_87, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cqi_Table_87 = { + "cqi-Table", + "cqi-Table", + &asn_OP_NativeEnumerated, + asn_DEF_cqi_Table_tags_87, + sizeof(asn_DEF_cqi_Table_tags_87) + /sizeof(asn_DEF_cqi_Table_tags_87[0]) - 1, /* 1 */ + asn_DEF_cqi_Table_tags_87, /* Same as above */ + sizeof(asn_DEF_cqi_Table_tags_87) + /sizeof(asn_DEF_cqi_Table_tags_87[0]), /* 2 */ + { &asn_OER_type_cqi_Table_constr_87, &asn_PER_type_cqi_Table_constr_87, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cqi_Table_specs_87 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_subbandSize_value2enum_92[] = { + { 0, 6, "value1" }, + { 1, 6, "value2" } +}; +static const unsigned int asn_MAP_subbandSize_enum2value_92[] = { + 0, /* value1(0) */ + 1 /* value2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_subbandSize_specs_92 = { + asn_MAP_subbandSize_value2enum_92, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_subbandSize_92 = { + "subbandSize", + "subbandSize", + &asn_OP_NativeEnumerated, + asn_DEF_subbandSize_tags_92, + sizeof(asn_DEF_subbandSize_tags_92) + /sizeof(asn_DEF_subbandSize_tags_92[0]) - 1, /* 1 */ + asn_DEF_subbandSize_tags_92, /* Same as above */ + sizeof(asn_DEF_subbandSize_tags_92) + /sizeof(asn_DEF_subbandSize_tags_92[0]), /* 2 */ + { &asn_OER_type_subbandSize_constr_92, &asn_PER_type_subbandSize_constr_92, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_subbandSize_specs_92 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_non_PMI_PortIndication_95[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_PortIndexFor8Ranks, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_non_PMI_PortIndication_specs_95 = { + sizeof(struct CSI_ReportConfig__non_PMI_PortIndication), + offsetof(struct 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_non_PMI_PortIndication_95 = { + "non-PMI-PortIndication", + "non-PMI-PortIndication", + &asn_OP_SEQUENCE_OF, + asn_DEF_non_PMI_PortIndication_tags_95, + sizeof(asn_DEF_non_PMI_PortIndication_tags_95) + /sizeof(asn_DEF_non_PMI_PortIndication_tags_95[0]) - 1, /* 1 */ + asn_DEF_non_PMI_PortIndication_tags_95, /* Same as above */ + sizeof(asn_DEF_non_PMI_PortIndication_tags_95) + /sizeof(asn_DEF_non_PMI_PortIndication_tags_95[0]), /* 2 */ + { &asn_OER_type_non_PMI_PortIndication_constr_95, &asn_PER_type_non_PMI_PortIndication_constr_95, SEQUENCE_OF_constraint }, + asn_MBR_non_PMI_PortIndication_95, + 1, /* Single element */ + &asn_SPC_non_PMI_PortIndication_specs_95 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_reportSlotConfig_v1530_value2enum_100[] = { + { 0, 3, "sl4" }, + { 1, 3, "sl8" }, + { 2, 4, "sl16" } +}; +static const unsigned int asn_MAP_reportSlotConfig_v1530_enum2value_100[] = { + 2, /* sl16(2) */ + 0, /* sl4(0) */ + 1 /* sl8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reportSlotConfig_v1530_specs_100 = { + asn_MAP_reportSlotConfig_v1530_value2enum_100, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportSlotConfig_v1530_100 = { + "reportSlotConfig-v1530", + "reportSlotConfig-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_reportSlotConfig_v1530_tags_100, + sizeof(asn_DEF_reportSlotConfig_v1530_tags_100) + /sizeof(asn_DEF_reportSlotConfig_v1530_tags_100[0]) - 1, /* 1 */ + asn_DEF_reportSlotConfig_v1530_tags_100, /* Same as above */ + sizeof(asn_DEF_reportSlotConfig_v1530_tags_100) + /sizeof(asn_DEF_reportSlotConfig_v1530_tags_100[0]), /* 2 */ + { &asn_OER_type_reportSlotConfig_v1530_constr_100, &asn_PER_type_reportSlotConfig_v1530_constr_100, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportSlotConfig_v1530_specs_100 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semiPersistentOnPUSCH_v1530_99[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, reportSlotConfig_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportSlotConfig_v1530_100, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportSlotConfig-v1530" + }, +}; +static const ber_tlv_tag_t asn_DEF_semiPersistentOnPUSCH_v1530_tags_99[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_semiPersistentOnPUSCH_v1530_tag2el_99[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotConfig-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_semiPersistentOnPUSCH_v1530_specs_99 = { + sizeof(struct CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530), + offsetof(struct CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, _asn_ctx), + asn_MAP_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_semiPersistentOnPUSCH_v1530_99 = { + "semiPersistentOnPUSCH-v1530", + "semiPersistentOnPUSCH-v1530", + &asn_OP_SEQUENCE, + asn_DEF_semiPersistentOnPUSCH_v1530_tags_99, + sizeof(asn_DEF_semiPersistentOnPUSCH_v1530_tags_99) + /sizeof(asn_DEF_semiPersistentOnPUSCH_v1530_tags_99[0]) - 1, /* 1 */ + asn_DEF_semiPersistentOnPUSCH_v1530_tags_99, /* Same as above */ + sizeof(asn_DEF_semiPersistentOnPUSCH_v1530_tags_99) + /sizeof(asn_DEF_semiPersistentOnPUSCH_v1530_tags_99[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_semiPersistentOnPUSCH_v1530_99, + 1, /* Elements count */ + &asn_SPC_semiPersistentOnPUSCH_v1530_specs_99 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_98[] = { + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig__ext1, semiPersistentOnPUSCH_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_semiPersistentOnPUSCH_v1530_99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiPersistentOnPUSCH-v1530" + }, +}; +static const int asn_MAP_ext1_oms_98[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_98[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_98[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* semiPersistentOnPUSCH-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_98 = { + sizeof(struct CSI_ReportConfig__ext1), + offsetof(struct CSI_ReportConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_98, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_98 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_98, + sizeof(asn_DEF_ext1_tags_98) + /sizeof(asn_DEF_ext1_tags_98[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_98, /* Same as above */ + sizeof(asn_DEF_ext1_tags_98) + /sizeof(asn_DEF_ext1_tags_98[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_98, + 1, /* Elements count */ + &asn_SPC_ext1_specs_98 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_ReportConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, carrier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, resourcesForChannelMeasurement), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourcesForChannelMeasurement" + }, + { ATF_POINTER, 2, offsetof(struct CSI_ReportConfig, csi_IM_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-IM-ResourcesForInterference" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, nzp_CSI_RS_ResourcesForInterference), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourcesForInterference" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, reportConfigType), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_reportConfigType_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigType" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_reportQuantity_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, reportFreqConfiguration), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_reportFreqConfiguration_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportFreqConfiguration" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, timeRestrictionForChannelMeasurements), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_timeRestrictionForChannelMeasurements_69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRestrictionForChannelMeasurements" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, timeRestrictionForInterferenceMeasurements), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_timeRestrictionForInterferenceMeasurements_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeRestrictionForInterferenceMeasurements" + }, + { ATF_POINTER, 2, offsetof(struct CSI_ReportConfig, codebookConfig), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CodebookConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookConfig" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, dummy), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dummy_76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, groupBasedBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_groupBasedBeamReporting_79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBasedBeamReporting" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, cqi_Table), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cqi_Table_87, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cqi-Table" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportConfig, subbandSize), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_subbandSize_92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subbandSize" + }, + { ATF_POINTER, 2, offsetof(struct CSI_ReportConfig, non_PMI_PortIndication), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_non_PMI_PortIndication_95, + 0, + { &asn_OER_memb_non_PMI_PortIndication_constr_95, &asn_PER_memb_non_PMI_PortIndication_constr_95, memb_non_PMI_PortIndication_constraint_1 }, + 0, 0, /* No default value */ + "non-PMI-PortIndication" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ReportConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + 0, + &asn_DEF_ext1_98, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_CSI_ReportConfig_oms_1[] = { 1, 3, 4, 7, 10, 11, 13, 15, 16 }; +static const ber_tlv_tag_t asn_DEF_CSI_ReportConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_ReportConfig_specs_1 = { + sizeof(struct CSI_ReportConfig), + offsetof(struct CSI_ReportConfig, _asn_ctx), + asn_MAP_CSI_ReportConfig_tag2el_1, + 17, /* Count of tags in the map */ + asn_MAP_CSI_ReportConfig_oms_1, /* Optional members */ + 8, 1, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_ReportConfig = { + "CSI-ReportConfig", + "CSI-ReportConfig", + &asn_OP_SEQUENCE, + asn_DEF_CSI_ReportConfig_tags_1, + sizeof(asn_DEF_CSI_ReportConfig_tags_1) + /sizeof(asn_DEF_CSI_ReportConfig_tags_1[0]), /* 1 */ + asn_DEF_CSI_ReportConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_ReportConfig_tags_1) + /sizeof(asn_DEF_CSI_ReportConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_ReportConfig_1, + 17, /* Elements count */ + &asn_SPC_CSI_ReportConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-ReportConfig.h b/src/codec_utils/RRC/CSI-ReportConfig.h new file mode 100644 index 000000000..9ab64418a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ReportConfig_H_ +#define _CSI_ReportConfig_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-ReportConfigId.h" +#include "ServCellIndex.h" +#include "CSI-ResourceConfigId.h" +#include +#include "CSI-ReportPeriodicityAndOffset.h" +#include +#include +#include +#include "P0-PUSCH-AlphaSetId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_ReportConfig__reportConfigType_PR { + CSI_ReportConfig__reportConfigType_PR_NOTHING, /* No components present */ + CSI_ReportConfig__reportConfigType_PR_periodic, + CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUCCH, + CSI_ReportConfig__reportConfigType_PR_semiPersistentOnPUSCH, + CSI_ReportConfig__reportConfigType_PR_aperiodic +} CSI_ReportConfig__reportConfigType_PR; +typedef enum CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig { + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl5 = 0, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl10 = 1, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl20 = 2, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl40 = 3, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl80 = 4, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl160 = 5, + CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig_sl320 = 6 +} e_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotConfig; +typedef enum CSI_ReportConfig__reportQuantity_PR { + CSI_ReportConfig__reportQuantity_PR_NOTHING, /* No components present */ + CSI_ReportConfig__reportQuantity_PR_none, + CSI_ReportConfig__reportQuantity_PR_cri_RI_PMI_CQI, + CSI_ReportConfig__reportQuantity_PR_cri_RI_i1, + CSI_ReportConfig__reportQuantity_PR_cri_RI_i1_CQI, + CSI_ReportConfig__reportQuantity_PR_cri_RI_CQI, + CSI_ReportConfig__reportQuantity_PR_cri_RSRP, + CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP, + CSI_ReportConfig__reportQuantity_PR_cri_RI_LI_PMI_CQI +} CSI_ReportConfig__reportQuantity_PR; +typedef enum CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI { + CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n2 = 0, + CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI_n4 = 1 +} e_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI__pdsch_BundleSizeForCSI; +typedef enum CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator { + CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_widebandCQI = 0, + CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator_subbandCQI = 1 +} e_CSI_ReportConfig__reportFreqConfiguration__cqi_FormatIndicator; +typedef enum CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator { + CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_widebandPMI = 0, + CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator_subbandPMI = 1 +} e_CSI_ReportConfig__reportFreqConfiguration__pmi_FormatIndicator; +typedef enum CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR { + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_NOTHING, /* No components present */ + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands3, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands4, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands5, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands6, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands7, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands8, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands9, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands10, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands11, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands12, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands13, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands14, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands15, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands16, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands17, + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands18, + /* Extensions may appear below */ + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR_subbands19_v1530 +} CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR; +typedef enum CSI_ReportConfig__timeRestrictionForChannelMeasurements { + CSI_ReportConfig__timeRestrictionForChannelMeasurements_configured = 0, + CSI_ReportConfig__timeRestrictionForChannelMeasurements_notConfigured = 1 +} e_CSI_ReportConfig__timeRestrictionForChannelMeasurements; +typedef enum CSI_ReportConfig__timeRestrictionForInterferenceMeasurements { + CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_configured = 0, + CSI_ReportConfig__timeRestrictionForInterferenceMeasurements_notConfigured = 1 +} e_CSI_ReportConfig__timeRestrictionForInterferenceMeasurements; +typedef enum CSI_ReportConfig__dummy { + CSI_ReportConfig__dummy_n1 = 0, + CSI_ReportConfig__dummy_n2 = 1 +} e_CSI_ReportConfig__dummy; +typedef enum CSI_ReportConfig__groupBasedBeamReporting_PR { + CSI_ReportConfig__groupBasedBeamReporting_PR_NOTHING, /* No components present */ + CSI_ReportConfig__groupBasedBeamReporting_PR_enabled, + CSI_ReportConfig__groupBasedBeamReporting_PR_disabled +} CSI_ReportConfig__groupBasedBeamReporting_PR; +typedef enum CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS { + CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n1 = 0, + CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n2 = 1, + CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n3 = 2, + CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS_n4 = 3 +} e_CSI_ReportConfig__groupBasedBeamReporting__disabled__nrofReportedRS; +typedef enum CSI_ReportConfig__cqi_Table { + CSI_ReportConfig__cqi_Table_table1 = 0, + CSI_ReportConfig__cqi_Table_table2 = 1, + CSI_ReportConfig__cqi_Table_table3 = 2, + CSI_ReportConfig__cqi_Table_spare1 = 3 +} e_CSI_ReportConfig__cqi_Table; +typedef enum CSI_ReportConfig__subbandSize { + CSI_ReportConfig__subbandSize_value1 = 0, + CSI_ReportConfig__subbandSize_value2 = 1 +} e_CSI_ReportConfig__subbandSize; +typedef enum CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530 { + CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl4 = 0, + CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl8 = 1, + CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530_sl16 = 2 +} e_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530__reportSlotConfig_v1530; + +/* Forward declarations */ +struct CodebookConfig; +struct PUCCH_CSI_Resource; +struct PortIndexFor8Ranks; + +/* CSI-ReportConfig */ +typedef struct CSI_ReportConfig { + CSI_ReportConfigId_t reportConfigId; + ServCellIndex_t *carrier; /* OPTIONAL */ + CSI_ResourceConfigId_t resourcesForChannelMeasurement; + CSI_ResourceConfigId_t *csi_IM_ResourcesForInterference; /* OPTIONAL */ + CSI_ResourceConfigId_t *nzp_CSI_RS_ResourcesForInterference; /* OPTIONAL */ + struct CSI_ReportConfig__reportConfigType { + CSI_ReportConfig__reportConfigType_PR present; + union CSI_ReportConfig__reportConfigType_u { + struct CSI_ReportConfig__reportConfigType__periodic { + CSI_ReportPeriodicityAndOffset_t reportSlotConfig; + struct CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList { + A_SEQUENCE_OF(struct 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 CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH { + CSI_ReportPeriodicityAndOffset_t reportSlotConfig; + struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList { + A_SEQUENCE_OF(struct 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 CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH { + long reportSlotConfig; + struct CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } reportSlotOffsetList; + P0_PUSCH_AlphaSetId_t p0alpha; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *semiPersistentOnPUSCH; + struct CSI_ReportConfig__reportConfigType__aperiodic { + struct 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 CSI_ReportConfig__reportQuantity { + CSI_ReportConfig__reportQuantity_PR present; + union CSI_ReportConfig__reportQuantity_u { + NULL_t none; + NULL_t cri_RI_PMI_CQI; + NULL_t cri_RI_i1; + struct 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 CSI_ReportConfig__reportFreqConfiguration { + long *cqi_FormatIndicator; /* OPTIONAL */ + long *pmi_FormatIndicator; /* OPTIONAL */ + struct CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand { + CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand_PR present; + union CSI_ReportConfig__reportFreqConfiguration__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 CodebookConfig *codebookConfig; /* OPTIONAL */ + long *dummy; /* OPTIONAL */ + struct CSI_ReportConfig__groupBasedBeamReporting { + CSI_ReportConfig__groupBasedBeamReporting_PR present; + union CSI_ReportConfig__groupBasedBeamReporting_u { + NULL_t enabled; + struct 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 CSI_ReportConfig__non_PMI_PortIndication { + A_SEQUENCE_OF(struct 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 CSI_ReportConfig__ext1 { + struct 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; +} CSI_ReportConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportSlotConfig_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_BundleSizeForCSI_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cqi_FormatIndicator_44; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pmi_FormatIndicator_47; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_timeRestrictionForChannelMeasurements_69; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_timeRestrictionForInterferenceMeasurements_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dummy_76; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofReportedRS_82; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cqi_Table_87; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_subbandSize_92; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportSlotConfig_v1530_100; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_ReportConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_ReportConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_ReportConfig_1[17]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ReportConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ReportConfigId.c b/src/codec_utils/RRC/CSI-ReportConfigId.c new file mode 100644 index 000000000..f774146bb --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportConfigId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ReportConfigId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_ReportConfigId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..47) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_ReportConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_ReportConfigId = { + "CSI-ReportConfigId", + "CSI-ReportConfigId", + &asn_OP_NativeInteger, + asn_DEF_CSI_ReportConfigId_tags_1, + sizeof(asn_DEF_CSI_ReportConfigId_tags_1) + /sizeof(asn_DEF_CSI_ReportConfigId_tags_1[0]), /* 1 */ + asn_DEF_CSI_ReportConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_ReportConfigId_tags_1) + /sizeof(asn_DEF_CSI_ReportConfigId_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_ReportConfigId_constr_1, &asn_PER_type_CSI_ReportConfigId_constr_1, CSI_ReportConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-ReportConfigId.h b/src/codec_utils/RRC/CSI-ReportConfigId.h new file mode 100644 index 000000000..ab6c128fb --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportConfigId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ReportConfigId_H_ +#define _CSI_ReportConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-ReportConfigId */ +typedef long CSI_ReportConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_ReportConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_ReportConfigId; +asn_struct_free_f CSI_ReportConfigId_free; +asn_struct_print_f CSI_ReportConfigId_print; +asn_constr_check_f CSI_ReportConfigId_constraint; +ber_type_decoder_f CSI_ReportConfigId_decode_ber; +der_type_encoder_f CSI_ReportConfigId_encode_der; +xer_type_decoder_f CSI_ReportConfigId_decode_xer; +xer_type_encoder_f CSI_ReportConfigId_encode_xer; +oer_type_decoder_f CSI_ReportConfigId_decode_oer; +oer_type_encoder_f CSI_ReportConfigId_encode_oer; +per_type_decoder_f CSI_ReportConfigId_decode_uper; +per_type_encoder_f CSI_ReportConfigId_encode_uper; +per_type_decoder_f CSI_ReportConfigId_decode_aper; +per_type_encoder_f CSI_ReportConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ReportConfigId_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ReportFramework.c b/src/codec_utils/RRC/CSI-ReportFramework.c new file mode 100644 index 000000000..e0e982a61 --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportFramework.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ReportFramework.h" + +static int +memb_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_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_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_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_oer_constraints_t asn_OER_memb_maxNumberPeriodicCSI_ReportPerBWP_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberAperiodicCSI_ReportPerBWP_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberSemiPersistentCSI_ReportPerBWP_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_simultaneousCSI_ReportsAllCC_constr_5 CC_NOTUSED = { + { 1, 1 } /* (5..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_CSI_ReportFramework_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportFramework, maxNumberPeriodicCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberPeriodicCSI_ReportPerBWP_constr_2, &asn_PER_memb_maxNumberPeriodicCSI_ReportPerBWP_constr_2, memb_maxNumberPeriodicCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportFramework, maxNumberAperiodicCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberAperiodicCSI_ReportPerBWP_constr_3, &asn_PER_memb_maxNumberAperiodicCSI_ReportPerBWP_constr_3, memb_maxNumberAperiodicCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportFramework, maxNumberSemiPersistentCSI_ReportPerBWP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSemiPersistentCSI_ReportPerBWP_constr_4, &asn_PER_memb_maxNumberSemiPersistentCSI_ReportPerBWP_constr_4, memb_maxNumberSemiPersistentCSI_ReportPerBWP_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSemiPersistentCSI-ReportPerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportFramework, simultaneousCSI_ReportsAllCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_simultaneousCSI_ReportsAllCC_constr_5, &asn_PER_memb_simultaneousCSI_ReportsAllCC_constr_5, memb_simultaneousCSI_ReportsAllCC_constraint_1 }, + 0, 0, /* No default value */ + "simultaneousCSI-ReportsAllCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_ReportFramework_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CSI_ReportFramework_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_CSI_ReportFramework_specs_1 = { + sizeof(struct CSI_ReportFramework), + offsetof(struct CSI_ReportFramework, _asn_ctx), + asn_MAP_CSI_ReportFramework_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_CSI_ReportFramework = { + "CSI-ReportFramework", + "CSI-ReportFramework", + &asn_OP_SEQUENCE, + asn_DEF_CSI_ReportFramework_tags_1, + sizeof(asn_DEF_CSI_ReportFramework_tags_1) + /sizeof(asn_DEF_CSI_ReportFramework_tags_1[0]), /* 1 */ + asn_DEF_CSI_ReportFramework_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_ReportFramework_tags_1) + /sizeof(asn_DEF_CSI_ReportFramework_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_ReportFramework_1, + 4, /* Elements count */ + &asn_SPC_CSI_ReportFramework_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-ReportFramework.h b/src/codec_utils/RRC/CSI-ReportFramework.h new file mode 100644 index 000000000..5716e86af --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportFramework.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ReportFramework_H_ +#define _CSI_ReportFramework_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-ReportFramework */ +typedef struct CSI_ReportFramework { + long maxNumberPeriodicCSI_ReportPerBWP; + long maxNumberAperiodicCSI_ReportPerBWP; + long maxNumberSemiPersistentCSI_ReportPerBWP; + long simultaneousCSI_ReportsAllCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_ReportFramework_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_ReportFramework; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_ReportFramework_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_ReportFramework_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ReportFramework_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.c b/src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.c new file mode 100644 index 000000000..347e6b06f --- /dev/null +++ b/src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.c @@ -0,0 +1,475 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ReportPeriodicityAndOffset.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_slots4_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots5_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots8_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots10_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots16_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots20_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots40_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots80_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots160_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots320_constr_11 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_CSI_ReportPeriodicityAndOffset_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_ReportPeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots4_constr_2, &asn_PER_memb_slots4_constr_2, memb_slots4_constraint_1 }, + 0, 0, /* No default value */ + "slots4" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots5_constr_3, &asn_PER_memb_slots5_constr_3, memb_slots5_constraint_1 }, + 0, 0, /* No default value */ + "slots5" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots8_constr_4, &asn_PER_memb_slots8_constr_4, memb_slots8_constraint_1 }, + 0, 0, /* No default value */ + "slots8" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots10), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots10_constr_5, &asn_PER_memb_slots10_constr_5, memb_slots10_constraint_1 }, + 0, 0, /* No default value */ + "slots10" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots16_constr_6, &asn_PER_memb_slots16_constr_6, memb_slots16_constraint_1 }, + 0, 0, /* No default value */ + "slots16" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots20_constr_7, &asn_PER_memb_slots20_constr_7, memb_slots20_constraint_1 }, + 0, 0, /* No default value */ + "slots20" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots40), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots40_constr_8, &asn_PER_memb_slots40_constr_8, memb_slots40_constraint_1 }, + 0, 0, /* No default value */ + "slots40" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots80_constr_9, &asn_PER_memb_slots80_constr_9, memb_slots80_constraint_1 }, + 0, 0, /* No default value */ + "slots80" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots160), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots160_constr_10, &asn_PER_memb_slots160_constr_10, memb_slots160_constraint_1 }, + 0, 0, /* No default value */ + "slots160" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ReportPeriodicityAndOffset, choice.slots320), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots320_constr_11, &asn_PER_memb_slots320_constr_11, memb_slots320_constraint_1 }, + 0, 0, /* No default value */ + "slots320" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_ReportPeriodicityAndOffset_specs_1 = { + sizeof(struct CSI_ReportPeriodicityAndOffset), + offsetof(struct CSI_ReportPeriodicityAndOffset, _asn_ctx), + offsetof(struct CSI_ReportPeriodicityAndOffset, present), + sizeof(((struct CSI_ReportPeriodicityAndOffset *)0)->present), + asn_MAP_CSI_ReportPeriodicityAndOffset_tag2el_1, + 10, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_CSI_ReportPeriodicityAndOffset_constr_1, &asn_PER_type_CSI_ReportPeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_CSI_ReportPeriodicityAndOffset_1, + 10, /* Elements count */ + &asn_SPC_CSI_ReportPeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.h b/src/codec_utils/RRC/CSI-ReportPeriodicityAndOffset.h new file mode 100644 index 000000000..aa542afc2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ReportPeriodicityAndOffset_H_ +#define _CSI_ReportPeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_ReportPeriodicityAndOffset_PR { + CSI_ReportPeriodicityAndOffset_PR_NOTHING, /* No components present */ + CSI_ReportPeriodicityAndOffset_PR_slots4, + CSI_ReportPeriodicityAndOffset_PR_slots5, + CSI_ReportPeriodicityAndOffset_PR_slots8, + CSI_ReportPeriodicityAndOffset_PR_slots10, + CSI_ReportPeriodicityAndOffset_PR_slots16, + CSI_ReportPeriodicityAndOffset_PR_slots20, + CSI_ReportPeriodicityAndOffset_PR_slots40, + CSI_ReportPeriodicityAndOffset_PR_slots80, + CSI_ReportPeriodicityAndOffset_PR_slots160, + CSI_ReportPeriodicityAndOffset_PR_slots320 +} CSI_ReportPeriodicityAndOffset_PR; + +/* CSI-ReportPeriodicityAndOffset */ +typedef struct CSI_ReportPeriodicityAndOffset { + CSI_ReportPeriodicityAndOffset_PR present; + union 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; +} CSI_ReportPeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_ReportPeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_CSI_ReportPeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_ReportPeriodicityAndOffset_1[10]; +extern asn_per_constraints_t asn_PER_type_CSI_ReportPeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ReportPeriodicityAndOffset_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ResourceConfig.c b/src/codec_utils/RRC/CSI-ResourceConfig.c new file mode 100644 index 000000000..7d816c5bb --- /dev/null +++ b/src/codec_utils/RRC/CSI-ResourceConfig.c @@ -0,0 +1,480 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ResourceConfig.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_ResourceSetList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_SSB_ResourceSetList_constr_7 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_ResourceSetList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_csi_SSB_ResourceSetList_constr_7 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_csi_IM_ResourceSetList_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_IM_ResourceSetList_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_csi_RS_ResourceSetList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceType_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_nzp_CSI_RS_ResourceSetList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_ResourceSetList_specs_5 = { + sizeof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__nzp_CSI_RS_ResourceSetList), + offsetof(struct 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_nzp_CSI_RS_ResourceSetList_5 = { + "nzp-CSI-RS-ResourceSetList", + "nzp-CSI-RS-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5, + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5) + /sizeof(asn_DEF_nzp_CSI_RS_ResourceSetList_tags_5[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_ResourceSetList_constr_5, &asn_PER_type_nzp_CSI_RS_ResourceSetList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_ResourceSetList_5, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_ResourceSetList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_SSB_ResourceSetList_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_SSB_ResourceSetList_specs_7 = { + sizeof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__csi_SSB_ResourceSetList), + offsetof(struct 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_csi_SSB_ResourceSetList_7 = { + "csi-SSB-ResourceSetList", + "csi-SSB-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_SSB_ResourceSetList_tags_7, + sizeof(asn_DEF_csi_SSB_ResourceSetList_tags_7) + /sizeof(asn_DEF_csi_SSB_ResourceSetList_tags_7[0]) - 1, /* 1 */ + asn_DEF_csi_SSB_ResourceSetList_tags_7, /* Same as above */ + sizeof(asn_DEF_csi_SSB_ResourceSetList_tags_7) + /sizeof(asn_DEF_csi_SSB_ResourceSetList_tags_7[0]), /* 2 */ + { &asn_OER_type_csi_SSB_ResourceSetList_constr_7, &asn_PER_type_csi_SSB_ResourceSetList_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_csi_SSB_ResourceSetList_7, + 1, /* Single element */ + &asn_SPC_csi_SSB_ResourceSetList_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nzp_CSI_RS_SSB_4[] = { + { ATF_POINTER, 2, offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, nzp_CSI_RS_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_ResourceSetList_5, + 0, + { &asn_OER_memb_nzp_CSI_RS_ResourceSetList_constr_5, &asn_PER_memb_nzp_CSI_RS_ResourceSetList_constr_5, memb_nzp_CSI_RS_ResourceSetList_constraint_4 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceSetList" + }, + { ATF_POINTER, 1, offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, csi_SSB_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_SSB_ResourceSetList_7, + 0, + { &asn_OER_memb_csi_SSB_ResourceSetList_constr_7, &asn_PER_memb_csi_SSB_ResourceSetList_constr_7, memb_csi_SSB_ResourceSetList_constraint_4 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetList" + }, +}; +static const int asn_MAP_nzp_CSI_RS_SSB_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_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_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_nzp_CSI_RS_SSB_specs_4 = { + sizeof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB), + offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB, _asn_ctx), + asn_MAP_nzp_CSI_RS_SSB_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_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_nzp_CSI_RS_SSB_4 = { + "nzp-CSI-RS-SSB", + "nzp-CSI-RS-SSB", + &asn_OP_SEQUENCE, + asn_DEF_nzp_CSI_RS_SSB_tags_4, + sizeof(asn_DEF_nzp_CSI_RS_SSB_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_SSB_tags_4[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_SSB_tags_4, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_SSB_tags_4) + /sizeof(asn_DEF_nzp_CSI_RS_SSB_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nzp_CSI_RS_SSB_4, + 2, /* Elements count */ + &asn_SPC_nzp_CSI_RS_SSB_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_IM_ResourceSetList_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_CSI_IM_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_IM_ResourceSetList_specs_9 = { + sizeof(struct CSI_ResourceConfig__csi_RS_ResourceSetList__csi_IM_ResourceSetList), + offsetof(struct 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_csi_IM_ResourceSetList_9 = { + "csi-IM-ResourceSetList", + "csi-IM-ResourceSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_IM_ResourceSetList_tags_9, + sizeof(asn_DEF_csi_IM_ResourceSetList_tags_9) + /sizeof(asn_DEF_csi_IM_ResourceSetList_tags_9[0]) - 1, /* 1 */ + asn_DEF_csi_IM_ResourceSetList_tags_9, /* Same as above */ + sizeof(asn_DEF_csi_IM_ResourceSetList_tags_9) + /sizeof(asn_DEF_csi_IM_ResourceSetList_tags_9[0]), /* 2 */ + { &asn_OER_type_csi_IM_ResourceSetList_constr_9, &asn_PER_type_csi_IM_ResourceSetList_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_csi_IM_ResourceSetList_9, + 1, /* Single element */ + &asn_SPC_csi_IM_ResourceSetList_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_RS_ResourceSetList_3[] = { + { ATF_POINTER, 0, offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList, choice.nzp_CSI_RS_SSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_SSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-SSB" + }, + { ATF_POINTER, 0, offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList, choice.csi_IM_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_IM_ResourceSetList_9, + 0, + { &asn_OER_memb_csi_IM_ResourceSetList_constr_9, &asn_PER_memb_csi_IM_ResourceSetList_constr_9, memb_csi_IM_ResourceSetList_constraint_3 }, + 0, 0, /* No default value */ + "csi-IM-ResourceSetList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_csi_RS_ResourceSetList_specs_3 = { + sizeof(struct CSI_ResourceConfig__csi_RS_ResourceSetList), + offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList, _asn_ctx), + offsetof(struct CSI_ResourceConfig__csi_RS_ResourceSetList, present), + sizeof(((struct CSI_ResourceConfig__csi_RS_ResourceSetList *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_csi_RS_ResourceSetList_constr_3, &asn_PER_type_csi_RS_ResourceSetList_constr_3, CHOICE_constraint }, + asn_MBR_csi_RS_ResourceSetList_3, + 2, /* Elements count */ + &asn_SPC_csi_RS_ResourceSetList_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceType_value2enum_12[] = { + { 0, 9, "aperiodic" }, + { 1, 14, "semiPersistent" }, + { 2, 8, "periodic" } +}; +static const unsigned int asn_MAP_resourceType_enum2value_12[] = { + 0, /* aperiodic(0) */ + 2, /* periodic(2) */ + 1 /* semiPersistent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceType_specs_12 = { + asn_MAP_resourceType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_resourceType_12 = { + "resourceType", + "resourceType", + &asn_OP_NativeEnumerated, + asn_DEF_resourceType_tags_12, + sizeof(asn_DEF_resourceType_tags_12) + /sizeof(asn_DEF_resourceType_tags_12[0]) - 1, /* 1 */ + asn_DEF_resourceType_tags_12, /* Same as above */ + sizeof(asn_DEF_resourceType_tags_12) + /sizeof(asn_DEF_resourceType_tags_12[0]), /* 2 */ + { &asn_OER_type_resourceType_constr_12, &asn_PER_type_resourceType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceType_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_ResourceConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourceConfig, csi_ResourceConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ResourceConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ResourceConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourceConfig, csi_RS_ResourceSetList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_csi_RS_ResourceSetList_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ResourceSetList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourceConfig, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourceConfig, resourceType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_ResourceConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_ResourceConfig_specs_1 = { + sizeof(struct CSI_ResourceConfig), + offsetof(struct CSI_ResourceConfig, _asn_ctx), + asn_MAP_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_CSI_ResourceConfig = { + "CSI-ResourceConfig", + "CSI-ResourceConfig", + &asn_OP_SEQUENCE, + asn_DEF_CSI_ResourceConfig_tags_1, + sizeof(asn_DEF_CSI_ResourceConfig_tags_1) + /sizeof(asn_DEF_CSI_ResourceConfig_tags_1[0]), /* 1 */ + asn_DEF_CSI_ResourceConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_ResourceConfig_tags_1) + /sizeof(asn_DEF_CSI_ResourceConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_ResourceConfig_1, + 4, /* Elements count */ + &asn_SPC_CSI_ResourceConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-ResourceConfig.h b/src/codec_utils/RRC/CSI-ResourceConfig.h new file mode 100644 index 000000000..878917d24 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ResourceConfig_H_ +#define _CSI_ResourceConfig_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-ResourceConfigId.h" +#include "BWP-Id.h" +#include +#include "NZP-CSI-RS-ResourceSetId.h" +#include +#include +#include "CSI-SSB-ResourceSetId.h" +#include +#include "CSI-IM-ResourceSetId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_ResourceConfig__csi_RS_ResourceSetList_PR { + CSI_ResourceConfig__csi_RS_ResourceSetList_PR_NOTHING, /* No components present */ + CSI_ResourceConfig__csi_RS_ResourceSetList_PR_nzp_CSI_RS_SSB, + CSI_ResourceConfig__csi_RS_ResourceSetList_PR_csi_IM_ResourceSetList +} CSI_ResourceConfig__csi_RS_ResourceSetList_PR; +typedef enum CSI_ResourceConfig__resourceType { + CSI_ResourceConfig__resourceType_aperiodic = 0, + CSI_ResourceConfig__resourceType_semiPersistent = 1, + CSI_ResourceConfig__resourceType_periodic = 2 +} e_CSI_ResourceConfig__resourceType; + +/* CSI-ResourceConfig */ +typedef struct CSI_ResourceConfig { + CSI_ResourceConfigId_t csi_ResourceConfigId; + struct CSI_ResourceConfig__csi_RS_ResourceSetList { + CSI_ResourceConfig__csi_RS_ResourceSetList_PR present; + union CSI_ResourceConfig__csi_RS_ResourceSetList_u { + struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB { + struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__nzp_CSI_RS_ResourceSetList { + A_SEQUENCE_OF(NZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *nzp_CSI_RS_ResourceSetList; + struct CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB__csi_SSB_ResourceSetList { + A_SEQUENCE_OF(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 CSI_ResourceConfig__csi_RS_ResourceSetList__csi_IM_ResourceSetList { + A_SEQUENCE_OF(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; + 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; +} CSI_ResourceConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceType_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_ResourceConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_ResourceConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_ResourceConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ResourceConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ResourceConfigId.c b/src/codec_utils/RRC/CSI-ResourceConfigId.c new file mode 100644 index 000000000..99b99a3f8 --- /dev/null +++ b/src/codec_utils/RRC/CSI-ResourceConfigId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ResourceConfigId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_ResourceConfigId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..111) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_ResourceConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_ResourceConfigId = { + "CSI-ResourceConfigId", + "CSI-ResourceConfigId", + &asn_OP_NativeInteger, + asn_DEF_CSI_ResourceConfigId_tags_1, + sizeof(asn_DEF_CSI_ResourceConfigId_tags_1) + /sizeof(asn_DEF_CSI_ResourceConfigId_tags_1[0]), /* 1 */ + asn_DEF_CSI_ResourceConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_ResourceConfigId_tags_1) + /sizeof(asn_DEF_CSI_ResourceConfigId_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_ResourceConfigId_constr_1, &asn_PER_type_CSI_ResourceConfigId_constr_1, CSI_ResourceConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-ResourceConfigId.h b/src/codec_utils/RRC/CSI-ResourceConfigId.h new file mode 100644 index 000000000..94fbc3747 --- /dev/null +++ b/src/codec_utils/RRC/CSI-ResourceConfigId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ResourceConfigId_H_ +#define _CSI_ResourceConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-ResourceConfigId */ +typedef long CSI_ResourceConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_ResourceConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_ResourceConfigId; +asn_struct_free_f CSI_ResourceConfigId_free; +asn_struct_print_f CSI_ResourceConfigId_print; +asn_constr_check_f CSI_ResourceConfigId_constraint; +ber_type_decoder_f CSI_ResourceConfigId_decode_ber; +der_type_encoder_f CSI_ResourceConfigId_encode_der; +xer_type_decoder_f CSI_ResourceConfigId_decode_xer; +xer_type_encoder_f CSI_ResourceConfigId_encode_xer; +oer_type_decoder_f CSI_ResourceConfigId_decode_oer; +oer_type_encoder_f CSI_ResourceConfigId_encode_oer; +per_type_decoder_f CSI_ResourceConfigId_decode_uper; +per_type_encoder_f CSI_ResourceConfigId_encode_uper; +per_type_decoder_f CSI_ResourceConfigId_decode_aper; +per_type_encoder_f CSI_ResourceConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ResourceConfigId_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.c b/src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.c new file mode 100644 index 000000000..feea157a5 --- /dev/null +++ b/src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.c @@ -0,0 +1,604 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-ResourcePeriodicityAndOffset.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_slots4_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots5_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots8_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots10_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots16_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots20_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots32_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots40_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots64_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots80_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots160_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots320_constr_13 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slots640_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_CSI_ResourcePeriodicityAndOffset_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_ResourcePeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots4_constr_2, &asn_PER_memb_slots4_constr_2, memb_slots4_constraint_1 }, + 0, 0, /* No default value */ + "slots4" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots5), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots5_constr_3, &asn_PER_memb_slots5_constr_3, memb_slots5_constraint_1 }, + 0, 0, /* No default value */ + "slots5" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots8_constr_4, &asn_PER_memb_slots8_constr_4, memb_slots8_constraint_1 }, + 0, 0, /* No default value */ + "slots8" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots10), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots10_constr_5, &asn_PER_memb_slots10_constr_5, memb_slots10_constraint_1 }, + 0, 0, /* No default value */ + "slots10" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots16_constr_6, &asn_PER_memb_slots16_constr_6, memb_slots16_constraint_1 }, + 0, 0, /* No default value */ + "slots16" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots20_constr_7, &asn_PER_memb_slots20_constr_7, memb_slots20_constraint_1 }, + 0, 0, /* No default value */ + "slots20" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots32), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots32_constr_8, &asn_PER_memb_slots32_constr_8, memb_slots32_constraint_1 }, + 0, 0, /* No default value */ + "slots32" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots40), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots40_constr_9, &asn_PER_memb_slots40_constr_9, memb_slots40_constraint_1 }, + 0, 0, /* No default value */ + "slots40" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots64), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots64_constr_10, &asn_PER_memb_slots64_constr_10, memb_slots64_constraint_1 }, + 0, 0, /* No default value */ + "slots64" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots80), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots80_constr_11, &asn_PER_memb_slots80_constr_11, memb_slots80_constraint_1 }, + 0, 0, /* No default value */ + "slots80" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots160), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots160_constr_12, &asn_PER_memb_slots160_constr_12, memb_slots160_constraint_1 }, + 0, 0, /* No default value */ + "slots160" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots320_constr_13, &asn_PER_memb_slots320_constr_13, memb_slots320_constraint_1 }, + 0, 0, /* No default value */ + "slots320" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_ResourcePeriodicityAndOffset, choice.slots640), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slots640_constr_14, &asn_PER_memb_slots640_constr_14, memb_slots640_constraint_1 }, + 0, 0, /* No default value */ + "slots640" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_ResourcePeriodicityAndOffset_specs_1 = { + sizeof(struct CSI_ResourcePeriodicityAndOffset), + offsetof(struct CSI_ResourcePeriodicityAndOffset, _asn_ctx), + offsetof(struct CSI_ResourcePeriodicityAndOffset, present), + sizeof(((struct CSI_ResourcePeriodicityAndOffset *)0)->present), + asn_MAP_CSI_ResourcePeriodicityAndOffset_tag2el_1, + 13, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_CSI_ResourcePeriodicityAndOffset_constr_1, &asn_PER_type_CSI_ResourcePeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_CSI_ResourcePeriodicityAndOffset_1, + 13, /* Elements count */ + &asn_SPC_CSI_ResourcePeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.h b/src/codec_utils/RRC/CSI-ResourcePeriodicityAndOffset.h new file mode 100644 index 000000000..b2ef5553d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_ResourcePeriodicityAndOffset_H_ +#define _CSI_ResourcePeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CSI_ResourcePeriodicityAndOffset_PR { + CSI_ResourcePeriodicityAndOffset_PR_NOTHING, /* No components present */ + CSI_ResourcePeriodicityAndOffset_PR_slots4, + CSI_ResourcePeriodicityAndOffset_PR_slots5, + CSI_ResourcePeriodicityAndOffset_PR_slots8, + CSI_ResourcePeriodicityAndOffset_PR_slots10, + CSI_ResourcePeriodicityAndOffset_PR_slots16, + CSI_ResourcePeriodicityAndOffset_PR_slots20, + CSI_ResourcePeriodicityAndOffset_PR_slots32, + CSI_ResourcePeriodicityAndOffset_PR_slots40, + CSI_ResourcePeriodicityAndOffset_PR_slots64, + CSI_ResourcePeriodicityAndOffset_PR_slots80, + CSI_ResourcePeriodicityAndOffset_PR_slots160, + CSI_ResourcePeriodicityAndOffset_PR_slots320, + CSI_ResourcePeriodicityAndOffset_PR_slots640 +} CSI_ResourcePeriodicityAndOffset_PR; + +/* CSI-ResourcePeriodicityAndOffset */ +typedef struct CSI_ResourcePeriodicityAndOffset { + CSI_ResourcePeriodicityAndOffset_PR present; + union 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; +} CSI_ResourcePeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_ResourcePeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_CSI_ResourcePeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_ResourcePeriodicityAndOffset_1[13]; +extern asn_per_constraints_t asn_PER_type_CSI_ResourcePeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_ResourcePeriodicityAndOffset_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-SSB-ResourceSet.c b/src/codec_utils/RRC/CSI-SSB-ResourceSet.c new file mode 100644 index 000000000..26315fcc5 --- /dev/null +++ b/src/codec_utils/RRC/CSI-SSB-ResourceSet.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-SSB-ResourceSet.h" + +static int +memb_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_oer_constraints_t asn_OER_type_csi_SSB_ResourceList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_csi_SSB_ResourceList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_csi_SSB_ResourceList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_csi_SSB_ResourceList_specs_3 = { + sizeof(struct CSI_SSB_ResourceSet__csi_SSB_ResourceList), + offsetof(struct 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_csi_SSB_ResourceList_3 = { + "csi-SSB-ResourceList", + "csi-SSB-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_csi_SSB_ResourceList_tags_3, + sizeof(asn_DEF_csi_SSB_ResourceList_tags_3) + /sizeof(asn_DEF_csi_SSB_ResourceList_tags_3[0]) - 1, /* 1 */ + asn_DEF_csi_SSB_ResourceList_tags_3, /* Same as above */ + sizeof(asn_DEF_csi_SSB_ResourceList_tags_3) + /sizeof(asn_DEF_csi_SSB_ResourceList_tags_3[0]), /* 2 */ + { &asn_OER_type_csi_SSB_ResourceList_constr_3, &asn_PER_type_csi_SSB_ResourceList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_csi_SSB_ResourceList_3, + 1, /* Single element */ + &asn_SPC_csi_SSB_ResourceList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CSI_SSB_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_SSB_ResourceSet, csi_SSB_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_SSB_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CSI_SSB_ResourceSet, csi_SSB_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_csi_SSB_ResourceList_3, + 0, + { &asn_OER_memb_csi_SSB_ResourceList_constr_3, &asn_PER_memb_csi_SSB_ResourceList_constr_3, memb_csi_SSB_ResourceList_constraint_1 }, + 0, 0, /* No default value */ + "csi-SSB-ResourceList" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_SSB_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CSI_SSB_ResourceSet_specs_1 = { + sizeof(struct CSI_SSB_ResourceSet), + offsetof(struct CSI_SSB_ResourceSet, _asn_ctx), + asn_MAP_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_CSI_SSB_ResourceSet = { + "CSI-SSB-ResourceSet", + "CSI-SSB-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_CSI_SSB_ResourceSet_tags_1, + sizeof(asn_DEF_CSI_SSB_ResourceSet_tags_1) + /sizeof(asn_DEF_CSI_SSB_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_CSI_SSB_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_SSB_ResourceSet_tags_1) + /sizeof(asn_DEF_CSI_SSB_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_SSB_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_CSI_SSB_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-SSB-ResourceSet.h b/src/codec_utils/RRC/CSI-SSB-ResourceSet.h new file mode 100644 index 000000000..8621a1c9a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_SSB_ResourceSet_H_ +#define _CSI_SSB_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-SSB-ResourceSetId.h" +#include "SSB-Index.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-SSB-ResourceSet */ +typedef struct CSI_SSB_ResourceSet { + CSI_SSB_ResourceSetId_t csi_SSB_ResourceSetId; + struct CSI_SSB_ResourceSet__csi_SSB_ResourceList { + A_SEQUENCE_OF(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; +} CSI_SSB_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_SSB_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_SSB_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_SSB_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_SSB_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-SSB-ResourceSetId.c b/src/codec_utils/RRC/CSI-SSB-ResourceSetId.c new file mode 100644 index 000000000..ed4e6108a --- /dev/null +++ b/src/codec_utils/RRC/CSI-SSB-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-SSB-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CSI_SSB_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CSI_SSB_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CSI_SSB_ResourceSetId = { + "CSI-SSB-ResourceSetId", + "CSI-SSB-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_CSI_SSB_ResourceSetId_tags_1, + sizeof(asn_DEF_CSI_SSB_ResourceSetId_tags_1) + /sizeof(asn_DEF_CSI_SSB_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_CSI_SSB_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_SSB_ResourceSetId_tags_1) + /sizeof(asn_DEF_CSI_SSB_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_SSB_ResourceSetId_constr_1, &asn_PER_type_CSI_SSB_ResourceSetId_constr_1, CSI_SSB_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CSI-SSB-ResourceSetId.h b/src/codec_utils/RRC/CSI-SSB-ResourceSetId.h new file mode 100644 index 000000000..728b989cc --- /dev/null +++ b/src/codec_utils/RRC/CSI-SSB-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_SSB_ResourceSetId_H_ +#define _CSI_SSB_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-SSB-ResourceSetId */ +typedef long CSI_SSB_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CSI_SSB_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CSI_SSB_ResourceSetId; +asn_struct_free_f CSI_SSB_ResourceSetId_free; +asn_struct_print_f CSI_SSB_ResourceSetId_print; +asn_constr_check_f CSI_SSB_ResourceSetId_constraint; +ber_type_decoder_f CSI_SSB_ResourceSetId_decode_ber; +der_type_encoder_f CSI_SSB_ResourceSetId_encode_der; +xer_type_decoder_f CSI_SSB_ResourceSetId_decode_xer; +xer_type_encoder_f CSI_SSB_ResourceSetId_encode_xer; +oer_type_decoder_f CSI_SSB_ResourceSetId_decode_oer; +oer_type_encoder_f CSI_SSB_ResourceSetId_encode_oer; +per_type_decoder_f CSI_SSB_ResourceSetId_decode_uper; +per_type_encoder_f CSI_SSB_ResourceSetId_encode_uper; +per_type_decoder_f CSI_SSB_ResourceSetId_decode_aper; +per_type_encoder_f CSI_SSB_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_SSB_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.c b/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.c new file mode 100644 index 000000000..f4b700894 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-SemiPersistentOnPUSCH-TriggerState.h" + +asn_TYPE_member_t asn_MBR_CSI_SemiPersistentOnPUSCH_TriggerState_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CSI_SemiPersistentOnPUSCH_TriggerState, associatedReportConfigInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedReportConfigInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CSI_SemiPersistentOnPUSCH_TriggerState_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedReportConfigInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1 = { + sizeof(struct CSI_SemiPersistentOnPUSCH_TriggerState), + offsetof(struct CSI_SemiPersistentOnPUSCH_TriggerState, _asn_ctx), + asn_MAP_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_CSI_SemiPersistentOnPUSCH_TriggerState = { + "CSI-SemiPersistentOnPUSCH-TriggerState", + "CSI-SemiPersistentOnPUSCH-TriggerState", + &asn_OP_SEQUENCE, + asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1, + sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1) + /sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[0]), /* 1 */ + asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1) + /sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CSI_SemiPersistentOnPUSCH_TriggerState_1, + 1, /* Elements count */ + &asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.h b/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerState.h new file mode 100644 index 000000000..e863ee4d7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_SemiPersistentOnPUSCH_TriggerState_H_ +#define _CSI_SemiPersistentOnPUSCH_TriggerState_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-ReportConfigId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CSI-SemiPersistentOnPUSCH-TriggerState */ +typedef struct CSI_SemiPersistentOnPUSCH_TriggerState { + CSI_ReportConfigId_t associatedReportConfigInfo; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_SemiPersistentOnPUSCH_TriggerState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState; +extern asn_SEQUENCE_specifics_t asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerState_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_SemiPersistentOnPUSCH_TriggerState_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_SemiPersistentOnPUSCH_TriggerState_H_ */ +#include diff --git a/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.c b/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.c new file mode 100644 index 000000000..d4cf9907b --- /dev/null +++ b/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CSI-SemiPersistentOnPUSCH-TriggerStateList.h" + +#include "CSI-SemiPersistentOnPUSCH-TriggerState.h" +static asn_oer_constraints_t asn_OER_type_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_CSI_SemiPersistentOnPUSCH_TriggerStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerState, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1 = { + sizeof(struct CSI_SemiPersistentOnPUSCH_TriggerStateList), + offsetof(struct CSI_SemiPersistentOnPUSCH_TriggerStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList = { + "CSI-SemiPersistentOnPUSCH-TriggerStateList", + "CSI-SemiPersistentOnPUSCH-TriggerStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1, + sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1) + /sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[0]), /* 1 */ + asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1) + /sizeof(asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList_tags_1[0]), /* 1 */ + { &asn_OER_type_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1, &asn_PER_type_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CSI_SemiPersistentOnPUSCH_TriggerStateList_1, + 1, /* Single element */ + &asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.h b/src/codec_utils/RRC/CSI-SemiPersistentOnPUSCH-TriggerStateList.h new file mode 100644 index 000000000..99ee968b2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ +#define _CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CSI_SemiPersistentOnPUSCH_TriggerState; + +/* CSI-SemiPersistentOnPUSCH-TriggerStateList */ +typedef struct CSI_SemiPersistentOnPUSCH_TriggerStateList { + A_SEQUENCE_OF(struct CSI_SemiPersistentOnPUSCH_TriggerState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CSI_SemiPersistentOnPUSCH_TriggerStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CSI_SemiPersistentOnPUSCH_TriggerStateList; +extern asn_SET_OF_specifics_t asn_SPC_CSI_SemiPersistentOnPUSCH_TriggerStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_CSI_SemiPersistentOnPUSCH_TriggerStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_CSI_SemiPersistentOnPUSCH_TriggerStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CSI_SemiPersistentOnPUSCH_TriggerStateList_H_ */ +#include diff --git a/src/codec_utils/RRC/CandidateServingFreqListNR.c b/src/codec_utils/RRC/CandidateServingFreqListNR.c new file mode 100644 index 000000000..63ee042e9 --- /dev/null +++ b/src/codec_utils/RRC/CandidateServingFreqListNR.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CandidateServingFreqListNR.h" + +static asn_oer_constraints_t asn_OER_type_CandidateServingFreqListNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_CandidateServingFreqListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CandidateServingFreqListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CandidateServingFreqListNR_specs_1 = { + sizeof(struct CandidateServingFreqListNR), + offsetof(struct CandidateServingFreqListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CandidateServingFreqListNR = { + "CandidateServingFreqListNR", + "CandidateServingFreqListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_CandidateServingFreqListNR_tags_1, + sizeof(asn_DEF_CandidateServingFreqListNR_tags_1) + /sizeof(asn_DEF_CandidateServingFreqListNR_tags_1[0]), /* 1 */ + asn_DEF_CandidateServingFreqListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_CandidateServingFreqListNR_tags_1) + /sizeof(asn_DEF_CandidateServingFreqListNR_tags_1[0]), /* 1 */ + { &asn_OER_type_CandidateServingFreqListNR_constr_1, &asn_PER_type_CandidateServingFreqListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CandidateServingFreqListNR_1, + 1, /* Single element */ + &asn_SPC_CandidateServingFreqListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CandidateServingFreqListNR.h b/src/codec_utils/RRC/CandidateServingFreqListNR.h new file mode 100644 index 000000000..a18d534de --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CandidateServingFreqListNR_H_ +#define _CandidateServingFreqListNR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CandidateServingFreqListNR */ +typedef struct CandidateServingFreqListNR { + A_SEQUENCE_OF(ARFCN_ValueNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CandidateServingFreqListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CandidateServingFreqListNR; +extern asn_SET_OF_specifics_t asn_SPC_CandidateServingFreqListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_CandidateServingFreqListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_CandidateServingFreqListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CandidateServingFreqListNR_H_ */ +#include diff --git a/src/codec_utils/RRC/CarrierFreqEUTRA.c b/src/codec_utils/RRC/CarrierFreqEUTRA.c new file mode 100644 index 000000000..d312202e2 --- /dev/null +++ b/src/codec_utils/RRC/CarrierFreqEUTRA.c @@ -0,0 +1,337 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CarrierFreqEUTRA.h" + +#include "EUTRA-MultiBandInfoList.h" +#include "EUTRA-FreqNeighCellList.h" +#include "EUTRA-FreqBlackCellList.h" +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_q_RxLevMin_constr_12 CC_NOTUSED = { + { 1, 0 } /* (-70..-22) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMin_constr_13 CC_NOTUSED = { + { 1, 0 } /* (-34..-3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p_MaxEUTRA_constr_14 CC_NOTUSED = { + { 1, 0 } /* (-30..33) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_threshX_Q_15[] = { + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA__threshX_Q, threshX_HighQ), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA__threshX_Q, threshX_LowQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowQ" + }, +}; +static const ber_tlv_tag_t asn_DEF_threshX_Q_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_threshX_Q_specs_15 = { + sizeof(struct CarrierFreqEUTRA__threshX_Q), + offsetof(struct CarrierFreqEUTRA__threshX_Q, _asn_ctx), + asn_MAP_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_threshX_Q_15 = { + "threshX-Q", + "threshX-Q", + &asn_OP_SEQUENCE, + asn_DEF_threshX_Q_tags_15, + sizeof(asn_DEF_threshX_Q_tags_15) + /sizeof(asn_DEF_threshX_Q_tags_15[0]) - 1, /* 1 */ + asn_DEF_threshX_Q_tags_15, /* Same as above */ + sizeof(asn_DEF_threshX_Q_tags_15) + /sizeof(asn_DEF_threshX_Q_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_threshX_Q_15, + 2, /* Elements count */ + &asn_SPC_threshX_Q_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CarrierFreqEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_POINTER, 3, offsetof(struct CarrierFreqEUTRA, eutra_multiBandInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_MultiBandInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-multiBandInfoList" + }, + { ATF_POINTER, 2, offsetof(struct CarrierFreqEUTRA, eutra_FreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_FreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-FreqNeighCellList" + }, + { ATF_POINTER, 1, offsetof(struct CarrierFreqEUTRA, eutra_BlackCellList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_FreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-BlackCellList" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, allowedMeasBandwidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_AllowedMeasBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedMeasBandwidth" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, presenceAntennaPort1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PresenceAntennaPort1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "presenceAntennaPort1" + }, + { ATF_POINTER, 2, offsetof(struct CarrierFreqEUTRA, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct CarrierFreqEUTRA, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, threshX_High), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-High" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, threshX_Low), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Low" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMin_constr_12, &asn_PER_memb_q_RxLevMin_constr_12, memb_q_RxLevMin_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_QualMin_constr_13, &asn_PER_memb_q_QualMin_constr_13, memb_q_QualMin_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierFreqEUTRA, p_MaxEUTRA), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p_MaxEUTRA_constr_14, &asn_PER_memb_p_MaxEUTRA_constr_14, memb_p_MaxEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "p-MaxEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct CarrierFreqEUTRA, threshX_Q), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_threshX_Q_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Q" + }, +}; +static const int asn_MAP_CarrierFreqEUTRA_oms_1[] = { 1, 2, 3, 6, 7, 13 }; +static const ber_tlv_tag_t asn_DEF_CarrierFreqEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CarrierFreqEUTRA_specs_1 = { + sizeof(struct CarrierFreqEUTRA), + offsetof(struct CarrierFreqEUTRA, _asn_ctx), + asn_MAP_CarrierFreqEUTRA_tag2el_1, + 14, /* Count of tags in the map */ + asn_MAP_CarrierFreqEUTRA_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CarrierFreqEUTRA = { + "CarrierFreqEUTRA", + "CarrierFreqEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_CarrierFreqEUTRA_tags_1, + sizeof(asn_DEF_CarrierFreqEUTRA_tags_1) + /sizeof(asn_DEF_CarrierFreqEUTRA_tags_1[0]), /* 1 */ + asn_DEF_CarrierFreqEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_CarrierFreqEUTRA_tags_1) + /sizeof(asn_DEF_CarrierFreqEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CarrierFreqEUTRA_1, + 14, /* Elements count */ + &asn_SPC_CarrierFreqEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CarrierFreqEUTRA.h b/src/codec_utils/RRC/CarrierFreqEUTRA.h new file mode 100644 index 000000000..b5805d6c4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CarrierFreqEUTRA_H_ +#define _CarrierFreqEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include "EUTRA-AllowedMeasBandwidth.h" +#include "EUTRA-PresenceAntennaPort1.h" +#include "CellReselectionPriority.h" +#include "CellReselectionSubPriority.h" +#include "ReselectionThreshold.h" +#include +#include "ReselectionThresholdQ.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_MultiBandInfoList; +struct EUTRA_FreqNeighCellList; +struct EUTRA_FreqBlackCellList; + +/* CarrierFreqEUTRA */ +typedef struct CarrierFreqEUTRA { + ARFCN_ValueEUTRA_t carrierFreq; + struct EUTRA_MultiBandInfoList *eutra_multiBandInfoList; /* OPTIONAL */ + struct EUTRA_FreqNeighCellList *eutra_FreqNeighCellList; /* OPTIONAL */ + struct EUTRA_FreqBlackCellList *eutra_BlackCellList; /* OPTIONAL */ + EUTRA_AllowedMeasBandwidth_t allowedMeasBandwidth; + EUTRA_PresenceAntennaPort1_t presenceAntennaPort1; + CellReselectionPriority_t *cellReselectionPriority; /* OPTIONAL */ + CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + ReselectionThreshold_t threshX_High; + ReselectionThreshold_t threshX_Low; + long q_RxLevMin; + long q_QualMin; + long p_MaxEUTRA; + struct CarrierFreqEUTRA__threshX_Q { + ReselectionThresholdQ_t threshX_HighQ; + 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; +} CarrierFreqEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CarrierFreqEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_CarrierFreqEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_CarrierFreqEUTRA_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CarrierFreqEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/CarrierFreqListEUTRA.c b/src/codec_utils/RRC/CarrierFreqListEUTRA.c new file mode 100644 index 000000000..20e13fe10 --- /dev/null +++ b/src/codec_utils/RRC/CarrierFreqListEUTRA.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CarrierFreqListEUTRA.h" + +#include "CarrierFreqEUTRA.h" +static asn_oer_constraints_t asn_OER_type_CarrierFreqListEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_CarrierFreqListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CarrierFreqEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CarrierFreqListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CarrierFreqListEUTRA_specs_1 = { + sizeof(struct CarrierFreqListEUTRA), + offsetof(struct CarrierFreqListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CarrierFreqListEUTRA = { + "CarrierFreqListEUTRA", + "CarrierFreqListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_CarrierFreqListEUTRA_tags_1, + sizeof(asn_DEF_CarrierFreqListEUTRA_tags_1) + /sizeof(asn_DEF_CarrierFreqListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_CarrierFreqListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_CarrierFreqListEUTRA_tags_1) + /sizeof(asn_DEF_CarrierFreqListEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_CarrierFreqListEUTRA_constr_1, &asn_PER_type_CarrierFreqListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CarrierFreqListEUTRA_1, + 1, /* Single element */ + &asn_SPC_CarrierFreqListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CarrierFreqListEUTRA.h b/src/codec_utils/RRC/CarrierFreqListEUTRA.h new file mode 100644 index 000000000..34fa5617a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CarrierFreqListEUTRA_H_ +#define _CarrierFreqListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CarrierFreqEUTRA; + +/* CarrierFreqListEUTRA */ +typedef struct CarrierFreqListEUTRA { + A_SEQUENCE_OF(struct CarrierFreqEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CarrierFreqListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CarrierFreqListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_CarrierFreqListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_CarrierFreqListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_CarrierFreqListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CarrierFreqListEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/CarrierInfoNR.c b/src/codec_utils/RRC/CarrierInfoNR.c new file mode 100644 index 000000000..8395ee955 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CarrierInfoNR.h" + +#include "SSB-MTC.h" +asn_TYPE_member_t asn_MBR_CarrierInfoNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CarrierInfoNR, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct CarrierInfoNR, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct CarrierInfoNR, smtc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_CarrierInfoNR_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CarrierInfoNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CarrierInfoNR_specs_1 = { + sizeof(struct CarrierInfoNR), + offsetof(struct CarrierInfoNR, _asn_ctx), + asn_MAP_CarrierInfoNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CarrierInfoNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CarrierInfoNR = { + "CarrierInfoNR", + "CarrierInfoNR", + &asn_OP_SEQUENCE, + asn_DEF_CarrierInfoNR_tags_1, + sizeof(asn_DEF_CarrierInfoNR_tags_1) + /sizeof(asn_DEF_CarrierInfoNR_tags_1[0]), /* 1 */ + asn_DEF_CarrierInfoNR_tags_1, /* Same as above */ + sizeof(asn_DEF_CarrierInfoNR_tags_1) + /sizeof(asn_DEF_CarrierInfoNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CarrierInfoNR_1, + 3, /* Elements count */ + &asn_SPC_CarrierInfoNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CarrierInfoNR.h b/src/codec_utils/RRC/CarrierInfoNR.h new file mode 100644 index 000000000..11634bbdd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CarrierInfoNR_H_ +#define _CarrierInfoNR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SSB_MTC; + +/* CarrierInfoNR */ +typedef struct CarrierInfoNR { + ARFCN_ValueNR_t carrierFreq; + SubcarrierSpacing_t ssbSubcarrierSpacing; + struct SSB_MTC *smtc; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CarrierInfoNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CarrierInfoNR; +extern asn_SEQUENCE_specifics_t asn_SPC_CarrierInfoNR_specs_1; +extern asn_TYPE_member_t asn_MBR_CarrierInfoNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CarrierInfoNR_H_ */ +#include diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.c b/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.c new file mode 100644 index 000000000..74c6aa534 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellAccessRelatedInfo-EUTRA-5GC.h" + +asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_EUTRA_5GC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_5GC, plmn_IdentityList_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentityList_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList-eutra-5gc" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_5GC, trackingAreaCode_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode-eutra-5gc" + }, + { ATF_POINTER, 1, offsetof(struct CellAccessRelatedInfo_EUTRA_5GC, ranac_5gc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranac-5gc" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_5GC, cellIdentity_eutra_5gc), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CellIdentity_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity-eutra-5gc" + }, +}; +static const int asn_MAP_CellAccessRelatedInfo_EUTRA_5GC_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellAccessRelatedInfo_EUTRA_5GC_specs_1 = { + sizeof(struct CellAccessRelatedInfo_EUTRA_5GC), + offsetof(struct CellAccessRelatedInfo_EUTRA_5GC, _asn_ctx), + asn_MAP_CellAccessRelatedInfo_EUTRA_5GC_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_CellAccessRelatedInfo_EUTRA_5GC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo_EUTRA_5GC = { + "CellAccessRelatedInfo-EUTRA-5GC", + "CellAccessRelatedInfo-EUTRA-5GC", + &asn_OP_SEQUENCE, + asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1, + sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1[0]), /* 1 */ + asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1, /* Same as above */ + sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_5GC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellAccessRelatedInfo_EUTRA_5GC_1, + 4, /* Elements count */ + &asn_SPC_CellAccessRelatedInfo_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.h b/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-5GC.h new file mode 100644 index 000000000..05585f87f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellAccessRelatedInfo_EUTRA_5GC_H_ +#define _CellAccessRelatedInfo_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-IdentityList-EUTRA-5GC.h" +#include "TrackingAreaCode.h" +#include "RAN-AreaCode.h" +#include "CellIdentity-EUTRA-5GC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellAccessRelatedInfo-EUTRA-5GC */ +typedef struct CellAccessRelatedInfo_EUTRA_5GC { + PLMN_IdentityList_EUTRA_5GC_t plmn_IdentityList_eutra_5gc; + TrackingAreaCode_t trackingAreaCode_eutra_5gc; + RAN_AreaCode_t *ranac_5gc; /* OPTIONAL */ + CellIdentity_EUTRA_5GC_t cellIdentity_eutra_5gc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellAccessRelatedInfo_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo_EUTRA_5GC; +extern asn_SEQUENCE_specifics_t asn_SPC_CellAccessRelatedInfo_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_EUTRA_5GC_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellAccessRelatedInfo_EUTRA_5GC_H_ */ +#include diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.c b/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.c new file mode 100644 index 000000000..c554a9542 --- /dev/null +++ b/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellAccessRelatedInfo-EUTRA-EPC.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_trackingAreaCode_eutra_epc_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_cellIdentity_eutra_epc_constr_4 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; +static asn_per_constraints_t asn_PER_memb_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_CellAccessRelatedInfo_EUTRA_EPC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_EPC, plmn_IdentityList_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentityList_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList-eutra-epc" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_EPC, trackingAreaCode_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_trackingAreaCode_eutra_epc_constr_3, &asn_PER_memb_trackingAreaCode_eutra_epc_constr_3, memb_trackingAreaCode_eutra_epc_constraint_1 }, + 0, 0, /* No default value */ + "trackingAreaCode-eutra-epc" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo_EUTRA_EPC, cellIdentity_eutra_epc), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_cellIdentity_eutra_epc_constr_4, &asn_PER_memb_cellIdentity_eutra_epc_constr_4, memb_cellIdentity_eutra_epc_constraint_1 }, + 0, 0, /* No default value */ + "cellIdentity-eutra-epc" + }, +}; +static const ber_tlv_tag_t asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellAccessRelatedInfo_EUTRA_EPC_specs_1 = { + sizeof(struct CellAccessRelatedInfo_EUTRA_EPC), + offsetof(struct CellAccessRelatedInfo_EUTRA_EPC, _asn_ctx), + asn_MAP_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_CellAccessRelatedInfo_EUTRA_EPC = { + "CellAccessRelatedInfo-EUTRA-EPC", + "CellAccessRelatedInfo-EUTRA-EPC", + &asn_OP_SEQUENCE, + asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1, + sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1[0]), /* 1 */ + asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1, /* Same as above */ + sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_EUTRA_EPC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellAccessRelatedInfo_EUTRA_EPC_1, + 3, /* Elements count */ + &asn_SPC_CellAccessRelatedInfo_EUTRA_EPC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.h b/src/codec_utils/RRC/CellAccessRelatedInfo-EUTRA-EPC.h new file mode 100644 index 000000000..9b3a255b4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellAccessRelatedInfo_EUTRA_EPC_H_ +#define _CellAccessRelatedInfo_EUTRA_EPC_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-IdentityList-EUTRA-EPC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellAccessRelatedInfo-EUTRA-EPC */ +typedef struct CellAccessRelatedInfo_EUTRA_EPC { + 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; +} CellAccessRelatedInfo_EUTRA_EPC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo_EUTRA_EPC; +extern asn_SEQUENCE_specifics_t asn_SPC_CellAccessRelatedInfo_EUTRA_EPC_specs_1; +extern asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_EUTRA_EPC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellAccessRelatedInfo_EUTRA_EPC_H_ */ +#include diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo.c b/src/codec_utils/RRC/CellAccessRelatedInfo.c new file mode 100644 index 000000000..193dec2c9 --- /dev/null +++ b/src/codec_utils/RRC/CellAccessRelatedInfo.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellAccessRelatedInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_cellReservedForOtherUse_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_cellReservedForOtherUse_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_cellReservedForOtherUse_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cellReservedForOtherUse_specs_3 = { + asn_MAP_cellReservedForOtherUse_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cellReservedForOtherUse_3 = { + "cellReservedForOtherUse", + "cellReservedForOtherUse", + &asn_OP_NativeEnumerated, + asn_DEF_cellReservedForOtherUse_tags_3, + sizeof(asn_DEF_cellReservedForOtherUse_tags_3) + /sizeof(asn_DEF_cellReservedForOtherUse_tags_3[0]) - 1, /* 1 */ + asn_DEF_cellReservedForOtherUse_tags_3, /* Same as above */ + sizeof(asn_DEF_cellReservedForOtherUse_tags_3) + /sizeof(asn_DEF_cellReservedForOtherUse_tags_3[0]), /* 2 */ + { &asn_OER_type_cellReservedForOtherUse_constr_3, &asn_PER_type_cellReservedForOtherUse_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cellReservedForOtherUse_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo, plmn_IdentityList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentityInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-IdentityList" + }, + { ATF_POINTER, 1, offsetof(struct CellAccessRelatedInfo, cellReservedForOtherUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cellReservedForOtherUse_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReservedForOtherUse" + }, +}; +static const int asn_MAP_CellAccessRelatedInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_CellAccessRelatedInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellAccessRelatedInfo_specs_1 = { + sizeof(struct CellAccessRelatedInfo), + offsetof(struct CellAccessRelatedInfo, _asn_ctx), + asn_MAP_CellAccessRelatedInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_CellAccessRelatedInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo = { + "CellAccessRelatedInfo", + "CellAccessRelatedInfo", + &asn_OP_SEQUENCE, + asn_DEF_CellAccessRelatedInfo_tags_1, + sizeof(asn_DEF_CellAccessRelatedInfo_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_tags_1[0]), /* 1 */ + asn_DEF_CellAccessRelatedInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_CellAccessRelatedInfo_tags_1) + /sizeof(asn_DEF_CellAccessRelatedInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellAccessRelatedInfo_1, + 2, /* Elements count */ + &asn_SPC_CellAccessRelatedInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellAccessRelatedInfo.h b/src/codec_utils/RRC/CellAccessRelatedInfo.h new file mode 100644 index 000000000..7cd1df40b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellAccessRelatedInfo_H_ +#define _CellAccessRelatedInfo_H_ + + +#include + +/* Including external dependencies */ +#include "PLMN-IdentityInfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellAccessRelatedInfo__cellReservedForOtherUse { + CellAccessRelatedInfo__cellReservedForOtherUse_true = 0 +} e_CellAccessRelatedInfo__cellReservedForOtherUse; + +/* CellAccessRelatedInfo */ +typedef struct CellAccessRelatedInfo { + 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; +} CellAccessRelatedInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_cellReservedForOtherUse_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_CellAccessRelatedInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellAccessRelatedInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/CellGroupConfig.c b/src/codec_utils/RRC/CellGroupConfig.c new file mode 100644 index 000000000..a4e56d35b --- /dev/null +++ b/src/codec_utils/RRC/CellGroupConfig.c @@ -0,0 +1,545 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellGroupConfig.h" + +#include "MAC-CellGroupConfig.h" +#include "PhysicalCellGroupConfig.h" +#include "SpCellConfig.h" +#include "RLC-BearerConfig.h" +#include "SCellConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_rlc_BearerToAddModList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rlc_BearerToReleaseList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sCellToAddModList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sCellToReleaseList_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportUplinkTxDirectCurrent_v1530_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_rlc_BearerToAddModList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rlc_BearerToReleaseList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCellToAddModList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCellToReleaseList_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_memb_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_rlc_BearerToAddModList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RLC_BearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rlc_BearerToAddModList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rlc_BearerToAddModList_specs_3 = { + sizeof(struct CellGroupConfig__rlc_BearerToAddModList), + offsetof(struct CellGroupConfig__rlc_BearerToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rlc_BearerToAddModList_3 = { + "rlc-BearerToAddModList", + "rlc-BearerToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rlc_BearerToAddModList_tags_3, + sizeof(asn_DEF_rlc_BearerToAddModList_tags_3) + /sizeof(asn_DEF_rlc_BearerToAddModList_tags_3[0]) - 1, /* 1 */ + asn_DEF_rlc_BearerToAddModList_tags_3, /* Same as above */ + sizeof(asn_DEF_rlc_BearerToAddModList_tags_3) + /sizeof(asn_DEF_rlc_BearerToAddModList_tags_3[0]), /* 2 */ + { &asn_OER_type_rlc_BearerToAddModList_constr_3, &asn_PER_type_rlc_BearerToAddModList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_rlc_BearerToAddModList_3, + 1, /* Single element */ + &asn_SPC_rlc_BearerToAddModList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rlc_BearerToReleaseList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rlc_BearerToReleaseList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rlc_BearerToReleaseList_specs_5 = { + sizeof(struct CellGroupConfig__rlc_BearerToReleaseList), + offsetof(struct CellGroupConfig__rlc_BearerToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rlc_BearerToReleaseList_5 = { + "rlc-BearerToReleaseList", + "rlc-BearerToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rlc_BearerToReleaseList_tags_5, + sizeof(asn_DEF_rlc_BearerToReleaseList_tags_5) + /sizeof(asn_DEF_rlc_BearerToReleaseList_tags_5[0]) - 1, /* 1 */ + asn_DEF_rlc_BearerToReleaseList_tags_5, /* Same as above */ + sizeof(asn_DEF_rlc_BearerToReleaseList_tags_5) + /sizeof(asn_DEF_rlc_BearerToReleaseList_tags_5[0]), /* 2 */ + { &asn_OER_type_rlc_BearerToReleaseList_constr_5, &asn_PER_type_rlc_BearerToReleaseList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_rlc_BearerToReleaseList_5, + 1, /* Single element */ + &asn_SPC_rlc_BearerToReleaseList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCellToAddModList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCellToAddModList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCellToAddModList_specs_10 = { + sizeof(struct CellGroupConfig__sCellToAddModList), + offsetof(struct CellGroupConfig__sCellToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sCellToAddModList_10 = { + "sCellToAddModList", + "sCellToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCellToAddModList_tags_10, + sizeof(asn_DEF_sCellToAddModList_tags_10) + /sizeof(asn_DEF_sCellToAddModList_tags_10[0]) - 1, /* 1 */ + asn_DEF_sCellToAddModList_tags_10, /* Same as above */ + sizeof(asn_DEF_sCellToAddModList_tags_10) + /sizeof(asn_DEF_sCellToAddModList_tags_10[0]), /* 2 */ + { &asn_OER_type_sCellToAddModList_constr_10, &asn_PER_type_sCellToAddModList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_sCellToAddModList_10, + 1, /* Single element */ + &asn_SPC_sCellToAddModList_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCellToReleaseList_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCellToReleaseList_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCellToReleaseList_specs_12 = { + sizeof(struct CellGroupConfig__sCellToReleaseList), + offsetof(struct CellGroupConfig__sCellToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sCellToReleaseList_12 = { + "sCellToReleaseList", + "sCellToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCellToReleaseList_tags_12, + sizeof(asn_DEF_sCellToReleaseList_tags_12) + /sizeof(asn_DEF_sCellToReleaseList_tags_12[0]) - 1, /* 1 */ + asn_DEF_sCellToReleaseList_tags_12, /* Same as above */ + sizeof(asn_DEF_sCellToReleaseList_tags_12) + /sizeof(asn_DEF_sCellToReleaseList_tags_12[0]), /* 2 */ + { &asn_OER_type_sCellToReleaseList_constr_12, &asn_PER_type_sCellToReleaseList_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_sCellToReleaseList_12, + 1, /* Single element */ + &asn_SPC_sCellToReleaseList_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_reportUplinkTxDirectCurrent_v1530_value2enum_16[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_reportUplinkTxDirectCurrent_v1530_enum2value_16[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reportUplinkTxDirectCurrent_v1530_specs_16 = { + asn_MAP_reportUplinkTxDirectCurrent_v1530_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportUplinkTxDirectCurrent_v1530_16 = { + "reportUplinkTxDirectCurrent-v1530", + "reportUplinkTxDirectCurrent-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16, + sizeof(asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16) + /sizeof(asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16[0]) - 1, /* 1 */ + asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16, /* Same as above */ + sizeof(asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16) + /sizeof(asn_DEF_reportUplinkTxDirectCurrent_v1530_tags_16[0]), /* 2 */ + { &asn_OER_type_reportUplinkTxDirectCurrent_v1530_constr_16, &asn_PER_type_reportUplinkTxDirectCurrent_v1530_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportUplinkTxDirectCurrent_v1530_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_15[] = { + { ATF_POINTER, 1, offsetof(struct CellGroupConfig__ext1, reportUplinkTxDirectCurrent_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportUplinkTxDirectCurrent_v1530_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportUplinkTxDirectCurrent-v1530" + }, +}; +static const int asn_MAP_ext1_oms_15[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_15[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportUplinkTxDirectCurrent-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_15 = { + sizeof(struct CellGroupConfig__ext1), + offsetof(struct CellGroupConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_15, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_15 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_15, + sizeof(asn_DEF_ext1_tags_15) + /sizeof(asn_DEF_ext1_tags_15[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_15, /* Same as above */ + sizeof(asn_DEF_ext1_tags_15) + /sizeof(asn_DEF_ext1_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_15, + 1, /* Elements count */ + &asn_SPC_ext1_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_CellGroupConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellGroupConfig, cellGroupId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroupId" + }, + { ATF_POINTER, 8, offsetof(struct CellGroupConfig, rlc_BearerToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rlc_BearerToAddModList_3, + 0, + { &asn_OER_memb_rlc_BearerToAddModList_constr_3, &asn_PER_memb_rlc_BearerToAddModList_constr_3, memb_rlc_BearerToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rlc-BearerToAddModList" + }, + { ATF_POINTER, 7, offsetof(struct CellGroupConfig, rlc_BearerToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_rlc_BearerToReleaseList_5, + 0, + { &asn_OER_memb_rlc_BearerToReleaseList_constr_5, &asn_PER_memb_rlc_BearerToReleaseList_constr_5, memb_rlc_BearerToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rlc-BearerToReleaseList" + }, + { ATF_POINTER, 6, offsetof(struct CellGroupConfig, mac_CellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MAC_CellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-CellGroupConfig" + }, + { ATF_POINTER, 5, offsetof(struct CellGroupConfig, physicalCellGroupConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysicalCellGroupConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physicalCellGroupConfig" + }, + { ATF_POINTER, 4, offsetof(struct CellGroupConfig, spCellConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfig" + }, + { ATF_POINTER, 3, offsetof(struct CellGroupConfig, sCellToAddModList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_sCellToAddModList_10, + 0, + { &asn_OER_memb_sCellToAddModList_constr_10, &asn_PER_memb_sCellToAddModList_constr_10, memb_sCellToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sCellToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct CellGroupConfig, sCellToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_sCellToReleaseList_12, + 0, + { &asn_OER_memb_sCellToReleaseList_constr_12, &asn_PER_memb_sCellToReleaseList_constr_12, memb_sCellToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sCellToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct CellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_ext1_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_CellGroupConfig_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_CellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellGroupConfig_specs_1 = { + sizeof(struct CellGroupConfig), + offsetof(struct CellGroupConfig, _asn_ctx), + asn_MAP_CellGroupConfig_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_CellGroupConfig_oms_1, /* Optional members */ + 7, 1, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CellGroupConfig = { + "CellGroupConfig", + "CellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_CellGroupConfig_tags_1, + sizeof(asn_DEF_CellGroupConfig_tags_1) + /sizeof(asn_DEF_CellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_CellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CellGroupConfig_tags_1) + /sizeof(asn_DEF_CellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellGroupConfig_1, + 9, /* Elements count */ + &asn_SPC_CellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellGroupConfig.h b/src/codec_utils/RRC/CellGroupConfig.h new file mode 100644 index 000000000..a159f2b79 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellGroupConfig_H_ +#define _CellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include "CellGroupId.h" +#include +#include +#include "LogicalChannelIdentity.h" +#include "SCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530 { + CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530_true = 0 +} e_CellGroupConfig__ext1__reportUplinkTxDirectCurrent_v1530; + +/* Forward declarations */ +struct MAC_CellGroupConfig; +struct PhysicalCellGroupConfig; +struct SpCellConfig; +struct RLC_BearerConfig; +struct SCellConfig; + +/* CellGroupConfig */ +typedef struct CellGroupConfig { + CellGroupId_t cellGroupId; + struct CellGroupConfig__rlc_BearerToAddModList { + A_SEQUENCE_OF(struct RLC_BearerConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rlc_BearerToAddModList; + struct CellGroupConfig__rlc_BearerToReleaseList { + A_SEQUENCE_OF(LogicalChannelIdentity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rlc_BearerToReleaseList; + struct MAC_CellGroupConfig *mac_CellGroupConfig; /* OPTIONAL */ + struct PhysicalCellGroupConfig *physicalCellGroupConfig; /* OPTIONAL */ + struct SpCellConfig *spCellConfig; /* OPTIONAL */ + struct CellGroupConfig__sCellToAddModList { + A_SEQUENCE_OF(struct SCellConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCellToAddModList; + struct CellGroupConfig__sCellToReleaseList { + A_SEQUENCE_OF(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 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; +} CellGroupConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportUplinkTxDirectCurrent_v1530_16; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CellGroupConfig; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellGroupConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/CellGroupId.c b/src/codec_utils/RRC/CellGroupId.c new file mode 100644 index 000000000..b74b70fcd --- /dev/null +++ b/src/codec_utils/RRC/CellGroupId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellGroupId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CellGroupId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CellGroupId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellGroupId = { + "CellGroupId", + "CellGroupId", + &asn_OP_NativeInteger, + asn_DEF_CellGroupId_tags_1, + sizeof(asn_DEF_CellGroupId_tags_1) + /sizeof(asn_DEF_CellGroupId_tags_1[0]), /* 1 */ + asn_DEF_CellGroupId_tags_1, /* Same as above */ + sizeof(asn_DEF_CellGroupId_tags_1) + /sizeof(asn_DEF_CellGroupId_tags_1[0]), /* 1 */ + { &asn_OER_type_CellGroupId_constr_1, &asn_PER_type_CellGroupId_constr_1, CellGroupId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CellGroupId.h b/src/codec_utils/RRC/CellGroupId.h new file mode 100644 index 000000000..1fb0375e7 --- /dev/null +++ b/src/codec_utils/RRC/CellGroupId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellGroupId_H_ +#define _CellGroupId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellGroupId */ +typedef long CellGroupId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellGroupId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellGroupId; +asn_struct_free_f CellGroupId_free; +asn_struct_print_f CellGroupId_print; +asn_constr_check_f CellGroupId_constraint; +ber_type_decoder_f CellGroupId_decode_ber; +der_type_encoder_f CellGroupId_encode_der; +xer_type_decoder_f CellGroupId_decode_xer; +xer_type_encoder_f CellGroupId_encode_xer; +oer_type_decoder_f CellGroupId_decode_oer; +oer_type_encoder_f CellGroupId_encode_oer; +per_type_decoder_f CellGroupId_decode_uper; +per_type_encoder_f CellGroupId_encode_uper; +per_type_decoder_f CellGroupId_decode_aper; +per_type_encoder_f CellGroupId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellGroupId_H_ */ +#include diff --git a/src/codec_utils/RRC/CellIdentity-EUTRA-5GC.c b/src/codec_utils/RRC/CellIdentity-EUTRA-5GC.c new file mode 100644 index 000000000..f9dd18075 --- /dev/null +++ b/src/codec_utils/RRC/CellIdentity-EUTRA-5GC.c @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellIdentity-EUTRA-5GC.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_cellIdentity_EUTRA_constr_2 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_cellId_index_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_CellIdentity_EUTRA_5GC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_CellIdentity_EUTRA_5GC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellIdentity_EUTRA_5GC, choice.cellIdentity_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_cellIdentity_EUTRA_constr_2, &asn_PER_memb_cellIdentity_EUTRA_constr_2, memb_cellIdentity_EUTRA_constraint_1 }, + 0, 0, /* No default value */ + "cellIdentity-EUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellIdentity_EUTRA_5GC, choice.cellId_index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cellId_index_constr_3, &asn_PER_memb_cellId_index_constr_3, memb_cellId_index_constraint_1 }, + 0, 0, /* No default value */ + "cellId-index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellIdentity_EUTRA_5GC_specs_1 = { + sizeof(struct CellIdentity_EUTRA_5GC), + offsetof(struct CellIdentity_EUTRA_5GC, _asn_ctx), + offsetof(struct CellIdentity_EUTRA_5GC, present), + sizeof(((struct CellIdentity_EUTRA_5GC *)0)->present), + asn_MAP_CellIdentity_EUTRA_5GC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_CellIdentity_EUTRA_5GC_constr_1, &asn_PER_type_CellIdentity_EUTRA_5GC_constr_1, CHOICE_constraint }, + asn_MBR_CellIdentity_EUTRA_5GC_1, + 2, /* Elements count */ + &asn_SPC_CellIdentity_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellIdentity-EUTRA-5GC.h b/src/codec_utils/RRC/CellIdentity-EUTRA-5GC.h new file mode 100644 index 000000000..58747f900 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellIdentity_EUTRA_5GC_H_ +#define _CellIdentity_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellIdentity_EUTRA_5GC_PR { + CellIdentity_EUTRA_5GC_PR_NOTHING, /* No components present */ + CellIdentity_EUTRA_5GC_PR_cellIdentity_EUTRA, + CellIdentity_EUTRA_5GC_PR_cellId_index +} CellIdentity_EUTRA_5GC_PR; + +/* CellIdentity-EUTRA-5GC */ +typedef struct CellIdentity_EUTRA_5GC { + CellIdentity_EUTRA_5GC_PR present; + union 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; +} CellIdentity_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellIdentity_EUTRA_5GC; +extern asn_CHOICE_specifics_t asn_SPC_CellIdentity_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_CellIdentity_EUTRA_5GC_1[2]; +extern asn_per_constraints_t asn_PER_type_CellIdentity_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellIdentity_EUTRA_5GC_H_ */ +#include diff --git a/src/codec_utils/RRC/CellIdentity.c b/src/codec_utils/RRC/CellIdentity.c new file mode 100644 index 000000000..a5337be4f --- /dev/null +++ b/src/codec_utils/RRC/CellIdentity.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellIdentity.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CellIdentity_constr_1 CC_NOTUSED = { + { 0, 0 }, + 36 /* (SIZE(36..36)) */}; +asn_per_constraints_t asn_PER_type_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_CellIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellIdentity = { + "CellIdentity", + "CellIdentity", + &asn_OP_BIT_STRING, + asn_DEF_CellIdentity_tags_1, + sizeof(asn_DEF_CellIdentity_tags_1) + /sizeof(asn_DEF_CellIdentity_tags_1[0]), /* 1 */ + asn_DEF_CellIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_CellIdentity_tags_1) + /sizeof(asn_DEF_CellIdentity_tags_1[0]), /* 1 */ + { &asn_OER_type_CellIdentity_constr_1, &asn_PER_type_CellIdentity_constr_1, CellIdentity_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellIdentity.h b/src/codec_utils/RRC/CellIdentity.h new file mode 100644 index 000000000..5c9e2a5ff --- /dev/null +++ b/src/codec_utils/RRC/CellIdentity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellIdentity_H_ +#define _CellIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellIdentity */ +typedef BIT_STRING_t CellIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellIdentity; +asn_struct_free_f CellIdentity_free; +asn_struct_print_f CellIdentity_print; +asn_constr_check_f CellIdentity_constraint; +ber_type_decoder_f CellIdentity_decode_ber; +der_type_encoder_f CellIdentity_encode_der; +xer_type_decoder_f CellIdentity_decode_xer; +xer_type_encoder_f CellIdentity_encode_xer; +oer_type_decoder_f CellIdentity_decode_oer; +oer_type_encoder_f CellIdentity_encode_oer; +per_type_decoder_f CellIdentity_decode_uper; +per_type_encoder_f CellIdentity_encode_uper; +per_type_decoder_f CellIdentity_decode_aper; +per_type_encoder_f CellIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellIdentity_H_ */ +#include diff --git a/src/codec_utils/RRC/CellReselectionPriorities.c b/src/codec_utils/RRC/CellReselectionPriorities.c new file mode 100644 index 000000000..aba6638af --- /dev/null +++ b/src/codec_utils/RRC/CellReselectionPriorities.c @@ -0,0 +1,135 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellReselectionPriorities.h" + +#include "FreqPriorityListEUTRA.h" +#include "FreqPriorityListNR.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_t320_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_t320_specs_4 = { + asn_MAP_t320_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t320_4 = { + "t320", + "t320", + &asn_OP_NativeEnumerated, + asn_DEF_t320_tags_4, + sizeof(asn_DEF_t320_tags_4) + /sizeof(asn_DEF_t320_tags_4[0]) - 1, /* 1 */ + asn_DEF_t320_tags_4, /* Same as above */ + sizeof(asn_DEF_t320_tags_4) + /sizeof(asn_DEF_t320_tags_4[0]), /* 2 */ + { &asn_OER_type_t320_constr_4, &asn_PER_type_t320_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t320_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CellReselectionPriorities_1[] = { + { ATF_POINTER, 3, offsetof(struct CellReselectionPriorities, freqPriorityListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqPriorityListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqPriorityListEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct CellReselectionPriorities, freqPriorityListNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqPriorityListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqPriorityListNR" + }, + { ATF_POINTER, 1, offsetof(struct CellReselectionPriorities, t320), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t320_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t320" + }, +}; +static const int asn_MAP_CellReselectionPriorities_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_CellReselectionPriorities_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellReselectionPriorities_specs_1 = { + sizeof(struct CellReselectionPriorities), + offsetof(struct CellReselectionPriorities, _asn_ctx), + asn_MAP_CellReselectionPriorities_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CellReselectionPriorities_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CellReselectionPriorities = { + "CellReselectionPriorities", + "CellReselectionPriorities", + &asn_OP_SEQUENCE, + asn_DEF_CellReselectionPriorities_tags_1, + sizeof(asn_DEF_CellReselectionPriorities_tags_1) + /sizeof(asn_DEF_CellReselectionPriorities_tags_1[0]), /* 1 */ + asn_DEF_CellReselectionPriorities_tags_1, /* Same as above */ + sizeof(asn_DEF_CellReselectionPriorities_tags_1) + /sizeof(asn_DEF_CellReselectionPriorities_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellReselectionPriorities_1, + 3, /* Elements count */ + &asn_SPC_CellReselectionPriorities_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellReselectionPriorities.h b/src/codec_utils/RRC/CellReselectionPriorities.h new file mode 100644 index 000000000..680947880 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellReselectionPriorities_H_ +#define _CellReselectionPriorities_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellReselectionPriorities__t320 { + CellReselectionPriorities__t320_min5 = 0, + CellReselectionPriorities__t320_min10 = 1, + CellReselectionPriorities__t320_min20 = 2, + CellReselectionPriorities__t320_min30 = 3, + CellReselectionPriorities__t320_min60 = 4, + CellReselectionPriorities__t320_min120 = 5, + CellReselectionPriorities__t320_min180 = 6, + CellReselectionPriorities__t320_spare1 = 7 +} e_CellReselectionPriorities__t320; + +/* Forward declarations */ +struct FreqPriorityListEUTRA; +struct FreqPriorityListNR; + +/* CellReselectionPriorities */ +typedef struct CellReselectionPriorities { + struct FreqPriorityListEUTRA *freqPriorityListEUTRA; /* OPTIONAL */ + struct 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; +} CellReselectionPriorities_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_t320_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CellReselectionPriorities; +extern asn_SEQUENCE_specifics_t asn_SPC_CellReselectionPriorities_specs_1; +extern asn_TYPE_member_t asn_MBR_CellReselectionPriorities_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellReselectionPriorities_H_ */ +#include diff --git a/src/codec_utils/RRC/CellReselectionPriority.c b/src/codec_utils/RRC/CellReselectionPriority.c new file mode 100644 index 000000000..2ebee6221 --- /dev/null +++ b/src/codec_utils/RRC/CellReselectionPriority.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellReselectionPriority.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_CellReselectionPriority_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_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_CellReselectionPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellReselectionPriority = { + "CellReselectionPriority", + "CellReselectionPriority", + &asn_OP_NativeInteger, + asn_DEF_CellReselectionPriority_tags_1, + sizeof(asn_DEF_CellReselectionPriority_tags_1) + /sizeof(asn_DEF_CellReselectionPriority_tags_1[0]), /* 1 */ + asn_DEF_CellReselectionPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_CellReselectionPriority_tags_1) + /sizeof(asn_DEF_CellReselectionPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_CellReselectionPriority_constr_1, &asn_PER_type_CellReselectionPriority_constr_1, CellReselectionPriority_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/CellReselectionPriority.h b/src/codec_utils/RRC/CellReselectionPriority.h new file mode 100644 index 000000000..b7d02bb40 --- /dev/null +++ b/src/codec_utils/RRC/CellReselectionPriority.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellReselectionPriority_H_ +#define _CellReselectionPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellReselectionPriority */ +typedef long CellReselectionPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellReselectionPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellReselectionPriority; +asn_struct_free_f CellReselectionPriority_free; +asn_struct_print_f CellReselectionPriority_print; +asn_constr_check_f CellReselectionPriority_constraint; +ber_type_decoder_f CellReselectionPriority_decode_ber; +der_type_encoder_f CellReselectionPriority_encode_der; +xer_type_decoder_f CellReselectionPriority_decode_xer; +xer_type_encoder_f CellReselectionPriority_encode_xer; +oer_type_decoder_f CellReselectionPriority_decode_oer; +oer_type_encoder_f CellReselectionPriority_encode_oer; +per_type_decoder_f CellReselectionPriority_decode_uper; +per_type_encoder_f CellReselectionPriority_encode_uper; +per_type_decoder_f CellReselectionPriority_decode_aper; +per_type_encoder_f CellReselectionPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellReselectionPriority_H_ */ +#include diff --git a/src/codec_utils/RRC/CellReselectionSubPriority.c b/src/codec_utils/RRC/CellReselectionSubPriority.c new file mode 100644 index 000000000..447c168b7 --- /dev/null +++ b/src/codec_utils/RRC/CellReselectionSubPriority.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellReselectionSubPriority.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CellReselectionSubPriority_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_CellReselectionSubPriority_value2enum_1[] = { + { 0, 5, "oDot2" }, + { 1, 5, "oDot4" }, + { 2, 5, "oDot6" }, + { 3, 5, "oDot8" } +}; +static const unsigned int asn_MAP_CellReselectionSubPriority_enum2value_1[] = { + 0, /* oDot2(0) */ + 1, /* oDot4(1) */ + 2, /* oDot6(2) */ + 3 /* oDot8(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_CellReselectionSubPriority_specs_1 = { + asn_MAP_CellReselectionSubPriority_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_CellReselectionSubPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CellReselectionSubPriority = { + "CellReselectionSubPriority", + "CellReselectionSubPriority", + &asn_OP_NativeEnumerated, + asn_DEF_CellReselectionSubPriority_tags_1, + sizeof(asn_DEF_CellReselectionSubPriority_tags_1) + /sizeof(asn_DEF_CellReselectionSubPriority_tags_1[0]), /* 1 */ + asn_DEF_CellReselectionSubPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_CellReselectionSubPriority_tags_1) + /sizeof(asn_DEF_CellReselectionSubPriority_tags_1[0]), /* 1 */ + { &asn_OER_type_CellReselectionSubPriority_constr_1, &asn_PER_type_CellReselectionSubPriority_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CellReselectionSubPriority_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellReselectionSubPriority.h b/src/codec_utils/RRC/CellReselectionSubPriority.h new file mode 100644 index 000000000..0da1a5cff --- /dev/null +++ b/src/codec_utils/RRC/CellReselectionSubPriority.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellReselectionSubPriority_H_ +#define _CellReselectionSubPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellReselectionSubPriority { + CellReselectionSubPriority_oDot2 = 0, + CellReselectionSubPriority_oDot4 = 1, + CellReselectionSubPriority_oDot6 = 2, + CellReselectionSubPriority_oDot8 = 3 +} e_CellReselectionSubPriority; + +/* CellReselectionSubPriority */ +typedef long CellReselectionSubPriority_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CellReselectionSubPriority_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CellReselectionSubPriority; +extern const asn_INTEGER_specifics_t asn_SPC_CellReselectionSubPriority_specs_1; +asn_struct_free_f CellReselectionSubPriority_free; +asn_struct_print_f CellReselectionSubPriority_print; +asn_constr_check_f CellReselectionSubPriority_constraint; +ber_type_decoder_f CellReselectionSubPriority_decode_ber; +der_type_encoder_f CellReselectionSubPriority_encode_der; +xer_type_decoder_f CellReselectionSubPriority_decode_xer; +xer_type_encoder_f CellReselectionSubPriority_encode_xer; +oer_type_decoder_f CellReselectionSubPriority_decode_oer; +oer_type_encoder_f CellReselectionSubPriority_encode_oer; +per_type_decoder_f CellReselectionSubPriority_decode_uper; +per_type_encoder_f CellReselectionSubPriority_encode_uper; +per_type_decoder_f CellReselectionSubPriority_decode_aper; +per_type_encoder_f CellReselectionSubPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellReselectionSubPriority_H_ */ +#include diff --git a/src/codec_utils/RRC/CellsToAddMod.c b/src/codec_utils/RRC/CellsToAddMod.c new file mode 100644 index 000000000..37e66d141 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellsToAddMod.h" + +asn_TYPE_member_t asn_MBR_CellsToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellsToAddMod, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellsToAddMod, cellIndividualOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_OffsetRangeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndividualOffset" + }, +}; +static const ber_tlv_tag_t asn_DEF_CellsToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CellsToAddMod_specs_1 = { + sizeof(struct CellsToAddMod), + offsetof(struct CellsToAddMod, _asn_ctx), + asn_MAP_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_CellsToAddMod = { + "CellsToAddMod", + "CellsToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_CellsToAddMod_tags_1, + sizeof(asn_DEF_CellsToAddMod_tags_1) + /sizeof(asn_DEF_CellsToAddMod_tags_1[0]), /* 1 */ + asn_DEF_CellsToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_CellsToAddMod_tags_1) + /sizeof(asn_DEF_CellsToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CellsToAddMod_1, + 2, /* Elements count */ + &asn_SPC_CellsToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellsToAddMod.h b/src/codec_utils/RRC/CellsToAddMod.h new file mode 100644 index 000000000..bba80c6d0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellsToAddMod_H_ +#define _CellsToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "Q-OffsetRangeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CellsToAddMod */ +typedef struct CellsToAddMod { + PhysCellId_t physCellId; + Q_OffsetRangeList_t cellIndividualOffset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellsToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellsToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_CellsToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_CellsToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellsToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/CellsToAddModList.c b/src/codec_utils/RRC/CellsToAddModList.c new file mode 100644 index 000000000..507f98a09 --- /dev/null +++ b/src/codec_utils/RRC/CellsToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellsToAddModList.h" + +#include "CellsToAddMod.h" +static asn_oer_constraints_t asn_OER_type_CellsToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_CellsToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CellsToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CellsToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CellsToAddModList_specs_1 = { + sizeof(struct CellsToAddModList), + offsetof(struct CellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_CellsToAddModList = { + "CellsToAddModList", + "CellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_CellsToAddModList_tags_1, + sizeof(asn_DEF_CellsToAddModList_tags_1) + /sizeof(asn_DEF_CellsToAddModList_tags_1[0]), /* 1 */ + asn_DEF_CellsToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_CellsToAddModList_tags_1) + /sizeof(asn_DEF_CellsToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_CellsToAddModList_constr_1, &asn_PER_type_CellsToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CellsToAddModList_1, + 1, /* Single element */ + &asn_SPC_CellsToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellsToAddModList.h b/src/codec_utils/RRC/CellsToAddModList.h new file mode 100644 index 000000000..31659db24 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellsToAddModList_H_ +#define _CellsToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CellsToAddMod; + +/* CellsToAddModList */ +typedef struct CellsToAddModList { + A_SEQUENCE_OF(struct CellsToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellsToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellsToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_CellsToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_CellsToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_CellsToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellsToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/CellsTriggeredList.c b/src/codec_utils/RRC/CellsTriggeredList.c new file mode 100644 index 000000000..49d576610 --- /dev/null +++ b/src/codec_utils/RRC/CellsTriggeredList.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CellsTriggeredList.h" + +static asn_oer_constraints_t asn_OER_type_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_CellsTriggeredList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct CellsTriggeredList__Member, choice.physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CellsTriggeredList__Member, choice.physCellIdEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellIdEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Member_specs_2 = { + sizeof(struct CellsTriggeredList__Member), + offsetof(struct CellsTriggeredList__Member, _asn_ctx), + offsetof(struct CellsTriggeredList__Member, present), + sizeof(((struct CellsTriggeredList__Member *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_Member_constr_2, &asn_PER_type_Member_constr_2, CHOICE_constraint }, + asn_MBR_Member_2, + 2, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CellsTriggeredList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Member_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_CellsTriggeredList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_CellsTriggeredList_specs_1 = { + sizeof(struct CellsTriggeredList), + offsetof(struct CellsTriggeredList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_CellsTriggeredList = { + "CellsTriggeredList", + "CellsTriggeredList", + &asn_OP_SEQUENCE_OF, + asn_DEF_CellsTriggeredList_tags_1, + sizeof(asn_DEF_CellsTriggeredList_tags_1) + /sizeof(asn_DEF_CellsTriggeredList_tags_1[0]), /* 1 */ + asn_DEF_CellsTriggeredList_tags_1, /* Same as above */ + sizeof(asn_DEF_CellsTriggeredList_tags_1) + /sizeof(asn_DEF_CellsTriggeredList_tags_1[0]), /* 1 */ + { &asn_OER_type_CellsTriggeredList_constr_1, &asn_PER_type_CellsTriggeredList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_CellsTriggeredList_1, + 1, /* Single element */ + &asn_SPC_CellsTriggeredList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CellsTriggeredList.h b/src/codec_utils/RRC/CellsTriggeredList.h new file mode 100644 index 000000000..ee3275abe --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CellsTriggeredList_H_ +#define _CellsTriggeredList_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PhysCellId.h" +#include "EUTRA-PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CellsTriggeredList__Member_PR { + CellsTriggeredList__Member_PR_NOTHING, /* No components present */ + CellsTriggeredList__Member_PR_physCellId, + CellsTriggeredList__Member_PR_physCellIdEUTRA +} CellsTriggeredList__Member_PR; + +/* Forward definitions */ +typedef struct CellsTriggeredList__Member { + CellsTriggeredList__Member_PR present; + union CellsTriggeredList__Member_u { + PhysCellId_t physCellId; + EUTRA_PhysCellId_t physCellIdEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellsTriggeredList__Member; + +/* CellsTriggeredList */ +typedef struct CellsTriggeredList { + A_SEQUENCE_OF(CellsTriggeredList__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} CellsTriggeredList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CellsTriggeredList; +extern asn_SET_OF_specifics_t asn_SPC_CellsTriggeredList_specs_1; +extern asn_TYPE_member_t asn_MBR_CellsTriggeredList_1[1]; +extern asn_per_constraints_t asn_PER_type_CellsTriggeredList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _CellsTriggeredList_H_ */ +#include diff --git a/src/codec_utils/RRC/CipheringAlgorithm.c b/src/codec_utils/RRC/CipheringAlgorithm.c new file mode 100644 index 000000000..02da2dae0 --- /dev/null +++ b/src/codec_utils/RRC/CipheringAlgorithm.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CipheringAlgorithm.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CipheringAlgorithm_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_CipheringAlgorithm_specs_1 = { + asn_MAP_CipheringAlgorithm_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_CipheringAlgorithm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CipheringAlgorithm = { + "CipheringAlgorithm", + "CipheringAlgorithm", + &asn_OP_NativeEnumerated, + asn_DEF_CipheringAlgorithm_tags_1, + sizeof(asn_DEF_CipheringAlgorithm_tags_1) + /sizeof(asn_DEF_CipheringAlgorithm_tags_1[0]), /* 1 */ + asn_DEF_CipheringAlgorithm_tags_1, /* Same as above */ + sizeof(asn_DEF_CipheringAlgorithm_tags_1) + /sizeof(asn_DEF_CipheringAlgorithm_tags_1[0]), /* 1 */ + { &asn_OER_type_CipheringAlgorithm_constr_1, &asn_PER_type_CipheringAlgorithm_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CipheringAlgorithm_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CipheringAlgorithm.h b/src/codec_utils/RRC/CipheringAlgorithm.h new file mode 100644 index 000000000..cce3d97d0 --- /dev/null +++ b/src/codec_utils/RRC/CipheringAlgorithm.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CipheringAlgorithm_H_ +#define _CipheringAlgorithm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CipheringAlgorithm { + CipheringAlgorithm_nea0 = 0, + CipheringAlgorithm_nea1 = 1, + CipheringAlgorithm_nea2 = 2, + CipheringAlgorithm_nea3 = 3, + CipheringAlgorithm_spare4 = 4, + CipheringAlgorithm_spare3 = 5, + CipheringAlgorithm_spare2 = 6, + CipheringAlgorithm_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_CipheringAlgorithm; + +/* CipheringAlgorithm */ +typedef long CipheringAlgorithm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CipheringAlgorithm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CipheringAlgorithm; +extern const asn_INTEGER_specifics_t asn_SPC_CipheringAlgorithm_specs_1; +asn_struct_free_f CipheringAlgorithm_free; +asn_struct_print_f CipheringAlgorithm_print; +asn_constr_check_f CipheringAlgorithm_constraint; +ber_type_decoder_f CipheringAlgorithm_decode_ber; +der_type_encoder_f CipheringAlgorithm_encode_der; +xer_type_decoder_f CipheringAlgorithm_decode_xer; +xer_type_encoder_f CipheringAlgorithm_encode_xer; +oer_type_decoder_f CipheringAlgorithm_decode_oer; +oer_type_encoder_f CipheringAlgorithm_encode_oer; +per_type_decoder_f CipheringAlgorithm_decode_uper; +per_type_encoder_f CipheringAlgorithm_encode_uper; +per_type_decoder_f CipheringAlgorithm_decode_aper; +per_type_encoder_f CipheringAlgorithm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CipheringAlgorithm_H_ */ +#include diff --git a/src/codec_utils/RRC/CodebookConfig.c b/src/codec_utils/RRC/CodebookConfig.c new file mode 100644 index 000000000..9809a95a5 --- /dev/null +++ b/src/codec_utils/RRC/CodebookConfig.c @@ -0,0 +1,2913 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CodebookConfig.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_twoTX_CodebookSubsetRestriction_constr_8 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14 CC_NOTUSED = { + { 0, 0 }, + 96 /* (SIZE(96..96)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16 CC_NOTUSED = { + { 0, 0 }, + 128 /* (SIZE(128..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18 CC_NOTUSED = { + { 0, 0 }, + 192 /* (SIZE(192..192)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19 CC_NOTUSED = { + { 0, 0 }, + 192 /* (SIZE(192..192)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20 CC_NOTUSED = { + { 0, 0 }, + 48 /* (SIZE(48..48)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21 CC_NOTUSED = { + { 0, 0 }, + 256 /* (SIZE(256..256)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22 CC_NOTUSED = { + { 0, 0 }, + 256 /* (SIZE(256..256)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_n1_n2_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_nrOfAntennaPorts_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_typeI_SinglePanel_ri_Restriction_constr_25 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34 CC_NOTUSED = { + { 0, 0 }, + 128 /* (SIZE(128..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ng_n1_n2_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ri_Restriction_constr_36 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_subType_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_codebookMode_constr_37 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_one_constr_42 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_two_two_constr_43 CC_NOTUSED = { + { 0, 0 }, + 43 /* (SIZE(43..43)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_one_constr_44 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_three_two_constr_45 CC_NOTUSED = { + { 0, 0 }, + 59 /* (SIZE(59..59)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_six_one_constr_46 CC_NOTUSED = { + { 0, 0 }, + 48 /* (SIZE(48..48)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_two_constr_47 CC_NOTUSED = { + { 0, 0 }, + 75 /* (SIZE(75..75)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_one_constr_48 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_three_constr_49 CC_NOTUSED = { + { 0, 0 }, + 107 /* (SIZE(107..107)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_six_two_constr_50 CC_NOTUSED = { + { 0, 0 }, + 107 /* (SIZE(107..107)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_twelve_one_constr_51 CC_NOTUSED = { + { 0, 0 }, + 96 /* (SIZE(96..96)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_four_four_constr_52 CC_NOTUSED = { + { 0, 0 }, + 139 /* (SIZE(139..139)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_two_constr_53 CC_NOTUSED = { + { 0, 0 }, + 139 /* (SIZE(139..139)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sixteen_one_constr_54 CC_NOTUSED = { + { 0, 0 }, + 128 /* (SIZE(128..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_n1_n2_codebookSubsetRestriction_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_typeII_RI_Restriction_constr_55 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_portSelectionSamplingSize_constr_57 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_typeII_PortSelectionRI_Restriction_constr_62 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_subType_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phaseAlphabetSize_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_numberOfBeams_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_codebookType_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_two_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_twoTX_CodebookSubsetRestriction_constr_8, &asn_PER_memb_twoTX_CodebookSubsetRestriction_constr_8, memb_twoTX_CodebookSubsetRestriction_constraint_7 }, + 0, 0, /* No default value */ + "twoTX-CodebookSubsetRestriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_two_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_two_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* twoTX-CodebookSubsetRestriction */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_two_specs_7 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__two, _asn_ctx), + asn_MAP_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_two_7 = { + "two", + "two", + &asn_OP_SEQUENCE, + asn_DEF_two_tags_7, + sizeof(asn_DEF_two_tags_7) + /sizeof(asn_DEF_two_tags_7[0]) - 1, /* 1 */ + asn_DEF_two_tags_7, /* Same as above */ + sizeof(asn_DEF_two_tags_7) + /sizeof(asn_DEF_two_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_two_7, + 1, /* Elements count */ + &asn_SPC_two_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_n1_n2_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11, &asn_PER_memb_two_one_TypeI_SinglePanel_Restriction_constr_11, memb_two_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "two-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12, &asn_PER_memb_two_two_TypeI_SinglePanel_Restriction_constr_12, memb_two_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "two-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13, &asn_PER_memb_four_one_TypeI_SinglePanel_Restriction_constr_13, memb_four_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14, &asn_PER_memb_three_two_TypeI_SinglePanel_Restriction_constr_14, memb_three_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "three-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15, &asn_PER_memb_six_one_TypeI_SinglePanel_Restriction_constr_15, memb_six_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "six-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16, &asn_PER_memb_four_two_TypeI_SinglePanel_Restriction_constr_16, memb_four_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17, &asn_PER_memb_eight_one_TypeI_SinglePanel_Restriction_constr_17, memb_eight_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "eight-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18, &asn_PER_memb_four_three_TypeI_SinglePanel_Restriction_constr_18, memb_four_three_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-three-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19, &asn_PER_memb_six_two_TypeI_SinglePanel_Restriction_constr_19, memb_six_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "six-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20, &asn_PER_memb_twelve_one_TypeI_SinglePanel_Restriction_constr_20, memb_twelve_one_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "twelve-one-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21, &asn_PER_memb_four_four_TypeI_SinglePanel_Restriction_constr_21, memb_four_four_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "four-four-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22, &asn_PER_memb_eight_two_TypeI_SinglePanel_Restriction_constr_22, memb_eight_two_TypeI_SinglePanel_Restriction_constraint_10 }, + 0, 0, /* No default value */ + "eight-two-TypeI-SinglePanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23, &asn_PER_memb_sixteen_one_TypeI_SinglePanel_Restriction_constr_23, memb_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_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_n1_n2_specs_10 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2, present), + sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_n1_n2_constr_10, &asn_PER_type_n1_n2_constr_10, CHOICE_constraint }, + asn_MBR_n1_n2_10, + 13, /* Elements count */ + &asn_SPC_n1_n2_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_moreThanTwo_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, n1_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_n1_n2_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1-n2" + }, + { ATF_POINTER, 1, offsetof(struct 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, + { &asn_OER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24, &asn_PER_memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constr_24, memb_typeI_SinglePanel_codebookSubsetRestriction_i2_constraint_9 }, + 0, 0, /* No default value */ + "typeI-SinglePanel-codebookSubsetRestriction-i2" + }, +}; +static const int asn_MAP_moreThanTwo_oms_9[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_moreThanTwo_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_moreThanTwo_specs_9 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo, _asn_ctx), + asn_MAP_moreThanTwo_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_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_moreThanTwo_9 = { + "moreThanTwo", + "moreThanTwo", + &asn_OP_SEQUENCE, + asn_DEF_moreThanTwo_tags_9, + sizeof(asn_DEF_moreThanTwo_tags_9) + /sizeof(asn_DEF_moreThanTwo_tags_9[0]) - 1, /* 1 */ + asn_DEF_moreThanTwo_tags_9, /* Same as above */ + sizeof(asn_DEF_moreThanTwo_tags_9) + /sizeof(asn_DEF_moreThanTwo_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_moreThanTwo_9, + 2, /* Elements count */ + &asn_SPC_moreThanTwo_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nrOfAntennaPorts_6[] = { + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.two), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_two_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "two" + }, + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, choice.moreThanTwo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_moreThanTwo_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moreThanTwo" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nrOfAntennaPorts_specs_6 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts, present), + sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_nrOfAntennaPorts_constr_6, &asn_PER_type_nrOfAntennaPorts_constr_6, CHOICE_constraint }, + asn_MBR_nrOfAntennaPorts_6, + 2, /* Elements count */ + &asn_SPC_nrOfAntennaPorts_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeI_SinglePanel_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, nrOfAntennaPorts), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_nrOfAntennaPorts_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrOfAntennaPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_typeI_SinglePanel_ri_Restriction_constr_25, &asn_PER_memb_typeI_SinglePanel_ri_Restriction_constr_25, memb_typeI_SinglePanel_ri_Restriction_constraint_5 }, + 0, 0, /* No default value */ + "typeI-SinglePanel-ri-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeI_SinglePanel_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_typeI_SinglePanel_specs_5 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel, _asn_ctx), + asn_MAP_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_typeI_SinglePanel_5 = { + "typeI-SinglePanel", + "typeI-SinglePanel", + &asn_OP_SEQUENCE, + asn_DEF_typeI_SinglePanel_tags_5, + sizeof(asn_DEF_typeI_SinglePanel_tags_5) + /sizeof(asn_DEF_typeI_SinglePanel_tags_5[0]) - 1, /* 1 */ + asn_DEF_typeI_SinglePanel_tags_5, /* Same as above */ + sizeof(asn_DEF_typeI_SinglePanel_tags_5) + /sizeof(asn_DEF_typeI_SinglePanel_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_typeI_SinglePanel_5, + 2, /* Elements count */ + &asn_SPC_typeI_SinglePanel_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ng_n1_n2_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28, &asn_PER_memb_two_two_one_TypeI_MultiPanel_Restriction_constr_28, memb_two_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-two-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29, &asn_PER_memb_two_four_one_TypeI_MultiPanel_Restriction_constr_29, memb_two_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-four-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30, &asn_PER_memb_four_two_one_TypeI_MultiPanel_Restriction_constr_30, memb_four_two_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "four-two-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31, &asn_PER_memb_two_two_two_TypeI_MultiPanel_Restriction_constr_31, memb_two_two_two_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-two-two-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32, &asn_PER_memb_two_eight_one_TypeI_MultiPanel_Restriction_constr_32, memb_two_eight_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-eight-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33, &asn_PER_memb_four_four_one_TypeI_MultiPanel_Restriction_constr_33, memb_four_four_one_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "four-four-one-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34, &asn_PER_memb_two_four_two_TypeI_MultiPanel_Restriction_constr_34, memb_two_four_two_TypeI_MultiPanel_Restriction_constraint_27 }, + 0, 0, /* No default value */ + "two-four-two-TypeI-MultiPanel-Restriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35, &asn_PER_memb_four_two_two_TypeI_MultiPanel_Restriction_constr_35, memb_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_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_ng_n1_n2_specs_27 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2, present), + sizeof(((struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_ng_n1_n2_constr_27, &asn_PER_type_ng_n1_n2_constr_27, CHOICE_constraint }, + asn_MBR_ng_n1_n2_27, + 8, /* Elements count */ + &asn_SPC_ng_n1_n2_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeI_MultiPanel_26[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, ng_n1_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ng_n1_n2_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-n1-n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_ri_Restriction_constr_36, &asn_PER_memb_ri_Restriction_constr_36, memb_ri_Restriction_constraint_26 }, + 0, 0, /* No default value */ + "ri-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeI_MultiPanel_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_typeI_MultiPanel_specs_26 = { + sizeof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel), + offsetof(struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel, _asn_ctx), + asn_MAP_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_typeI_MultiPanel_26 = { + "typeI-MultiPanel", + "typeI-MultiPanel", + &asn_OP_SEQUENCE, + asn_DEF_typeI_MultiPanel_tags_26, + sizeof(asn_DEF_typeI_MultiPanel_tags_26) + /sizeof(asn_DEF_typeI_MultiPanel_tags_26[0]) - 1, /* 1 */ + asn_DEF_typeI_MultiPanel_tags_26, /* Same as above */ + sizeof(asn_DEF_typeI_MultiPanel_tags_26) + /sizeof(asn_DEF_typeI_MultiPanel_tags_26[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_typeI_MultiPanel_26, + 2, /* Elements count */ + &asn_SPC_typeI_MultiPanel_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_subType_4[] = { + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType, choice.typeI_SinglePanel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_typeI_SinglePanel_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeI-SinglePanel" + }, + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type1__subType, choice.typeI_MultiPanel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_typeI_MultiPanel_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeI-MultiPanel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_subType_specs_4 = { + sizeof(struct CodebookConfig__codebookType__type1__subType), + offsetof(struct CodebookConfig__codebookType__type1__subType, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type1__subType, present), + sizeof(((struct CodebookConfig__codebookType__type1__subType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_subType_constr_4, &asn_PER_type_subType_constr_4, CHOICE_constraint }, + asn_MBR_subType_4, + 2, /* Elements count */ + &asn_SPC_subType_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_type1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1, subType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_subType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subType" + }, + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type1, codebookMode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_codebookMode_constr_37, &asn_PER_memb_codebookMode_constr_37, memb_codebookMode_constraint_3 }, + 0, 0, /* No default value */ + "codebookMode" + }, +}; +static const ber_tlv_tag_t asn_DEF_type1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_type1_specs_3 = { + sizeof(struct CodebookConfig__codebookType__type1), + offsetof(struct CodebookConfig__codebookType__type1, _asn_ctx), + asn_MAP_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_type1_3 = { + "type1", + "type1", + &asn_OP_SEQUENCE, + asn_DEF_type1_tags_3, + sizeof(asn_DEF_type1_tags_3) + /sizeof(asn_DEF_type1_tags_3[0]) - 1, /* 1 */ + asn_DEF_type1_tags_3, /* Same as above */ + sizeof(asn_DEF_type1_tags_3) + /sizeof(asn_DEF_type1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_type1_3, + 2, /* Elements count */ + &asn_SPC_type1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_n1_n2_codebookSubsetRestriction_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_one_constr_42, &asn_PER_memb_two_one_constr_42, memb_two_one_constraint_41 }, + 0, 0, /* No default value */ + "two-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_two_two_constr_43, &asn_PER_memb_two_two_constr_43, memb_two_two_constraint_41 }, + 0, 0, /* No default value */ + "two-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_one_constr_44, &asn_PER_memb_four_one_constr_44, memb_four_one_constraint_41 }, + 0, 0, /* No default value */ + "four-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_three_two_constr_45, &asn_PER_memb_three_two_constr_45, memb_three_two_constraint_41 }, + 0, 0, /* No default value */ + "three-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_six_one_constr_46, &asn_PER_memb_six_one_constr_46, memb_six_one_constraint_41 }, + 0, 0, /* No default value */ + "six-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_two_constr_47, &asn_PER_memb_four_two_constr_47, memb_four_two_constraint_41 }, + 0, 0, /* No default value */ + "four-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_eight_one_constr_48, &asn_PER_memb_eight_one_constr_48, memb_eight_one_constraint_41 }, + 0, 0, /* No default value */ + "eight-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_three_constr_49, &asn_PER_memb_four_three_constr_49, memb_four_three_constraint_41 }, + 0, 0, /* No default value */ + "four-three" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_six_two_constr_50, &asn_PER_memb_six_two_constr_50, memb_six_two_constraint_41 }, + 0, 0, /* No default value */ + "six-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_twelve_one_constr_51, &asn_PER_memb_twelve_one_constr_51, memb_twelve_one_constraint_41 }, + 0, 0, /* No default value */ + "twelve-one" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_four_four_constr_52, &asn_PER_memb_four_four_constr_52, memb_four_four_constraint_41 }, + 0, 0, /* No default value */ + "four-four" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_eight_two_constr_53, &asn_PER_memb_eight_two_constr_53, memb_eight_two_constraint_41 }, + 0, 0, /* No default value */ + "eight-two" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_sixteen_one_constr_54, &asn_PER_memb_sixteen_one_constr_54, memb_sixteen_one_constraint_41 }, + 0, 0, /* No default value */ + "sixteen-one" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_n1_n2_codebookSubsetRestriction_specs_41 = { + sizeof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction), + offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction, present), + sizeof(((struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_n1_n2_codebookSubsetRestriction_constr_41, &asn_PER_type_n1_n2_codebookSubsetRestriction_constr_41, CHOICE_constraint }, + asn_MBR_n1_n2_codebookSubsetRestriction_41, + 13, /* Elements count */ + &asn_SPC_n1_n2_codebookSubsetRestriction_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeII_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII, n1_n2_codebookSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_n1_n2_codebookSubsetRestriction_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1-n2-codebookSubsetRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_typeII_RI_Restriction_constr_55, &asn_PER_memb_typeII_RI_Restriction_constr_55, memb_typeII_RI_Restriction_constraint_40 }, + 0, 0, /* No default value */ + "typeII-RI-Restriction" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeII_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_typeII_specs_40 = { + sizeof(struct CodebookConfig__codebookType__type2__subType__typeII), + offsetof(struct CodebookConfig__codebookType__type2__subType__typeII, _asn_ctx), + asn_MAP_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_typeII_40 = { + "typeII", + "typeII", + &asn_OP_SEQUENCE, + asn_DEF_typeII_tags_40, + sizeof(asn_DEF_typeII_tags_40) + /sizeof(asn_DEF_typeII_tags_40[0]) - 1, /* 1 */ + asn_DEF_typeII_tags_40, /* Same as above */ + sizeof(asn_DEF_typeII_tags_40) + /sizeof(asn_DEF_typeII_tags_40[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_typeII_40, + 2, /* Elements count */ + &asn_SPC_typeII_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_portSelectionSamplingSize_value2enum_57[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_portSelectionSamplingSize_enum2value_57[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_portSelectionSamplingSize_specs_57 = { + asn_MAP_portSelectionSamplingSize_value2enum_57, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_portSelectionSamplingSize_57 = { + "portSelectionSamplingSize", + "portSelectionSamplingSize", + &asn_OP_NativeEnumerated, + asn_DEF_portSelectionSamplingSize_tags_57, + sizeof(asn_DEF_portSelectionSamplingSize_tags_57) + /sizeof(asn_DEF_portSelectionSamplingSize_tags_57[0]) - 1, /* 1 */ + asn_DEF_portSelectionSamplingSize_tags_57, /* Same as above */ + sizeof(asn_DEF_portSelectionSamplingSize_tags_57) + /sizeof(asn_DEF_portSelectionSamplingSize_tags_57[0]), /* 2 */ + { &asn_OER_type_portSelectionSamplingSize_constr_57, &asn_PER_type_portSelectionSamplingSize_constr_57, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_portSelectionSamplingSize_specs_57 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeII_PortSelection_56[] = { + { ATF_POINTER, 1, offsetof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection, portSelectionSamplingSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_portSelectionSamplingSize_57, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portSelectionSamplingSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_typeII_PortSelectionRI_Restriction_constr_62, &asn_PER_memb_typeII_PortSelectionRI_Restriction_constr_62, memb_typeII_PortSelectionRI_Restriction_constraint_56 }, + 0, 0, /* No default value */ + "typeII-PortSelectionRI-Restriction" + }, +}; +static const int asn_MAP_typeII_PortSelection_oms_56[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_typeII_PortSelection_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_typeII_PortSelection_specs_56 = { + sizeof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection), + offsetof(struct CodebookConfig__codebookType__type2__subType__typeII_PortSelection, _asn_ctx), + asn_MAP_typeII_PortSelection_tag2el_56, + 2, /* Count of tags in the map */ + asn_MAP_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_typeII_PortSelection_56 = { + "typeII-PortSelection", + "typeII-PortSelection", + &asn_OP_SEQUENCE, + asn_DEF_typeII_PortSelection_tags_56, + sizeof(asn_DEF_typeII_PortSelection_tags_56) + /sizeof(asn_DEF_typeII_PortSelection_tags_56[0]) - 1, /* 1 */ + asn_DEF_typeII_PortSelection_tags_56, /* Same as above */ + sizeof(asn_DEF_typeII_PortSelection_tags_56) + /sizeof(asn_DEF_typeII_PortSelection_tags_56[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_typeII_PortSelection_56, + 2, /* Elements count */ + &asn_SPC_typeII_PortSelection_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_subType_39[] = { + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type2__subType, choice.typeII), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_typeII_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeII" + }, + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType__type2__subType, choice.typeII_PortSelection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_typeII_PortSelection_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeII-PortSelection" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_subType_specs_39 = { + sizeof(struct CodebookConfig__codebookType__type2__subType), + offsetof(struct CodebookConfig__codebookType__type2__subType, _asn_ctx), + offsetof(struct CodebookConfig__codebookType__type2__subType, present), + sizeof(((struct CodebookConfig__codebookType__type2__subType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_subType_constr_39, &asn_PER_type_subType_constr_39, CHOICE_constraint }, + asn_MBR_subType_39, + 2, /* Elements count */ + &asn_SPC_subType_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_phaseAlphabetSize_value2enum_63[] = { + { 0, 2, "n4" }, + { 1, 2, "n8" } +}; +static const unsigned int asn_MAP_phaseAlphabetSize_enum2value_63[] = { + 0, /* n4(0) */ + 1 /* n8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_phaseAlphabetSize_specs_63 = { + asn_MAP_phaseAlphabetSize_value2enum_63, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_phaseAlphabetSize_63 = { + "phaseAlphabetSize", + "phaseAlphabetSize", + &asn_OP_NativeEnumerated, + asn_DEF_phaseAlphabetSize_tags_63, + sizeof(asn_DEF_phaseAlphabetSize_tags_63) + /sizeof(asn_DEF_phaseAlphabetSize_tags_63[0]) - 1, /* 1 */ + asn_DEF_phaseAlphabetSize_tags_63, /* Same as above */ + sizeof(asn_DEF_phaseAlphabetSize_tags_63) + /sizeof(asn_DEF_phaseAlphabetSize_tags_63[0]), /* 2 */ + { &asn_OER_type_phaseAlphabetSize_constr_63, &asn_PER_type_phaseAlphabetSize_constr_63, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_phaseAlphabetSize_specs_63 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_numberOfBeams_value2enum_67[] = { + { 0, 3, "two" }, + { 1, 5, "three" }, + { 2, 4, "four" } +}; +static const unsigned int asn_MAP_numberOfBeams_enum2value_67[] = { + 2, /* four(2) */ + 1, /* three(1) */ + 0 /* two(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_numberOfBeams_specs_67 = { + asn_MAP_numberOfBeams_value2enum_67, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_numberOfBeams_67 = { + "numberOfBeams", + "numberOfBeams", + &asn_OP_NativeEnumerated, + asn_DEF_numberOfBeams_tags_67, + sizeof(asn_DEF_numberOfBeams_tags_67) + /sizeof(asn_DEF_numberOfBeams_tags_67[0]) - 1, /* 1 */ + asn_DEF_numberOfBeams_tags_67, /* Same as above */ + sizeof(asn_DEF_numberOfBeams_tags_67) + /sizeof(asn_DEF_numberOfBeams_tags_67[0]), /* 2 */ + { &asn_OER_type_numberOfBeams_constr_67, &asn_PER_type_numberOfBeams_constr_67, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_numberOfBeams_specs_67 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_type2_38[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, subType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_subType_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subType" + }, + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig__codebookType__type2, phaseAlphabetSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_phaseAlphabetSize_63, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseAlphabetSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 CodebookConfig__codebookType__type2, numberOfBeams), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_numberOfBeams_67, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfBeams" + }, +}; +static const ber_tlv_tag_t asn_DEF_type2_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_type2_specs_38 = { + sizeof(struct CodebookConfig__codebookType__type2), + offsetof(struct CodebookConfig__codebookType__type2, _asn_ctx), + asn_MAP_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_type2_38 = { + "type2", + "type2", + &asn_OP_SEQUENCE, + asn_DEF_type2_tags_38, + sizeof(asn_DEF_type2_tags_38) + /sizeof(asn_DEF_type2_tags_38[0]) - 1, /* 1 */ + asn_DEF_type2_tags_38, /* Same as above */ + sizeof(asn_DEF_type2_tags_38) + /sizeof(asn_DEF_type2_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_type2_38, + 4, /* Elements count */ + &asn_SPC_type2_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_codebookType_2[] = { + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType, choice.type1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_type1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1" + }, + { ATF_POINTER, 0, offsetof(struct CodebookConfig__codebookType, choice.type2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_type2_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_codebookType_specs_2 = { + sizeof(struct CodebookConfig__codebookType), + offsetof(struct CodebookConfig__codebookType, _asn_ctx), + offsetof(struct CodebookConfig__codebookType, present), + sizeof(((struct CodebookConfig__codebookType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_codebookType_constr_2, &asn_PER_type_codebookType_constr_2, CHOICE_constraint }, + asn_MBR_codebookType_2, + 2, /* Elements count */ + &asn_SPC_codebookType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CodebookConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CodebookConfig, codebookType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_codebookType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookType" + }, +}; +static const ber_tlv_tag_t asn_DEF_CodebookConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CodebookConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* codebookType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CodebookConfig_specs_1 = { + sizeof(struct CodebookConfig), + offsetof(struct CodebookConfig, _asn_ctx), + asn_MAP_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_CodebookConfig = { + "CodebookConfig", + "CodebookConfig", + &asn_OP_SEQUENCE, + asn_DEF_CodebookConfig_tags_1, + sizeof(asn_DEF_CodebookConfig_tags_1) + /sizeof(asn_DEF_CodebookConfig_tags_1[0]), /* 1 */ + asn_DEF_CodebookConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CodebookConfig_tags_1) + /sizeof(asn_DEF_CodebookConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CodebookConfig_1, + 1, /* Elements count */ + &asn_SPC_CodebookConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CodebookConfig.h b/src/codec_utils/RRC/CodebookConfig.h new file mode 100644 index 000000000..9ce8c1979 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CodebookConfig_H_ +#define _CodebookConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CodebookConfig__codebookType_PR { + CodebookConfig__codebookType_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType_PR_type1, + CodebookConfig__codebookType_PR_type2 +} CodebookConfig__codebookType_PR; +typedef enum CodebookConfig__codebookType__type1__subType_PR { + CodebookConfig__codebookType__type1__subType_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type1__subType_PR_typeI_SinglePanel, + CodebookConfig__codebookType__type1__subType_PR_typeI_MultiPanel +} CodebookConfig__codebookType__type1__subType_PR; +typedef enum CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR { + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_two, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR_moreThanTwo +} CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR; +typedef enum CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR { + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_one_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_two_two_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_one_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_three_two_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_one_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_two_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_one_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_three_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_six_two_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_twelve_one_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_four_four_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_eight_two_TypeI_SinglePanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR_sixteen_one_TypeI_SinglePanel_Restriction +} CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR; +typedef enum CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR { + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_one_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_one_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_one_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_two_two_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_eight_one_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_four_one_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_two_four_two_TypeI_MultiPanel_Restriction, + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR_four_two_two_TypeI_MultiPanel_Restriction +} CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR; +typedef enum CodebookConfig__codebookType__type2__subType_PR { + CodebookConfig__codebookType__type2__subType_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type2__subType_PR_typeII, + CodebookConfig__codebookType__type2__subType_PR_typeII_PortSelection +} CodebookConfig__codebookType__type2__subType_PR; +typedef enum CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR { + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_NOTHING, /* No components present */ + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_one, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_two_two, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_one, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_three_two, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_one, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_two, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_one, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_three, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_six_two, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_twelve_one, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_four_four, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_eight_two, + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR_sixteen_one +} CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR; +typedef enum CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize { + CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n1 = 0, + CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n2 = 1, + CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n3 = 2, + CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize_n4 = 3 +} e_CodebookConfig__codebookType__type2__subType__typeII_PortSelection__portSelectionSamplingSize; +typedef enum CodebookConfig__codebookType__type2__phaseAlphabetSize { + CodebookConfig__codebookType__type2__phaseAlphabetSize_n4 = 0, + CodebookConfig__codebookType__type2__phaseAlphabetSize_n8 = 1 +} e_CodebookConfig__codebookType__type2__phaseAlphabetSize; +typedef enum CodebookConfig__codebookType__type2__numberOfBeams { + CodebookConfig__codebookType__type2__numberOfBeams_two = 0, + CodebookConfig__codebookType__type2__numberOfBeams_three = 1, + CodebookConfig__codebookType__type2__numberOfBeams_four = 2 +} e_CodebookConfig__codebookType__type2__numberOfBeams; + +/* CodebookConfig */ +typedef struct CodebookConfig { + struct CodebookConfig__codebookType { + CodebookConfig__codebookType_PR present; + union CodebookConfig__codebookType_u { + struct CodebookConfig__codebookType__type1 { + struct CodebookConfig__codebookType__type1__subType { + CodebookConfig__codebookType__type1__subType_PR present; + union CodebookConfig__codebookType__type1__subType_u { + struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel { + struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts { + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_PR present; + union CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts_u { + struct 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 CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo { + struct CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2 { + CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__n1_n2_PR present; + union CodebookConfig__codebookType__type1__subType__typeI_SinglePanel__nrOfAntennaPorts__moreThanTwo__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 CodebookConfig__codebookType__type1__subType__typeI_MultiPanel { + struct CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2 { + CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__ng_n1_n2_PR present; + union CodebookConfig__codebookType__type1__subType__typeI_MultiPanel__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 CodebookConfig__codebookType__type2 { + struct CodebookConfig__codebookType__type2__subType { + CodebookConfig__codebookType__type2__subType_PR present; + union CodebookConfig__codebookType__type2__subType_u { + struct CodebookConfig__codebookType__type2__subType__typeII { + struct CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction { + CodebookConfig__codebookType__type2__subType__typeII__n1_n2_codebookSubsetRestriction_PR present; + union CodebookConfig__codebookType__type2__subType__typeII__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 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; +} CodebookConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_portSelectionSamplingSize_57; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_phaseAlphabetSize_63; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_numberOfBeams_67; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_CodebookConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_CodebookConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_CodebookConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CodebookConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/ConfigRestrictInfoSCG.c b/src/codec_utils/RRC/ConfigRestrictInfoSCG.c new file mode 100644 index 000000000..a2acfc78e --- /dev/null +++ b/src/codec_utils/RRC/ConfigRestrictInfoSCG.c @@ -0,0 +1,277 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ConfigRestrictInfoSCG.h" + +#include "BandCombinationInfoList.h" +static int +memb_maxMeasFreqsSCG_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 <= 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_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_oer_constraints_t asn_OER_memb_maxMeasFreqsSCG_NR_constr_10 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxMeasFreqsSCG_NR_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_oer_constraints_t asn_OER_memb_maxMeasIdentitiesSCG_NR_constr_11 CC_NOTUSED = { + { 1, 1 } /* (1..62) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_powerCoordination_FR1_3[] = { + { ATF_POINTER, 3, offsetof(struct ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxNR_FR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxNR-FR1" + }, + { ATF_POINTER, 2, offsetof(struct ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxEUTRA" + }, + { ATF_POINTER, 1, offsetof(struct ConfigRestrictInfoSCG__powerCoordination_FR1, p_maxUE_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-maxUE-FR1" + }, +}; +static const int asn_MAP_powerCoordination_FR1_oms_3[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_powerCoordination_FR1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_powerCoordination_FR1_specs_3 = { + sizeof(struct ConfigRestrictInfoSCG__powerCoordination_FR1), + offsetof(struct ConfigRestrictInfoSCG__powerCoordination_FR1, _asn_ctx), + asn_MAP_powerCoordination_FR1_tag2el_3, + 3, /* Count of tags in the map */ + asn_MAP_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_powerCoordination_FR1_3 = { + "powerCoordination-FR1", + "powerCoordination-FR1", + &asn_OP_SEQUENCE, + asn_DEF_powerCoordination_FR1_tags_3, + sizeof(asn_DEF_powerCoordination_FR1_tags_3) + /sizeof(asn_DEF_powerCoordination_FR1_tags_3[0]) - 1, /* 1 */ + asn_DEF_powerCoordination_FR1_tags_3, /* Same as above */ + sizeof(asn_DEF_powerCoordination_FR1_tags_3) + /sizeof(asn_DEF_powerCoordination_FR1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_powerCoordination_FR1_3, + 3, /* Elements count */ + &asn_SPC_powerCoordination_FR1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_servCellIndexRangeSCG_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConfigRestrictInfoSCG__servCellIndexRangeSCG, lowBound), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lowBound" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfigRestrictInfoSCG__servCellIndexRangeSCG, upBound), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "upBound" + }, +}; +static const ber_tlv_tag_t asn_DEF_servCellIndexRangeSCG_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_servCellIndexRangeSCG_specs_7 = { + sizeof(struct ConfigRestrictInfoSCG__servCellIndexRangeSCG), + offsetof(struct ConfigRestrictInfoSCG__servCellIndexRangeSCG, _asn_ctx), + asn_MAP_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_servCellIndexRangeSCG_7 = { + "servCellIndexRangeSCG", + "servCellIndexRangeSCG", + &asn_OP_SEQUENCE, + asn_DEF_servCellIndexRangeSCG_tags_7, + sizeof(asn_DEF_servCellIndexRangeSCG_tags_7) + /sizeof(asn_DEF_servCellIndexRangeSCG_tags_7[0]) - 1, /* 1 */ + asn_DEF_servCellIndexRangeSCG_tags_7, /* Same as above */ + sizeof(asn_DEF_servCellIndexRangeSCG_tags_7) + /sizeof(asn_DEF_servCellIndexRangeSCG_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_servCellIndexRangeSCG_7, + 2, /* Elements count */ + &asn_SPC_servCellIndexRangeSCG_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConfigRestrictInfoSCG_1[] = { + { ATF_POINTER, 5, offsetof(struct ConfigRestrictInfoSCG, allowedBC_ListMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedBC-ListMRDC" + }, + { ATF_POINTER, 4, offsetof(struct ConfigRestrictInfoSCG, powerCoordination_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_powerCoordination_FR1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerCoordination-FR1" + }, + { ATF_POINTER, 3, offsetof(struct ConfigRestrictInfoSCG, servCellIndexRangeSCG), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_servCellIndexRangeSCG_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndexRangeSCG" + }, + { ATF_POINTER, 2, offsetof(struct ConfigRestrictInfoSCG, maxMeasFreqsSCG_NR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxMeasFreqsSCG_NR_constr_10, &asn_PER_memb_maxMeasFreqsSCG_NR_constr_10, memb_maxMeasFreqsSCG_NR_constraint_1 }, + 0, 0, /* No default value */ + "maxMeasFreqsSCG-NR" + }, + { ATF_POINTER, 1, offsetof(struct ConfigRestrictInfoSCG, maxMeasIdentitiesSCG_NR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxMeasIdentitiesSCG_NR_constr_11, &asn_PER_memb_maxMeasIdentitiesSCG_NR_constr_11, memb_maxMeasIdentitiesSCG_NR_constraint_1 }, + 0, 0, /* No default value */ + "maxMeasIdentitiesSCG-NR" + }, +}; +static const int asn_MAP_ConfigRestrictInfoSCG_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ConfigRestrictInfoSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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-NR */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* maxMeasIdentitiesSCG-NR */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ConfigRestrictInfoSCG_specs_1 = { + sizeof(struct ConfigRestrictInfoSCG), + offsetof(struct ConfigRestrictInfoSCG, _asn_ctx), + asn_MAP_ConfigRestrictInfoSCG_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ConfigRestrictInfoSCG_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConfigRestrictInfoSCG = { + "ConfigRestrictInfoSCG", + "ConfigRestrictInfoSCG", + &asn_OP_SEQUENCE, + asn_DEF_ConfigRestrictInfoSCG_tags_1, + sizeof(asn_DEF_ConfigRestrictInfoSCG_tags_1) + /sizeof(asn_DEF_ConfigRestrictInfoSCG_tags_1[0]), /* 1 */ + asn_DEF_ConfigRestrictInfoSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ConfigRestrictInfoSCG_tags_1) + /sizeof(asn_DEF_ConfigRestrictInfoSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConfigRestrictInfoSCG_1, + 5, /* Elements count */ + &asn_SPC_ConfigRestrictInfoSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ConfigRestrictInfoSCG.h b/src/codec_utils/RRC/ConfigRestrictInfoSCG.h new file mode 100644 index 000000000..3374e4ae4 --- /dev/null +++ b/src/codec_utils/RRC/ConfigRestrictInfoSCG.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ConfigRestrictInfoSCG_H_ +#define _ConfigRestrictInfoSCG_H_ + + +#include + +/* Including external dependencies */ +#include +#include "P-Max.h" +#include +#include "ServCellIndex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombinationInfoList; + +/* ConfigRestrictInfoSCG */ +typedef struct ConfigRestrictInfoSCG { + struct BandCombinationInfoList *allowedBC_ListMRDC; /* OPTIONAL */ + struct ConfigRestrictInfoSCG__powerCoordination_FR1 { + P_Max_t *p_maxNR_FR1; /* OPTIONAL */ + P_Max_t *p_maxEUTRA; /* OPTIONAL */ + P_Max_t *p_maxUE_FR1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *powerCoordination_FR1; + struct ConfigRestrictInfoSCG__servCellIndexRangeSCG { + ServCellIndex_t lowBound; + ServCellIndex_t upBound; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *servCellIndexRangeSCG; + long *maxMeasFreqsSCG_NR; /* OPTIONAL */ + long *maxMeasIdentitiesSCG_NR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConfigRestrictInfoSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConfigRestrictInfoSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ConfigRestrictInfoSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ConfigRestrictInfoSCG_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConfigRestrictInfoSCG_H_ */ +#include diff --git a/src/codec_utils/RRC/ConfigRestrictModReqSCG.c b/src/codec_utils/RRC/ConfigRestrictModReqSCG.c new file mode 100644 index 000000000..2724d3043 --- /dev/null +++ b/src/codec_utils/RRC/ConfigRestrictModReqSCG.c @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ConfigRestrictModReqSCG.h" + +#include "BandCombinationInfoSN.h" +asn_TYPE_member_t asn_MBR_ConfigRestrictModReqSCG_1[] = { + { ATF_POINTER, 2, offsetof(struct ConfigRestrictModReqSCG, requestedBC_MRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationInfoSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedBC-MRDC" + }, + { ATF_POINTER, 1, offsetof(struct ConfigRestrictModReqSCG, requestedP_MaxFR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "requestedP-MaxFR1" + }, +}; +static const int asn_MAP_ConfigRestrictModReqSCG_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ConfigRestrictModReqSCG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_ConfigRestrictModReqSCG_specs_1 = { + sizeof(struct ConfigRestrictModReqSCG), + offsetof(struct ConfigRestrictModReqSCG, _asn_ctx), + asn_MAP_ConfigRestrictModReqSCG_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ConfigRestrictModReqSCG_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConfigRestrictModReqSCG = { + "ConfigRestrictModReqSCG", + "ConfigRestrictModReqSCG", + &asn_OP_SEQUENCE, + asn_DEF_ConfigRestrictModReqSCG_tags_1, + sizeof(asn_DEF_ConfigRestrictModReqSCG_tags_1) + /sizeof(asn_DEF_ConfigRestrictModReqSCG_tags_1[0]), /* 1 */ + asn_DEF_ConfigRestrictModReqSCG_tags_1, /* Same as above */ + sizeof(asn_DEF_ConfigRestrictModReqSCG_tags_1) + /sizeof(asn_DEF_ConfigRestrictModReqSCG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConfigRestrictModReqSCG_1, + 2, /* Elements count */ + &asn_SPC_ConfigRestrictModReqSCG_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ConfigRestrictModReqSCG.h b/src/codec_utils/RRC/ConfigRestrictModReqSCG.h new file mode 100644 index 000000000..7ccbf851c --- /dev/null +++ b/src/codec_utils/RRC/ConfigRestrictModReqSCG.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ConfigRestrictModReqSCG_H_ +#define _ConfigRestrictModReqSCG_H_ + + +#include + +/* Including external dependencies */ +#include "P-Max.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombinationInfoSN; + +/* ConfigRestrictModReqSCG */ +typedef struct ConfigRestrictModReqSCG { + struct BandCombinationInfoSN *requestedBC_MRDC; /* OPTIONAL */ + P_Max_t *requestedP_MaxFR1; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConfigRestrictModReqSCG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ConfigRestrictModReqSCG; +extern asn_SEQUENCE_specifics_t asn_SPC_ConfigRestrictModReqSCG_specs_1; +extern asn_TYPE_member_t asn_MBR_ConfigRestrictModReqSCG_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConfigRestrictModReqSCG_H_ */ +#include diff --git a/src/codec_utils/RRC/ConfiguredGrantConfig.c b/src/codec_utils/RRC/ConfiguredGrantConfig.c new file mode 100644 index 000000000..fd144fb83 --- /dev/null +++ b/src/codec_utils/RRC/ConfiguredGrantConfig.c @@ -0,0 +1,1379 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ConfiguredGrantConfig.h" + +#include "CG-UCI-OnPUSCH.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_timeDomainOffset_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 <= 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_timeDomainAllocation_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 <= 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_frequencyDomainAllocation_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __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_antennaPort_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 <= 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_dmrs_SeqInitialization_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 <= 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_precodingAndNumberOfLayers_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 <= 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_srs_ResourceIndicator_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 <= 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_mcsAndTBS_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 <= 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_frequencyHoppingOffset_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 <= 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_pathlossReferenceIndex_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 <= 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_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_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_oer_constraints_t asn_OER_type_frequencyHopping_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mcs_Table_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mcs_TableTransformPrecoder_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_uci_OnPUSCH_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_uci_OnPUSCH_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_oer_constraints_t asn_OER_type_resourceAllocation_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_resourceAllocation_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_rbg_Size_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rbg_Size_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_oer_constraints_t asn_OER_type_powerControlLoopToUse_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_powerControlLoopToUse_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_oer_constraints_t asn_OER_type_transformPrecoder_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_transformPrecoder_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_oer_constraints_t asn_OER_type_repK_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_repK_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_repK_RV_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_repK_RV_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_oer_constraints_t asn_OER_type_periodicity_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_periodicity_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 44 } /* (0..44) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_timeDomainOffset_constr_86 CC_NOTUSED = { + { 2, 1 } /* (0..5119) */, + -1}; +static asn_per_constraints_t asn_PER_memb_timeDomainOffset_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 13, 13, 0, 5119 } /* (0..5119) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_timeDomainAllocation_constr_87 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_timeDomainAllocation_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_frequencyDomainAllocation_constr_88 CC_NOTUSED = { + { 0, 0 }, + 18 /* (SIZE(18..18)) */}; +static asn_per_constraints_t asn_PER_memb_frequencyDomainAllocation_constr_88 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_antennaPort_constr_89 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_antennaPort_constr_89 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_dmrs_SeqInitialization_constr_90 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_dmrs_SeqInitialization_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_precodingAndNumberOfLayers_constr_91 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_precodingAndNumberOfLayers_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 6, 6, 0, 63 } /* (0..63) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_srs_ResourceIndicator_constr_92 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_srs_ResourceIndicator_constr_92 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_mcsAndTBS_constr_93 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_mcsAndTBS_constr_93 CC_NOTUSED = { + { APC_CONSTRAINED, 5, 5, 0, 31 } /* (0..31) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_frequencyHoppingOffset_constr_94 CC_NOTUSED = { + { 2, 1 } /* (1..274) */, + -1}; +static asn_per_constraints_t asn_PER_memb_frequencyHoppingOffset_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 274 } /* (1..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_pathlossReferenceIndex_constr_95 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_pathlossReferenceIndex_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_nrofHARQ_Processes_constr_28 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_nrofHARQ_Processes_constr_28 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 1, 16 } /* (1..16) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_configuredGrantTimer_constr_84 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_configuredGrantTimer_constr_84 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_frequencyHopping_value2enum_2[] = { + { 0, 9, "intraSlot" }, + { 1, 9, "interSlot" } +}; +static const unsigned int asn_MAP_frequencyHopping_enum2value_2[] = { + 1, /* interSlot(1) */ + 0 /* intraSlot(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_frequencyHopping_specs_2 = { + asn_MAP_frequencyHopping_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_frequencyHopping_2 = { + "frequencyHopping", + "frequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_frequencyHopping_tags_2, + sizeof(asn_DEF_frequencyHopping_tags_2) + /sizeof(asn_DEF_frequencyHopping_tags_2[0]) - 1, /* 1 */ + asn_DEF_frequencyHopping_tags_2, /* Same as above */ + sizeof(asn_DEF_frequencyHopping_tags_2) + /sizeof(asn_DEF_frequencyHopping_tags_2[0]), /* 2 */ + { &asn_OER_type_frequencyHopping_constr_2, &asn_PER_type_frequencyHopping_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_frequencyHopping_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_Table_value2enum_6[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_Table_enum2value_6[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_Table_specs_6 = { + asn_MAP_mcs_Table_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mcs_Table_6 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_Table_tags_6, + sizeof(asn_DEF_mcs_Table_tags_6) + /sizeof(asn_DEF_mcs_Table_tags_6[0]) - 1, /* 1 */ + asn_DEF_mcs_Table_tags_6, /* Same as above */ + sizeof(asn_DEF_mcs_Table_tags_6) + /sizeof(asn_DEF_mcs_Table_tags_6[0]), /* 2 */ + { &asn_OER_type_mcs_Table_constr_6, &asn_PER_type_mcs_Table_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_Table_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_TableTransformPrecoder_value2enum_9[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_TableTransformPrecoder_enum2value_9[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_TableTransformPrecoder_specs_9 = { + asn_MAP_mcs_TableTransformPrecoder_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mcs_TableTransformPrecoder_9 = { + "mcs-TableTransformPrecoder", + "mcs-TableTransformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_TableTransformPrecoder_tags_9, + sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_9) + /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_9[0]) - 1, /* 1 */ + asn_DEF_mcs_TableTransformPrecoder_tags_9, /* Same as above */ + sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_9) + /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_9[0]), /* 2 */ + { &asn_OER_type_mcs_TableTransformPrecoder_constr_9, &asn_PER_type_mcs_TableTransformPrecoder_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_TableTransformPrecoder_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uci_OnPUSCH_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__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 ConfiguredGrantConfig__uci_OnPUSCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CG_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_uci_OnPUSCH_tag2el_12[] = { + { (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_uci_OnPUSCH_specs_12 = { + sizeof(struct ConfiguredGrantConfig__uci_OnPUSCH), + offsetof(struct ConfiguredGrantConfig__uci_OnPUSCH, _asn_ctx), + offsetof(struct ConfiguredGrantConfig__uci_OnPUSCH, present), + sizeof(((struct ConfiguredGrantConfig__uci_OnPUSCH *)0)->present), + asn_MAP_uci_OnPUSCH_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_uci_OnPUSCH_12 = { + "uci-OnPUSCH", + "uci-OnPUSCH", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_uci_OnPUSCH_constr_12, &asn_PER_type_uci_OnPUSCH_constr_12, CHOICE_constraint }, + asn_MBR_uci_OnPUSCH_12, + 2, /* Elements count */ + &asn_SPC_uci_OnPUSCH_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceAllocation_value2enum_15[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_resourceAllocation_enum2value_15[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceAllocation_specs_15 = { + asn_MAP_resourceAllocation_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_resourceAllocation_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_resourceAllocation_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_resourceAllocation_15 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_resourceAllocation_tags_15, + sizeof(asn_DEF_resourceAllocation_tags_15) + /sizeof(asn_DEF_resourceAllocation_tags_15[0]) - 1, /* 1 */ + asn_DEF_resourceAllocation_tags_15, /* Same as above */ + sizeof(asn_DEF_resourceAllocation_tags_15) + /sizeof(asn_DEF_resourceAllocation_tags_15[0]), /* 2 */ + { &asn_OER_type_resourceAllocation_constr_15, &asn_PER_type_resourceAllocation_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceAllocation_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rbg_Size_value2enum_19[] = { + { 0, 7, "config2" } +}; +static const unsigned int asn_MAP_rbg_Size_enum2value_19[] = { + 0 /* config2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rbg_Size_specs_19 = { + asn_MAP_rbg_Size_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_rbg_Size_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_rbg_Size_tags_19[] = { + (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_rbg_Size_19 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_rbg_Size_tags_19, + sizeof(asn_DEF_rbg_Size_tags_19) + /sizeof(asn_DEF_rbg_Size_tags_19[0]) - 1, /* 1 */ + asn_DEF_rbg_Size_tags_19, /* Same as above */ + sizeof(asn_DEF_rbg_Size_tags_19) + /sizeof(asn_DEF_rbg_Size_tags_19[0]), /* 2 */ + { &asn_OER_type_rbg_Size_constr_19, &asn_PER_type_rbg_Size_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rbg_Size_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_powerControlLoopToUse_value2enum_21[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" } +}; +static const unsigned int asn_MAP_powerControlLoopToUse_enum2value_21[] = { + 0, /* n0(0) */ + 1 /* n1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_powerControlLoopToUse_specs_21 = { + asn_MAP_powerControlLoopToUse_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_powerControlLoopToUse_enum2value_21, /* 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_powerControlLoopToUse_tags_21[] = { + (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_powerControlLoopToUse_21 = { + "powerControlLoopToUse", + "powerControlLoopToUse", + &asn_OP_NativeEnumerated, + asn_DEF_powerControlLoopToUse_tags_21, + sizeof(asn_DEF_powerControlLoopToUse_tags_21) + /sizeof(asn_DEF_powerControlLoopToUse_tags_21[0]) - 1, /* 1 */ + asn_DEF_powerControlLoopToUse_tags_21, /* Same as above */ + sizeof(asn_DEF_powerControlLoopToUse_tags_21) + /sizeof(asn_DEF_powerControlLoopToUse_tags_21[0]), /* 2 */ + { &asn_OER_type_powerControlLoopToUse_constr_21, &asn_PER_type_powerControlLoopToUse_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_powerControlLoopToUse_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_transformPrecoder_value2enum_25[] = { + { 0, 7, "enabled" }, + { 1, 8, "disabled" } +}; +static const unsigned int asn_MAP_transformPrecoder_enum2value_25[] = { + 1, /* disabled(1) */ + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_transformPrecoder_specs_25 = { + asn_MAP_transformPrecoder_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_transformPrecoder_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_transformPrecoder_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_transformPrecoder_25 = { + "transformPrecoder", + "transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_transformPrecoder_tags_25, + sizeof(asn_DEF_transformPrecoder_tags_25) + /sizeof(asn_DEF_transformPrecoder_tags_25[0]) - 1, /* 1 */ + asn_DEF_transformPrecoder_tags_25, /* Same as above */ + sizeof(asn_DEF_transformPrecoder_tags_25) + /sizeof(asn_DEF_transformPrecoder_tags_25[0]), /* 2 */ + { &asn_OER_type_transformPrecoder_constr_25, &asn_PER_type_transformPrecoder_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_transformPrecoder_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_repK_value2enum_29[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_repK_enum2value_29[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_repK_specs_29 = { + asn_MAP_repK_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_repK_enum2value_29, /* 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_repK_tags_29[] = { + (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_repK_29 = { + "repK", + "repK", + &asn_OP_NativeEnumerated, + asn_DEF_repK_tags_29, + sizeof(asn_DEF_repK_tags_29) + /sizeof(asn_DEF_repK_tags_29[0]) - 1, /* 1 */ + asn_DEF_repK_tags_29, /* Same as above */ + sizeof(asn_DEF_repK_tags_29) + /sizeof(asn_DEF_repK_tags_29[0]), /* 2 */ + { &asn_OER_type_repK_constr_29, &asn_PER_type_repK_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_repK_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_repK_RV_value2enum_34[] = { + { 0, 7, "s1-0231" }, + { 1, 7, "s2-0303" }, + { 2, 7, "s3-0000" } +}; +static const unsigned int asn_MAP_repK_RV_enum2value_34[] = { + 0, /* s1-0231(0) */ + 1, /* s2-0303(1) */ + 2 /* s3-0000(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_repK_RV_specs_34 = { + asn_MAP_repK_RV_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_repK_RV_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_repK_RV_tags_34[] = { + (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_repK_RV_34 = { + "repK-RV", + "repK-RV", + &asn_OP_NativeEnumerated, + asn_DEF_repK_RV_tags_34, + sizeof(asn_DEF_repK_RV_tags_34) + /sizeof(asn_DEF_repK_RV_tags_34[0]) - 1, /* 1 */ + asn_DEF_repK_RV_tags_34, /* Same as above */ + sizeof(asn_DEF_repK_RV_tags_34) + /sizeof(asn_DEF_repK_RV_tags_34[0]), /* 2 */ + { &asn_OER_type_repK_RV_constr_34, &asn_PER_type_repK_RV_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_repK_RV_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_periodicity_value2enum_38[] = { + { 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_periodicity_enum2value_38[] = { + 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_periodicity_specs_38 = { + asn_MAP_periodicity_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_periodicity_enum2value_38, /* 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_periodicity_tags_38[] = { + (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_periodicity_38 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_periodicity_tags_38, + sizeof(asn_DEF_periodicity_tags_38) + /sizeof(asn_DEF_periodicity_tags_38[0]) - 1, /* 1 */ + asn_DEF_periodicity_tags_38, /* Same as above */ + sizeof(asn_DEF_periodicity_tags_38) + /sizeof(asn_DEF_periodicity_tags_38[0]), /* 2 */ + { &asn_OER_type_periodicity_constr_38, &asn_PER_type_periodicity_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_periodicity_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rrc_ConfiguredUplinkGrant_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDomainOffset_constr_86, &asn_PER_memb_timeDomainOffset_constr_86, memb_timeDomainOffset_constraint_85 }, + 0, 0, /* No default value */ + "timeDomainOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDomainAllocation_constr_87, &asn_PER_memb_timeDomainAllocation_constr_87, memb_timeDomainAllocation_constraint_85 }, + 0, 0, /* No default value */ + "timeDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyDomainAllocation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_frequencyDomainAllocation_constr_88, &asn_PER_memb_frequencyDomainAllocation_constr_88, memb_frequencyDomainAllocation_constraint_85 }, + 0, 0, /* No default value */ + "frequencyDomainAllocation" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, antennaPort), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_antennaPort_constr_89, &asn_PER_memb_antennaPort_constr_89, memb_antennaPort_constraint_85 }, + 0, 0, /* No default value */ + "antennaPort" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, dmrs_SeqInitialization), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dmrs_SeqInitialization_constr_90, &asn_PER_memb_dmrs_SeqInitialization_constr_90, memb_dmrs_SeqInitialization_constraint_85 }, + 0, 0, /* No default value */ + "dmrs-SeqInitialization" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, precodingAndNumberOfLayers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_precodingAndNumberOfLayers_constr_91, &asn_PER_memb_precodingAndNumberOfLayers_constr_91, memb_precodingAndNumberOfLayers_constraint_85 }, + 0, 0, /* No default value */ + "precodingAndNumberOfLayers" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, srs_ResourceIndicator), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_srs_ResourceIndicator_constr_92, &asn_PER_memb_srs_ResourceIndicator_constr_92, memb_srs_ResourceIndicator_constraint_85 }, + 0, 0, /* No default value */ + "srs-ResourceIndicator" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, mcsAndTBS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_mcsAndTBS_constr_93, &asn_PER_memb_mcsAndTBS_constr_93, memb_mcsAndTBS_constraint_85 }, + 0, 0, /* No default value */ + "mcsAndTBS" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyHoppingOffset), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frequencyHoppingOffset_constr_94, &asn_PER_memb_frequencyHoppingOffset_constr_94, memb_frequencyHoppingOffset_constraint_85 }, + 0, 0, /* No default value */ + "frequencyHoppingOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, pathlossReferenceIndex), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_pathlossReferenceIndex_constr_95, &asn_PER_memb_pathlossReferenceIndex_constr_95, memb_pathlossReferenceIndex_constraint_85 }, + 0, 0, /* No default value */ + "pathlossReferenceIndex" + }, +}; +static const int asn_MAP_rrc_ConfiguredUplinkGrant_oms_85[] = { 4, 6, 8 }; +static const ber_tlv_tag_t asn_DEF_rrc_ConfiguredUplinkGrant_tags_85[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_rrc_ConfiguredUplinkGrant_tag2el_85[] = { + { (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_rrc_ConfiguredUplinkGrant_specs_85 = { + sizeof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant), + offsetof(struct ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, _asn_ctx), + asn_MAP_rrc_ConfiguredUplinkGrant_tag2el_85, + 10, /* Count of tags in the map */ + asn_MAP_rrc_ConfiguredUplinkGrant_oms_85, /* Optional members */ + 3, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rrc_ConfiguredUplinkGrant_85 = { + "rrc-ConfiguredUplinkGrant", + "rrc-ConfiguredUplinkGrant", + &asn_OP_SEQUENCE, + asn_DEF_rrc_ConfiguredUplinkGrant_tags_85, + sizeof(asn_DEF_rrc_ConfiguredUplinkGrant_tags_85) + /sizeof(asn_DEF_rrc_ConfiguredUplinkGrant_tags_85[0]) - 1, /* 1 */ + asn_DEF_rrc_ConfiguredUplinkGrant_tags_85, /* Same as above */ + sizeof(asn_DEF_rrc_ConfiguredUplinkGrant_tags_85) + /sizeof(asn_DEF_rrc_ConfiguredUplinkGrant_tags_85[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_rrc_ConfiguredUplinkGrant_85, + 10, /* Elements count */ + &asn_SPC_rrc_ConfiguredUplinkGrant_specs_85 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConfiguredGrantConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, frequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_frequencyHopping_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, cg_DMRS_Configuration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cg-DMRS-Configuration" + }, + { ATF_POINTER, 3, offsetof(struct ConfiguredGrantConfig, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_Table_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 2, offsetof(struct ConfiguredGrantConfig, mcs_TableTransformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_TableTransformPrecoder_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-TableTransformPrecoder" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, uci_OnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_uci_OnPUSCH_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-OnPUSCH" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceAllocation_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rbg_Size_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, powerControlLoopToUse), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_powerControlLoopToUse_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerControlLoopToUse" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, p0_PUSCH_Alpha), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUSCH-Alpha" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_transformPrecoder_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoder" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, nrofHARQ_Processes), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofHARQ_Processes_constr_28, &asn_PER_memb_nrofHARQ_Processes_constr_28, memb_nrofHARQ_Processes_constraint_1 }, + 0, 0, /* No default value */ + "nrofHARQ-Processes" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, repK), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_repK_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repK" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, repK_RV), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_repK_RV_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repK-RV" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConfiguredGrantConfig, periodicity), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_periodicity_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, + { ATF_POINTER, 2, offsetof(struct ConfiguredGrantConfig, configuredGrantTimer), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_configuredGrantTimer_constr_84, &asn_PER_memb_configuredGrantTimer_constr_84, memb_configuredGrantTimer_constraint_1 }, + 0, 0, /* No default value */ + "configuredGrantTimer" + }, + { ATF_POINTER, 1, offsetof(struct ConfiguredGrantConfig, rrc_ConfiguredUplinkGrant), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_rrc_ConfiguredUplinkGrant_85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-ConfiguredUplinkGrant" + }, +}; +static const int asn_MAP_ConfiguredGrantConfig_oms_1[] = { 0, 2, 3, 4, 6, 9, 12, 14, 15 }; +static const ber_tlv_tag_t asn_DEF_ConfiguredGrantConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ConfiguredGrantConfig_specs_1 = { + sizeof(struct ConfiguredGrantConfig), + offsetof(struct ConfiguredGrantConfig, _asn_ctx), + asn_MAP_ConfiguredGrantConfig_tag2el_1, + 16, /* Count of tags in the map */ + asn_MAP_ConfiguredGrantConfig_oms_1, /* Optional members */ + 9, 0, /* Root/Additions */ + 16, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConfiguredGrantConfig = { + "ConfiguredGrantConfig", + "ConfiguredGrantConfig", + &asn_OP_SEQUENCE, + asn_DEF_ConfiguredGrantConfig_tags_1, + sizeof(asn_DEF_ConfiguredGrantConfig_tags_1) + /sizeof(asn_DEF_ConfiguredGrantConfig_tags_1[0]), /* 1 */ + asn_DEF_ConfiguredGrantConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ConfiguredGrantConfig_tags_1) + /sizeof(asn_DEF_ConfiguredGrantConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConfiguredGrantConfig_1, + 16, /* Elements count */ + &asn_SPC_ConfiguredGrantConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ConfiguredGrantConfig.h b/src/codec_utils/RRC/ConfiguredGrantConfig.h new file mode 100644 index 000000000..6b2234039 --- /dev/null +++ b/src/codec_utils/RRC/ConfiguredGrantConfig.h @@ -0,0 +1,198 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ConfiguredGrantConfig_H_ +#define _ConfiguredGrantConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "DMRS-UplinkConfig.h" +#include "P0-PUSCH-AlphaSetId.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ConfiguredGrantConfig__frequencyHopping { + ConfiguredGrantConfig__frequencyHopping_intraSlot = 0, + ConfiguredGrantConfig__frequencyHopping_interSlot = 1 +} e_ConfiguredGrantConfig__frequencyHopping; +typedef enum ConfiguredGrantConfig__mcs_Table { + ConfiguredGrantConfig__mcs_Table_qam256 = 0, + ConfiguredGrantConfig__mcs_Table_qam64LowSE = 1 +} e_ConfiguredGrantConfig__mcs_Table; +typedef enum ConfiguredGrantConfig__mcs_TableTransformPrecoder { + ConfiguredGrantConfig__mcs_TableTransformPrecoder_qam256 = 0, + ConfiguredGrantConfig__mcs_TableTransformPrecoder_qam64LowSE = 1 +} e_ConfiguredGrantConfig__mcs_TableTransformPrecoder; +typedef enum ConfiguredGrantConfig__uci_OnPUSCH_PR { + ConfiguredGrantConfig__uci_OnPUSCH_PR_NOTHING, /* No components present */ + ConfiguredGrantConfig__uci_OnPUSCH_PR_release, + ConfiguredGrantConfig__uci_OnPUSCH_PR_setup +} ConfiguredGrantConfig__uci_OnPUSCH_PR; +typedef enum ConfiguredGrantConfig__resourceAllocation { + ConfiguredGrantConfig__resourceAllocation_resourceAllocationType0 = 0, + ConfiguredGrantConfig__resourceAllocation_resourceAllocationType1 = 1, + ConfiguredGrantConfig__resourceAllocation_dynamicSwitch = 2 +} e_ConfiguredGrantConfig__resourceAllocation; +typedef enum ConfiguredGrantConfig__rbg_Size { + ConfiguredGrantConfig__rbg_Size_config2 = 0 +} e_ConfiguredGrantConfig__rbg_Size; +typedef enum ConfiguredGrantConfig__powerControlLoopToUse { + ConfiguredGrantConfig__powerControlLoopToUse_n0 = 0, + ConfiguredGrantConfig__powerControlLoopToUse_n1 = 1 +} e_ConfiguredGrantConfig__powerControlLoopToUse; +typedef enum ConfiguredGrantConfig__transformPrecoder { + ConfiguredGrantConfig__transformPrecoder_enabled = 0, + ConfiguredGrantConfig__transformPrecoder_disabled = 1 +} e_ConfiguredGrantConfig__transformPrecoder; +typedef enum ConfiguredGrantConfig__repK { + ConfiguredGrantConfig__repK_n1 = 0, + ConfiguredGrantConfig__repK_n2 = 1, + ConfiguredGrantConfig__repK_n4 = 2, + ConfiguredGrantConfig__repK_n8 = 3 +} e_ConfiguredGrantConfig__repK; +typedef enum ConfiguredGrantConfig__repK_RV { + ConfiguredGrantConfig__repK_RV_s1_0231 = 0, + ConfiguredGrantConfig__repK_RV_s2_0303 = 1, + ConfiguredGrantConfig__repK_RV_s3_0000 = 2 +} e_ConfiguredGrantConfig__repK_RV; +typedef enum ConfiguredGrantConfig__periodicity { + ConfiguredGrantConfig__periodicity_sym2 = 0, + ConfiguredGrantConfig__periodicity_sym7 = 1, + ConfiguredGrantConfig__periodicity_sym1x14 = 2, + ConfiguredGrantConfig__periodicity_sym2x14 = 3, + ConfiguredGrantConfig__periodicity_sym4x14 = 4, + ConfiguredGrantConfig__periodicity_sym5x14 = 5, + ConfiguredGrantConfig__periodicity_sym8x14 = 6, + ConfiguredGrantConfig__periodicity_sym10x14 = 7, + ConfiguredGrantConfig__periodicity_sym16x14 = 8, + ConfiguredGrantConfig__periodicity_sym20x14 = 9, + ConfiguredGrantConfig__periodicity_sym32x14 = 10, + ConfiguredGrantConfig__periodicity_sym40x14 = 11, + ConfiguredGrantConfig__periodicity_sym64x14 = 12, + ConfiguredGrantConfig__periodicity_sym80x14 = 13, + ConfiguredGrantConfig__periodicity_sym128x14 = 14, + ConfiguredGrantConfig__periodicity_sym160x14 = 15, + ConfiguredGrantConfig__periodicity_sym256x14 = 16, + ConfiguredGrantConfig__periodicity_sym320x14 = 17, + ConfiguredGrantConfig__periodicity_sym512x14 = 18, + ConfiguredGrantConfig__periodicity_sym640x14 = 19, + ConfiguredGrantConfig__periodicity_sym1024x14 = 20, + ConfiguredGrantConfig__periodicity_sym1280x14 = 21, + ConfiguredGrantConfig__periodicity_sym2560x14 = 22, + ConfiguredGrantConfig__periodicity_sym5120x14 = 23, + ConfiguredGrantConfig__periodicity_sym6 = 24, + ConfiguredGrantConfig__periodicity_sym1x12 = 25, + ConfiguredGrantConfig__periodicity_sym2x12 = 26, + ConfiguredGrantConfig__periodicity_sym4x12 = 27, + ConfiguredGrantConfig__periodicity_sym5x12 = 28, + ConfiguredGrantConfig__periodicity_sym8x12 = 29, + ConfiguredGrantConfig__periodicity_sym10x12 = 30, + ConfiguredGrantConfig__periodicity_sym16x12 = 31, + ConfiguredGrantConfig__periodicity_sym20x12 = 32, + ConfiguredGrantConfig__periodicity_sym32x12 = 33, + ConfiguredGrantConfig__periodicity_sym40x12 = 34, + ConfiguredGrantConfig__periodicity_sym64x12 = 35, + ConfiguredGrantConfig__periodicity_sym80x12 = 36, + ConfiguredGrantConfig__periodicity_sym128x12 = 37, + ConfiguredGrantConfig__periodicity_sym160x12 = 38, + ConfiguredGrantConfig__periodicity_sym256x12 = 39, + ConfiguredGrantConfig__periodicity_sym320x12 = 40, + ConfiguredGrantConfig__periodicity_sym512x12 = 41, + ConfiguredGrantConfig__periodicity_sym640x12 = 42, + ConfiguredGrantConfig__periodicity_sym1280x12 = 43, + ConfiguredGrantConfig__periodicity_sym2560x12 = 44 +} e_ConfiguredGrantConfig__periodicity; + +/* Forward declarations */ +struct CG_UCI_OnPUSCH; + +/* ConfiguredGrantConfig */ +typedef struct ConfiguredGrantConfig { + long *frequencyHopping; /* OPTIONAL */ + DMRS_UplinkConfig_t cg_DMRS_Configuration; + long *mcs_Table; /* OPTIONAL */ + long *mcs_TableTransformPrecoder; /* OPTIONAL */ + struct ConfiguredGrantConfig__uci_OnPUSCH { + ConfiguredGrantConfig__uci_OnPUSCH_PR present; + union ConfiguredGrantConfig__uci_OnPUSCH_u { + NULL_t release; + struct CG_UCI_OnPUSCH *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uci_OnPUSCH; + long resourceAllocation; + long *rbg_Size; /* OPTIONAL */ + long powerControlLoopToUse; + 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 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; +} ConfiguredGrantConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_frequencyHopping_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_TableTransformPrecoder_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceAllocation_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rbg_Size_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_powerControlLoopToUse_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_transformPrecoder_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_repK_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_repK_RV_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_periodicity_38; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ConfiguredGrantConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ConfiguredGrantConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ConfiguredGrantConfig_1[16]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConfiguredGrantConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/ConnEstFailureControl.c b/src/codec_utils/RRC/ConnEstFailureControl.c new file mode 100644 index 000000000..e77fe159b --- /dev/null +++ b/src/codec_utils/RRC/ConnEstFailureControl.c @@ -0,0 +1,219 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_oer_constraints_t asn_OER_type_connEstFailCount_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_connEstFailOffsetValidity_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_connEstFailOffset_constr_16 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_connEstFailCount_value2enum_2[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" }, + { 3, 2, "n4" } +}; +static const unsigned int asn_MAP_connEstFailCount_enum2value_2[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n3(2) */ + 3 /* n4(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_connEstFailCount_specs_2 = { + asn_MAP_connEstFailCount_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_connEstFailCount_2 = { + "connEstFailCount", + "connEstFailCount", + &asn_OP_NativeEnumerated, + asn_DEF_connEstFailCount_tags_2, + sizeof(asn_DEF_connEstFailCount_tags_2) + /sizeof(asn_DEF_connEstFailCount_tags_2[0]) - 1, /* 1 */ + asn_DEF_connEstFailCount_tags_2, /* Same as above */ + sizeof(asn_DEF_connEstFailCount_tags_2) + /sizeof(asn_DEF_connEstFailCount_tags_2[0]), /* 2 */ + { &asn_OER_type_connEstFailCount_constr_2, &asn_PER_type_connEstFailCount_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_connEstFailCount_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_connEstFailOffsetValidity_specs_7 = { + asn_MAP_connEstFailOffsetValidity_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_connEstFailOffsetValidity_7 = { + "connEstFailOffsetValidity", + "connEstFailOffsetValidity", + &asn_OP_NativeEnumerated, + asn_DEF_connEstFailOffsetValidity_tags_7, + sizeof(asn_DEF_connEstFailOffsetValidity_tags_7) + /sizeof(asn_DEF_connEstFailOffsetValidity_tags_7[0]) - 1, /* 1 */ + asn_DEF_connEstFailOffsetValidity_tags_7, /* Same as above */ + sizeof(asn_DEF_connEstFailOffsetValidity_tags_7) + /sizeof(asn_DEF_connEstFailOffsetValidity_tags_7[0]), /* 2 */ + { &asn_OER_type_connEstFailOffsetValidity_constr_7, &asn_PER_type_connEstFailOffsetValidity_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_connEstFailOffsetValidity_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ConnEstFailureControl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ConnEstFailureControl, connEstFailCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_connEstFailCount_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailCount" + }, + { ATF_NOFLAGS, 0, offsetof(struct ConnEstFailureControl, connEstFailOffsetValidity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_connEstFailOffsetValidity_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailOffsetValidity" + }, + { ATF_POINTER, 1, offsetof(struct ConnEstFailureControl, connEstFailOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_connEstFailOffset_constr_16, &asn_PER_memb_connEstFailOffset_constr_16, memb_connEstFailOffset_constraint_1 }, + 0, 0, /* No default value */ + "connEstFailOffset" + }, +}; +static const int asn_MAP_ConnEstFailureControl_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ConnEstFailureControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ConnEstFailureControl_specs_1 = { + sizeof(struct ConnEstFailureControl), + offsetof(struct ConnEstFailureControl, _asn_ctx), + asn_MAP_ConnEstFailureControl_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ConnEstFailureControl_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ConnEstFailureControl = { + "ConnEstFailureControl", + "ConnEstFailureControl", + &asn_OP_SEQUENCE, + asn_DEF_ConnEstFailureControl_tags_1, + sizeof(asn_DEF_ConnEstFailureControl_tags_1) + /sizeof(asn_DEF_ConnEstFailureControl_tags_1[0]), /* 1 */ + asn_DEF_ConnEstFailureControl_tags_1, /* Same as above */ + sizeof(asn_DEF_ConnEstFailureControl_tags_1) + /sizeof(asn_DEF_ConnEstFailureControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ConnEstFailureControl_1, + 3, /* Elements count */ + &asn_SPC_ConnEstFailureControl_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ConnEstFailureControl.h b/src/codec_utils/RRC/ConnEstFailureControl.h new file mode 100644 index 000000000..39d1292a2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ConnEstFailureControl_H_ +#define _ConnEstFailureControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ConnEstFailureControl__connEstFailCount { + ConnEstFailureControl__connEstFailCount_n1 = 0, + ConnEstFailureControl__connEstFailCount_n2 = 1, + ConnEstFailureControl__connEstFailCount_n3 = 2, + ConnEstFailureControl__connEstFailCount_n4 = 3 +} e_ConnEstFailureControl__connEstFailCount; +typedef enum ConnEstFailureControl__connEstFailOffsetValidity { + ConnEstFailureControl__connEstFailOffsetValidity_s30 = 0, + ConnEstFailureControl__connEstFailOffsetValidity_s60 = 1, + ConnEstFailureControl__connEstFailOffsetValidity_s120 = 2, + ConnEstFailureControl__connEstFailOffsetValidity_s240 = 3, + ConnEstFailureControl__connEstFailOffsetValidity_s300 = 4, + ConnEstFailureControl__connEstFailOffsetValidity_s420 = 5, + ConnEstFailureControl__connEstFailOffsetValidity_s600 = 6, + ConnEstFailureControl__connEstFailOffsetValidity_s900 = 7 +} e_ConnEstFailureControl__connEstFailOffsetValidity; + +/* ConnEstFailureControl */ +typedef struct ConnEstFailureControl { + long connEstFailCount; + long connEstFailOffsetValidity; + long *connEstFailOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ConnEstFailureControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_connEstFailCount_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_connEstFailOffsetValidity_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ConnEstFailureControl; +extern asn_SEQUENCE_specifics_t asn_SPC_ConnEstFailureControl_specs_1; +extern asn_TYPE_member_t asn_MBR_ConnEstFailureControl_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ConnEstFailureControl_H_ */ +#include diff --git a/src/codec_utils/RRC/ControlResourceSet.c b/src/codec_utils/RRC/ControlResourceSet.c new file mode 100644 index 000000000..5dc8901d7 --- /dev/null +++ b/src/codec_utils/RRC/ControlResourceSet.c @@ -0,0 +1,748 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_reg_BundleSize_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_interleaverSize_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_shiftIndex_constr_15 CC_NOTUSED = { + { 2, 1 } /* (0..274) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_cce_REG_MappingType_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_precoderGranularity_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_PresentInDCI_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_frequencyDomainResources_constr_3 CC_NOTUSED = { + { 0, 0 }, + 45 /* (SIZE(45..45)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_duration_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_reg_BundleSize_value2enum_7[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n6" } +}; +static const unsigned int asn_MAP_reg_BundleSize_enum2value_7[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n6(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reg_BundleSize_specs_7 = { + asn_MAP_reg_BundleSize_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reg_BundleSize_7 = { + "reg-BundleSize", + "reg-BundleSize", + &asn_OP_NativeEnumerated, + asn_DEF_reg_BundleSize_tags_7, + sizeof(asn_DEF_reg_BundleSize_tags_7) + /sizeof(asn_DEF_reg_BundleSize_tags_7[0]) - 1, /* 1 */ + asn_DEF_reg_BundleSize_tags_7, /* Same as above */ + sizeof(asn_DEF_reg_BundleSize_tags_7) + /sizeof(asn_DEF_reg_BundleSize_tags_7[0]), /* 2 */ + { &asn_OER_type_reg_BundleSize_constr_7, &asn_PER_type_reg_BundleSize_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reg_BundleSize_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_interleaverSize_value2enum_11[] = { + { 0, 2, "n2" }, + { 1, 2, "n3" }, + { 2, 2, "n6" } +}; +static const unsigned int asn_MAP_interleaverSize_enum2value_11[] = { + 0, /* n2(0) */ + 1, /* n3(1) */ + 2 /* n6(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_interleaverSize_specs_11 = { + asn_MAP_interleaverSize_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_interleaverSize_11 = { + "interleaverSize", + "interleaverSize", + &asn_OP_NativeEnumerated, + asn_DEF_interleaverSize_tags_11, + sizeof(asn_DEF_interleaverSize_tags_11) + /sizeof(asn_DEF_interleaverSize_tags_11[0]) - 1, /* 1 */ + asn_DEF_interleaverSize_tags_11, /* Same as above */ + sizeof(asn_DEF_interleaverSize_tags_11) + /sizeof(asn_DEF_interleaverSize_tags_11[0]), /* 2 */ + { &asn_OER_type_interleaverSize_constr_11, &asn_PER_type_interleaverSize_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_interleaverSize_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_interleaved_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, reg_BundleSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reg_BundleSize_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reg-BundleSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, interleaverSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_interleaverSize_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleaverSize" + }, + { ATF_POINTER, 1, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, shiftIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_shiftIndex_constr_15, &asn_PER_memb_shiftIndex_constr_15, memb_shiftIndex_constraint_6 }, + 0, 0, /* No default value */ + "shiftIndex" + }, +}; +static const int asn_MAP_interleaved_oms_6[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_interleaved_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_interleaved_specs_6 = { + sizeof(struct ControlResourceSet__cce_REG_MappingType__interleaved), + offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, _asn_ctx), + asn_MAP_interleaved_tag2el_6, + 3, /* Count of tags in the map */ + asn_MAP_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_interleaved_6 = { + "interleaved", + "interleaved", + &asn_OP_SEQUENCE, + asn_DEF_interleaved_tags_6, + sizeof(asn_DEF_interleaved_tags_6) + /sizeof(asn_DEF_interleaved_tags_6[0]) - 1, /* 1 */ + asn_DEF_interleaved_tags_6, /* Same as above */ + sizeof(asn_DEF_interleaved_tags_6) + /sizeof(asn_DEF_interleaved_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_interleaved_6, + 3, /* Elements count */ + &asn_SPC_interleaved_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cce_REG_MappingType_5[] = { + { ATF_POINTER, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType, choice.interleaved), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_interleaved_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleaved" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_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_cce_REG_MappingType_specs_5 = { + sizeof(struct ControlResourceSet__cce_REG_MappingType), + offsetof(struct ControlResourceSet__cce_REG_MappingType, _asn_ctx), + offsetof(struct ControlResourceSet__cce_REG_MappingType, present), + sizeof(((struct ControlResourceSet__cce_REG_MappingType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_cce_REG_MappingType_constr_5, &asn_PER_type_cce_REG_MappingType_constr_5, CHOICE_constraint }, + asn_MBR_cce_REG_MappingType_5, + 2, /* Elements count */ + &asn_SPC_cce_REG_MappingType_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_precoderGranularity_value2enum_17[] = { + { 0, 16, "sameAsREG-bundle" }, + { 1, 16, "allContiguousRBs" } +}; +static const unsigned int asn_MAP_precoderGranularity_enum2value_17[] = { + 1, /* allContiguousRBs(1) */ + 0 /* sameAsREG-bundle(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_precoderGranularity_specs_17 = { + asn_MAP_precoderGranularity_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_precoderGranularity_17 = { + "precoderGranularity", + "precoderGranularity", + &asn_OP_NativeEnumerated, + asn_DEF_precoderGranularity_tags_17, + sizeof(asn_DEF_precoderGranularity_tags_17) + /sizeof(asn_DEF_precoderGranularity_tags_17[0]) - 1, /* 1 */ + asn_DEF_precoderGranularity_tags_17, /* Same as above */ + sizeof(asn_DEF_precoderGranularity_tags_17) + /sizeof(asn_DEF_precoderGranularity_tags_17[0]), /* 2 */ + { &asn_OER_type_precoderGranularity_constr_17, &asn_PER_type_precoderGranularity_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_precoderGranularity_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToAddList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_tci_StatesPDCCH_ToAddList_specs_20 = { + sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList), + offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToAddList_20 = { + "tci-StatesPDCCH-ToAddList", + "tci-StatesPDCCH-ToAddList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tci_StatesPDCCH_ToAddList_tags_20, + sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20) + /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]) - 1, /* 1 */ + asn_DEF_tci_StatesPDCCH_ToAddList_tags_20, /* Same as above */ + sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20) + /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]), /* 2 */ + { &asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_type_tci_StatesPDCCH_ToAddList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_tci_StatesPDCCH_ToAddList_20, + 1, /* Single element */ + &asn_SPC_tci_StatesPDCCH_ToAddList_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToReleaseList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_tci_StatesPDCCH_ToReleaseList_specs_22 = { + sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList), + offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToReleaseList_22 = { + "tci-StatesPDCCH-ToReleaseList", + "tci-StatesPDCCH-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22, + sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22) + /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]) - 1, /* 1 */ + asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22, /* Same as above */ + sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22) + /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]), /* 2 */ + { &asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_type_tci_StatesPDCCH_ToReleaseList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_tci_StatesPDCCH_ToReleaseList_22, + 1, /* Single element */ + &asn_SPC_tci_StatesPDCCH_ToReleaseList_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tci_PresentInDCI_value2enum_24[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_tci_PresentInDCI_enum2value_24[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tci_PresentInDCI_specs_24 = { + asn_MAP_tci_PresentInDCI_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tci_PresentInDCI_24 = { + "tci-PresentInDCI", + "tci-PresentInDCI", + &asn_OP_NativeEnumerated, + asn_DEF_tci_PresentInDCI_tags_24, + sizeof(asn_DEF_tci_PresentInDCI_tags_24) + /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]) - 1, /* 1 */ + asn_DEF_tci_PresentInDCI_tags_24, /* Same as above */ + sizeof(asn_DEF_tci_PresentInDCI_tags_24) + /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]), /* 2 */ + { &asn_OER_type_tci_PresentInDCI_constr_24, &asn_PER_type_tci_PresentInDCI_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tci_PresentInDCI_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ControlResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, controlResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, frequencyDomainResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_frequencyDomainResources_constr_3, &asn_PER_memb_frequencyDomainResources_constr_3, memb_frequencyDomainResources_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDomainResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, duration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_duration_constr_4, &asn_PER_memb_duration_constr_4, memb_duration_constraint_1 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, cce_REG_MappingType), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cce_REG_MappingType_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cce-REG-MappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, precoderGranularity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_precoderGranularity_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "precoderGranularity" + }, + { ATF_POINTER, 4, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToAddList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_tci_StatesPDCCH_ToAddList_20, + 0, + { &asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_memb_tci_StatesPDCCH_ToAddList_constr_20, memb_tci_StatesPDCCH_ToAddList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesPDCCH-ToAddList" + }, + { ATF_POINTER, 3, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_tci_StatesPDCCH_ToReleaseList_22, + 0, + { &asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_memb_tci_StatesPDCCH_ToReleaseList_constr_22, memb_tci_StatesPDCCH_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesPDCCH-ToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ControlResourceSet, tci_PresentInDCI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tci_PresentInDCI_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-PresentInDCI" + }, + { ATF_POINTER, 1, offsetof(struct ControlResourceSet, pdcch_DMRS_ScramblingID), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26, &asn_PER_memb_pdcch_DMRS_ScramblingID_constr_26, memb_pdcch_DMRS_ScramblingID_constraint_1 }, + 0, 0, /* No default value */ + "pdcch-DMRS-ScramblingID" + }, +}; +static const int asn_MAP_ControlResourceSet_oms_1[] = { 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_ControlResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ControlResourceSet_specs_1 = { + sizeof(struct ControlResourceSet), + offsetof(struct ControlResourceSet, _asn_ctx), + asn_MAP_ControlResourceSet_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_ControlResourceSet_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ControlResourceSet = { + "ControlResourceSet", + "ControlResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ControlResourceSet_tags_1, + sizeof(asn_DEF_ControlResourceSet_tags_1) + /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ControlResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ControlResourceSet_tags_1) + /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ControlResourceSet_1, + 9, /* Elements count */ + &asn_SPC_ControlResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ControlResourceSet.h b/src/codec_utils/RRC/ControlResourceSet.h new file mode 100644 index 000000000..7aba188b8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ControlResourceSet_H_ +#define _ControlResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ControlResourceSetId.h" +#include +#include +#include +#include +#include +#include +#include "TCI-StateId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ControlResourceSet__cce_REG_MappingType_PR { + ControlResourceSet__cce_REG_MappingType_PR_NOTHING, /* No components present */ + ControlResourceSet__cce_REG_MappingType_PR_interleaved, + ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved +} ControlResourceSet__cce_REG_MappingType_PR; +typedef enum ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize { + ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n2 = 0, + ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n3 = 1, + ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n6 = 2 +} e_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize; +typedef enum ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize { + ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n2 = 0, + ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n3 = 1, + ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n6 = 2 +} e_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize; +typedef enum ControlResourceSet__precoderGranularity { + ControlResourceSet__precoderGranularity_sameAsREG_bundle = 0, + ControlResourceSet__precoderGranularity_allContiguousRBs = 1 +} e_ControlResourceSet__precoderGranularity; +typedef enum ControlResourceSet__tci_PresentInDCI { + ControlResourceSet__tci_PresentInDCI_enabled = 0 +} e_ControlResourceSet__tci_PresentInDCI; + +/* ControlResourceSet */ +typedef struct ControlResourceSet { + ControlResourceSetId_t controlResourceSetId; + BIT_STRING_t frequencyDomainResources; + long duration; + struct ControlResourceSet__cce_REG_MappingType { + ControlResourceSet__cce_REG_MappingType_PR present; + union ControlResourceSet__cce_REG_MappingType_u { + struct 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 ControlResourceSet__tci_StatesPDCCH_ToAddList { + A_SEQUENCE_OF(TCI_StateId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesPDCCH_ToAddList; + struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList { + A_SEQUENCE_OF(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; +} ControlResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reg_BundleSize_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_interleaverSize_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_precoderGranularity_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tci_PresentInDCI_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ControlResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ControlResourceSet_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ControlResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/ControlResourceSetId.c b/src/codec_utils/RRC/ControlResourceSetId.c new file mode 100644 index 000000000..6068980f4 --- /dev/null +++ b/src/codec_utils/RRC/ControlResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ControlResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ControlResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..11) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ControlResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ControlResourceSetId = { + "ControlResourceSetId", + "ControlResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ControlResourceSetId_tags_1, + sizeof(asn_DEF_ControlResourceSetId_tags_1) + /sizeof(asn_DEF_ControlResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ControlResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ControlResourceSetId_tags_1) + /sizeof(asn_DEF_ControlResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_ControlResourceSetId_constr_1, &asn_PER_type_ControlResourceSetId_constr_1, ControlResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ControlResourceSetId.h b/src/codec_utils/RRC/ControlResourceSetId.h new file mode 100644 index 000000000..87408e001 --- /dev/null +++ b/src/codec_utils/RRC/ControlResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ControlResourceSetId_H_ +#define _ControlResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ControlResourceSetId */ +typedef long ControlResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ControlResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSetId; +asn_struct_free_f ControlResourceSetId_free; +asn_struct_print_f ControlResourceSetId_print; +asn_constr_check_f ControlResourceSetId_constraint; +ber_type_decoder_f ControlResourceSetId_decode_ber; +der_type_encoder_f ControlResourceSetId_encode_der; +xer_type_decoder_f ControlResourceSetId_decode_xer; +xer_type_encoder_f ControlResourceSetId_encode_xer; +oer_type_decoder_f ControlResourceSetId_decode_oer; +oer_type_encoder_f ControlResourceSetId_encode_oer; +per_type_decoder_f ControlResourceSetId_decode_uper; +per_type_encoder_f ControlResourceSetId_encode_uper; +per_type_decoder_f ControlResourceSetId_decode_aper; +per_type_encoder_f ControlResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ControlResourceSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/ControlResourceSetZero.c b/src/codec_utils/RRC/ControlResourceSetZero.c new file mode 100644 index 000000000..fdd75dfce --- /dev/null +++ b/src/codec_utils/RRC/ControlResourceSetZero.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ControlResourceSetZero.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ControlResourceSetZero_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ControlResourceSetZero_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ControlResourceSetZero = { + "ControlResourceSetZero", + "ControlResourceSetZero", + &asn_OP_NativeInteger, + asn_DEF_ControlResourceSetZero_tags_1, + sizeof(asn_DEF_ControlResourceSetZero_tags_1) + /sizeof(asn_DEF_ControlResourceSetZero_tags_1[0]), /* 1 */ + asn_DEF_ControlResourceSetZero_tags_1, /* Same as above */ + sizeof(asn_DEF_ControlResourceSetZero_tags_1) + /sizeof(asn_DEF_ControlResourceSetZero_tags_1[0]), /* 1 */ + { &asn_OER_type_ControlResourceSetZero_constr_1, &asn_PER_type_ControlResourceSetZero_constr_1, ControlResourceSetZero_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ControlResourceSetZero.h b/src/codec_utils/RRC/ControlResourceSetZero.h new file mode 100644 index 000000000..7af45d169 --- /dev/null +++ b/src/codec_utils/RRC/ControlResourceSetZero.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ControlResourceSetZero_H_ +#define _ControlResourceSetZero_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ControlResourceSetZero */ +typedef long ControlResourceSetZero_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ControlResourceSetZero_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSetZero; +asn_struct_free_f ControlResourceSetZero_free; +asn_struct_print_f ControlResourceSetZero_print; +asn_constr_check_f ControlResourceSetZero_constraint; +ber_type_decoder_f ControlResourceSetZero_decode_ber; +der_type_encoder_f ControlResourceSetZero_encode_der; +xer_type_decoder_f ControlResourceSetZero_decode_xer; +xer_type_encoder_f ControlResourceSetZero_encode_xer; +oer_type_decoder_f ControlResourceSetZero_decode_oer; +oer_type_encoder_f ControlResourceSetZero_encode_oer; +per_type_decoder_f ControlResourceSetZero_decode_uper; +per_type_encoder_f ControlResourceSetZero_encode_uper; +per_type_decoder_f ControlResourceSetZero_decode_aper; +per_type_encoder_f ControlResourceSetZero_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ControlResourceSetZero_H_ */ +#include diff --git a/src/codec_utils/RRC/CounterCheck-IEs.c b/src/codec_utils/RRC/CounterCheck-IEs.c new file mode 100644 index 000000000..a5d27f16c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CounterCheck-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct CounterCheck_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CounterCheck_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CounterCheck_IEs, drb_CountMSB_InfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_CountMSB_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-CountMSB-InfoList" + }, + { ATF_POINTER, 2, offsetof(struct 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 CounterCheck_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_CounterCheck_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_CounterCheck_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CounterCheck_IEs_specs_1 = { + sizeof(struct CounterCheck_IEs), + offsetof(struct CounterCheck_IEs, _asn_ctx), + asn_MAP_CounterCheck_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CounterCheck_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CounterCheck_IEs = { + "CounterCheck-IEs", + "CounterCheck-IEs", + &asn_OP_SEQUENCE, + asn_DEF_CounterCheck_IEs_tags_1, + sizeof(asn_DEF_CounterCheck_IEs_tags_1) + /sizeof(asn_DEF_CounterCheck_IEs_tags_1[0]), /* 1 */ + asn_DEF_CounterCheck_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_CounterCheck_IEs_tags_1) + /sizeof(asn_DEF_CounterCheck_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CounterCheck_IEs_1, + 3, /* Elements count */ + &asn_SPC_CounterCheck_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CounterCheck-IEs.h b/src/codec_utils/RRC/CounterCheck-IEs.h new file mode 100644 index 000000000..0dbfbdb64 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CounterCheck_IEs_H_ +#define _CounterCheck_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-CountMSB-InfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CounterCheck-IEs */ +typedef struct CounterCheck_IEs { + DRB_CountMSB_InfoList_t drb_CountMSB_InfoList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} CounterCheck_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CounterCheck_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CounterCheck_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_CounterCheck_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CounterCheck_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/CounterCheck.c b/src/codec_utils/RRC/CounterCheck.c new file mode 100644 index 000000000..416b5f449 --- /dev/null +++ b/src/codec_utils/RRC/CounterCheck.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CounterCheck.h" + +#include "CounterCheck-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct CounterCheck__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct CounterCheck__criticalExtensions, choice.counterCheck), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CounterCheck_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheck" + }, + { ATF_POINTER, 0, offsetof(struct CounterCheck__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct CounterCheck__criticalExtensions), + offsetof(struct CounterCheck__criticalExtensions, _asn_ctx), + offsetof(struct CounterCheck__criticalExtensions, present), + sizeof(((struct CounterCheck__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CounterCheck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CounterCheck, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CounterCheck, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_CounterCheck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CounterCheck_specs_1 = { + sizeof(struct CounterCheck), + offsetof(struct CounterCheck, _asn_ctx), + asn_MAP_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_CounterCheck = { + "CounterCheck", + "CounterCheck", + &asn_OP_SEQUENCE, + asn_DEF_CounterCheck_tags_1, + sizeof(asn_DEF_CounterCheck_tags_1) + /sizeof(asn_DEF_CounterCheck_tags_1[0]), /* 1 */ + asn_DEF_CounterCheck_tags_1, /* Same as above */ + sizeof(asn_DEF_CounterCheck_tags_1) + /sizeof(asn_DEF_CounterCheck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CounterCheck_1, + 2, /* Elements count */ + &asn_SPC_CounterCheck_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CounterCheck.h b/src/codec_utils/RRC/CounterCheck.h new file mode 100644 index 000000000..ca94869c8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CounterCheck_H_ +#define _CounterCheck_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CounterCheck__criticalExtensions_PR { + CounterCheck__criticalExtensions_PR_NOTHING, /* No components present */ + CounterCheck__criticalExtensions_PR_counterCheck, + CounterCheck__criticalExtensions_PR_criticalExtensionsFuture +} CounterCheck__criticalExtensions_PR; + +/* Forward declarations */ +struct CounterCheck_IEs; + +/* CounterCheck */ +typedef struct CounterCheck { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct CounterCheck__criticalExtensions { + CounterCheck__criticalExtensions_PR present; + union CounterCheck__criticalExtensions_u { + struct CounterCheck_IEs *counterCheck; + struct 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; +} CounterCheck_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CounterCheck; +extern asn_SEQUENCE_specifics_t asn_SPC_CounterCheck_specs_1; +extern asn_TYPE_member_t asn_MBR_CounterCheck_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CounterCheck_H_ */ +#include diff --git a/src/codec_utils/RRC/CounterCheckResponse-IEs.c b/src/codec_utils/RRC/CounterCheckResponse-IEs.c new file mode 100644 index 000000000..cbfa1cfd1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CounterCheckResponse-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct CounterCheckResponse_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CounterCheckResponse_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CounterCheckResponse_IEs, drb_CountInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_CountInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-CountInfoList" + }, + { ATF_POINTER, 2, offsetof(struct 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 CounterCheckResponse_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_CounterCheckResponse_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_CounterCheckResponse_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CounterCheckResponse_IEs_specs_1 = { + sizeof(struct CounterCheckResponse_IEs), + offsetof(struct CounterCheckResponse_IEs, _asn_ctx), + asn_MAP_CounterCheckResponse_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_CounterCheckResponse_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_CounterCheckResponse_IEs = { + "CounterCheckResponse-IEs", + "CounterCheckResponse-IEs", + &asn_OP_SEQUENCE, + asn_DEF_CounterCheckResponse_IEs_tags_1, + sizeof(asn_DEF_CounterCheckResponse_IEs_tags_1) + /sizeof(asn_DEF_CounterCheckResponse_IEs_tags_1[0]), /* 1 */ + asn_DEF_CounterCheckResponse_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_CounterCheckResponse_IEs_tags_1) + /sizeof(asn_DEF_CounterCheckResponse_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CounterCheckResponse_IEs_1, + 3, /* Elements count */ + &asn_SPC_CounterCheckResponse_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CounterCheckResponse-IEs.h b/src/codec_utils/RRC/CounterCheckResponse-IEs.h new file mode 100644 index 000000000..e060d5167 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CounterCheckResponse_IEs_H_ +#define _CounterCheckResponse_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-CountInfoList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* CounterCheckResponse-IEs */ +typedef struct CounterCheckResponse_IEs { + DRB_CountInfoList_t drb_CountInfoList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} CounterCheckResponse_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CounterCheckResponse_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_CounterCheckResponse_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_CounterCheckResponse_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CounterCheckResponse_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/CounterCheckResponse.c b/src/codec_utils/RRC/CounterCheckResponse.c new file mode 100644 index 000000000..9b6e439d0 --- /dev/null +++ b/src/codec_utils/RRC/CounterCheckResponse.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CounterCheckResponse.h" + +#include "CounterCheckResponse-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct CounterCheckResponse__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct CounterCheckResponse__criticalExtensions, choice.counterCheckResponse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CounterCheckResponse_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheckResponse" + }, + { ATF_POINTER, 0, offsetof(struct CounterCheckResponse__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct CounterCheckResponse__criticalExtensions), + offsetof(struct CounterCheckResponse__criticalExtensions, _asn_ctx), + offsetof(struct CounterCheckResponse__criticalExtensions, present), + sizeof(((struct CounterCheckResponse__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CounterCheckResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CounterCheckResponse, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct CounterCheckResponse, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_CounterCheckResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_CounterCheckResponse_specs_1 = { + sizeof(struct CounterCheckResponse), + offsetof(struct CounterCheckResponse, _asn_ctx), + asn_MAP_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_CounterCheckResponse = { + "CounterCheckResponse", + "CounterCheckResponse", + &asn_OP_SEQUENCE, + asn_DEF_CounterCheckResponse_tags_1, + sizeof(asn_DEF_CounterCheckResponse_tags_1) + /sizeof(asn_DEF_CounterCheckResponse_tags_1[0]), /* 1 */ + asn_DEF_CounterCheckResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_CounterCheckResponse_tags_1) + /sizeof(asn_DEF_CounterCheckResponse_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CounterCheckResponse_1, + 2, /* Elements count */ + &asn_SPC_CounterCheckResponse_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CounterCheckResponse.h b/src/codec_utils/RRC/CounterCheckResponse.h new file mode 100644 index 000000000..75cc1b56f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CounterCheckResponse_H_ +#define _CounterCheckResponse_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CounterCheckResponse__criticalExtensions_PR { + CounterCheckResponse__criticalExtensions_PR_NOTHING, /* No components present */ + CounterCheckResponse__criticalExtensions_PR_counterCheckResponse, + CounterCheckResponse__criticalExtensions_PR_criticalExtensionsFuture +} CounterCheckResponse__criticalExtensions_PR; + +/* Forward declarations */ +struct CounterCheckResponse_IEs; + +/* CounterCheckResponse */ +typedef struct CounterCheckResponse { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct CounterCheckResponse__criticalExtensions { + CounterCheckResponse__criticalExtensions_PR present; + union CounterCheckResponse__criticalExtensions_u { + struct CounterCheckResponse_IEs *counterCheckResponse; + struct 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; +} CounterCheckResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CounterCheckResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_CounterCheckResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_CounterCheckResponse_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CounterCheckResponse_H_ */ +#include diff --git a/src/codec_utils/RRC/CrossCarrierSchedulingConfig.c b/src/codec_utils/RRC/CrossCarrierSchedulingConfig.c new file mode 100644 index 000000000..6e231012d --- /dev/null +++ b/src/codec_utils/RRC/CrossCarrierSchedulingConfig.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CrossCarrierSchedulingConfig.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_cif_InSchedulingCell_constr_7 CC_NOTUSED = { + { 1, 1 } /* (1..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_schedulingCellInfo_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_own_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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_own_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_own_tag2el_3[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cif-Presence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_own_specs_3 = { + sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__own), + offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__own, _asn_ctx), + asn_MAP_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_own_3 = { + "own", + "own", + &asn_OP_SEQUENCE, + asn_DEF_own_tags_3, + sizeof(asn_DEF_own_tags_3) + /sizeof(asn_DEF_own_tags_3[0]) - 1, /* 1 */ + asn_DEF_own_tags_3, /* Same as above */ + sizeof(asn_DEF_own_tags_3) + /sizeof(asn_DEF_own_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_own_3, + 1, /* Elements count */ + &asn_SPC_own_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_other_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, schedulingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, cif_InSchedulingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cif_InSchedulingCell_constr_7, &asn_PER_memb_cif_InSchedulingCell_constr_7, memb_cif_InSchedulingCell_constraint_5 }, + 0, 0, /* No default value */ + "cif-InSchedulingCell" + }, +}; +static const ber_tlv_tag_t asn_DEF_other_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_other_specs_5 = { + sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other), + offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo__other, _asn_ctx), + asn_MAP_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_other_5 = { + "other", + "other", + &asn_OP_SEQUENCE, + asn_DEF_other_tags_5, + sizeof(asn_DEF_other_tags_5) + /sizeof(asn_DEF_other_tags_5[0]) - 1, /* 1 */ + asn_DEF_other_tags_5, /* Same as above */ + sizeof(asn_DEF_other_tags_5) + /sizeof(asn_DEF_other_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_other_5, + 2, /* Elements count */ + &asn_SPC_other_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_schedulingCellInfo_2[] = { + { ATF_POINTER, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, choice.own), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_own_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "own" + }, + { ATF_POINTER, 0, offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, choice.other), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_other_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "other" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_schedulingCellInfo_specs_2 = { + sizeof(struct CrossCarrierSchedulingConfig__schedulingCellInfo), + offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, _asn_ctx), + offsetof(struct CrossCarrierSchedulingConfig__schedulingCellInfo, present), + sizeof(((struct CrossCarrierSchedulingConfig__schedulingCellInfo *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_schedulingCellInfo_constr_2, &asn_PER_type_schedulingCellInfo_constr_2, CHOICE_constraint }, + asn_MBR_schedulingCellInfo_2, + 2, /* Elements count */ + &asn_SPC_schedulingCellInfo_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_CrossCarrierSchedulingConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct CrossCarrierSchedulingConfig, schedulingCellInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_schedulingCellInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingCellInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_CrossCarrierSchedulingConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_CrossCarrierSchedulingConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* schedulingCellInfo */ +}; +asn_SEQUENCE_specifics_t asn_SPC_CrossCarrierSchedulingConfig_specs_1 = { + sizeof(struct CrossCarrierSchedulingConfig), + offsetof(struct CrossCarrierSchedulingConfig, _asn_ctx), + asn_MAP_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_CrossCarrierSchedulingConfig = { + "CrossCarrierSchedulingConfig", + "CrossCarrierSchedulingConfig", + &asn_OP_SEQUENCE, + asn_DEF_CrossCarrierSchedulingConfig_tags_1, + sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1) + /sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */ + asn_DEF_CrossCarrierSchedulingConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1) + /sizeof(asn_DEF_CrossCarrierSchedulingConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_CrossCarrierSchedulingConfig_1, + 1, /* Elements count */ + &asn_SPC_CrossCarrierSchedulingConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/CrossCarrierSchedulingConfig.h b/src/codec_utils/RRC/CrossCarrierSchedulingConfig.h new file mode 100644 index 000000000..370d8a5b6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CrossCarrierSchedulingConfig_H_ +#define _CrossCarrierSchedulingConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CrossCarrierSchedulingConfig__schedulingCellInfo_PR { + CrossCarrierSchedulingConfig__schedulingCellInfo_PR_NOTHING, /* No components present */ + CrossCarrierSchedulingConfig__schedulingCellInfo_PR_own, + CrossCarrierSchedulingConfig__schedulingCellInfo_PR_other +} CrossCarrierSchedulingConfig__schedulingCellInfo_PR; + +/* CrossCarrierSchedulingConfig */ +typedef struct CrossCarrierSchedulingConfig { + struct CrossCarrierSchedulingConfig__schedulingCellInfo { + CrossCarrierSchedulingConfig__schedulingCellInfo_PR present; + union CrossCarrierSchedulingConfig__schedulingCellInfo_u { + struct CrossCarrierSchedulingConfig__schedulingCellInfo__own { + BOOLEAN_t cif_Presence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *own; + struct CrossCarrierSchedulingConfig__schedulingCellInfo__other { + 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; +} CrossCarrierSchedulingConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_CrossCarrierSchedulingConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_CrossCarrierSchedulingConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_CrossCarrierSchedulingConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _CrossCarrierSchedulingConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-AM-RLC.c b/src/codec_utils/RRC/DL-AM-RLC.c new file mode 100644 index 000000000..4f1c840a4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-AM-RLC.h" + +asn_TYPE_member_t asn_MBR_DL_AM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct DL_AM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SN_FieldLengthAM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct DL_AM_RLC, t_Reassembly), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_Reassembly, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reassembly" + }, + { ATF_NOFLAGS, 0, offsetof(struct DL_AM_RLC, t_StatusProhibit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_StatusProhibit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-StatusProhibit" + }, +}; +static const int asn_MAP_DL_AM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_DL_AM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DL_AM_RLC_specs_1 = { + sizeof(struct DL_AM_RLC), + offsetof(struct DL_AM_RLC, _asn_ctx), + asn_MAP_DL_AM_RLC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DL_AM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DL_AM_RLC = { + "DL-AM-RLC", + "DL-AM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_DL_AM_RLC_tags_1, + sizeof(asn_DEF_DL_AM_RLC_tags_1) + /sizeof(asn_DEF_DL_AM_RLC_tags_1[0]), /* 1 */ + asn_DEF_DL_AM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_DL_AM_RLC_tags_1) + /sizeof(asn_DEF_DL_AM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DL_AM_RLC_1, + 3, /* Elements count */ + &asn_SPC_DL_AM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-AM-RLC.h b/src/codec_utils/RRC/DL-AM-RLC.h new file mode 100644 index 000000000..81cb637a3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_AM_RLC_H_ +#define _DL_AM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "SN-FieldLengthAM.h" +#include "T-Reassembly.h" +#include "T-StatusProhibit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DL-AM-RLC */ +typedef struct DL_AM_RLC { + SN_FieldLengthAM_t *sn_FieldLength; /* OPTIONAL */ + T_Reassembly_t t_Reassembly; + T_StatusProhibit_t t_StatusProhibit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DL_AM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_AM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_DL_AM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_DL_AM_RLC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_AM_RLC_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-CCCH-Message.c b/src/codec_utils/RRC/DL-CCCH-Message.c new file mode 100644 index 000000000..83244e555 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-CCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_DL_CCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DL_CCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_DL_CCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_DL_CCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DL_CCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DL_CCCH_Message_specs_1 = { + sizeof(struct DL_CCCH_Message), + offsetof(struct DL_CCCH_Message, _asn_ctx), + asn_MAP_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_DL_CCCH_Message = { + "DL-CCCH-Message", + "DL-CCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_DL_CCCH_Message_tags_1, + sizeof(asn_DEF_DL_CCCH_Message_tags_1) + /sizeof(asn_DEF_DL_CCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_DL_CCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_DL_CCCH_Message_tags_1) + /sizeof(asn_DEF_DL_CCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DL_CCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_DL_CCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-CCCH-Message.h b/src/codec_utils/RRC/DL-CCCH-Message.h new file mode 100644 index 000000000..e4f79f296 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_CCCH_Message_H_ +#define _DL_CCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "DL-CCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DL-CCCH-Message */ +typedef struct DL_CCCH_Message { + DL_CCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DL_CCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_CCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_CCCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-CCCH-MessageType.c b/src/codec_utils/RRC/DL-CCCH-MessageType.c new file mode 100644 index 000000000..ca1c6bed5 --- /dev/null +++ b/src/codec_utils/RRC/DL-CCCH-MessageType.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-CCCH-MessageType.h" + +#include "RRCReject.h" +#include "RRCSetup.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_DL_CCCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct DL_CCCH_MessageType__c1, choice.rrcReject), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReject, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReject" + }, + { ATF_POINTER, 0, offsetof(struct DL_CCCH_MessageType__c1, choice.rrcSetup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetup" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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_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_c1_specs_2 = { + sizeof(struct DL_CCCH_MessageType__c1), + offsetof(struct DL_CCCH_MessageType__c1, _asn_ctx), + offsetof(struct DL_CCCH_MessageType__c1, present), + sizeof(((struct DL_CCCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 4, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_7 = { + sizeof(struct DL_CCCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_7, + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DL_CCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct DL_CCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct DL_CCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DL_CCCH_MessageType_specs_1 = { + sizeof(struct DL_CCCH_MessageType), + offsetof(struct DL_CCCH_MessageType, _asn_ctx), + offsetof(struct DL_CCCH_MessageType, present), + sizeof(((struct DL_CCCH_MessageType *)0)->present), + asn_MAP_DL_CCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_DL_CCCH_MessageType_constr_1, &asn_PER_type_DL_CCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_DL_CCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_DL_CCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-CCCH-MessageType.h b/src/codec_utils/RRC/DL-CCCH-MessageType.h new file mode 100644 index 000000000..923a9f35a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_CCCH_MessageType_H_ +#define _DL_CCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DL_CCCH_MessageType_PR { + DL_CCCH_MessageType_PR_NOTHING, /* No components present */ + DL_CCCH_MessageType_PR_c1, + DL_CCCH_MessageType_PR_messageClassExtension +} DL_CCCH_MessageType_PR; +typedef enum DL_CCCH_MessageType__c1_PR { + DL_CCCH_MessageType__c1_PR_NOTHING, /* No components present */ + DL_CCCH_MessageType__c1_PR_rrcReject, + DL_CCCH_MessageType__c1_PR_rrcSetup, + DL_CCCH_MessageType__c1_PR_spare2, + DL_CCCH_MessageType__c1_PR_spare1 +} DL_CCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct RRCReject; +struct RRCSetup; + +/* DL-CCCH-MessageType */ +typedef struct DL_CCCH_MessageType { + DL_CCCH_MessageType_PR present; + union DL_CCCH_MessageType_u { + struct DL_CCCH_MessageType__c1 { + DL_CCCH_MessageType__c1_PR present; + union DL_CCCH_MessageType__c1_u { + struct RRCReject *rrcReject; + struct RRCSetup *rrcSetup; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct 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; +} DL_CCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_CCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_DL_CCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_DL_CCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_DL_CCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_CCCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-DCCH-Message.c b/src/codec_utils/RRC/DL-DCCH-Message.c new file mode 100644 index 000000000..c19f637cf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-DCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_DL_DCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DL_DCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_DL_DCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_DL_DCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_DL_DCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_DL_DCCH_Message_specs_1 = { + sizeof(struct DL_DCCH_Message), + offsetof(struct DL_DCCH_Message, _asn_ctx), + asn_MAP_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_DL_DCCH_Message = { + "DL-DCCH-Message", + "DL-DCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_DL_DCCH_Message_tags_1, + sizeof(asn_DEF_DL_DCCH_Message_tags_1) + /sizeof(asn_DEF_DL_DCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_DL_DCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_DL_DCCH_Message_tags_1) + /sizeof(asn_DEF_DL_DCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DL_DCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_DL_DCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-DCCH-Message.h b/src/codec_utils/RRC/DL-DCCH-Message.h new file mode 100644 index 000000000..918584f0d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_DCCH_Message_H_ +#define _DL_DCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "DL-DCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DL-DCCH-Message */ +typedef struct DL_DCCH_Message { + DL_DCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DL_DCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_DCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_DCCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-DCCH-MessageType.c b/src/codec_utils/RRC/DL-DCCH-MessageType.c new file mode 100644 index 000000000..377b819d4 --- /dev/null +++ b/src/codec_utils/RRC/DL-DCCH-MessageType.c @@ -0,0 +1,299 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-DCCH-MessageType.h" + +#include "RRCReconfiguration.h" +#include "RRCResume.h" +#include "RRCRelease.h" +#include "RRCReestablishment.h" +#include "SecurityModeCommand.h" +#include "DLInformationTransfer.h" +#include "UECapabilityEnquiry.h" +#include "CounterCheck.h" +#include "MobilityFromNRCommand.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_DL_DCCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.rrcResume), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResume, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResume" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.rrcRelease), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCRelease, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcRelease" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.rrcReestablishment), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishment, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishment" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.securityModeCommand), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeCommand" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.dlInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dlInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.ueCapabilityEnquiry), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UECapabilityEnquiry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityEnquiry" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.counterCheck), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CounterCheck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheck" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType__c1, choice.mobilityFromNRCommand), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MobilityFromNRCommand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityFromNRCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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 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 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 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_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_c1_specs_2 = { + sizeof(struct DL_DCCH_MessageType__c1), + offsetof(struct DL_DCCH_MessageType__c1, _asn_ctx), + offsetof(struct DL_DCCH_MessageType__c1, present), + sizeof(((struct DL_DCCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 16, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_19 = { + sizeof(struct DL_DCCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_19 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_19, + sizeof(asn_DEF_messageClassExtension_tags_19) + /sizeof(asn_DEF_messageClassExtension_tags_19[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_19, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_19) + /sizeof(asn_DEF_messageClassExtension_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DL_DCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct DL_DCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DL_DCCH_MessageType_specs_1 = { + sizeof(struct DL_DCCH_MessageType), + offsetof(struct DL_DCCH_MessageType, _asn_ctx), + offsetof(struct DL_DCCH_MessageType, present), + sizeof(((struct DL_DCCH_MessageType *)0)->present), + asn_MAP_DL_DCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_DL_DCCH_MessageType_constr_1, &asn_PER_type_DL_DCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_DL_DCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_DL_DCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-DCCH-MessageType.h b/src/codec_utils/RRC/DL-DCCH-MessageType.h new file mode 100644 index 000000000..e23b45961 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_DCCH_MessageType_H_ +#define _DL_DCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DL_DCCH_MessageType_PR { + DL_DCCH_MessageType_PR_NOTHING, /* No components present */ + DL_DCCH_MessageType_PR_c1, + DL_DCCH_MessageType_PR_messageClassExtension +} DL_DCCH_MessageType_PR; +typedef enum DL_DCCH_MessageType__c1_PR { + DL_DCCH_MessageType__c1_PR_NOTHING, /* No components present */ + DL_DCCH_MessageType__c1_PR_rrcReconfiguration, + DL_DCCH_MessageType__c1_PR_rrcResume, + DL_DCCH_MessageType__c1_PR_rrcRelease, + DL_DCCH_MessageType__c1_PR_rrcReestablishment, + DL_DCCH_MessageType__c1_PR_securityModeCommand, + DL_DCCH_MessageType__c1_PR_dlInformationTransfer, + DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry, + DL_DCCH_MessageType__c1_PR_counterCheck, + DL_DCCH_MessageType__c1_PR_mobilityFromNRCommand, + DL_DCCH_MessageType__c1_PR_spare7, + DL_DCCH_MessageType__c1_PR_spare6, + DL_DCCH_MessageType__c1_PR_spare5, + DL_DCCH_MessageType__c1_PR_spare4, + DL_DCCH_MessageType__c1_PR_spare3, + DL_DCCH_MessageType__c1_PR_spare2, + DL_DCCH_MessageType__c1_PR_spare1 +} DL_DCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct RRCReconfiguration; +struct RRCResume; +struct RRCRelease; +struct RRCReestablishment; +struct SecurityModeCommand; +struct DLInformationTransfer; +struct UECapabilityEnquiry; +struct CounterCheck; +struct MobilityFromNRCommand; + +/* DL-DCCH-MessageType */ +typedef struct DL_DCCH_MessageType { + DL_DCCH_MessageType_PR present; + union DL_DCCH_MessageType_u { + struct DL_DCCH_MessageType__c1 { + DL_DCCH_MessageType__c1_PR present; + union DL_DCCH_MessageType__c1_u { + struct RRCReconfiguration *rrcReconfiguration; + struct RRCResume *rrcResume; + struct RRCRelease *rrcRelease; + struct RRCReestablishment *rrcReestablishment; + struct SecurityModeCommand *securityModeCommand; + struct DLInformationTransfer *dlInformationTransfer; + struct UECapabilityEnquiry *ueCapabilityEnquiry; + struct CounterCheck *counterCheck; + struct 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 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; +} DL_DCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_DCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_DL_DCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_DL_DCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_DL_DCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_DCCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/DL-UM-RLC.c b/src/codec_utils/RRC/DL-UM-RLC.c new file mode 100644 index 000000000..93113ad75 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DL-UM-RLC.h" + +asn_TYPE_member_t asn_MBR_DL_UM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct DL_UM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SN_FieldLengthUM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct DL_UM_RLC, t_Reassembly), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_Reassembly, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reassembly" + }, +}; +static const int asn_MAP_DL_UM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_DL_UM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DL_UM_RLC_specs_1 = { + sizeof(struct DL_UM_RLC), + offsetof(struct DL_UM_RLC, _asn_ctx), + asn_MAP_DL_UM_RLC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DL_UM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DL_UM_RLC = { + "DL-UM-RLC", + "DL-UM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_DL_UM_RLC_tags_1, + sizeof(asn_DEF_DL_UM_RLC_tags_1) + /sizeof(asn_DEF_DL_UM_RLC_tags_1[0]), /* 1 */ + asn_DEF_DL_UM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_DL_UM_RLC_tags_1) + /sizeof(asn_DEF_DL_UM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DL_UM_RLC_1, + 2, /* Elements count */ + &asn_SPC_DL_UM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DL-UM-RLC.h b/src/codec_utils/RRC/DL-UM-RLC.h new file mode 100644 index 000000000..192476856 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DL_UM_RLC_H_ +#define _DL_UM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "SN-FieldLengthUM.h" +#include "T-Reassembly.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DL-UM-RLC */ +typedef struct DL_UM_RLC { + SN_FieldLengthUM_t *sn_FieldLength; /* OPTIONAL */ + T_Reassembly_t t_Reassembly; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DL_UM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DL_UM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_DL_UM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_DL_UM_RLC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DL_UM_RLC_H_ */ +#include diff --git a/src/codec_utils/RRC/DLInformationTransfer-IEs.c b/src/codec_utils/RRC/DLInformationTransfer-IEs.c new file mode 100644 index 000000000..083166556 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DLInformationTransfer-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct DLInformationTransfer_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DLInformationTransfer_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct DLInformationTransfer_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 2, offsetof(struct 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 DLInformationTransfer_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_DLInformationTransfer_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_DLInformationTransfer_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DLInformationTransfer_IEs_specs_1 = { + sizeof(struct DLInformationTransfer_IEs), + offsetof(struct DLInformationTransfer_IEs, _asn_ctx), + asn_MAP_DLInformationTransfer_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_DLInformationTransfer_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DLInformationTransfer_IEs = { + "DLInformationTransfer-IEs", + "DLInformationTransfer-IEs", + &asn_OP_SEQUENCE, + asn_DEF_DLInformationTransfer_IEs_tags_1, + sizeof(asn_DEF_DLInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_DLInformationTransfer_IEs_tags_1[0]), /* 1 */ + asn_DEF_DLInformationTransfer_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_DLInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_DLInformationTransfer_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLInformationTransfer_IEs_1, + 3, /* Elements count */ + &asn_SPC_DLInformationTransfer_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DLInformationTransfer-IEs.h b/src/codec_utils/RRC/DLInformationTransfer-IEs.h new file mode 100644 index 000000000..be73aa6a9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DLInformationTransfer_IEs_H_ +#define _DLInformationTransfer_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "DedicatedNAS-Message.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DLInformationTransfer-IEs */ +typedef struct DLInformationTransfer_IEs { + DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} DLInformationTransfer_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DLInformationTransfer_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_DLInformationTransfer_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_DLInformationTransfer_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DLInformationTransfer_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/DLInformationTransfer.c b/src/codec_utils/RRC/DLInformationTransfer.c new file mode 100644 index 000000000..9cf8fd5b3 --- /dev/null +++ b/src/codec_utils/RRC/DLInformationTransfer.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DLInformationTransfer.h" + +#include "DLInformationTransfer-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct DLInformationTransfer__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct DLInformationTransfer__criticalExtensions, choice.dlInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DLInformationTransfer_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dlInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct DLInformationTransfer__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct DLInformationTransfer__criticalExtensions), + offsetof(struct DLInformationTransfer__criticalExtensions, _asn_ctx), + offsetof(struct DLInformationTransfer__criticalExtensions, present), + sizeof(((struct DLInformationTransfer__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DLInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DLInformationTransfer, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct DLInformationTransfer, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_DLInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DLInformationTransfer_specs_1 = { + sizeof(struct DLInformationTransfer), + offsetof(struct DLInformationTransfer, _asn_ctx), + asn_MAP_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_DLInformationTransfer = { + "DLInformationTransfer", + "DLInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_DLInformationTransfer_tags_1, + sizeof(asn_DEF_DLInformationTransfer_tags_1) + /sizeof(asn_DEF_DLInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_DLInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_DLInformationTransfer_tags_1) + /sizeof(asn_DEF_DLInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DLInformationTransfer_1, + 2, /* Elements count */ + &asn_SPC_DLInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DLInformationTransfer.h b/src/codec_utils/RRC/DLInformationTransfer.h new file mode 100644 index 000000000..db8bee7ad --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DLInformationTransfer_H_ +#define _DLInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DLInformationTransfer__criticalExtensions_PR { + DLInformationTransfer__criticalExtensions_PR_NOTHING, /* No components present */ + DLInformationTransfer__criticalExtensions_PR_dlInformationTransfer, + DLInformationTransfer__criticalExtensions_PR_criticalExtensionsFuture +} DLInformationTransfer__criticalExtensions_PR; + +/* Forward declarations */ +struct DLInformationTransfer_IEs; + +/* DLInformationTransfer */ +typedef struct DLInformationTransfer { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct DLInformationTransfer__criticalExtensions { + DLInformationTransfer__criticalExtensions_PR present; + union DLInformationTransfer__criticalExtensions_u { + struct DLInformationTransfer_IEs *dlInformationTransfer; + struct 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; +} DLInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DLInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_DLInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_DLInformationTransfer_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DLInformationTransfer_H_ */ +#include diff --git a/src/codec_utils/RRC/DMRS-DownlinkConfig.c b/src/codec_utils/RRC/DMRS-DownlinkConfig.c new file mode 100644 index 000000000..f670ab8b9 --- /dev/null +++ b/src/codec_utils/RRC/DMRS-DownlinkConfig.c @@ -0,0 +1,371 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DMRS-DownlinkConfig.h" + +#include "PTRS-DownlinkConfig.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_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_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_oer_constraints_t asn_OER_type_dmrs_Type_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxLength_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phaseTrackingRS_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_phaseTrackingRS_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_oer_constraints_t asn_OER_memb_scramblingID0_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scramblingID1_constr_11 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_dmrs_Type_value2enum_2[] = { + { 0, 5, "type2" } +}; +static const unsigned int asn_MAP_dmrs_Type_enum2value_2[] = { + 0 /* type2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_Type_specs_2 = { + asn_MAP_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_Type_2 = { + "dmrs-Type", + "dmrs-Type", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_Type_tags_2, + sizeof(asn_DEF_dmrs_Type_tags_2) + /sizeof(asn_DEF_dmrs_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_dmrs_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_dmrs_Type_tags_2) + /sizeof(asn_DEF_dmrs_Type_tags_2[0]), /* 2 */ + { &asn_OER_type_dmrs_Type_constr_2, &asn_PER_type_dmrs_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_Type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dmrs_AdditionalPosition_value2enum_4[] = { + { 0, 4, "pos0" }, + { 1, 4, "pos1" }, + { 2, 4, "pos3" } +}; +static const unsigned int asn_MAP_dmrs_AdditionalPosition_enum2value_4[] = { + 0, /* pos0(0) */ + 1, /* pos1(1) */ + 2 /* pos3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_AdditionalPosition_specs_4 = { + asn_MAP_dmrs_AdditionalPosition_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_AdditionalPosition_4 = { + "dmrs-AdditionalPosition", + "dmrs-AdditionalPosition", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_AdditionalPosition_tags_4, + sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */ + asn_DEF_dmrs_AdditionalPosition_tags_4, /* Same as above */ + sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]), /* 2 */ + { &asn_OER_type_dmrs_AdditionalPosition_constr_4, &asn_PER_type_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_AdditionalPosition_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxLength_value2enum_8[] = { + { 0, 4, "len2" } +}; +static const unsigned int asn_MAP_maxLength_enum2value_8[] = { + 0 /* len2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxLength_specs_8 = { + asn_MAP_maxLength_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxLength_8 = { + "maxLength", + "maxLength", + &asn_OP_NativeEnumerated, + asn_DEF_maxLength_tags_8, + sizeof(asn_DEF_maxLength_tags_8) + /sizeof(asn_DEF_maxLength_tags_8[0]) - 1, /* 1 */ + asn_DEF_maxLength_tags_8, /* Same as above */ + sizeof(asn_DEF_maxLength_tags_8) + /sizeof(asn_DEF_maxLength_tags_8[0]), /* 2 */ + { &asn_OER_type_maxLength_constr_8, &asn_PER_type_maxLength_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxLength_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_phaseTrackingRS_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, 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 DMRS_DownlinkConfig__phaseTrackingRS, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_phaseTrackingRS_tag2el_12[] = { + { (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_phaseTrackingRS_specs_12 = { + sizeof(struct DMRS_DownlinkConfig__phaseTrackingRS), + offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, _asn_ctx), + offsetof(struct DMRS_DownlinkConfig__phaseTrackingRS, present), + sizeof(((struct DMRS_DownlinkConfig__phaseTrackingRS *)0)->present), + asn_MAP_phaseTrackingRS_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_phaseTrackingRS_12 = { + "phaseTrackingRS", + "phaseTrackingRS", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_phaseTrackingRS_constr_12, &asn_PER_type_phaseTrackingRS_constr_12, CHOICE_constraint }, + asn_MBR_phaseTrackingRS_12, + 2, /* Elements count */ + &asn_SPC_phaseTrackingRS_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DMRS_DownlinkConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct DMRS_DownlinkConfig, dmrs_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-Type" + }, + { ATF_POINTER, 5, offsetof(struct DMRS_DownlinkConfig, dmrs_AdditionalPosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_AdditionalPosition_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-AdditionalPosition" + }, + { ATF_POINTER, 4, offsetof(struct DMRS_DownlinkConfig, maxLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxLength_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLength" + }, + { ATF_POINTER, 3, offsetof(struct DMRS_DownlinkConfig, scramblingID0), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_scramblingID0_constr_10, &asn_PER_memb_scramblingID0_constr_10, memb_scramblingID0_constraint_1 }, + 0, 0, /* No default value */ + "scramblingID0" + }, + { ATF_POINTER, 2, offsetof(struct DMRS_DownlinkConfig, scramblingID1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_scramblingID1_constr_11, &asn_PER_memb_scramblingID1_constr_11, memb_scramblingID1_constraint_1 }, + 0, 0, /* No default value */ + "scramblingID1" + }, + { ATF_POINTER, 1, offsetof(struct DMRS_DownlinkConfig, phaseTrackingRS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_phaseTrackingRS_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseTrackingRS" + }, +}; +static const int asn_MAP_DMRS_DownlinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_DMRS_DownlinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DMRS_DownlinkConfig_specs_1 = { + sizeof(struct DMRS_DownlinkConfig), + offsetof(struct DMRS_DownlinkConfig, _asn_ctx), + asn_MAP_DMRS_DownlinkConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_DMRS_DownlinkConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DMRS_DownlinkConfig = { + "DMRS-DownlinkConfig", + "DMRS-DownlinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_DMRS_DownlinkConfig_tags_1, + sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1[0]), /* 1 */ + asn_DEF_DMRS_DownlinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_DMRS_DownlinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DMRS_DownlinkConfig_1, + 6, /* Elements count */ + &asn_SPC_DMRS_DownlinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DMRS-DownlinkConfig.h b/src/codec_utils/RRC/DMRS-DownlinkConfig.h new file mode 100644 index 000000000..06f025dcd --- /dev/null +++ b/src/codec_utils/RRC/DMRS-DownlinkConfig.h @@ -0,0 +1,85 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DMRS_DownlinkConfig_H_ +#define _DMRS_DownlinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DMRS_DownlinkConfig__dmrs_Type { + DMRS_DownlinkConfig__dmrs_Type_type2 = 0 +} e_DMRS_DownlinkConfig__dmrs_Type; +typedef enum DMRS_DownlinkConfig__dmrs_AdditionalPosition { + DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos0 = 0, + DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1 = 1, + DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos3 = 2 +} e_DMRS_DownlinkConfig__dmrs_AdditionalPosition; +typedef enum DMRS_DownlinkConfig__maxLength { + DMRS_DownlinkConfig__maxLength_len2 = 0 +} e_DMRS_DownlinkConfig__maxLength; +typedef enum DMRS_DownlinkConfig__phaseTrackingRS_PR { + DMRS_DownlinkConfig__phaseTrackingRS_PR_NOTHING, /* No components present */ + DMRS_DownlinkConfig__phaseTrackingRS_PR_release, + DMRS_DownlinkConfig__phaseTrackingRS_PR_setup +} DMRS_DownlinkConfig__phaseTrackingRS_PR; + +/* Forward declarations */ +struct PTRS_DownlinkConfig; + +/* DMRS-DownlinkConfig */ +typedef struct DMRS_DownlinkConfig { + long *dmrs_Type; /* OPTIONAL */ + long *dmrs_AdditionalPosition; /* OPTIONAL */ + long *maxLength; /* OPTIONAL */ + long *scramblingID0; /* OPTIONAL */ + long *scramblingID1; /* OPTIONAL */ + struct DMRS_DownlinkConfig__phaseTrackingRS { + DMRS_DownlinkConfig__phaseTrackingRS_PR present; + union DMRS_DownlinkConfig__phaseTrackingRS_u { + NULL_t release; + struct PTRS_DownlinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *phaseTrackingRS; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DMRS_DownlinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_Type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_AdditionalPosition_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxLength_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DMRS_DownlinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_DMRS_DownlinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_DMRS_DownlinkConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMRS_DownlinkConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/DMRS-UplinkConfig.c b/src/codec_utils/RRC/DMRS-UplinkConfig.c new file mode 100644 index 000000000..5e040043c --- /dev/null +++ b/src/codec_utils/RRC/DMRS-UplinkConfig.c @@ -0,0 +1,618 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DMRS-UplinkConfig.h" + +#include "PTRS-UplinkConfig.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_scramblingID0_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_scramblingID1_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; + } +} + +/* + * This type 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_nPUSCH_Identity_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 <= 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_oer_constraints_t asn_OER_type_dmrs_Type_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_AdditionalPosition_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phaseTrackingRS_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_phaseTrackingRS_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_oer_constraints_t asn_OER_type_maxLength_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_maxLength_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_oer_constraints_t asn_OER_memb_scramblingID0_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_scramblingID0_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_scramblingID1_constr_15 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_scramblingID1_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_sequenceGroupHopping_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_sequenceGroupHopping_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_oer_constraints_t asn_OER_type_sequenceHopping_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_sequenceHopping_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_oer_constraints_t asn_OER_memb_nPUSCH_Identity_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..1007) */, + -1}; +static asn_per_constraints_t asn_PER_memb_nPUSCH_Identity_constr_18 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_dmrs_Type_value2enum_2[] = { + { 0, 5, "type2" } +}; +static const unsigned int asn_MAP_dmrs_Type_enum2value_2[] = { + 0 /* type2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_Type_specs_2 = { + asn_MAP_dmrs_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_Type_2 = { + "dmrs-Type", + "dmrs-Type", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_Type_tags_2, + sizeof(asn_DEF_dmrs_Type_tags_2) + /sizeof(asn_DEF_dmrs_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_dmrs_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_dmrs_Type_tags_2) + /sizeof(asn_DEF_dmrs_Type_tags_2[0]), /* 2 */ + { &asn_OER_type_dmrs_Type_constr_2, &asn_PER_type_dmrs_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_Type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dmrs_AdditionalPosition_value2enum_4[] = { + { 0, 4, "pos0" }, + { 1, 4, "pos1" }, + { 2, 4, "pos3" } +}; +static const unsigned int asn_MAP_dmrs_AdditionalPosition_enum2value_4[] = { + 0, /* pos0(0) */ + 1, /* pos1(1) */ + 2 /* pos3(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_AdditionalPosition_specs_4 = { + asn_MAP_dmrs_AdditionalPosition_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_AdditionalPosition_4 = { + "dmrs-AdditionalPosition", + "dmrs-AdditionalPosition", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_AdditionalPosition_tags_4, + sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]) - 1, /* 1 */ + asn_DEF_dmrs_AdditionalPosition_tags_4, /* Same as above */ + sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4) + /sizeof(asn_DEF_dmrs_AdditionalPosition_tags_4[0]), /* 2 */ + { &asn_OER_type_dmrs_AdditionalPosition_constr_4, &asn_PER_type_dmrs_AdditionalPosition_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_AdditionalPosition_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_phaseTrackingRS_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, 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 DMRS_UplinkConfig__phaseTrackingRS, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_phaseTrackingRS_tag2el_8[] = { + { (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_phaseTrackingRS_specs_8 = { + sizeof(struct DMRS_UplinkConfig__phaseTrackingRS), + offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, _asn_ctx), + offsetof(struct DMRS_UplinkConfig__phaseTrackingRS, present), + sizeof(((struct DMRS_UplinkConfig__phaseTrackingRS *)0)->present), + asn_MAP_phaseTrackingRS_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_phaseTrackingRS_8 = { + "phaseTrackingRS", + "phaseTrackingRS", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_phaseTrackingRS_constr_8, &asn_PER_type_phaseTrackingRS_constr_8, CHOICE_constraint }, + asn_MBR_phaseTrackingRS_8, + 2, /* Elements count */ + &asn_SPC_phaseTrackingRS_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxLength_value2enum_11[] = { + { 0, 4, "len2" } +}; +static const unsigned int asn_MAP_maxLength_enum2value_11[] = { + 0 /* len2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxLength_specs_11 = { + asn_MAP_maxLength_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_maxLength_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_maxLength_tags_11[] = { + (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_maxLength_11 = { + "maxLength", + "maxLength", + &asn_OP_NativeEnumerated, + asn_DEF_maxLength_tags_11, + sizeof(asn_DEF_maxLength_tags_11) + /sizeof(asn_DEF_maxLength_tags_11[0]) - 1, /* 1 */ + asn_DEF_maxLength_tags_11, /* Same as above */ + sizeof(asn_DEF_maxLength_tags_11) + /sizeof(asn_DEF_maxLength_tags_11[0]), /* 2 */ + { &asn_OER_type_maxLength_constr_11, &asn_PER_type_maxLength_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxLength_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_transformPrecodingDisabled_13[] = { + { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_scramblingID0_constr_14, &asn_PER_memb_scramblingID0_constr_14, memb_scramblingID0_constraint_13 }, + 0, 0, /* No default value */ + "scramblingID0" + }, + { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, scramblingID1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_scramblingID1_constr_15, &asn_PER_memb_scramblingID1_constr_15, memb_scramblingID1_constraint_13 }, + 0, 0, /* No default value */ + "scramblingID1" + }, +}; +static const int asn_MAP_transformPrecodingDisabled_oms_13[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_transformPrecodingDisabled_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_transformPrecodingDisabled_tag2el_13[] = { + { (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_transformPrecodingDisabled_specs_13 = { + sizeof(struct DMRS_UplinkConfig__transformPrecodingDisabled), + offsetof(struct DMRS_UplinkConfig__transformPrecodingDisabled, _asn_ctx), + asn_MAP_transformPrecodingDisabled_tag2el_13, + 2, /* Count of tags in the map */ + asn_MAP_transformPrecodingDisabled_oms_13, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_transformPrecodingDisabled_13 = { + "transformPrecodingDisabled", + "transformPrecodingDisabled", + &asn_OP_SEQUENCE, + asn_DEF_transformPrecodingDisabled_tags_13, + sizeof(asn_DEF_transformPrecodingDisabled_tags_13) + /sizeof(asn_DEF_transformPrecodingDisabled_tags_13[0]) - 1, /* 1 */ + asn_DEF_transformPrecodingDisabled_tags_13, /* Same as above */ + sizeof(asn_DEF_transformPrecodingDisabled_tags_13) + /sizeof(asn_DEF_transformPrecodingDisabled_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_transformPrecodingDisabled_13, + 2, /* Elements count */ + &asn_SPC_transformPrecodingDisabled_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sequenceGroupHopping_value2enum_19[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_sequenceGroupHopping_enum2value_19[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sequenceGroupHopping_specs_19 = { + asn_MAP_sequenceGroupHopping_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_sequenceGroupHopping_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_sequenceGroupHopping_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_sequenceGroupHopping_19 = { + "sequenceGroupHopping", + "sequenceGroupHopping", + &asn_OP_NativeEnumerated, + asn_DEF_sequenceGroupHopping_tags_19, + sizeof(asn_DEF_sequenceGroupHopping_tags_19) + /sizeof(asn_DEF_sequenceGroupHopping_tags_19[0]) - 1, /* 1 */ + asn_DEF_sequenceGroupHopping_tags_19, /* Same as above */ + sizeof(asn_DEF_sequenceGroupHopping_tags_19) + /sizeof(asn_DEF_sequenceGroupHopping_tags_19[0]), /* 2 */ + { &asn_OER_type_sequenceGroupHopping_constr_19, &asn_PER_type_sequenceGroupHopping_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sequenceGroupHopping_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sequenceHopping_value2enum_21[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_sequenceHopping_enum2value_21[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sequenceHopping_specs_21 = { + asn_MAP_sequenceHopping_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_sequenceHopping_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_sequenceHopping_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_sequenceHopping_21 = { + "sequenceHopping", + "sequenceHopping", + &asn_OP_NativeEnumerated, + asn_DEF_sequenceHopping_tags_21, + sizeof(asn_DEF_sequenceHopping_tags_21) + /sizeof(asn_DEF_sequenceHopping_tags_21[0]) - 1, /* 1 */ + asn_DEF_sequenceHopping_tags_21, /* Same as above */ + sizeof(asn_DEF_sequenceHopping_tags_21) + /sizeof(asn_DEF_sequenceHopping_tags_21[0]), /* 2 */ + { &asn_OER_type_sequenceHopping_constr_21, &asn_PER_type_sequenceHopping_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sequenceHopping_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_transformPrecodingEnabled_17[] = { + { ATF_POINTER, 3, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, nPUSCH_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nPUSCH_Identity_constr_18, &asn_PER_memb_nPUSCH_Identity_constr_18, memb_nPUSCH_Identity_constraint_17 }, + 0, 0, /* No default value */ + "nPUSCH-Identity" + }, + { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, sequenceGroupHopping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sequenceGroupHopping_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceGroupHopping" + }, + { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, sequenceHopping), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sequenceHopping_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sequenceHopping" + }, +}; +static const int asn_MAP_transformPrecodingEnabled_oms_17[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_transformPrecodingEnabled_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_transformPrecodingEnabled_tag2el_17[] = { + { (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_transformPrecodingEnabled_specs_17 = { + sizeof(struct DMRS_UplinkConfig__transformPrecodingEnabled), + offsetof(struct DMRS_UplinkConfig__transformPrecodingEnabled, _asn_ctx), + asn_MAP_transformPrecodingEnabled_tag2el_17, + 3, /* Count of tags in the map */ + asn_MAP_transformPrecodingEnabled_oms_17, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_transformPrecodingEnabled_17 = { + "transformPrecodingEnabled", + "transformPrecodingEnabled", + &asn_OP_SEQUENCE, + asn_DEF_transformPrecodingEnabled_tags_17, + sizeof(asn_DEF_transformPrecodingEnabled_tags_17) + /sizeof(asn_DEF_transformPrecodingEnabled_tags_17[0]) - 1, /* 1 */ + asn_DEF_transformPrecodingEnabled_tags_17, /* Same as above */ + sizeof(asn_DEF_transformPrecodingEnabled_tags_17) + /sizeof(asn_DEF_transformPrecodingEnabled_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_transformPrecodingEnabled_17, + 3, /* Elements count */ + &asn_SPC_transformPrecodingEnabled_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DMRS_UplinkConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct DMRS_UplinkConfig, dmrs_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-Type" + }, + { ATF_POINTER, 5, offsetof(struct DMRS_UplinkConfig, dmrs_AdditionalPosition), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_AdditionalPosition_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-AdditionalPosition" + }, + { ATF_POINTER, 4, offsetof(struct DMRS_UplinkConfig, phaseTrackingRS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_phaseTrackingRS_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phaseTrackingRS" + }, + { ATF_POINTER, 3, offsetof(struct DMRS_UplinkConfig, maxLength), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxLength_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxLength" + }, + { ATF_POINTER, 2, offsetof(struct DMRS_UplinkConfig, transformPrecodingDisabled), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_transformPrecodingDisabled_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecodingDisabled" + }, + { ATF_POINTER, 1, offsetof(struct DMRS_UplinkConfig, transformPrecodingEnabled), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_transformPrecodingEnabled_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecodingEnabled" + }, +}; +static const int asn_MAP_DMRS_UplinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_DMRS_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DMRS_UplinkConfig_specs_1 = { + sizeof(struct DMRS_UplinkConfig), + offsetof(struct DMRS_UplinkConfig, _asn_ctx), + asn_MAP_DMRS_UplinkConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_DMRS_UplinkConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DMRS_UplinkConfig = { + "DMRS-UplinkConfig", + "DMRS-UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_DMRS_UplinkConfig_tags_1, + sizeof(asn_DEF_DMRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_DMRS_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_DMRS_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_DMRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_DMRS_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DMRS_UplinkConfig_1, + 6, /* Elements count */ + &asn_SPC_DMRS_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DMRS-UplinkConfig.h b/src/codec_utils/RRC/DMRS-UplinkConfig.h new file mode 100644 index 000000000..4f0c76a2a --- /dev/null +++ b/src/codec_utils/RRC/DMRS-UplinkConfig.h @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DMRS_UplinkConfig_H_ +#define _DMRS_UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DMRS_UplinkConfig__dmrs_Type { + DMRS_UplinkConfig__dmrs_Type_type2 = 0 +} e_DMRS_UplinkConfig__dmrs_Type; +typedef enum DMRS_UplinkConfig__dmrs_AdditionalPosition { + DMRS_UplinkConfig__dmrs_AdditionalPosition_pos0 = 0, + DMRS_UplinkConfig__dmrs_AdditionalPosition_pos1 = 1, + DMRS_UplinkConfig__dmrs_AdditionalPosition_pos3 = 2 +} e_DMRS_UplinkConfig__dmrs_AdditionalPosition; +typedef enum DMRS_UplinkConfig__phaseTrackingRS_PR { + DMRS_UplinkConfig__phaseTrackingRS_PR_NOTHING, /* No components present */ + DMRS_UplinkConfig__phaseTrackingRS_PR_release, + DMRS_UplinkConfig__phaseTrackingRS_PR_setup +} DMRS_UplinkConfig__phaseTrackingRS_PR; +typedef enum DMRS_UplinkConfig__maxLength { + DMRS_UplinkConfig__maxLength_len2 = 0 +} e_DMRS_UplinkConfig__maxLength; +typedef enum DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping { + DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping_disabled = 0 +} e_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceGroupHopping; +typedef enum DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping { + DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping_enabled = 0 +} e_DMRS_UplinkConfig__transformPrecodingEnabled__sequenceHopping; + +/* Forward declarations */ +struct PTRS_UplinkConfig; + +/* DMRS-UplinkConfig */ +typedef struct DMRS_UplinkConfig { + long *dmrs_Type; /* OPTIONAL */ + long *dmrs_AdditionalPosition; /* OPTIONAL */ + struct DMRS_UplinkConfig__phaseTrackingRS { + DMRS_UplinkConfig__phaseTrackingRS_PR present; + union DMRS_UplinkConfig__phaseTrackingRS_u { + NULL_t release; + struct PTRS_UplinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *phaseTrackingRS; + long *maxLength; /* OPTIONAL */ + struct 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 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; +} DMRS_UplinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_Type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_AdditionalPosition_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxLength_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sequenceGroupHopping_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sequenceHopping_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DMRS_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_DMRS_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_DMRS_UplinkConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DMRS_UplinkConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-CountInfo.c b/src/codec_utils/RRC/DRB-CountInfo.c new file mode 100644 index 000000000..fe4a2c2de --- /dev/null +++ b/src/codec_utils/RRC/DRB-CountInfo.c @@ -0,0 +1,224 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-CountInfo.h" + +static int +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 +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_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_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_oer_constraints_t asn_OER_type_count_Uplink_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_count_Downlink_constr_4 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_count_Uplink_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_count_Downlink_constr_4 CC_NOTUSED = { + { 4, 1 } /* (0..4294967295) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_count_Uplink_specs_3 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_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_count_Uplink_3 = { + "count-Uplink", + "count-Uplink", + &asn_OP_NativeInteger, + asn_DEF_count_Uplink_tags_3, + sizeof(asn_DEF_count_Uplink_tags_3) + /sizeof(asn_DEF_count_Uplink_tags_3[0]) - 1, /* 1 */ + asn_DEF_count_Uplink_tags_3, /* Same as above */ + sizeof(asn_DEF_count_Uplink_tags_3) + /sizeof(asn_DEF_count_Uplink_tags_3[0]), /* 2 */ + { &asn_OER_type_count_Uplink_constr_3, &asn_PER_type_count_Uplink_constr_3, count_Uplink_3_constraint }, + 0, 0, /* No members */ + &asn_SPC_count_Uplink_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_specifics_t asn_SPC_count_Downlink_specs_4 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_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_count_Downlink_4 = { + "count-Downlink", + "count-Downlink", + &asn_OP_NativeInteger, + asn_DEF_count_Downlink_tags_4, + sizeof(asn_DEF_count_Downlink_tags_4) + /sizeof(asn_DEF_count_Downlink_tags_4[0]) - 1, /* 1 */ + asn_DEF_count_Downlink_tags_4, /* Same as above */ + sizeof(asn_DEF_count_Downlink_tags_4) + /sizeof(asn_DEF_count_Downlink_tags_4[0]), /* 2 */ + { &asn_OER_type_count_Downlink_constr_4, &asn_PER_type_count_Downlink_constr_4, count_Downlink_4_constraint }, + 0, 0, /* No members */ + &asn_SPC_count_Downlink_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_CountInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountInfo, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountInfo, count_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_count_Uplink_3, + 0, + { &asn_OER_memb_count_Uplink_constr_3, &asn_PER_memb_count_Uplink_constr_3, memb_count_Uplink_constraint_1 }, + 0, 0, /* No default value */ + "count-Uplink" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountInfo, count_Downlink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_count_Downlink_4, + 0, + { &asn_OER_memb_count_Downlink_constr_4, &asn_PER_memb_count_Downlink_constr_4, memb_count_Downlink_constraint_1 }, + 0, 0, /* No default value */ + "count-Downlink" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_CountInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DRB_CountInfo_specs_1 = { + sizeof(struct DRB_CountInfo), + offsetof(struct DRB_CountInfo, _asn_ctx), + asn_MAP_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_DRB_CountInfo = { + "DRB-CountInfo", + "DRB-CountInfo", + &asn_OP_SEQUENCE, + asn_DEF_DRB_CountInfo_tags_1, + sizeof(asn_DEF_DRB_CountInfo_tags_1) + /sizeof(asn_DEF_DRB_CountInfo_tags_1[0]), /* 1 */ + asn_DEF_DRB_CountInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_CountInfo_tags_1) + /sizeof(asn_DEF_DRB_CountInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_CountInfo_1, + 3, /* Elements count */ + &asn_SPC_DRB_CountInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-CountInfo.h b/src/codec_utils/RRC/DRB-CountInfo.h new file mode 100644 index 000000000..c8d510921 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_CountInfo_H_ +#define _DRB_CountInfo_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRB-CountInfo */ +typedef struct DRB_CountInfo { + 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; +} DRB_CountInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_count_Uplink_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_count_Downlink_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_CountInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_CountInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_CountInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_CountInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-CountInfoList.c b/src/codec_utils/RRC/DRB-CountInfoList.c new file mode 100644 index 000000000..eec5e2562 --- /dev/null +++ b/src/codec_utils/RRC/DRB-CountInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-CountInfoList.h" + +#include "DRB-CountInfo.h" +static asn_oer_constraints_t asn_OER_type_DRB_CountInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..29)) */}; +asn_per_constraints_t asn_PER_type_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_DRB_CountInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_CountInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_CountInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DRB_CountInfoList_specs_1 = { + sizeof(struct DRB_CountInfoList), + offsetof(struct DRB_CountInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_CountInfoList = { + "DRB-CountInfoList", + "DRB-CountInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_CountInfoList_tags_1, + sizeof(asn_DEF_DRB_CountInfoList_tags_1) + /sizeof(asn_DEF_DRB_CountInfoList_tags_1[0]), /* 1 */ + asn_DEF_DRB_CountInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_CountInfoList_tags_1) + /sizeof(asn_DEF_DRB_CountInfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_CountInfoList_constr_1, &asn_PER_type_DRB_CountInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_CountInfoList_1, + 1, /* Single element */ + &asn_SPC_DRB_CountInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-CountInfoList.h b/src/codec_utils/RRC/DRB-CountInfoList.h new file mode 100644 index 000000000..919eca746 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_CountInfoList_H_ +#define _DRB_CountInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DRB_CountInfo; + +/* DRB-CountInfoList */ +typedef struct DRB_CountInfoList { + A_SEQUENCE_OF(struct DRB_CountInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_CountInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_CountInfoList; +extern asn_SET_OF_specifics_t asn_SPC_DRB_CountInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_CountInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_DRB_CountInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_CountInfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-CountMSB-Info.c b/src/codec_utils/RRC/DRB-CountMSB-Info.c new file mode 100644 index 000000000..b13ae452c --- /dev/null +++ b/src/codec_utils/RRC/DRB-CountMSB-Info.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-CountMSB-Info.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_countMSB_Uplink_constr_3 CC_NOTUSED = { + { 4, 1 } /* (0..33554431) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_countMSB_Downlink_constr_4 CC_NOTUSED = { + { 4, 1 } /* (0..33554431) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_DRB_CountMSB_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountMSB_Info, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountMSB_Info, countMSB_Uplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_countMSB_Uplink_constr_3, &asn_PER_memb_countMSB_Uplink_constr_3, memb_countMSB_Uplink_constraint_1 }, + 0, 0, /* No default value */ + "countMSB-Uplink" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_CountMSB_Info, countMSB_Downlink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_countMSB_Downlink_constr_4, &asn_PER_memb_countMSB_Downlink_constr_4, memb_countMSB_Downlink_constraint_1 }, + 0, 0, /* No default value */ + "countMSB-Downlink" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_CountMSB_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DRB_CountMSB_Info_specs_1 = { + sizeof(struct DRB_CountMSB_Info), + offsetof(struct DRB_CountMSB_Info, _asn_ctx), + asn_MAP_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_DRB_CountMSB_Info = { + "DRB-CountMSB-Info", + "DRB-CountMSB-Info", + &asn_OP_SEQUENCE, + asn_DEF_DRB_CountMSB_Info_tags_1, + sizeof(asn_DEF_DRB_CountMSB_Info_tags_1) + /sizeof(asn_DEF_DRB_CountMSB_Info_tags_1[0]), /* 1 */ + asn_DEF_DRB_CountMSB_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_CountMSB_Info_tags_1) + /sizeof(asn_DEF_DRB_CountMSB_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_CountMSB_Info_1, + 3, /* Elements count */ + &asn_SPC_DRB_CountMSB_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-CountMSB-Info.h b/src/codec_utils/RRC/DRB-CountMSB-Info.h new file mode 100644 index 000000000..f89ceba8b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_CountMSB_Info_H_ +#define _DRB_CountMSB_Info_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRB-CountMSB-Info */ +typedef struct DRB_CountMSB_Info { + DRB_Identity_t drb_Identity; + long countMSB_Uplink; + long countMSB_Downlink; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_CountMSB_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_CountMSB_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_CountMSB_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_CountMSB_Info_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_CountMSB_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-CountMSB-InfoList.c b/src/codec_utils/RRC/DRB-CountMSB-InfoList.c new file mode 100644 index 000000000..7fad2a393 --- /dev/null +++ b/src/codec_utils/RRC/DRB-CountMSB-InfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-CountMSB-InfoList.h" + +#include "DRB-CountMSB-Info.h" +static asn_oer_constraints_t asn_OER_type_DRB_CountMSB_InfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..29)) */}; +asn_per_constraints_t asn_PER_type_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_DRB_CountMSB_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_CountMSB_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_CountMSB_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DRB_CountMSB_InfoList_specs_1 = { + sizeof(struct DRB_CountMSB_InfoList), + offsetof(struct DRB_CountMSB_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_CountMSB_InfoList = { + "DRB-CountMSB-InfoList", + "DRB-CountMSB-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_CountMSB_InfoList_tags_1, + sizeof(asn_DEF_DRB_CountMSB_InfoList_tags_1) + /sizeof(asn_DEF_DRB_CountMSB_InfoList_tags_1[0]), /* 1 */ + asn_DEF_DRB_CountMSB_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_CountMSB_InfoList_tags_1) + /sizeof(asn_DEF_DRB_CountMSB_InfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_CountMSB_InfoList_constr_1, &asn_PER_type_DRB_CountMSB_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_CountMSB_InfoList_1, + 1, /* Single element */ + &asn_SPC_DRB_CountMSB_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-CountMSB-InfoList.h b/src/codec_utils/RRC/DRB-CountMSB-InfoList.h new file mode 100644 index 000000000..fc08e1fd7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_CountMSB_InfoList_H_ +#define _DRB_CountMSB_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DRB_CountMSB_Info; + +/* DRB-CountMSB-InfoList */ +typedef struct DRB_CountMSB_InfoList { + A_SEQUENCE_OF(struct DRB_CountMSB_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_CountMSB_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_CountMSB_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_DRB_CountMSB_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_CountMSB_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_DRB_CountMSB_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_CountMSB_InfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-Identity.c b/src/codec_utils/RRC/DRB-Identity.c new file mode 100644 index 000000000..1b2b1ac62 --- /dev/null +++ b/src/codec_utils/RRC/DRB-Identity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-Identity.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_DRB_Identity_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +asn_per_constraints_t asn_PER_type_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_DRB_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DRB_Identity = { + "DRB-Identity", + "DRB-Identity", + &asn_OP_NativeInteger, + asn_DEF_DRB_Identity_tags_1, + sizeof(asn_DEF_DRB_Identity_tags_1) + /sizeof(asn_DEF_DRB_Identity_tags_1[0]), /* 1 */ + asn_DEF_DRB_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_Identity_tags_1) + /sizeof(asn_DEF_DRB_Identity_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_Identity_constr_1, &asn_PER_type_DRB_Identity_constr_1, DRB_Identity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/DRB-Identity.h b/src/codec_utils/RRC/DRB-Identity.h new file mode 100644 index 000000000..afe4ab861 --- /dev/null +++ b/src/codec_utils/RRC/DRB-Identity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_Identity_H_ +#define _DRB_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRB-Identity */ +typedef long DRB_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DRB_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DRB_Identity; +asn_struct_free_f DRB_Identity_free; +asn_struct_print_f DRB_Identity_print; +asn_constr_check_f DRB_Identity_constraint; +ber_type_decoder_f DRB_Identity_decode_ber; +der_type_encoder_f DRB_Identity_encode_der; +xer_type_decoder_f DRB_Identity_decode_xer; +xer_type_encoder_f DRB_Identity_encode_xer; +oer_type_decoder_f DRB_Identity_decode_oer; +oer_type_encoder_f DRB_Identity_encode_oer; +per_type_decoder_f DRB_Identity_decode_uper; +per_type_encoder_f DRB_Identity_encode_uper; +per_type_decoder_f DRB_Identity_decode_aper; +per_type_encoder_f DRB_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_Identity_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-ToAddMod.c b/src/codec_utils/RRC/DRB-ToAddMod.c new file mode 100644 index 000000000..323c04c85 --- /dev/null +++ b/src/codec_utils/RRC/DRB-ToAddMod.c @@ -0,0 +1,278 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-ToAddMod.h" + +#include "PDCP-Config.h" +#include "SDAP-Config.h" +static int +memb_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_oer_constraints_t asn_OER_memb_eps_BearerIdentity_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_cnAssociation_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reestablishPDCP_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_recoverPDCP_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_cnAssociation_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRB_ToAddMod__cnAssociation, choice.eps_BearerIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_eps_BearerIdentity_constr_3, &asn_PER_memb_eps_BearerIdentity_constr_3, memb_eps_BearerIdentity_constraint_2 }, + 0, 0, /* No default value */ + "eps-BearerIdentity" + }, + { ATF_POINTER, 0, offsetof(struct DRB_ToAddMod__cnAssociation, choice.sdap_Config), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SDAP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-Config" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_cnAssociation_specs_2 = { + sizeof(struct DRB_ToAddMod__cnAssociation), + offsetof(struct DRB_ToAddMod__cnAssociation, _asn_ctx), + offsetof(struct DRB_ToAddMod__cnAssociation, present), + sizeof(((struct DRB_ToAddMod__cnAssociation *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_cnAssociation_constr_2, &asn_PER_type_cnAssociation_constr_2, CHOICE_constraint }, + asn_MBR_cnAssociation_2, + 2, /* Elements count */ + &asn_SPC_cnAssociation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_reestablishPDCP_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_reestablishPDCP_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reestablishPDCP_specs_6 = { + asn_MAP_reestablishPDCP_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reestablishPDCP_6 = { + "reestablishPDCP", + "reestablishPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_reestablishPDCP_tags_6, + sizeof(asn_DEF_reestablishPDCP_tags_6) + /sizeof(asn_DEF_reestablishPDCP_tags_6[0]) - 1, /* 1 */ + asn_DEF_reestablishPDCP_tags_6, /* Same as above */ + sizeof(asn_DEF_reestablishPDCP_tags_6) + /sizeof(asn_DEF_reestablishPDCP_tags_6[0]), /* 2 */ + { &asn_OER_type_reestablishPDCP_constr_6, &asn_PER_type_reestablishPDCP_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reestablishPDCP_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_recoverPDCP_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_recoverPDCP_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_recoverPDCP_specs_8 = { + asn_MAP_recoverPDCP_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_recoverPDCP_8 = { + "recoverPDCP", + "recoverPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_recoverPDCP_tags_8, + sizeof(asn_DEF_recoverPDCP_tags_8) + /sizeof(asn_DEF_recoverPDCP_tags_8[0]) - 1, /* 1 */ + asn_DEF_recoverPDCP_tags_8, /* Same as above */ + sizeof(asn_DEF_recoverPDCP_tags_8) + /sizeof(asn_DEF_recoverPDCP_tags_8[0]), /* 2 */ + { &asn_OER_type_recoverPDCP_constr_8, &asn_PER_type_recoverPDCP_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_recoverPDCP_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRB_ToAddMod_1[] = { + { ATF_POINTER, 1, offsetof(struct DRB_ToAddMod, cnAssociation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cnAssociation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cnAssociation" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRB_ToAddMod, drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, + { ATF_POINTER, 3, offsetof(struct DRB_ToAddMod, reestablishPDCP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reestablishPDCP_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishPDCP" + }, + { ATF_POINTER, 2, offsetof(struct DRB_ToAddMod, recoverPDCP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_recoverPDCP_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recoverPDCP" + }, + { ATF_POINTER, 1, offsetof(struct DRB_ToAddMod, pdcp_Config), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Config" + }, +}; +static const int asn_MAP_DRB_ToAddMod_oms_1[] = { 0, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_DRB_ToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DRB_ToAddMod_specs_1 = { + sizeof(struct DRB_ToAddMod), + offsetof(struct DRB_ToAddMod, _asn_ctx), + asn_MAP_DRB_ToAddMod_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_DRB_ToAddMod_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_ToAddMod = { + "DRB-ToAddMod", + "DRB-ToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_DRB_ToAddMod_tags_1, + sizeof(asn_DEF_DRB_ToAddMod_tags_1) + /sizeof(asn_DEF_DRB_ToAddMod_tags_1[0]), /* 1 */ + asn_DEF_DRB_ToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_ToAddMod_tags_1) + /sizeof(asn_DEF_DRB_ToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRB_ToAddMod_1, + 5, /* Elements count */ + &asn_SPC_DRB_ToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-ToAddMod.h b/src/codec_utils/RRC/DRB-ToAddMod.h new file mode 100644 index 000000000..9d5b2be5c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_ToAddMod_H_ +#define _DRB_ToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-Identity.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DRB_ToAddMod__cnAssociation_PR { + DRB_ToAddMod__cnAssociation_PR_NOTHING, /* No components present */ + DRB_ToAddMod__cnAssociation_PR_eps_BearerIdentity, + DRB_ToAddMod__cnAssociation_PR_sdap_Config +} DRB_ToAddMod__cnAssociation_PR; +typedef enum DRB_ToAddMod__reestablishPDCP { + DRB_ToAddMod__reestablishPDCP_true = 0 +} e_DRB_ToAddMod__reestablishPDCP; +typedef enum DRB_ToAddMod__recoverPDCP { + DRB_ToAddMod__recoverPDCP_true = 0 +} e_DRB_ToAddMod__recoverPDCP; + +/* Forward declarations */ +struct PDCP_Config; +struct SDAP_Config; + +/* DRB-ToAddMod */ +typedef struct DRB_ToAddMod { + struct DRB_ToAddMod__cnAssociation { + DRB_ToAddMod__cnAssociation_PR present; + union DRB_ToAddMod__cnAssociation_u { + long eps_BearerIdentity; + struct SDAP_Config *sdap_Config; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cnAssociation; + DRB_Identity_t drb_Identity; + long *reestablishPDCP; /* OPTIONAL */ + long *recoverPDCP; /* OPTIONAL */ + struct 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; +} DRB_ToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reestablishPDCP_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_recoverPDCP_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_ToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_DRB_ToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_ToAddMod_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_ToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-ToAddModList.c b/src/codec_utils/RRC/DRB-ToAddModList.c new file mode 100644 index 000000000..ecd38a44d --- /dev/null +++ b/src/codec_utils/RRC/DRB-ToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-ToAddModList.h" + +#include "DRB-ToAddMod.h" +static asn_oer_constraints_t asn_OER_type_DRB_ToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..29)) */}; +asn_per_constraints_t asn_PER_type_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_DRB_ToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_DRB_ToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_ToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DRB_ToAddModList_specs_1 = { + sizeof(struct DRB_ToAddModList), + offsetof(struct DRB_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_ToAddModList = { + "DRB-ToAddModList", + "DRB-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_ToAddModList_tags_1, + sizeof(asn_DEF_DRB_ToAddModList_tags_1) + /sizeof(asn_DEF_DRB_ToAddModList_tags_1[0]), /* 1 */ + asn_DEF_DRB_ToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_ToAddModList_tags_1) + /sizeof(asn_DEF_DRB_ToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_ToAddModList_constr_1, &asn_PER_type_DRB_ToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_ToAddModList_1, + 1, /* Single element */ + &asn_SPC_DRB_ToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-ToAddModList.h b/src/codec_utils/RRC/DRB-ToAddModList.h new file mode 100644 index 000000000..9fb10b27f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_ToAddModList_H_ +#define _DRB_ToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DRB_ToAddMod; + +/* DRB-ToAddModList */ +typedef struct DRB_ToAddModList { + A_SEQUENCE_OF(struct DRB_ToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_ToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_ToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_DRB_ToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_ToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_DRB_ToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_ToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/DRB-ToReleaseList.c b/src/codec_utils/RRC/DRB-ToReleaseList.c new file mode 100644 index 000000000..215e9bf47 --- /dev/null +++ b/src/codec_utils/RRC/DRB-ToReleaseList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRB-ToReleaseList.h" + +static asn_oer_constraints_t asn_OER_type_DRB_ToReleaseList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..29)) */}; +asn_per_constraints_t asn_PER_type_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_DRB_ToReleaseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_DRB_ToReleaseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_DRB_ToReleaseList_specs_1 = { + sizeof(struct DRB_ToReleaseList), + offsetof(struct DRB_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_DRB_ToReleaseList = { + "DRB-ToReleaseList", + "DRB-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_DRB_ToReleaseList_tags_1, + sizeof(asn_DEF_DRB_ToReleaseList_tags_1) + /sizeof(asn_DEF_DRB_ToReleaseList_tags_1[0]), /* 1 */ + asn_DEF_DRB_ToReleaseList_tags_1, /* Same as above */ + sizeof(asn_DEF_DRB_ToReleaseList_tags_1) + /sizeof(asn_DEF_DRB_ToReleaseList_tags_1[0]), /* 1 */ + { &asn_OER_type_DRB_ToReleaseList_constr_1, &asn_PER_type_DRB_ToReleaseList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_DRB_ToReleaseList_1, + 1, /* Single element */ + &asn_SPC_DRB_ToReleaseList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRB-ToReleaseList.h b/src/codec_utils/RRC/DRB-ToReleaseList.h new file mode 100644 index 000000000..893340bf1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRB_ToReleaseList_H_ +#define _DRB_ToReleaseList_H_ + + +#include + +/* Including external dependencies */ +#include "DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DRB-ToReleaseList */ +typedef struct DRB_ToReleaseList { + A_SEQUENCE_OF(DRB_Identity_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DRB_ToReleaseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DRB_ToReleaseList; +extern asn_SET_OF_specifics_t asn_SPC_DRB_ToReleaseList_specs_1; +extern asn_TYPE_member_t asn_MBR_DRB_ToReleaseList_1[1]; +extern asn_per_constraints_t asn_PER_type_DRB_ToReleaseList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRB_ToReleaseList_H_ */ +#include diff --git a/src/codec_utils/RRC/DRX-Config.c b/src/codec_utils/RRC/DRX-Config.c new file mode 100644 index 000000000..b036bc947 --- /dev/null +++ b/src/codec_utils/RRC/DRX-Config.c @@ -0,0 +1,1849 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRX-Config.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_milliSeconds_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_subMilliSeconds_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_drx_onDurationTimer_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drx_InactivityTimer_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drx_RetransmissionTimerDL_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drx_RetransmissionTimerUL_constr_105 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ms10_constr_139 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms20_constr_140 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms32_constr_141 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms40_constr_142 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms60_constr_143 CC_NOTUSED = { + { 1, 1 } /* (0..59) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms64_constr_144 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms70_constr_145 CC_NOTUSED = { + { 1, 1 } /* (0..69) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms80_constr_146 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms128_constr_147 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms160_constr_148 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms256_constr_149 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms320_constr_150 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms512_constr_151 CC_NOTUSED = { + { 2, 1 } /* (0..511) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms640_constr_152 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms1024_constr_153 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms1280_constr_154 CC_NOTUSED = { + { 2, 1 } /* (0..1279) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms2048_constr_155 CC_NOTUSED = { + { 2, 1 } /* (0..2047) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms2560_constr_156 CC_NOTUSED = { + { 2, 1 } /* (0..2559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms5120_constr_157 CC_NOTUSED = { + { 2, 1 } /* (0..5119) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms10240_constr_158 CC_NOTUSED = { + { 2, 1 } /* (0..10239) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_drx_LongCycleStartOffset_constr_138 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drx_ShortCycle_constr_160 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_drx_ShortCycleTimer_constr_193 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_drx_HARQ_RTT_TimerDL_constr_70 CC_NOTUSED = { + { 1, 1 } /* (0..56) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_drx_HARQ_RTT_TimerUL_constr_71 CC_NOTUSED = { + { 1, 1 } /* (0..56) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_drx_SlotOffset_constr_194 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_milliSeconds_specs_4 = { + asn_MAP_milliSeconds_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_milliSeconds_4 = { + "milliSeconds", + "milliSeconds", + &asn_OP_NativeEnumerated, + asn_DEF_milliSeconds_tags_4, + sizeof(asn_DEF_milliSeconds_tags_4) + /sizeof(asn_DEF_milliSeconds_tags_4[0]) - 1, /* 1 */ + asn_DEF_milliSeconds_tags_4, /* Same as above */ + sizeof(asn_DEF_milliSeconds_tags_4) + /sizeof(asn_DEF_milliSeconds_tags_4[0]), /* 2 */ + { &asn_OER_type_milliSeconds_constr_4, &asn_PER_type_milliSeconds_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_milliSeconds_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_drx_onDurationTimer_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_onDurationTimer, choice.subMilliSeconds), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_subMilliSeconds_constr_3, &asn_PER_memb_subMilliSeconds_constr_3, memb_subMilliSeconds_constraint_2 }, + 0, 0, /* No default value */ + "subMilliSeconds" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_onDurationTimer, choice.milliSeconds), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_milliSeconds_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "milliSeconds" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_drx_onDurationTimer_specs_2 = { + sizeof(struct DRX_Config__drx_onDurationTimer), + offsetof(struct DRX_Config__drx_onDurationTimer, _asn_ctx), + offsetof(struct DRX_Config__drx_onDurationTimer, present), + sizeof(((struct DRX_Config__drx_onDurationTimer *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_drx_onDurationTimer_constr_2, &asn_PER_type_drx_onDurationTimer_constr_2, CHOICE_constraint }, + asn_MBR_drx_onDurationTimer_2, + 2, /* Elements count */ + &asn_SPC_drx_onDurationTimer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_drx_InactivityTimer_specs_37 = { + asn_MAP_drx_InactivityTimer_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drx_InactivityTimer_37 = { + "drx-InactivityTimer", + "drx-InactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_drx_InactivityTimer_tags_37, + sizeof(asn_DEF_drx_InactivityTimer_tags_37) + /sizeof(asn_DEF_drx_InactivityTimer_tags_37[0]) - 1, /* 1 */ + asn_DEF_drx_InactivityTimer_tags_37, /* Same as above */ + sizeof(asn_DEF_drx_InactivityTimer_tags_37) + /sizeof(asn_DEF_drx_InactivityTimer_tags_37[0]), /* 2 */ + { &asn_OER_type_drx_InactivityTimer_constr_37, &asn_PER_type_drx_InactivityTimer_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drx_InactivityTimer_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_drx_RetransmissionTimerDL_specs_72 = { + asn_MAP_drx_RetransmissionTimerDL_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drx_RetransmissionTimerDL_72 = { + "drx-RetransmissionTimerDL", + "drx-RetransmissionTimerDL", + &asn_OP_NativeEnumerated, + asn_DEF_drx_RetransmissionTimerDL_tags_72, + sizeof(asn_DEF_drx_RetransmissionTimerDL_tags_72) + /sizeof(asn_DEF_drx_RetransmissionTimerDL_tags_72[0]) - 1, /* 1 */ + asn_DEF_drx_RetransmissionTimerDL_tags_72, /* Same as above */ + sizeof(asn_DEF_drx_RetransmissionTimerDL_tags_72) + /sizeof(asn_DEF_drx_RetransmissionTimerDL_tags_72[0]), /* 2 */ + { &asn_OER_type_drx_RetransmissionTimerDL_constr_72, &asn_PER_type_drx_RetransmissionTimerDL_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drx_RetransmissionTimerDL_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_drx_RetransmissionTimerUL_specs_105 = { + asn_MAP_drx_RetransmissionTimerUL_value2enum_105, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drx_RetransmissionTimerUL_105 = { + "drx-RetransmissionTimerUL", + "drx-RetransmissionTimerUL", + &asn_OP_NativeEnumerated, + asn_DEF_drx_RetransmissionTimerUL_tags_105, + sizeof(asn_DEF_drx_RetransmissionTimerUL_tags_105) + /sizeof(asn_DEF_drx_RetransmissionTimerUL_tags_105[0]) - 1, /* 1 */ + asn_DEF_drx_RetransmissionTimerUL_tags_105, /* Same as above */ + sizeof(asn_DEF_drx_RetransmissionTimerUL_tags_105) + /sizeof(asn_DEF_drx_RetransmissionTimerUL_tags_105[0]), /* 2 */ + { &asn_OER_type_drx_RetransmissionTimerUL_constr_105, &asn_PER_type_drx_RetransmissionTimerUL_constr_105, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drx_RetransmissionTimerUL_specs_105 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_drx_LongCycleStartOffset_138[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms10_constr_139, &asn_PER_memb_ms10_constr_139, memb_ms10_constraint_138 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms20_constr_140, &asn_PER_memb_ms20_constr_140, memb_ms20_constraint_138 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms32), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms32_constr_141, &asn_PER_memb_ms32_constr_141, memb_ms32_constraint_138 }, + 0, 0, /* No default value */ + "ms32" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms40_constr_142, &asn_PER_memb_ms40_constr_142, memb_ms40_constraint_138 }, + 0, 0, /* No default value */ + "ms40" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms60), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms60_constr_143, &asn_PER_memb_ms60_constr_143, memb_ms60_constraint_138 }, + 0, 0, /* No default value */ + "ms60" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms64), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms64_constr_144, &asn_PER_memb_ms64_constr_144, memb_ms64_constraint_138 }, + 0, 0, /* No default value */ + "ms64" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms70), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms70_constr_145, &asn_PER_memb_ms70_constr_145, memb_ms70_constraint_138 }, + 0, 0, /* No default value */ + "ms70" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms80_constr_146, &asn_PER_memb_ms80_constr_146, memb_ms80_constraint_138 }, + 0, 0, /* No default value */ + "ms80" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms128), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms128_constr_147, &asn_PER_memb_ms128_constr_147, memb_ms128_constraint_138 }, + 0, 0, /* No default value */ + "ms128" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms160), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms160_constr_148, &asn_PER_memb_ms160_constr_148, memb_ms160_constraint_138 }, + 0, 0, /* No default value */ + "ms160" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms256), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms256_constr_149, &asn_PER_memb_ms256_constr_149, memb_ms256_constraint_138 }, + 0, 0, /* No default value */ + "ms256" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms320_constr_150, &asn_PER_memb_ms320_constr_150, memb_ms320_constraint_138 }, + 0, 0, /* No default value */ + "ms320" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms512), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms512_constr_151, &asn_PER_memb_ms512_constr_151, memb_ms512_constraint_138 }, + 0, 0, /* No default value */ + "ms512" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms640), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms640_constr_152, &asn_PER_memb_ms640_constr_152, memb_ms640_constraint_138 }, + 0, 0, /* No default value */ + "ms640" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms1024), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms1024_constr_153, &asn_PER_memb_ms1024_constr_153, memb_ms1024_constraint_138 }, + 0, 0, /* No default value */ + "ms1024" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms1280_constr_154, &asn_PER_memb_ms1280_constr_154, memb_ms1280_constraint_138 }, + 0, 0, /* No default value */ + "ms1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms2048), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms2048_constr_155, &asn_PER_memb_ms2048_constr_155, memb_ms2048_constraint_138 }, + 0, 0, /* No default value */ + "ms2048" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms2560), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms2560_constr_156, &asn_PER_memb_ms2560_constr_156, memb_ms2560_constraint_138 }, + 0, 0, /* No default value */ + "ms2560" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms5120), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms5120_constr_157, &asn_PER_memb_ms5120_constr_157, memb_ms5120_constraint_138 }, + 0, 0, /* No default value */ + "ms5120" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__drx_LongCycleStartOffset, choice.ms10240), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms10240_constr_158, &asn_PER_memb_ms10240_constr_158, memb_ms10240_constraint_138 }, + 0, 0, /* No default value */ + "ms10240" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_drx_LongCycleStartOffset_specs_138 = { + sizeof(struct DRX_Config__drx_LongCycleStartOffset), + offsetof(struct DRX_Config__drx_LongCycleStartOffset, _asn_ctx), + offsetof(struct DRX_Config__drx_LongCycleStartOffset, present), + sizeof(((struct DRX_Config__drx_LongCycleStartOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_drx_LongCycleStartOffset_constr_138, &asn_PER_type_drx_LongCycleStartOffset_constr_138, CHOICE_constraint }, + asn_MBR_drx_LongCycleStartOffset_138, + 20, /* Elements count */ + &asn_SPC_drx_LongCycleStartOffset_specs_138 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_drx_ShortCycle_specs_160 = { + asn_MAP_drx_ShortCycle_value2enum_160, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drx_ShortCycle_160 = { + "drx-ShortCycle", + "drx-ShortCycle", + &asn_OP_NativeEnumerated, + asn_DEF_drx_ShortCycle_tags_160, + sizeof(asn_DEF_drx_ShortCycle_tags_160) + /sizeof(asn_DEF_drx_ShortCycle_tags_160[0]) - 1, /* 1 */ + asn_DEF_drx_ShortCycle_tags_160, /* Same as above */ + sizeof(asn_DEF_drx_ShortCycle_tags_160) + /sizeof(asn_DEF_drx_ShortCycle_tags_160[0]), /* 2 */ + { &asn_OER_type_drx_ShortCycle_constr_160, &asn_PER_type_drx_ShortCycle_constr_160, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drx_ShortCycle_specs_160 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_shortDRX_159[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__shortDRX, drx_ShortCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drx_ShortCycle_160, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ShortCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config__shortDRX, drx_ShortCycleTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_drx_ShortCycleTimer_constr_193, &asn_PER_memb_drx_ShortCycleTimer_constr_193, memb_drx_ShortCycleTimer_constraint_159 }, + 0, 0, /* No default value */ + "drx-ShortCycleTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_shortDRX_tags_159[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_shortDRX_specs_159 = { + sizeof(struct DRX_Config__shortDRX), + offsetof(struct DRX_Config__shortDRX, _asn_ctx), + asn_MAP_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_shortDRX_159 = { + "shortDRX", + "shortDRX", + &asn_OP_SEQUENCE, + asn_DEF_shortDRX_tags_159, + sizeof(asn_DEF_shortDRX_tags_159) + /sizeof(asn_DEF_shortDRX_tags_159[0]) - 1, /* 1 */ + asn_DEF_shortDRX_tags_159, /* Same as above */ + sizeof(asn_DEF_shortDRX_tags_159) + /sizeof(asn_DEF_shortDRX_tags_159[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_shortDRX_159, + 2, /* Elements count */ + &asn_SPC_shortDRX_specs_159 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRX_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_onDurationTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_drx_onDurationTimer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-onDurationTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_InactivityTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drx_InactivityTimer_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-InactivityTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_HARQ_RTT_TimerDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_drx_HARQ_RTT_TimerDL_constr_70, &asn_PER_memb_drx_HARQ_RTT_TimerDL_constr_70, memb_drx_HARQ_RTT_TimerDL_constraint_1 }, + 0, 0, /* No default value */ + "drx-HARQ-RTT-TimerDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_HARQ_RTT_TimerUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_drx_HARQ_RTT_TimerUL_constr_71, &asn_PER_memb_drx_HARQ_RTT_TimerUL_constr_71, memb_drx_HARQ_RTT_TimerUL_constraint_1 }, + 0, 0, /* No default value */ + "drx-HARQ-RTT-TimerUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_RetransmissionTimerDL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drx_RetransmissionTimerDL_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-RetransmissionTimerDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_RetransmissionTimerUL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drx_RetransmissionTimerUL_105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-RetransmissionTimerUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_LongCycleStartOffset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_drx_LongCycleStartOffset_138, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-LongCycleStartOffset" + }, + { ATF_POINTER, 1, offsetof(struct DRX_Config, shortDRX), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_shortDRX_159, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Config, drx_SlotOffset), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_drx_SlotOffset_constr_194, &asn_PER_memb_drx_SlotOffset_constr_194, memb_drx_SlotOffset_constraint_1 }, + 0, 0, /* No default value */ + "drx-SlotOffset" + }, +}; +static const int asn_MAP_DRX_Config_oms_1[] = { 7 }; +static const ber_tlv_tag_t asn_DEF_DRX_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DRX_Config_specs_1 = { + sizeof(struct DRX_Config), + offsetof(struct DRX_Config, _asn_ctx), + asn_MAP_DRX_Config_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_DRX_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRX_Config = { + "DRX-Config", + "DRX-Config", + &asn_OP_SEQUENCE, + asn_DEF_DRX_Config_tags_1, + sizeof(asn_DEF_DRX_Config_tags_1) + /sizeof(asn_DEF_DRX_Config_tags_1[0]), /* 1 */ + asn_DEF_DRX_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_DRX_Config_tags_1) + /sizeof(asn_DEF_DRX_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRX_Config_1, + 9, /* Elements count */ + &asn_SPC_DRX_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRX-Config.h b/src/codec_utils/RRC/DRX-Config.h new file mode 100644 index 000000000..1fa7cf998 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRX_Config_H_ +#define _DRX_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DRX_Config__drx_onDurationTimer_PR { + DRX_Config__drx_onDurationTimer_PR_NOTHING, /* No components present */ + DRX_Config__drx_onDurationTimer_PR_subMilliSeconds, + DRX_Config__drx_onDurationTimer_PR_milliSeconds +} DRX_Config__drx_onDurationTimer_PR; +typedef enum DRX_Config__drx_onDurationTimer__milliSeconds { + DRX_Config__drx_onDurationTimer__milliSeconds_ms1 = 0, + DRX_Config__drx_onDurationTimer__milliSeconds_ms2 = 1, + DRX_Config__drx_onDurationTimer__milliSeconds_ms3 = 2, + DRX_Config__drx_onDurationTimer__milliSeconds_ms4 = 3, + DRX_Config__drx_onDurationTimer__milliSeconds_ms5 = 4, + DRX_Config__drx_onDurationTimer__milliSeconds_ms6 = 5, + DRX_Config__drx_onDurationTimer__milliSeconds_ms8 = 6, + DRX_Config__drx_onDurationTimer__milliSeconds_ms10 = 7, + DRX_Config__drx_onDurationTimer__milliSeconds_ms20 = 8, + DRX_Config__drx_onDurationTimer__milliSeconds_ms30 = 9, + DRX_Config__drx_onDurationTimer__milliSeconds_ms40 = 10, + DRX_Config__drx_onDurationTimer__milliSeconds_ms50 = 11, + DRX_Config__drx_onDurationTimer__milliSeconds_ms60 = 12, + DRX_Config__drx_onDurationTimer__milliSeconds_ms80 = 13, + DRX_Config__drx_onDurationTimer__milliSeconds_ms100 = 14, + DRX_Config__drx_onDurationTimer__milliSeconds_ms200 = 15, + DRX_Config__drx_onDurationTimer__milliSeconds_ms300 = 16, + DRX_Config__drx_onDurationTimer__milliSeconds_ms400 = 17, + DRX_Config__drx_onDurationTimer__milliSeconds_ms500 = 18, + DRX_Config__drx_onDurationTimer__milliSeconds_ms600 = 19, + DRX_Config__drx_onDurationTimer__milliSeconds_ms800 = 20, + DRX_Config__drx_onDurationTimer__milliSeconds_ms1000 = 21, + DRX_Config__drx_onDurationTimer__milliSeconds_ms1200 = 22, + DRX_Config__drx_onDurationTimer__milliSeconds_ms1600 = 23, + DRX_Config__drx_onDurationTimer__milliSeconds_spare8 = 24, + DRX_Config__drx_onDurationTimer__milliSeconds_spare7 = 25, + DRX_Config__drx_onDurationTimer__milliSeconds_spare6 = 26, + DRX_Config__drx_onDurationTimer__milliSeconds_spare5 = 27, + DRX_Config__drx_onDurationTimer__milliSeconds_spare4 = 28, + DRX_Config__drx_onDurationTimer__milliSeconds_spare3 = 29, + DRX_Config__drx_onDurationTimer__milliSeconds_spare2 = 30, + DRX_Config__drx_onDurationTimer__milliSeconds_spare1 = 31 +} e_DRX_Config__drx_onDurationTimer__milliSeconds; +typedef enum DRX_Config__drx_InactivityTimer { + DRX_Config__drx_InactivityTimer_ms0 = 0, + DRX_Config__drx_InactivityTimer_ms1 = 1, + DRX_Config__drx_InactivityTimer_ms2 = 2, + DRX_Config__drx_InactivityTimer_ms3 = 3, + DRX_Config__drx_InactivityTimer_ms4 = 4, + DRX_Config__drx_InactivityTimer_ms5 = 5, + DRX_Config__drx_InactivityTimer_ms6 = 6, + DRX_Config__drx_InactivityTimer_ms8 = 7, + DRX_Config__drx_InactivityTimer_ms10 = 8, + DRX_Config__drx_InactivityTimer_ms20 = 9, + DRX_Config__drx_InactivityTimer_ms30 = 10, + DRX_Config__drx_InactivityTimer_ms40 = 11, + DRX_Config__drx_InactivityTimer_ms50 = 12, + DRX_Config__drx_InactivityTimer_ms60 = 13, + DRX_Config__drx_InactivityTimer_ms80 = 14, + DRX_Config__drx_InactivityTimer_ms100 = 15, + DRX_Config__drx_InactivityTimer_ms200 = 16, + DRX_Config__drx_InactivityTimer_ms300 = 17, + DRX_Config__drx_InactivityTimer_ms500 = 18, + DRX_Config__drx_InactivityTimer_ms750 = 19, + DRX_Config__drx_InactivityTimer_ms1280 = 20, + DRX_Config__drx_InactivityTimer_ms1920 = 21, + DRX_Config__drx_InactivityTimer_ms2560 = 22, + DRX_Config__drx_InactivityTimer_spare9 = 23, + DRX_Config__drx_InactivityTimer_spare8 = 24, + DRX_Config__drx_InactivityTimer_spare7 = 25, + DRX_Config__drx_InactivityTimer_spare6 = 26, + DRX_Config__drx_InactivityTimer_spare5 = 27, + DRX_Config__drx_InactivityTimer_spare4 = 28, + DRX_Config__drx_InactivityTimer_spare3 = 29, + DRX_Config__drx_InactivityTimer_spare2 = 30, + DRX_Config__drx_InactivityTimer_spare1 = 31 +} e_DRX_Config__drx_InactivityTimer; +typedef enum DRX_Config__drx_RetransmissionTimerDL { + DRX_Config__drx_RetransmissionTimerDL_sl0 = 0, + DRX_Config__drx_RetransmissionTimerDL_sl1 = 1, + DRX_Config__drx_RetransmissionTimerDL_sl2 = 2, + DRX_Config__drx_RetransmissionTimerDL_sl4 = 3, + DRX_Config__drx_RetransmissionTimerDL_sl6 = 4, + DRX_Config__drx_RetransmissionTimerDL_sl8 = 5, + DRX_Config__drx_RetransmissionTimerDL_sl16 = 6, + DRX_Config__drx_RetransmissionTimerDL_sl24 = 7, + DRX_Config__drx_RetransmissionTimerDL_sl33 = 8, + DRX_Config__drx_RetransmissionTimerDL_sl40 = 9, + DRX_Config__drx_RetransmissionTimerDL_sl64 = 10, + DRX_Config__drx_RetransmissionTimerDL_sl80 = 11, + DRX_Config__drx_RetransmissionTimerDL_sl96 = 12, + DRX_Config__drx_RetransmissionTimerDL_sl112 = 13, + DRX_Config__drx_RetransmissionTimerDL_sl128 = 14, + DRX_Config__drx_RetransmissionTimerDL_sl160 = 15, + DRX_Config__drx_RetransmissionTimerDL_sl320 = 16, + DRX_Config__drx_RetransmissionTimerDL_spare15 = 17, + DRX_Config__drx_RetransmissionTimerDL_spare14 = 18, + DRX_Config__drx_RetransmissionTimerDL_spare13 = 19, + DRX_Config__drx_RetransmissionTimerDL_spare12 = 20, + DRX_Config__drx_RetransmissionTimerDL_spare11 = 21, + DRX_Config__drx_RetransmissionTimerDL_spare10 = 22, + DRX_Config__drx_RetransmissionTimerDL_spare9 = 23, + DRX_Config__drx_RetransmissionTimerDL_spare8 = 24, + DRX_Config__drx_RetransmissionTimerDL_spare7 = 25, + DRX_Config__drx_RetransmissionTimerDL_spare6 = 26, + DRX_Config__drx_RetransmissionTimerDL_spare5 = 27, + DRX_Config__drx_RetransmissionTimerDL_spare4 = 28, + DRX_Config__drx_RetransmissionTimerDL_spare3 = 29, + DRX_Config__drx_RetransmissionTimerDL_spare2 = 30, + DRX_Config__drx_RetransmissionTimerDL_spare1 = 31 +} e_DRX_Config__drx_RetransmissionTimerDL; +typedef enum DRX_Config__drx_RetransmissionTimerUL { + DRX_Config__drx_RetransmissionTimerUL_sl0 = 0, + DRX_Config__drx_RetransmissionTimerUL_sl1 = 1, + DRX_Config__drx_RetransmissionTimerUL_sl2 = 2, + DRX_Config__drx_RetransmissionTimerUL_sl4 = 3, + DRX_Config__drx_RetransmissionTimerUL_sl6 = 4, + DRX_Config__drx_RetransmissionTimerUL_sl8 = 5, + DRX_Config__drx_RetransmissionTimerUL_sl16 = 6, + DRX_Config__drx_RetransmissionTimerUL_sl24 = 7, + DRX_Config__drx_RetransmissionTimerUL_sl33 = 8, + DRX_Config__drx_RetransmissionTimerUL_sl40 = 9, + DRX_Config__drx_RetransmissionTimerUL_sl64 = 10, + DRX_Config__drx_RetransmissionTimerUL_sl80 = 11, + DRX_Config__drx_RetransmissionTimerUL_sl96 = 12, + DRX_Config__drx_RetransmissionTimerUL_sl112 = 13, + DRX_Config__drx_RetransmissionTimerUL_sl128 = 14, + DRX_Config__drx_RetransmissionTimerUL_sl160 = 15, + DRX_Config__drx_RetransmissionTimerUL_sl320 = 16, + DRX_Config__drx_RetransmissionTimerUL_spare15 = 17, + DRX_Config__drx_RetransmissionTimerUL_spare14 = 18, + DRX_Config__drx_RetransmissionTimerUL_spare13 = 19, + DRX_Config__drx_RetransmissionTimerUL_spare12 = 20, + DRX_Config__drx_RetransmissionTimerUL_spare11 = 21, + DRX_Config__drx_RetransmissionTimerUL_spare10 = 22, + DRX_Config__drx_RetransmissionTimerUL_spare9 = 23, + DRX_Config__drx_RetransmissionTimerUL_spare8 = 24, + DRX_Config__drx_RetransmissionTimerUL_spare7 = 25, + DRX_Config__drx_RetransmissionTimerUL_spare6 = 26, + DRX_Config__drx_RetransmissionTimerUL_spare5 = 27, + DRX_Config__drx_RetransmissionTimerUL_spare4 = 28, + DRX_Config__drx_RetransmissionTimerUL_spare3 = 29, + DRX_Config__drx_RetransmissionTimerUL_spare2 = 30, + DRX_Config__drx_RetransmissionTimerUL_spare1 = 31 +} e_DRX_Config__drx_RetransmissionTimerUL; +typedef enum DRX_Config__drx_LongCycleStartOffset_PR { + DRX_Config__drx_LongCycleStartOffset_PR_NOTHING, /* No components present */ + DRX_Config__drx_LongCycleStartOffset_PR_ms10, + DRX_Config__drx_LongCycleStartOffset_PR_ms20, + DRX_Config__drx_LongCycleStartOffset_PR_ms32, + DRX_Config__drx_LongCycleStartOffset_PR_ms40, + DRX_Config__drx_LongCycleStartOffset_PR_ms60, + DRX_Config__drx_LongCycleStartOffset_PR_ms64, + DRX_Config__drx_LongCycleStartOffset_PR_ms70, + DRX_Config__drx_LongCycleStartOffset_PR_ms80, + DRX_Config__drx_LongCycleStartOffset_PR_ms128, + DRX_Config__drx_LongCycleStartOffset_PR_ms160, + DRX_Config__drx_LongCycleStartOffset_PR_ms256, + DRX_Config__drx_LongCycleStartOffset_PR_ms320, + DRX_Config__drx_LongCycleStartOffset_PR_ms512, + DRX_Config__drx_LongCycleStartOffset_PR_ms640, + DRX_Config__drx_LongCycleStartOffset_PR_ms1024, + DRX_Config__drx_LongCycleStartOffset_PR_ms1280, + DRX_Config__drx_LongCycleStartOffset_PR_ms2048, + DRX_Config__drx_LongCycleStartOffset_PR_ms2560, + DRX_Config__drx_LongCycleStartOffset_PR_ms5120, + DRX_Config__drx_LongCycleStartOffset_PR_ms10240 +} DRX_Config__drx_LongCycleStartOffset_PR; +typedef enum DRX_Config__shortDRX__drx_ShortCycle { + DRX_Config__shortDRX__drx_ShortCycle_ms2 = 0, + DRX_Config__shortDRX__drx_ShortCycle_ms3 = 1, + DRX_Config__shortDRX__drx_ShortCycle_ms4 = 2, + DRX_Config__shortDRX__drx_ShortCycle_ms5 = 3, + DRX_Config__shortDRX__drx_ShortCycle_ms6 = 4, + DRX_Config__shortDRX__drx_ShortCycle_ms7 = 5, + DRX_Config__shortDRX__drx_ShortCycle_ms8 = 6, + DRX_Config__shortDRX__drx_ShortCycle_ms10 = 7, + DRX_Config__shortDRX__drx_ShortCycle_ms14 = 8, + DRX_Config__shortDRX__drx_ShortCycle_ms16 = 9, + DRX_Config__shortDRX__drx_ShortCycle_ms20 = 10, + DRX_Config__shortDRX__drx_ShortCycle_ms30 = 11, + DRX_Config__shortDRX__drx_ShortCycle_ms32 = 12, + DRX_Config__shortDRX__drx_ShortCycle_ms35 = 13, + DRX_Config__shortDRX__drx_ShortCycle_ms40 = 14, + DRX_Config__shortDRX__drx_ShortCycle_ms64 = 15, + DRX_Config__shortDRX__drx_ShortCycle_ms80 = 16, + DRX_Config__shortDRX__drx_ShortCycle_ms128 = 17, + DRX_Config__shortDRX__drx_ShortCycle_ms160 = 18, + DRX_Config__shortDRX__drx_ShortCycle_ms256 = 19, + DRX_Config__shortDRX__drx_ShortCycle_ms320 = 20, + DRX_Config__shortDRX__drx_ShortCycle_ms512 = 21, + DRX_Config__shortDRX__drx_ShortCycle_ms640 = 22, + DRX_Config__shortDRX__drx_ShortCycle_spare9 = 23, + DRX_Config__shortDRX__drx_ShortCycle_spare8 = 24, + DRX_Config__shortDRX__drx_ShortCycle_spare7 = 25, + DRX_Config__shortDRX__drx_ShortCycle_spare6 = 26, + DRX_Config__shortDRX__drx_ShortCycle_spare5 = 27, + DRX_Config__shortDRX__drx_ShortCycle_spare4 = 28, + DRX_Config__shortDRX__drx_ShortCycle_spare3 = 29, + DRX_Config__shortDRX__drx_ShortCycle_spare2 = 30, + DRX_Config__shortDRX__drx_ShortCycle_spare1 = 31 +} e_DRX_Config__shortDRX__drx_ShortCycle; + +/* DRX-Config */ +typedef struct DRX_Config { + struct DRX_Config__drx_onDurationTimer { + DRX_Config__drx_onDurationTimer_PR present; + union DRX_Config__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 DRX_Config__drx_LongCycleStartOffset { + DRX_Config__drx_LongCycleStartOffset_PR present; + union DRX_Config__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 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; +} DRX_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_milliSeconds_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drx_InactivityTimer_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drx_RetransmissionTimerDL_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drx_RetransmissionTimerUL_105; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drx_ShortCycle_160; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DRX_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_DRX_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_DRX_Config_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRX_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/DRX-Info.c b/src/codec_utils/RRC/DRX-Info.c new file mode 100644 index 000000000..f1e1befdd --- /dev/null +++ b/src/codec_utils/RRC/DRX-Info.c @@ -0,0 +1,1154 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DRX-Info.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_ms10_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms20_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms32_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms40_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms60_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..59) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms64_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms70_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..69) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms80_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms128_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms160_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms256_constr_13 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms320_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms512_constr_15 CC_NOTUSED = { + { 2, 1 } /* (0..511) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms640_constr_16 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms1024_constr_17 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms1280_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..1279) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms2048_constr_19 CC_NOTUSED = { + { 2, 1 } /* (0..2047) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms2560_constr_20 CC_NOTUSED = { + { 2, 1 } /* (0..2559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms5120_constr_21 CC_NOTUSED = { + { 2, 1 } /* (0..5119) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ms10240_constr_22 CC_NOTUSED = { + { 2, 1 } /* (0..10239) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_drx_LongCycleStartOffset_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drx_ShortCycle_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_drx_ShortCycleTimer_constr_57 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_drx_LongCycleStartOffset_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms10), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms10_constr_3, &asn_PER_memb_ms10_constr_3, memb_ms10_constraint_2 }, + 0, 0, /* No default value */ + "ms10" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms20), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms20_constr_4, &asn_PER_memb_ms20_constr_4, memb_ms20_constraint_2 }, + 0, 0, /* No default value */ + "ms20" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms32), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms32_constr_5, &asn_PER_memb_ms32_constr_5, memb_ms32_constraint_2 }, + 0, 0, /* No default value */ + "ms32" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms40_constr_6, &asn_PER_memb_ms40_constr_6, memb_ms40_constraint_2 }, + 0, 0, /* No default value */ + "ms40" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms60), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms60_constr_7, &asn_PER_memb_ms60_constr_7, memb_ms60_constraint_2 }, + 0, 0, /* No default value */ + "ms60" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms64), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms64_constr_8, &asn_PER_memb_ms64_constr_8, memb_ms64_constraint_2 }, + 0, 0, /* No default value */ + "ms64" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms70), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms70_constr_9, &asn_PER_memb_ms70_constr_9, memb_ms70_constraint_2 }, + 0, 0, /* No default value */ + "ms70" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms80), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms80_constr_10, &asn_PER_memb_ms80_constr_10, memb_ms80_constraint_2 }, + 0, 0, /* No default value */ + "ms80" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms128), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms128_constr_11, &asn_PER_memb_ms128_constr_11, memb_ms128_constraint_2 }, + 0, 0, /* No default value */ + "ms128" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms160), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms160_constr_12, &asn_PER_memb_ms160_constr_12, memb_ms160_constraint_2 }, + 0, 0, /* No default value */ + "ms160" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms256), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms256_constr_13, &asn_PER_memb_ms256_constr_13, memb_ms256_constraint_2 }, + 0, 0, /* No default value */ + "ms256" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms320_constr_14, &asn_PER_memb_ms320_constr_14, memb_ms320_constraint_2 }, + 0, 0, /* No default value */ + "ms320" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms512), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms512_constr_15, &asn_PER_memb_ms512_constr_15, memb_ms512_constraint_2 }, + 0, 0, /* No default value */ + "ms512" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms640), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms640_constr_16, &asn_PER_memb_ms640_constr_16, memb_ms640_constraint_2 }, + 0, 0, /* No default value */ + "ms640" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms1024), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms1024_constr_17, &asn_PER_memb_ms1024_constr_17, memb_ms1024_constraint_2 }, + 0, 0, /* No default value */ + "ms1024" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms1280_constr_18, &asn_PER_memb_ms1280_constr_18, memb_ms1280_constraint_2 }, + 0, 0, /* No default value */ + "ms1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms2048), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms2048_constr_19, &asn_PER_memb_ms2048_constr_19, memb_ms2048_constraint_2 }, + 0, 0, /* No default value */ + "ms2048" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms2560), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms2560_constr_20, &asn_PER_memb_ms2560_constr_20, memb_ms2560_constraint_2 }, + 0, 0, /* No default value */ + "ms2560" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms5120), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms5120_constr_21, &asn_PER_memb_ms5120_constr_21, memb_ms5120_constraint_2 }, + 0, 0, /* No default value */ + "ms5120" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__drx_LongCycleStartOffset, choice.ms10240), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ms10240_constr_22, &asn_PER_memb_ms10240_constr_22, memb_ms10240_constraint_2 }, + 0, 0, /* No default value */ + "ms10240" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_drx_LongCycleStartOffset_specs_2 = { + sizeof(struct DRX_Info__drx_LongCycleStartOffset), + offsetof(struct DRX_Info__drx_LongCycleStartOffset, _asn_ctx), + offsetof(struct DRX_Info__drx_LongCycleStartOffset, present), + sizeof(((struct DRX_Info__drx_LongCycleStartOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_drx_LongCycleStartOffset_constr_2, &asn_PER_type_drx_LongCycleStartOffset_constr_2, CHOICE_constraint }, + asn_MBR_drx_LongCycleStartOffset_2, + 20, /* Elements count */ + &asn_SPC_drx_LongCycleStartOffset_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_drx_ShortCycle_specs_24 = { + asn_MAP_drx_ShortCycle_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drx_ShortCycle_24 = { + "drx-ShortCycle", + "drx-ShortCycle", + &asn_OP_NativeEnumerated, + asn_DEF_drx_ShortCycle_tags_24, + sizeof(asn_DEF_drx_ShortCycle_tags_24) + /sizeof(asn_DEF_drx_ShortCycle_tags_24[0]) - 1, /* 1 */ + asn_DEF_drx_ShortCycle_tags_24, /* Same as above */ + sizeof(asn_DEF_drx_ShortCycle_tags_24) + /sizeof(asn_DEF_drx_ShortCycle_tags_24[0]), /* 2 */ + { &asn_OER_type_drx_ShortCycle_constr_24, &asn_PER_type_drx_ShortCycle_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drx_ShortCycle_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_shortDRX_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__shortDRX, drx_ShortCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drx_ShortCycle_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-ShortCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info__shortDRX, drx_ShortCycleTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_drx_ShortCycleTimer_constr_57, &asn_PER_memb_drx_ShortCycleTimer_constr_57, memb_drx_ShortCycleTimer_constraint_23 }, + 0, 0, /* No default value */ + "drx-ShortCycleTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_shortDRX_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_shortDRX_specs_23 = { + sizeof(struct DRX_Info__shortDRX), + offsetof(struct DRX_Info__shortDRX, _asn_ctx), + asn_MAP_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_shortDRX_23 = { + "shortDRX", + "shortDRX", + &asn_OP_SEQUENCE, + asn_DEF_shortDRX_tags_23, + sizeof(asn_DEF_shortDRX_tags_23) + /sizeof(asn_DEF_shortDRX_tags_23[0]) - 1, /* 1 */ + asn_DEF_shortDRX_tags_23, /* Same as above */ + sizeof(asn_DEF_shortDRX_tags_23) + /sizeof(asn_DEF_shortDRX_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_shortDRX_23, + 2, /* Elements count */ + &asn_SPC_shortDRX_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DRX_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DRX_Info, drx_LongCycleStartOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_drx_LongCycleStartOffset_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-LongCycleStartOffset" + }, + { ATF_POINTER, 1, offsetof(struct DRX_Info, shortDRX), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_shortDRX_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX" + }, +}; +static const int asn_MAP_DRX_Info_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_DRX_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DRX_Info_specs_1 = { + sizeof(struct DRX_Info), + offsetof(struct DRX_Info, _asn_ctx), + asn_MAP_DRX_Info_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DRX_Info_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DRX_Info = { + "DRX-Info", + "DRX-Info", + &asn_OP_SEQUENCE, + asn_DEF_DRX_Info_tags_1, + sizeof(asn_DEF_DRX_Info_tags_1) + /sizeof(asn_DEF_DRX_Info_tags_1[0]), /* 1 */ + asn_DEF_DRX_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_DRX_Info_tags_1) + /sizeof(asn_DEF_DRX_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DRX_Info_1, + 2, /* Elements count */ + &asn_SPC_DRX_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DRX-Info.h b/src/codec_utils/RRC/DRX-Info.h new file mode 100644 index 000000000..5de06ca4f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DRX_Info_H_ +#define _DRX_Info_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DRX_Info__drx_LongCycleStartOffset_PR { + DRX_Info__drx_LongCycleStartOffset_PR_NOTHING, /* No components present */ + DRX_Info__drx_LongCycleStartOffset_PR_ms10, + DRX_Info__drx_LongCycleStartOffset_PR_ms20, + DRX_Info__drx_LongCycleStartOffset_PR_ms32, + DRX_Info__drx_LongCycleStartOffset_PR_ms40, + DRX_Info__drx_LongCycleStartOffset_PR_ms60, + DRX_Info__drx_LongCycleStartOffset_PR_ms64, + DRX_Info__drx_LongCycleStartOffset_PR_ms70, + DRX_Info__drx_LongCycleStartOffset_PR_ms80, + DRX_Info__drx_LongCycleStartOffset_PR_ms128, + DRX_Info__drx_LongCycleStartOffset_PR_ms160, + DRX_Info__drx_LongCycleStartOffset_PR_ms256, + DRX_Info__drx_LongCycleStartOffset_PR_ms320, + DRX_Info__drx_LongCycleStartOffset_PR_ms512, + DRX_Info__drx_LongCycleStartOffset_PR_ms640, + DRX_Info__drx_LongCycleStartOffset_PR_ms1024, + DRX_Info__drx_LongCycleStartOffset_PR_ms1280, + DRX_Info__drx_LongCycleStartOffset_PR_ms2048, + DRX_Info__drx_LongCycleStartOffset_PR_ms2560, + DRX_Info__drx_LongCycleStartOffset_PR_ms5120, + DRX_Info__drx_LongCycleStartOffset_PR_ms10240 +} DRX_Info__drx_LongCycleStartOffset_PR; +typedef enum DRX_Info__shortDRX__drx_ShortCycle { + DRX_Info__shortDRX__drx_ShortCycle_ms2 = 0, + DRX_Info__shortDRX__drx_ShortCycle_ms3 = 1, + DRX_Info__shortDRX__drx_ShortCycle_ms4 = 2, + DRX_Info__shortDRX__drx_ShortCycle_ms5 = 3, + DRX_Info__shortDRX__drx_ShortCycle_ms6 = 4, + DRX_Info__shortDRX__drx_ShortCycle_ms7 = 5, + DRX_Info__shortDRX__drx_ShortCycle_ms8 = 6, + DRX_Info__shortDRX__drx_ShortCycle_ms10 = 7, + DRX_Info__shortDRX__drx_ShortCycle_ms14 = 8, + DRX_Info__shortDRX__drx_ShortCycle_ms16 = 9, + DRX_Info__shortDRX__drx_ShortCycle_ms20 = 10, + DRX_Info__shortDRX__drx_ShortCycle_ms30 = 11, + DRX_Info__shortDRX__drx_ShortCycle_ms32 = 12, + DRX_Info__shortDRX__drx_ShortCycle_ms35 = 13, + DRX_Info__shortDRX__drx_ShortCycle_ms40 = 14, + DRX_Info__shortDRX__drx_ShortCycle_ms64 = 15, + DRX_Info__shortDRX__drx_ShortCycle_ms80 = 16, + DRX_Info__shortDRX__drx_ShortCycle_ms128 = 17, + DRX_Info__shortDRX__drx_ShortCycle_ms160 = 18, + DRX_Info__shortDRX__drx_ShortCycle_ms256 = 19, + DRX_Info__shortDRX__drx_ShortCycle_ms320 = 20, + DRX_Info__shortDRX__drx_ShortCycle_ms512 = 21, + DRX_Info__shortDRX__drx_ShortCycle_ms640 = 22, + DRX_Info__shortDRX__drx_ShortCycle_spare9 = 23, + DRX_Info__shortDRX__drx_ShortCycle_spare8 = 24, + DRX_Info__shortDRX__drx_ShortCycle_spare7 = 25, + DRX_Info__shortDRX__drx_ShortCycle_spare6 = 26, + DRX_Info__shortDRX__drx_ShortCycle_spare5 = 27, + DRX_Info__shortDRX__drx_ShortCycle_spare4 = 28, + DRX_Info__shortDRX__drx_ShortCycle_spare3 = 29, + DRX_Info__shortDRX__drx_ShortCycle_spare2 = 30, + DRX_Info__shortDRX__drx_ShortCycle_spare1 = 31 +} e_DRX_Info__shortDRX__drx_ShortCycle; + +/* DRX-Info */ +typedef struct DRX_Info { + struct DRX_Info__drx_LongCycleStartOffset { + DRX_Info__drx_LongCycleStartOffset_PR present; + union DRX_Info__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 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; +} DRX_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_drx_ShortCycle_24; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DRX_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_DRX_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_DRX_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DRX_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/DataInactivityTimer.c b/src/codec_utils/RRC/DataInactivityTimer.c new file mode 100644 index 000000000..e2255f9a4 --- /dev/null +++ b/src/codec_utils/RRC/DataInactivityTimer.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DataInactivityTimer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_DataInactivityTimer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_DataInactivityTimer_specs_1 = { + asn_MAP_DataInactivityTimer_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_DataInactivityTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DataInactivityTimer = { + "DataInactivityTimer", + "DataInactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_DataInactivityTimer_tags_1, + sizeof(asn_DEF_DataInactivityTimer_tags_1) + /sizeof(asn_DEF_DataInactivityTimer_tags_1[0]), /* 1 */ + asn_DEF_DataInactivityTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_DataInactivityTimer_tags_1) + /sizeof(asn_DEF_DataInactivityTimer_tags_1[0]), /* 1 */ + { &asn_OER_type_DataInactivityTimer_constr_1, &asn_PER_type_DataInactivityTimer_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_DataInactivityTimer_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DataInactivityTimer.h b/src/codec_utils/RRC/DataInactivityTimer.h new file mode 100644 index 000000000..d1db584fc --- /dev/null +++ b/src/codec_utils/RRC/DataInactivityTimer.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DataInactivityTimer_H_ +#define _DataInactivityTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DataInactivityTimer { + DataInactivityTimer_s1 = 0, + DataInactivityTimer_s2 = 1, + DataInactivityTimer_s3 = 2, + DataInactivityTimer_s5 = 3, + DataInactivityTimer_s7 = 4, + DataInactivityTimer_s10 = 5, + DataInactivityTimer_s15 = 6, + DataInactivityTimer_s20 = 7, + DataInactivityTimer_s40 = 8, + DataInactivityTimer_s50 = 9, + DataInactivityTimer_s60 = 10, + DataInactivityTimer_s80 = 11, + DataInactivityTimer_s100 = 12, + DataInactivityTimer_s120 = 13, + DataInactivityTimer_s150 = 14, + DataInactivityTimer_s180 = 15 +} e_DataInactivityTimer; + +/* DataInactivityTimer */ +typedef long DataInactivityTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_DataInactivityTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_DataInactivityTimer; +extern const asn_INTEGER_specifics_t asn_SPC_DataInactivityTimer_specs_1; +asn_struct_free_f DataInactivityTimer_free; +asn_struct_print_f DataInactivityTimer_print; +asn_constr_check_f DataInactivityTimer_constraint; +ber_type_decoder_f DataInactivityTimer_decode_ber; +der_type_encoder_f DataInactivityTimer_encode_der; +xer_type_decoder_f DataInactivityTimer_decode_xer; +xer_type_encoder_f DataInactivityTimer_encode_xer; +oer_type_decoder_f DataInactivityTimer_decode_oer; +oer_type_encoder_f DataInactivityTimer_encode_oer; +per_type_decoder_f DataInactivityTimer_decode_uper; +per_type_encoder_f DataInactivityTimer_encode_uper; +per_type_decoder_f DataInactivityTimer_decode_aper; +per_type_encoder_f DataInactivityTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DataInactivityTimer_H_ */ +#include diff --git a/src/codec_utils/RRC/DedicatedNAS-Message.c b/src/codec_utils/RRC/DedicatedNAS-Message.c new file mode 100644 index 000000000..2ffd3d646 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_DedicatedNAS_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_DedicatedNAS_Message = { + "DedicatedNAS-Message", + "DedicatedNAS-Message", + &asn_OP_OCTET_STRING, + asn_DEF_DedicatedNAS_Message_tags_1, + sizeof(asn_DEF_DedicatedNAS_Message_tags_1) + /sizeof(asn_DEF_DedicatedNAS_Message_tags_1[0]), /* 1 */ + asn_DEF_DedicatedNAS_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_DedicatedNAS_Message_tags_1) + /sizeof(asn_DEF_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/codec_utils/RRC/DedicatedNAS-Message.h b/src/codec_utils/RRC/DedicatedNAS-Message.h new file mode 100644 index 000000000..3a1797bb7 --- /dev/null +++ b/src/codec_utils/RRC/DedicatedNAS-Message.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DedicatedNAS_Message_H_ +#define _DedicatedNAS_Message_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DedicatedNAS-Message */ +typedef OCTET_STRING_t DedicatedNAS_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DedicatedNAS_Message; +asn_struct_free_f DedicatedNAS_Message_free; +asn_struct_print_f DedicatedNAS_Message_print; +asn_constr_check_f DedicatedNAS_Message_constraint; +ber_type_decoder_f DedicatedNAS_Message_decode_ber; +der_type_encoder_f DedicatedNAS_Message_encode_der; +xer_type_decoder_f DedicatedNAS_Message_decode_xer; +xer_type_encoder_f DedicatedNAS_Message_encode_xer; +oer_type_decoder_f DedicatedNAS_Message_decode_oer; +oer_type_encoder_f DedicatedNAS_Message_encode_oer; +per_type_decoder_f DedicatedNAS_Message_decode_uper; +per_type_encoder_f DedicatedNAS_Message_encode_uper; +per_type_decoder_f DedicatedNAS_Message_decode_aper; +per_type_encoder_f DedicatedNAS_Message_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _DedicatedNAS_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/DelayBudgetReport.c b/src/codec_utils/RRC/DelayBudgetReport.c new file mode 100644 index 000000000..c66474e98 --- /dev/null +++ b/src/codec_utils/RRC/DelayBudgetReport.c @@ -0,0 +1,134 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DelayBudgetReport.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_type1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_DelayBudgetReport_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_type1_specs_2 = { + asn_MAP_type1_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type1_2 = { + "type1", + "type1", + &asn_OP_NativeEnumerated, + asn_DEF_type1_tags_2, + sizeof(asn_DEF_type1_tags_2) + /sizeof(asn_DEF_type1_tags_2[0]) - 1, /* 1 */ + asn_DEF_type1_tags_2, /* Same as above */ + sizeof(asn_DEF_type1_tags_2) + /sizeof(asn_DEF_type1_tags_2[0]), /* 2 */ + { &asn_OER_type_type1_constr_2, &asn_PER_type_type1_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type1_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DelayBudgetReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DelayBudgetReport, choice.type1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_DelayBudgetReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* type1 */ +}; +asn_CHOICE_specifics_t asn_SPC_DelayBudgetReport_specs_1 = { + sizeof(struct DelayBudgetReport), + offsetof(struct DelayBudgetReport, _asn_ctx), + offsetof(struct DelayBudgetReport, present), + sizeof(((struct DelayBudgetReport *)0)->present), + asn_MAP_DelayBudgetReport_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_DelayBudgetReport = { + "DelayBudgetReport", + "DelayBudgetReport", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_DelayBudgetReport_constr_1, &asn_PER_type_DelayBudgetReport_constr_1, CHOICE_constraint }, + asn_MBR_DelayBudgetReport_1, + 1, /* Elements count */ + &asn_SPC_DelayBudgetReport_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DelayBudgetReport.h b/src/codec_utils/RRC/DelayBudgetReport.h new file mode 100644 index 000000000..7b154b565 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DelayBudgetReport_H_ +#define _DelayBudgetReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DelayBudgetReport_PR { + DelayBudgetReport_PR_NOTHING, /* No components present */ + DelayBudgetReport_PR_type1 + /* Extensions may appear below */ + +} DelayBudgetReport_PR; +typedef enum DelayBudgetReport__type1 { + DelayBudgetReport__type1_msMinus1280 = 0, + DelayBudgetReport__type1_msMinus640 = 1, + DelayBudgetReport__type1_msMinus320 = 2, + DelayBudgetReport__type1_msMinus160 = 3, + DelayBudgetReport__type1_msMinus80 = 4, + DelayBudgetReport__type1_msMinus60 = 5, + DelayBudgetReport__type1_msMinus40 = 6, + DelayBudgetReport__type1_msMinus20 = 7, + DelayBudgetReport__type1_ms0 = 8, + DelayBudgetReport__type1_ms20 = 9, + DelayBudgetReport__type1_ms40 = 10, + DelayBudgetReport__type1_ms60 = 11, + DelayBudgetReport__type1_ms80 = 12, + DelayBudgetReport__type1_ms160 = 13, + DelayBudgetReport__type1_ms320 = 14, + DelayBudgetReport__type1_ms640 = 15, + DelayBudgetReport__type1_ms1280 = 16 +} e_DelayBudgetReport__type1; + +/* DelayBudgetReport */ +typedef struct DelayBudgetReport { + DelayBudgetReport_PR present; + union 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; +} DelayBudgetReport_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_type1_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DelayBudgetReport; +extern asn_CHOICE_specifics_t asn_SPC_DelayBudgetReport_specs_1; +extern asn_TYPE_member_t asn_MBR_DelayBudgetReport_1[1]; +extern asn_per_constraints_t asn_PER_type_DelayBudgetReport_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _DelayBudgetReport_H_ */ +#include diff --git a/src/codec_utils/RRC/DownlinkConfigCommon.c b/src/codec_utils/RRC/DownlinkConfigCommon.c new file mode 100644 index 000000000..bdd64ab58 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DownlinkConfigCommon.h" + +#include "FrequencyInfoDL.h" +#include "BWP-DownlinkCommon.h" +asn_TYPE_member_t asn_MBR_DownlinkConfigCommon_1[] = { + { ATF_POINTER, 2, offsetof(struct DownlinkConfigCommon, frequencyInfoDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrequencyInfoDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoDL" + }, + { ATF_POINTER, 1, offsetof(struct DownlinkConfigCommon, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, +}; +static const int asn_MAP_DownlinkConfigCommon_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_DownlinkConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DownlinkConfigCommon_specs_1 = { + sizeof(struct DownlinkConfigCommon), + offsetof(struct DownlinkConfigCommon, _asn_ctx), + asn_MAP_DownlinkConfigCommon_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_DownlinkConfigCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_DownlinkConfigCommon = { + "DownlinkConfigCommon", + "DownlinkConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_DownlinkConfigCommon_tags_1, + sizeof(asn_DEF_DownlinkConfigCommon_tags_1) + /sizeof(asn_DEF_DownlinkConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_DownlinkConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_DownlinkConfigCommon_tags_1) + /sizeof(asn_DEF_DownlinkConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DownlinkConfigCommon_1, + 2, /* Elements count */ + &asn_SPC_DownlinkConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DownlinkConfigCommon.h b/src/codec_utils/RRC/DownlinkConfigCommon.h new file mode 100644 index 000000000..bef4bf2bc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DownlinkConfigCommon_H_ +#define _DownlinkConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FrequencyInfoDL; +struct BWP_DownlinkCommon; + +/* DownlinkConfigCommon */ +typedef struct DownlinkConfigCommon { + struct FrequencyInfoDL *frequencyInfoDL; /* OPTIONAL */ + struct BWP_DownlinkCommon *initialDownlinkBWP; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} DownlinkConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DownlinkConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_DownlinkConfigCommon_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DownlinkConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/DownlinkConfigCommonSIB.c b/src/codec_utils/RRC/DownlinkConfigCommonSIB.c new file mode 100644 index 000000000..9aa8561ea --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DownlinkConfigCommonSIB.h" + +asn_TYPE_member_t asn_MBR_DownlinkConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, frequencyInfoDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrequencyInfoDL_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_DownlinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, bcch_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bcch-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, pcch_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pcch-Config" + }, +}; +static const ber_tlv_tag_t asn_DEF_DownlinkConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DownlinkConfigCommonSIB_specs_1 = { + sizeof(struct DownlinkConfigCommonSIB), + offsetof(struct DownlinkConfigCommonSIB, _asn_ctx), + asn_MAP_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_DownlinkConfigCommonSIB = { + "DownlinkConfigCommonSIB", + "DownlinkConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_DownlinkConfigCommonSIB_tags_1, + sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_DownlinkConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DownlinkConfigCommonSIB_1, + 4, /* Elements count */ + &asn_SPC_DownlinkConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DownlinkConfigCommonSIB.h b/src/codec_utils/RRC/DownlinkConfigCommonSIB.h new file mode 100644 index 000000000..f8607fee3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DownlinkConfigCommonSIB_H_ +#define _DownlinkConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "FrequencyInfoDL-SIB.h" +#include "BWP-DownlinkCommon.h" +#include "BCCH-Config.h" +#include "PCCH-Config.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* DownlinkConfigCommonSIB */ +typedef struct DownlinkConfigCommonSIB { + FrequencyInfoDL_SIB_t frequencyInfoDL; + BWP_DownlinkCommon_t initialDownlinkBWP; + BCCH_Config_t bcch_Config; + 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; +} DownlinkConfigCommonSIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_DownlinkConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_DownlinkConfigCommonSIB_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DownlinkConfigCommonSIB_H_ */ +#include diff --git a/src/codec_utils/RRC/DownlinkPreemption.c b/src/codec_utils/RRC/DownlinkPreemption.c new file mode 100644 index 000000000..41742157c --- /dev/null +++ b/src/codec_utils/RRC/DownlinkPreemption.c @@ -0,0 +1,242 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "DownlinkPreemption.h" + +#include "INT-ConfigurationPerServingCell.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_timeFrequencySet_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_int_ConfigurationPerServingCell_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_dci_PayloadSize_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..126) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_int_ConfigurationPerServingCell_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_timeFrequencySet_value2enum_3[] = { + { 0, 4, "set0" }, + { 1, 4, "set1" } +}; +static const unsigned int asn_MAP_timeFrequencySet_enum2value_3[] = { + 0, /* set0(0) */ + 1 /* set1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_timeFrequencySet_specs_3 = { + asn_MAP_timeFrequencySet_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_timeFrequencySet_3 = { + "timeFrequencySet", + "timeFrequencySet", + &asn_OP_NativeEnumerated, + asn_DEF_timeFrequencySet_tags_3, + sizeof(asn_DEF_timeFrequencySet_tags_3) + /sizeof(asn_DEF_timeFrequencySet_tags_3[0]) - 1, /* 1 */ + asn_DEF_timeFrequencySet_tags_3, /* Same as above */ + sizeof(asn_DEF_timeFrequencySet_tags_3) + /sizeof(asn_DEF_timeFrequencySet_tags_3[0]), /* 2 */ + { &asn_OER_type_timeFrequencySet_constr_3, &asn_PER_type_timeFrequencySet_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_timeFrequencySet_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_int_ConfigurationPerServingCell_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_INT_ConfigurationPerServingCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_int_ConfigurationPerServingCell_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_int_ConfigurationPerServingCell_specs_7 = { + sizeof(struct DownlinkPreemption__int_ConfigurationPerServingCell), + offsetof(struct DownlinkPreemption__int_ConfigurationPerServingCell, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_int_ConfigurationPerServingCell_7 = { + "int-ConfigurationPerServingCell", + "int-ConfigurationPerServingCell", + &asn_OP_SEQUENCE_OF, + asn_DEF_int_ConfigurationPerServingCell_tags_7, + sizeof(asn_DEF_int_ConfigurationPerServingCell_tags_7) + /sizeof(asn_DEF_int_ConfigurationPerServingCell_tags_7[0]) - 1, /* 1 */ + asn_DEF_int_ConfigurationPerServingCell_tags_7, /* Same as above */ + sizeof(asn_DEF_int_ConfigurationPerServingCell_tags_7) + /sizeof(asn_DEF_int_ConfigurationPerServingCell_tags_7[0]), /* 2 */ + { &asn_OER_type_int_ConfigurationPerServingCell_constr_7, &asn_PER_type_int_ConfigurationPerServingCell_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_int_ConfigurationPerServingCell_7, + 1, /* Single element */ + &asn_SPC_int_ConfigurationPerServingCell_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_DownlinkPreemption_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct DownlinkPreemption, int_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "int-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkPreemption, timeFrequencySet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_timeFrequencySet_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeFrequencySet" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkPreemption, dci_PayloadSize), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dci_PayloadSize_constr_6, &asn_PER_memb_dci_PayloadSize_constr_6, memb_dci_PayloadSize_constraint_1 }, + 0, 0, /* No default value */ + "dci-PayloadSize" + }, + { ATF_NOFLAGS, 0, offsetof(struct DownlinkPreemption, int_ConfigurationPerServingCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_int_ConfigurationPerServingCell_7, + 0, + { &asn_OER_memb_int_ConfigurationPerServingCell_constr_7, &asn_PER_memb_int_ConfigurationPerServingCell_constr_7, memb_int_ConfigurationPerServingCell_constraint_1 }, + 0, 0, /* No default value */ + "int-ConfigurationPerServingCell" + }, +}; +static const ber_tlv_tag_t asn_DEF_DownlinkPreemption_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_DownlinkPreemption_specs_1 = { + sizeof(struct DownlinkPreemption), + offsetof(struct DownlinkPreemption, _asn_ctx), + asn_MAP_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_DownlinkPreemption = { + "DownlinkPreemption", + "DownlinkPreemption", + &asn_OP_SEQUENCE, + asn_DEF_DownlinkPreemption_tags_1, + sizeof(asn_DEF_DownlinkPreemption_tags_1) + /sizeof(asn_DEF_DownlinkPreemption_tags_1[0]), /* 1 */ + asn_DEF_DownlinkPreemption_tags_1, /* Same as above */ + sizeof(asn_DEF_DownlinkPreemption_tags_1) + /sizeof(asn_DEF_DownlinkPreemption_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_DownlinkPreemption_1, + 4, /* Elements count */ + &asn_SPC_DownlinkPreemption_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/DownlinkPreemption.h b/src/codec_utils/RRC/DownlinkPreemption.h new file mode 100644 index 000000000..9be728aa5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _DownlinkPreemption_H_ +#define _DownlinkPreemption_H_ + + +#include + +/* Including external dependencies */ +#include "RNTI-Value.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum DownlinkPreemption__timeFrequencySet { + DownlinkPreemption__timeFrequencySet_set0 = 0, + DownlinkPreemption__timeFrequencySet_set1 = 1 +} e_DownlinkPreemption__timeFrequencySet; + +/* Forward declarations */ +struct INT_ConfigurationPerServingCell; + +/* DownlinkPreemption */ +typedef struct DownlinkPreemption { + RNTI_Value_t int_RNTI; + long timeFrequencySet; + long dci_PayloadSize; + struct DownlinkPreemption__int_ConfigurationPerServingCell { + A_SEQUENCE_OF(struct 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; +} DownlinkPreemption_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_timeFrequencySet_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_DownlinkPreemption; +extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkPreemption_specs_1; +extern asn_TYPE_member_t asn_MBR_DownlinkPreemption_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _DownlinkPreemption_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.c b/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.c new file mode 100644 index 000000000..9e7896929 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-AllowedMeasBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_AllowedMeasBandwidth_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_EUTRA_AllowedMeasBandwidth_specs_1 = { + asn_MAP_EUTRA_AllowedMeasBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_EUTRA_AllowedMeasBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_AllowedMeasBandwidth = { + "EUTRA-AllowedMeasBandwidth", + "EUTRA-AllowedMeasBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1, + sizeof(asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1) + /sizeof(asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1) + /sizeof(asn_DEF_EUTRA_AllowedMeasBandwidth_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_AllowedMeasBandwidth_constr_1, &asn_PER_type_EUTRA_AllowedMeasBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_AllowedMeasBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.h b/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.h new file mode 100644 index 000000000..baf3c93be --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-AllowedMeasBandwidth.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_AllowedMeasBandwidth_H_ +#define _EUTRA_AllowedMeasBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_AllowedMeasBandwidth { + EUTRA_AllowedMeasBandwidth_mbw6 = 0, + EUTRA_AllowedMeasBandwidth_mbw15 = 1, + EUTRA_AllowedMeasBandwidth_mbw25 = 2, + EUTRA_AllowedMeasBandwidth_mbw50 = 3, + EUTRA_AllowedMeasBandwidth_mbw75 = 4, + EUTRA_AllowedMeasBandwidth_mbw100 = 5 +} e_EUTRA_AllowedMeasBandwidth; + +/* EUTRA-AllowedMeasBandwidth */ +typedef long EUTRA_AllowedMeasBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_AllowedMeasBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_AllowedMeasBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_AllowedMeasBandwidth_specs_1; +asn_struct_free_f EUTRA_AllowedMeasBandwidth_free; +asn_struct_print_f EUTRA_AllowedMeasBandwidth_print; +asn_constr_check_f EUTRA_AllowedMeasBandwidth_constraint; +ber_type_decoder_f EUTRA_AllowedMeasBandwidth_decode_ber; +der_type_encoder_f EUTRA_AllowedMeasBandwidth_encode_der; +xer_type_decoder_f EUTRA_AllowedMeasBandwidth_decode_xer; +xer_type_encoder_f EUTRA_AllowedMeasBandwidth_encode_xer; +oer_type_decoder_f EUTRA_AllowedMeasBandwidth_decode_oer; +oer_type_encoder_f EUTRA_AllowedMeasBandwidth_encode_oer; +per_type_decoder_f EUTRA_AllowedMeasBandwidth_decode_uper; +per_type_encoder_f EUTRA_AllowedMeasBandwidth_encode_uper; +per_type_decoder_f EUTRA_AllowedMeasBandwidth_decode_aper; +per_type_encoder_f EUTRA_AllowedMeasBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_AllowedMeasBandwidth_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-BlackCell.c b/src/codec_utils/RRC/EUTRA-BlackCell.c new file mode 100644 index 000000000..6a30275b3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-BlackCell.h" + +asn_TYPE_member_t asn_MBR_EUTRA_BlackCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_BlackCell, cellIndexEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndexEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_BlackCell, physCellIdRange), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellIdRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellIdRange" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_BlackCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_BlackCell_specs_1 = { + sizeof(struct EUTRA_BlackCell), + offsetof(struct EUTRA_BlackCell, _asn_ctx), + asn_MAP_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_EUTRA_BlackCell = { + "EUTRA-BlackCell", + "EUTRA-BlackCell", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_BlackCell_tags_1, + sizeof(asn_DEF_EUTRA_BlackCell_tags_1) + /sizeof(asn_DEF_EUTRA_BlackCell_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_BlackCell_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_BlackCell_tags_1) + /sizeof(asn_DEF_EUTRA_BlackCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_BlackCell_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_BlackCell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-BlackCell.h b/src/codec_utils/RRC/EUTRA-BlackCell.h new file mode 100644 index 000000000..a1db14552 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_BlackCell_H_ +#define _EUTRA_BlackCell_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-CellIndex.h" +#include "EUTRA-PhysCellIdRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-BlackCell */ +typedef struct EUTRA_BlackCell { + EUTRA_CellIndex_t cellIndexEUTRA; + EUTRA_PhysCellIdRange_t physCellIdRange; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_BlackCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_BlackCell; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_BlackCell_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_BlackCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_BlackCell_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-Cell.c b/src/codec_utils/RRC/EUTRA-Cell.c new file mode 100644 index 000000000..19c88820c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Cell.h" + +asn_TYPE_member_t asn_MBR_EUTRA_Cell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Cell, cellIndexEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndexEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Cell, physCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Cell, cellIndividualOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIndividualOffset" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_Cell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_Cell_specs_1 = { + sizeof(struct EUTRA_Cell), + offsetof(struct EUTRA_Cell, _asn_ctx), + asn_MAP_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_EUTRA_Cell = { + "EUTRA-Cell", + "EUTRA-Cell", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Cell_tags_1, + sizeof(asn_DEF_EUTRA_Cell_tags_1) + /sizeof(asn_DEF_EUTRA_Cell_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Cell_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Cell_tags_1) + /sizeof(asn_DEF_EUTRA_Cell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Cell_1, + 3, /* Elements count */ + &asn_SPC_EUTRA_Cell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-Cell.h b/src/codec_utils/RRC/EUTRA-Cell.h new file mode 100644 index 000000000..1156a3b0d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Cell_H_ +#define _EUTRA_Cell_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-CellIndex.h" +#include "EUTRA-PhysCellId.h" +#include "EUTRA-Q-OffsetRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-Cell */ +typedef struct EUTRA_Cell { + EUTRA_CellIndex_t cellIndexEUTRA; + EUTRA_PhysCellId_t physCellId; + EUTRA_Q_OffsetRange_t cellIndividualOffset; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_Cell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Cell; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Cell_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Cell_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Cell_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-CellIndex.c b/src/codec_utils/RRC/EUTRA-CellIndex.c new file mode 100644 index 000000000..0c83ab9c8 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-CellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-CellIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_CellIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +asn_per_constraints_t asn_PER_type_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_EUTRA_CellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_CellIndex = { + "EUTRA-CellIndex", + "EUTRA-CellIndex", + &asn_OP_NativeInteger, + asn_DEF_EUTRA_CellIndex_tags_1, + sizeof(asn_DEF_EUTRA_CellIndex_tags_1) + /sizeof(asn_DEF_EUTRA_CellIndex_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_CellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_CellIndex_tags_1) + /sizeof(asn_DEF_EUTRA_CellIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_CellIndex_constr_1, &asn_PER_type_EUTRA_CellIndex_constr_1, EUTRA_CellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-CellIndex.h b/src/codec_utils/RRC/EUTRA-CellIndex.h new file mode 100644 index 000000000..2adae98d4 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-CellIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_CellIndex_H_ +#define _EUTRA_CellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-CellIndex */ +typedef long EUTRA_CellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_CellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CellIndex; +asn_struct_free_f EUTRA_CellIndex_free; +asn_struct_print_f EUTRA_CellIndex_print; +asn_constr_check_f EUTRA_CellIndex_constraint; +ber_type_decoder_f EUTRA_CellIndex_decode_ber; +der_type_encoder_f EUTRA_CellIndex_encode_der; +xer_type_decoder_f EUTRA_CellIndex_decode_xer; +xer_type_encoder_f EUTRA_CellIndex_encode_xer; +oer_type_decoder_f EUTRA_CellIndex_decode_oer; +oer_type_encoder_f EUTRA_CellIndex_encode_oer; +per_type_decoder_f EUTRA_CellIndex_decode_uper; +per_type_encoder_f EUTRA_CellIndex_encode_uper; +per_type_decoder_f EUTRA_CellIndex_decode_aper; +per_type_encoder_f EUTRA_CellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_CellIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-CellIndexList.c b/src/codec_utils/RRC/EUTRA-CellIndexList.c new file mode 100644 index 000000000..5217c59ad --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-CellIndexList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-CellIndexList.h" + +static asn_oer_constraints_t asn_OER_type_EUTRA_CellIndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_CellIndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_EUTRA_CellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_CellIndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_CellIndexList_specs_1 = { + sizeof(struct EUTRA_CellIndexList), + offsetof(struct EUTRA_CellIndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_CellIndexList = { + "EUTRA-CellIndexList", + "EUTRA-CellIndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_CellIndexList_tags_1, + sizeof(asn_DEF_EUTRA_CellIndexList_tags_1) + /sizeof(asn_DEF_EUTRA_CellIndexList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_CellIndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_CellIndexList_tags_1) + /sizeof(asn_DEF_EUTRA_CellIndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_CellIndexList_constr_1, &asn_PER_type_EUTRA_CellIndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_CellIndexList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_CellIndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-CellIndexList.h b/src/codec_utils/RRC/EUTRA-CellIndexList.h new file mode 100644 index 000000000..13722d268 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_CellIndexList_H_ +#define _EUTRA_CellIndexList_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-CellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-CellIndexList */ +typedef struct EUTRA_CellIndexList { + A_SEQUENCE_OF(EUTRA_CellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_CellIndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_CellIndexList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_CellIndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_CellIndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_CellIndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_CellIndexList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-FreqBlackCellList.c b/src/codec_utils/RRC/EUTRA-FreqBlackCellList.c new file mode 100644 index 000000000..47d00abf4 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-FreqBlackCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-FreqBlackCellList.h" + +#include "EUTRA-PhysCellIdRange.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_FreqBlackCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_FreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_PhysCellIdRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_FreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_FreqBlackCellList_specs_1 = { + sizeof(struct EUTRA_FreqBlackCellList), + offsetof(struct EUTRA_FreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqBlackCellList = { + "EUTRA-FreqBlackCellList", + "EUTRA-FreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_FreqBlackCellList_tags_1, + sizeof(asn_DEF_EUTRA_FreqBlackCellList_tags_1) + /sizeof(asn_DEF_EUTRA_FreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_FreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_FreqBlackCellList_tags_1) + /sizeof(asn_DEF_EUTRA_FreqBlackCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_FreqBlackCellList_constr_1, &asn_PER_type_EUTRA_FreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_FreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_FreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-FreqBlackCellList.h b/src/codec_utils/RRC/EUTRA-FreqBlackCellList.h new file mode 100644 index 000000000..074d3ea8b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_FreqBlackCellList_H_ +#define _EUTRA_FreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_PhysCellIdRange; + +/* EUTRA-FreqBlackCellList */ +typedef struct EUTRA_FreqBlackCellList { + A_SEQUENCE_OF(struct EUTRA_PhysCellIdRange) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_FreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_FreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_FreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_FreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_FreqBlackCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.c b/src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.c new file mode 100644 index 000000000..1055b78a1 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-FreqNeighCellInfo.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMinOffsetCell_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_EUTRA_FreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_FreqNeighCellInfo, q_OffsetCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-OffsetCell" + }, + { ATF_POINTER, 2, offsetof(struct EUTRA_FreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffsetCell_constr_4, &asn_PER_memb_q_RxLevMinOffsetCell_constr_4, memb_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_FreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_QualMinOffsetCell_constr_5, &asn_PER_memb_q_QualMinOffsetCell_constr_5, memb_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_EUTRA_FreqNeighCellInfo_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_FreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_FreqNeighCellInfo_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-QualMinOffsetCell */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FreqNeighCellInfo_specs_1 = { + sizeof(struct EUTRA_FreqNeighCellInfo), + offsetof(struct EUTRA_FreqNeighCellInfo, _asn_ctx), + asn_MAP_EUTRA_FreqNeighCellInfo_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_EUTRA_FreqNeighCellInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqNeighCellInfo = { + "EUTRA-FreqNeighCellInfo", + "EUTRA-FreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_FreqNeighCellInfo_tags_1, + sizeof(asn_DEF_EUTRA_FreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_EUTRA_FreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_FreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_FreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_EUTRA_FreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_FreqNeighCellInfo_1, + 4, /* Elements count */ + &asn_SPC_EUTRA_FreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.h b/src/codec_utils/RRC/EUTRA-FreqNeighCellInfo.h new file mode 100644 index 000000000..29e3515ef --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_FreqNeighCellInfo_H_ +#define _EUTRA_FreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-PhysCellId.h" +#include "EUTRA-Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-FreqNeighCellInfo */ +typedef struct EUTRA_FreqNeighCellInfo { + EUTRA_PhysCellId_t physCellId; + EUTRA_Q_OffsetRange_t q_OffsetCell; + long *q_RxLevMinOffsetCell; /* OPTIONAL */ + long *q_QualMinOffsetCell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_FreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_FreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_FreqNeighCellInfo_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_FreqNeighCellInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-FreqNeighCellList.c b/src/codec_utils/RRC/EUTRA-FreqNeighCellList.c new file mode 100644 index 000000000..a9b66ad0f --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-FreqNeighCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-FreqNeighCellList.h" + +#include "EUTRA-FreqNeighCellInfo.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_FreqNeighCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_FreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_FreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_FreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_FreqNeighCellList_specs_1 = { + sizeof(struct EUTRA_FreqNeighCellList), + offsetof(struct EUTRA_FreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqNeighCellList = { + "EUTRA-FreqNeighCellList", + "EUTRA-FreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_FreqNeighCellList_tags_1, + sizeof(asn_DEF_EUTRA_FreqNeighCellList_tags_1) + /sizeof(asn_DEF_EUTRA_FreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_FreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_FreqNeighCellList_tags_1) + /sizeof(asn_DEF_EUTRA_FreqNeighCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_FreqNeighCellList_constr_1, &asn_PER_type_EUTRA_FreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_FreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_FreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-FreqNeighCellList.h b/src/codec_utils/RRC/EUTRA-FreqNeighCellList.h new file mode 100644 index 000000000..d685b4a83 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_FreqNeighCellList_H_ +#define _EUTRA_FreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_FreqNeighCellInfo; + +/* EUTRA-FreqNeighCellList */ +typedef struct EUTRA_FreqNeighCellList { + A_SEQUENCE_OF(struct EUTRA_FreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_FreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_FreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_FreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_FreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_FreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_FreqNeighCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.c b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.c new file mode 100644 index 000000000..df8b0797c --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.c @@ -0,0 +1,442 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-MBSFN-SubframeConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_oer_constraints_t asn_OER_type_radioframeAllocationPeriod_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_oneFrame_constr_11 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_fourFrames_constr_12 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_subframeAllocation1_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_oneFrame_constr_14 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_fourFrames_constr_15 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_subframeAllocation2_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_radioframeAllocationOffset_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_radioframeAllocationPeriod_specs_2 = { + asn_MAP_radioframeAllocationPeriod_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_radioframeAllocationPeriod_2 = { + "radioframeAllocationPeriod", + "radioframeAllocationPeriod", + &asn_OP_NativeEnumerated, + asn_DEF_radioframeAllocationPeriod_tags_2, + sizeof(asn_DEF_radioframeAllocationPeriod_tags_2) + /sizeof(asn_DEF_radioframeAllocationPeriod_tags_2[0]) - 1, /* 1 */ + asn_DEF_radioframeAllocationPeriod_tags_2, /* Same as above */ + sizeof(asn_DEF_radioframeAllocationPeriod_tags_2) + /sizeof(asn_DEF_radioframeAllocationPeriod_tags_2[0]), /* 2 */ + { &asn_OER_type_radioframeAllocationPeriod_constr_2, &asn_PER_type_radioframeAllocationPeriod_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_radioframeAllocationPeriod_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_subframeAllocation1_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1, choice.oneFrame), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_oneFrame_constr_11, &asn_PER_memb_oneFrame_constr_11, memb_oneFrame_constraint_10 }, + 0, 0, /* No default value */ + "oneFrame" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1, choice.fourFrames), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fourFrames_constr_12, &asn_PER_memb_fourFrames_constr_12, memb_fourFrames_constraint_10 }, + 0, 0, /* No default value */ + "fourFrames" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_subframeAllocation1_specs_10 = { + sizeof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1), + offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1, _asn_ctx), + offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1, present), + sizeof(((struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_subframeAllocation1_constr_10, &asn_PER_type_subframeAllocation1_constr_10, CHOICE_constraint }, + asn_MBR_subframeAllocation1_10, + 2, /* Elements count */ + &asn_SPC_subframeAllocation1_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_subframeAllocation2_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2, choice.oneFrame), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_oneFrame_constr_14, &asn_PER_memb_oneFrame_constr_14, memb_oneFrame_constraint_13 }, + 0, 0, /* No default value */ + "oneFrame" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2, choice.fourFrames), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_fourFrames_constr_15, &asn_PER_memb_fourFrames_constr_15, memb_fourFrames_constraint_13 }, + 0, 0, /* No default value */ + "fourFrames" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_subframeAllocation2_specs_13 = { + sizeof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2), + offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2, _asn_ctx), + offsetof(struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2, present), + sizeof(((struct EUTRA_MBSFN_SubframeConfig__subframeAllocation2 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_subframeAllocation2_constr_13, &asn_PER_type_subframeAllocation2_constr_13, CHOICE_constraint }, + asn_MBR_subframeAllocation2_13, + 2, /* Elements count */ + &asn_SPC_subframeAllocation2_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_MBSFN_SubframeConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig, radioframeAllocationPeriod), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_radioframeAllocationPeriod_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioframeAllocationPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig, radioframeAllocationOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_radioframeAllocationOffset_constr_9, &asn_PER_memb_radioframeAllocationOffset_constr_9, memb_radioframeAllocationOffset_constraint_1 }, + 0, 0, /* No default value */ + "radioframeAllocationOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MBSFN_SubframeConfig, subframeAllocation1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_subframeAllocation1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subframeAllocation1" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_MBSFN_SubframeConfig, subframeAllocation2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_subframeAllocation2_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subframeAllocation2" + }, +}; +static const int asn_MAP_EUTRA_MBSFN_SubframeConfig_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_MBSFN_SubframeConfig_specs_1 = { + sizeof(struct EUTRA_MBSFN_SubframeConfig), + offsetof(struct EUTRA_MBSFN_SubframeConfig, _asn_ctx), + asn_MAP_EUTRA_MBSFN_SubframeConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_EUTRA_MBSFN_SubframeConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_MBSFN_SubframeConfig = { + "EUTRA-MBSFN-SubframeConfig", + "EUTRA-MBSFN-SubframeConfig", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1, + sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1) + /sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1) + /sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_MBSFN_SubframeConfig_1, + 4, /* Elements count */ + &asn_SPC_EUTRA_MBSFN_SubframeConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.h b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfig.h new file mode 100644 index 000000000..6aa120ef2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_MBSFN_SubframeConfig_H_ +#define _EUTRA_MBSFN_SubframeConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod { + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n1 = 0, + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n2 = 1, + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n4 = 2, + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n8 = 3, + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n16 = 4, + EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod_n32 = 5 +} e_EUTRA_MBSFN_SubframeConfig__radioframeAllocationPeriod; +typedef enum EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR { + EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_NOTHING, /* No components present */ + EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_oneFrame, + EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_fourFrames +} EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR; +typedef enum EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR { + EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_NOTHING, /* No components present */ + EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_oneFrame, + EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR_fourFrames +} EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR; + +/* EUTRA-MBSFN-SubframeConfig */ +typedef struct EUTRA_MBSFN_SubframeConfig { + long radioframeAllocationPeriod; + long radioframeAllocationOffset; + struct EUTRA_MBSFN_SubframeConfig__subframeAllocation1 { + EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR present; + union EUTRA_MBSFN_SubframeConfig__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 EUTRA_MBSFN_SubframeConfig__subframeAllocation2 { + EUTRA_MBSFN_SubframeConfig__subframeAllocation2_PR present; + union EUTRA_MBSFN_SubframeConfig__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; +} EUTRA_MBSFN_SubframeConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_radioframeAllocationPeriod_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_MBSFN_SubframeConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_MBSFN_SubframeConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_MBSFN_SubframeConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_MBSFN_SubframeConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.c b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.c new file mode 100644 index 000000000..a67c0d32f --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-MBSFN-SubframeConfigList.h" + +#include "EUTRA-MBSFN-SubframeConfig.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_MBSFN_SubframeConfigList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_MBSFN_SubframeConfigList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_MBSFN_SubframeConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_MBSFN_SubframeConfigList_specs_1 = { + sizeof(struct EUTRA_MBSFN_SubframeConfigList), + offsetof(struct EUTRA_MBSFN_SubframeConfigList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_MBSFN_SubframeConfigList = { + "EUTRA-MBSFN-SubframeConfigList", + "EUTRA-MBSFN-SubframeConfigList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1, + sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1) + /sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1) + /sizeof(asn_DEF_EUTRA_MBSFN_SubframeConfigList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_MBSFN_SubframeConfigList_constr_1, &asn_PER_type_EUTRA_MBSFN_SubframeConfigList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_MBSFN_SubframeConfigList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_MBSFN_SubframeConfigList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.h b/src/codec_utils/RRC/EUTRA-MBSFN-SubframeConfigList.h new file mode 100644 index 000000000..8961d92df --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_MBSFN_SubframeConfigList_H_ +#define _EUTRA_MBSFN_SubframeConfigList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_MBSFN_SubframeConfig; + +/* EUTRA-MBSFN-SubframeConfigList */ +typedef struct EUTRA_MBSFN_SubframeConfigList { + A_SEQUENCE_OF(struct EUTRA_MBSFN_SubframeConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_MBSFN_SubframeConfigList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_MBSFN_SubframeConfigList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_MBSFN_SubframeConfigList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_MBSFN_SubframeConfigList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_MBSFN_SubframeConfigList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_MBSFN_SubframeConfigList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-MultiBandInfo.c b/src/codec_utils/RRC/EUTRA-MultiBandInfo.c new file mode 100644 index 000000000..9c1a2facf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-MultiBandInfo.h" + +#include "EUTRA-NS-PmaxList.h" +asn_TYPE_member_t asn_MBR_EUTRA_MultiBandInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_MultiBandInfo, eutra_FreqBandIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-FreqBandIndicator" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_MultiBandInfo, eutra_NS_PmaxList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_NS_PmaxList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-NS-PmaxList" + }, +}; +static const int asn_MAP_EUTRA_MultiBandInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_MultiBandInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_MultiBandInfo_specs_1 = { + sizeof(struct EUTRA_MultiBandInfo), + offsetof(struct EUTRA_MultiBandInfo, _asn_ctx), + asn_MAP_EUTRA_MultiBandInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_EUTRA_MultiBandInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_MultiBandInfo = { + "EUTRA-MultiBandInfo", + "EUTRA-MultiBandInfo", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_MultiBandInfo_tags_1, + sizeof(asn_DEF_EUTRA_MultiBandInfo_tags_1) + /sizeof(asn_DEF_EUTRA_MultiBandInfo_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_MultiBandInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_MultiBandInfo_tags_1) + /sizeof(asn_DEF_EUTRA_MultiBandInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_MultiBandInfo_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_MultiBandInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-MultiBandInfo.h b/src/codec_utils/RRC/EUTRA-MultiBandInfo.h new file mode 100644 index 000000000..1bcd34e77 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_MultiBandInfo_H_ +#define _EUTRA_MultiBandInfo_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_NS_PmaxList; + +/* EUTRA-MultiBandInfo */ +typedef struct EUTRA_MultiBandInfo { + FreqBandIndicatorEUTRA_t eutra_FreqBandIndicator; + struct EUTRA_NS_PmaxList *eutra_NS_PmaxList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_MultiBandInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_MultiBandInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_MultiBandInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_MultiBandInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_MultiBandInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-MultiBandInfoList.c b/src/codec_utils/RRC/EUTRA-MultiBandInfoList.c new file mode 100644 index 000000000..a894197cc --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-MultiBandInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-MultiBandInfoList.h" + +#include "EUTRA-MultiBandInfo.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_MultiBandInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_MultiBandInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_MultiBandInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_MultiBandInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_MultiBandInfoList_specs_1 = { + sizeof(struct EUTRA_MultiBandInfoList), + offsetof(struct EUTRA_MultiBandInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_MultiBandInfoList = { + "EUTRA-MultiBandInfoList", + "EUTRA-MultiBandInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_MultiBandInfoList_tags_1, + sizeof(asn_DEF_EUTRA_MultiBandInfoList_tags_1) + /sizeof(asn_DEF_EUTRA_MultiBandInfoList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_MultiBandInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_MultiBandInfoList_tags_1) + /sizeof(asn_DEF_EUTRA_MultiBandInfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_MultiBandInfoList_constr_1, &asn_PER_type_EUTRA_MultiBandInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_MultiBandInfoList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_MultiBandInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-MultiBandInfoList.h b/src/codec_utils/RRC/EUTRA-MultiBandInfoList.h new file mode 100644 index 000000000..4106cfa8a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_MultiBandInfoList_H_ +#define _EUTRA_MultiBandInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_MultiBandInfo; + +/* EUTRA-MultiBandInfoList */ +typedef struct EUTRA_MultiBandInfoList { + A_SEQUENCE_OF(struct EUTRA_MultiBandInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_MultiBandInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_MultiBandInfoList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_MultiBandInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_MultiBandInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_MultiBandInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_MultiBandInfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-NS-PmaxList.c b/src/codec_utils/RRC/EUTRA-NS-PmaxList.c new file mode 100644 index 000000000..e67ddf255 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-NS-PmaxList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-NS-PmaxList.h" + +#include "EUTRA-NS-PmaxValue.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_NS_PmaxList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_NS_PmaxList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_NS_PmaxValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_NS_PmaxList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_NS_PmaxList_specs_1 = { + sizeof(struct EUTRA_NS_PmaxList), + offsetof(struct EUTRA_NS_PmaxList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_NS_PmaxList = { + "EUTRA-NS-PmaxList", + "EUTRA-NS-PmaxList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_NS_PmaxList_tags_1, + sizeof(asn_DEF_EUTRA_NS_PmaxList_tags_1) + /sizeof(asn_DEF_EUTRA_NS_PmaxList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_NS_PmaxList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_NS_PmaxList_tags_1) + /sizeof(asn_DEF_EUTRA_NS_PmaxList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_NS_PmaxList_constr_1, &asn_PER_type_EUTRA_NS_PmaxList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_NS_PmaxList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_NS_PmaxList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-NS-PmaxList.h b/src/codec_utils/RRC/EUTRA-NS-PmaxList.h new file mode 100644 index 000000000..c43eebcac --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_NS_PmaxList_H_ +#define _EUTRA_NS_PmaxList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_NS_PmaxValue; + +/* EUTRA-NS-PmaxList */ +typedef struct EUTRA_NS_PmaxList { + A_SEQUENCE_OF(struct EUTRA_NS_PmaxValue) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_NS_PmaxList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_NS_PmaxList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_NS_PmaxList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_NS_PmaxList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_NS_PmaxList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_NS_PmaxList_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-NS-PmaxValue.c b/src/codec_utils/RRC/EUTRA-NS-PmaxValue.c new file mode 100644 index 000000000..5b3c25554 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-NS-PmaxValue.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-NS-PmaxValue.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_additionalPmax_constr_2 CC_NOTUSED = { + { 1, 0 } /* (-30..33) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_additionalSpectrumEmission_constr_3 CC_NOTUSED = { + { 2, 1 } /* (1..288) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_EUTRA_NS_PmaxValue_1[] = { + { ATF_POINTER, 2, offsetof(struct EUTRA_NS_PmaxValue, additionalPmax), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_additionalPmax_constr_2, &asn_PER_memb_additionalPmax_constr_2, memb_additionalPmax_constraint_1 }, + 0, 0, /* No default value */ + "additionalPmax" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_NS_PmaxValue, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_additionalSpectrumEmission_constr_3, &asn_PER_memb_additionalSpectrumEmission_constr_3, memb_additionalSpectrumEmission_constraint_1 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, +}; +static const int asn_MAP_EUTRA_NS_PmaxValue_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_NS_PmaxValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_NS_PmaxValue_specs_1 = { + sizeof(struct EUTRA_NS_PmaxValue), + offsetof(struct EUTRA_NS_PmaxValue, _asn_ctx), + asn_MAP_EUTRA_NS_PmaxValue_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_EUTRA_NS_PmaxValue_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_NS_PmaxValue = { + "EUTRA-NS-PmaxValue", + "EUTRA-NS-PmaxValue", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_NS_PmaxValue_tags_1, + sizeof(asn_DEF_EUTRA_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_EUTRA_NS_PmaxValue_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_NS_PmaxValue_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_EUTRA_NS_PmaxValue_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_NS_PmaxValue_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_NS_PmaxValue_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-NS-PmaxValue.h b/src/codec_utils/RRC/EUTRA-NS-PmaxValue.h new file mode 100644 index 000000000..613b2c8a5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_NS_PmaxValue_H_ +#define _EUTRA_NS_PmaxValue_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-NS-PmaxValue */ +typedef struct EUTRA_NS_PmaxValue { + long *additionalPmax; /* OPTIONAL */ + long *additionalSpectrumEmission; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_NS_PmaxValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_NS_PmaxValue; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_NS_PmaxValue_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_NS_PmaxValue_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_NS_PmaxValue_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-Parameters.c b/src/codec_utils/RRC/EUTRA-Parameters.c new file mode 100644 index 000000000..5d29b0a31 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-Parameters.c @@ -0,0 +1,153 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Parameters.h" + +#include "EUTRA-ParametersCommon.h" +#include "EUTRA-ParametersXDD-Diff.h" +static int +memb_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_oer_constraints_t asn_OER_type_supportedBandListEUTRA_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_supportedBandListEUTRA_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_memb_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_supportedBandListEUTRA_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_supportedBandListEUTRA_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_supportedBandListEUTRA_specs_2 = { + sizeof(struct EUTRA_Parameters__supportedBandListEUTRA), + offsetof(struct EUTRA_Parameters__supportedBandListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_supportedBandListEUTRA_2 = { + "supportedBandListEUTRA", + "supportedBandListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_supportedBandListEUTRA_tags_2, + sizeof(asn_DEF_supportedBandListEUTRA_tags_2) + /sizeof(asn_DEF_supportedBandListEUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_supportedBandListEUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_supportedBandListEUTRA_tags_2) + /sizeof(asn_DEF_supportedBandListEUTRA_tags_2[0]), /* 2 */ + { &asn_OER_type_supportedBandListEUTRA_constr_2, &asn_PER_type_supportedBandListEUTRA_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_supportedBandListEUTRA_2, + 1, /* Single element */ + &asn_SPC_supportedBandListEUTRA_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_Parameters, supportedBandListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_supportedBandListEUTRA_2, + 0, + { &asn_OER_memb_supportedBandListEUTRA_constr_2, &asn_PER_memb_supportedBandListEUTRA_constr_2, memb_supportedBandListEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct EUTRA_Parameters, eutra_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-ParametersCommon" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_Parameters, eutra_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-ParametersXDD-Diff" + }, +}; +static const int asn_MAP_EUTRA_Parameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_Parameters_specs_1 = { + sizeof(struct EUTRA_Parameters), + offsetof(struct EUTRA_Parameters, _asn_ctx), + asn_MAP_EUTRA_Parameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_EUTRA_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Parameters = { + "EUTRA-Parameters", + "EUTRA-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_Parameters_tags_1, + sizeof(asn_DEF_EUTRA_Parameters_tags_1) + /sizeof(asn_DEF_EUTRA_Parameters_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Parameters_tags_1) + /sizeof(asn_DEF_EUTRA_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_Parameters_1, + 3, /* Elements count */ + &asn_SPC_EUTRA_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-Parameters.h b/src/codec_utils/RRC/EUTRA-Parameters.h new file mode 100644 index 000000000..e9b114119 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Parameters_H_ +#define _EUTRA_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorEUTRA.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_ParametersCommon; +struct EUTRA_ParametersXDD_Diff; + +/* EUTRA-Parameters */ +typedef struct EUTRA_Parameters { + struct EUTRA_Parameters__supportedBandListEUTRA { + A_SEQUENCE_OF(FreqBandIndicatorEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedBandListEUTRA; + struct EUTRA_ParametersCommon *eutra_ParametersCommon; /* OPTIONAL */ + struct 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; +} EUTRA_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_Parameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-ParametersCommon.c b/src/codec_utils/RRC/EUTRA-ParametersCommon.c new file mode 100644 index 000000000..2c60121db --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-ParametersCommon.c @@ -0,0 +1,262 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static int +memb_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_oer_constraints_t asn_OER_type_mfbi_EUTRA_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_multiNS_Pmax_EUTRA_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rs_SINR_MeasEUTRA_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_modifiedMPR_BehaviorEUTRA_constr_4 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_mfbi_EUTRA_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_mfbi_EUTRA_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mfbi_EUTRA_specs_2 = { + asn_MAP_mfbi_EUTRA_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mfbi_EUTRA_2 = { + "mfbi-EUTRA", + "mfbi-EUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_mfbi_EUTRA_tags_2, + sizeof(asn_DEF_mfbi_EUTRA_tags_2) + /sizeof(asn_DEF_mfbi_EUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_mfbi_EUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_mfbi_EUTRA_tags_2) + /sizeof(asn_DEF_mfbi_EUTRA_tags_2[0]), /* 2 */ + { &asn_OER_type_mfbi_EUTRA_constr_2, &asn_PER_type_mfbi_EUTRA_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mfbi_EUTRA_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_multiNS_Pmax_EUTRA_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multiNS_Pmax_EUTRA_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multiNS_Pmax_EUTRA_specs_5 = { + asn_MAP_multiNS_Pmax_EUTRA_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multiNS_Pmax_EUTRA_5 = { + "multiNS-Pmax-EUTRA", + "multiNS-Pmax-EUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_multiNS_Pmax_EUTRA_tags_5, + sizeof(asn_DEF_multiNS_Pmax_EUTRA_tags_5) + /sizeof(asn_DEF_multiNS_Pmax_EUTRA_tags_5[0]) - 1, /* 1 */ + asn_DEF_multiNS_Pmax_EUTRA_tags_5, /* Same as above */ + sizeof(asn_DEF_multiNS_Pmax_EUTRA_tags_5) + /sizeof(asn_DEF_multiNS_Pmax_EUTRA_tags_5[0]), /* 2 */ + { &asn_OER_type_multiNS_Pmax_EUTRA_constr_5, &asn_PER_type_multiNS_Pmax_EUTRA_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multiNS_Pmax_EUTRA_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rs_SINR_MeasEUTRA_value2enum_7[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_rs_SINR_MeasEUTRA_enum2value_7[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rs_SINR_MeasEUTRA_specs_7 = { + asn_MAP_rs_SINR_MeasEUTRA_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_rs_SINR_MeasEUTRA_7 = { + "rs-SINR-MeasEUTRA", + "rs-SINR-MeasEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_rs_SINR_MeasEUTRA_tags_7, + sizeof(asn_DEF_rs_SINR_MeasEUTRA_tags_7) + /sizeof(asn_DEF_rs_SINR_MeasEUTRA_tags_7[0]) - 1, /* 1 */ + asn_DEF_rs_SINR_MeasEUTRA_tags_7, /* Same as above */ + sizeof(asn_DEF_rs_SINR_MeasEUTRA_tags_7) + /sizeof(asn_DEF_rs_SINR_MeasEUTRA_tags_7[0]), /* 2 */ + { &asn_OER_type_rs_SINR_MeasEUTRA_constr_7, &asn_PER_type_rs_SINR_MeasEUTRA_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rs_SINR_MeasEUTRA_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_ParametersCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct EUTRA_ParametersCommon, mfbi_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mfbi_EUTRA_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mfbi-EUTRA" + }, + { ATF_POINTER, 3, offsetof(struct EUTRA_ParametersCommon, modifiedMPR_BehaviorEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_modifiedMPR_BehaviorEUTRA_constr_4, &asn_PER_memb_modifiedMPR_BehaviorEUTRA_constr_4, memb_modifiedMPR_BehaviorEUTRA_constraint_1 }, + 0, 0, /* No default value */ + "modifiedMPR-BehaviorEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct EUTRA_ParametersCommon, multiNS_Pmax_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multiNS_Pmax_EUTRA_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiNS-Pmax-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_ParametersCommon, rs_SINR_MeasEUTRA), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rs_SINR_MeasEUTRA_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rs-SINR-MeasEUTRA" + }, +}; +static const int asn_MAP_EUTRA_ParametersCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_EUTRA_ParametersCommon_specs_1 = { + sizeof(struct EUTRA_ParametersCommon), + offsetof(struct EUTRA_ParametersCommon, _asn_ctx), + asn_MAP_EUTRA_ParametersCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_EUTRA_ParametersCommon_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_ParametersCommon = { + "EUTRA-ParametersCommon", + "EUTRA-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_ParametersCommon_tags_1, + sizeof(asn_DEF_EUTRA_ParametersCommon_tags_1) + /sizeof(asn_DEF_EUTRA_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_ParametersCommon_tags_1) + /sizeof(asn_DEF_EUTRA_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_ParametersCommon_1, + 4, /* Elements count */ + &asn_SPC_EUTRA_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-ParametersCommon.h b/src/codec_utils/RRC/EUTRA-ParametersCommon.h new file mode 100644 index 000000000..fdb98dfdb --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-ParametersCommon.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_ParametersCommon_H_ +#define _EUTRA_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_ParametersCommon__mfbi_EUTRA { + EUTRA_ParametersCommon__mfbi_EUTRA_supported = 0 +} e_EUTRA_ParametersCommon__mfbi_EUTRA; +typedef enum EUTRA_ParametersCommon__multiNS_Pmax_EUTRA { + EUTRA_ParametersCommon__multiNS_Pmax_EUTRA_supported = 0 +} e_EUTRA_ParametersCommon__multiNS_Pmax_EUTRA; +typedef enum EUTRA_ParametersCommon__rs_SINR_MeasEUTRA { + EUTRA_ParametersCommon__rs_SINR_MeasEUTRA_supported = 0 +} e_EUTRA_ParametersCommon__rs_SINR_MeasEUTRA; + +/* EUTRA-ParametersCommon */ +typedef struct 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. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_mfbi_EUTRA_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_multiNS_Pmax_EUTRA_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rs_SINR_MeasEUTRA_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_ParametersCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_ParametersCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.c b/src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.c new file mode 100644 index 000000000..20f65e0d9 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-ParametersXDD-Diff.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_rsrqMeasWidebandEUTRA_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_rsrqMeasWidebandEUTRA_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_rsrqMeasWidebandEUTRA_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rsrqMeasWidebandEUTRA_specs_2 = { + asn_MAP_rsrqMeasWidebandEUTRA_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_rsrqMeasWidebandEUTRA_2 = { + "rsrqMeasWidebandEUTRA", + "rsrqMeasWidebandEUTRA", + &asn_OP_NativeEnumerated, + asn_DEF_rsrqMeasWidebandEUTRA_tags_2, + sizeof(asn_DEF_rsrqMeasWidebandEUTRA_tags_2) + /sizeof(asn_DEF_rsrqMeasWidebandEUTRA_tags_2[0]) - 1, /* 1 */ + asn_DEF_rsrqMeasWidebandEUTRA_tags_2, /* Same as above */ + sizeof(asn_DEF_rsrqMeasWidebandEUTRA_tags_2) + /sizeof(asn_DEF_rsrqMeasWidebandEUTRA_tags_2[0]), /* 2 */ + { &asn_OER_type_rsrqMeasWidebandEUTRA_constr_2, &asn_PER_type_rsrqMeasWidebandEUTRA_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rsrqMeasWidebandEUTRA_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 1, offsetof(struct EUTRA_ParametersXDD_Diff, rsrqMeasWidebandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rsrqMeasWidebandEUTRA_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrqMeasWidebandEUTRA" + }, +}; +static const int asn_MAP_EUTRA_ParametersXDD_Diff_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_EUTRA_ParametersXDD_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rsrqMeasWidebandEUTRA */ +}; +asn_SEQUENCE_specifics_t asn_SPC_EUTRA_ParametersXDD_Diff_specs_1 = { + sizeof(struct EUTRA_ParametersXDD_Diff), + offsetof(struct EUTRA_ParametersXDD_Diff, _asn_ctx), + asn_MAP_EUTRA_ParametersXDD_Diff_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_EUTRA_ParametersXDD_Diff_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_ParametersXDD_Diff = { + "EUTRA-ParametersXDD-Diff", + "EUTRA-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_EUTRA_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_EUTRA_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_EUTRA_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_ParametersXDD_Diff_1, + 1, /* Elements count */ + &asn_SPC_EUTRA_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.h b/src/codec_utils/RRC/EUTRA-ParametersXDD-Diff.h new file mode 100644 index 000000000..40057b09a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_ParametersXDD_Diff_H_ +#define _EUTRA_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA { + EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA_supported = 0 +} e_EUTRA_ParametersXDD_Diff__rsrqMeasWidebandEUTRA; + +/* EUTRA-ParametersXDD-Diff */ +typedef struct 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; +} EUTRA_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_rsrqMeasWidebandEUTRA_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_ParametersXDD_Diff_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_ParametersXDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-PhysCellId.c b/src/codec_utils/RRC/EUTRA-PhysCellId.c new file mode 100644 index 000000000..1ef31463d --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-PhysCellId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-PhysCellId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_PhysCellId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..503) */, + -1}; +asn_per_constraints_t asn_PER_type_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_EUTRA_PhysCellId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_PhysCellId = { + "EUTRA-PhysCellId", + "EUTRA-PhysCellId", + &asn_OP_NativeInteger, + asn_DEF_EUTRA_PhysCellId_tags_1, + sizeof(asn_DEF_EUTRA_PhysCellId_tags_1) + /sizeof(asn_DEF_EUTRA_PhysCellId_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_PhysCellId_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_PhysCellId_tags_1) + /sizeof(asn_DEF_EUTRA_PhysCellId_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_PhysCellId_constr_1, &asn_PER_type_EUTRA_PhysCellId_constr_1, EUTRA_PhysCellId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-PhysCellId.h b/src/codec_utils/RRC/EUTRA-PhysCellId.h new file mode 100644 index 000000000..29d7e447c --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-PhysCellId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_PhysCellId_H_ +#define _EUTRA_PhysCellId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-PhysCellId */ +typedef long EUTRA_PhysCellId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_PhysCellId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_PhysCellId; +asn_struct_free_f EUTRA_PhysCellId_free; +asn_struct_print_f EUTRA_PhysCellId_print; +asn_constr_check_f EUTRA_PhysCellId_constraint; +ber_type_decoder_f EUTRA_PhysCellId_decode_ber; +der_type_encoder_f EUTRA_PhysCellId_encode_der; +xer_type_decoder_f EUTRA_PhysCellId_decode_xer; +xer_type_encoder_f EUTRA_PhysCellId_encode_xer; +oer_type_decoder_f EUTRA_PhysCellId_decode_oer; +oer_type_encoder_f EUTRA_PhysCellId_encode_oer; +per_type_decoder_f EUTRA_PhysCellId_decode_uper; +per_type_encoder_f EUTRA_PhysCellId_encode_uper; +per_type_decoder_f EUTRA_PhysCellId_decode_aper; +per_type_encoder_f EUTRA_PhysCellId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_PhysCellId_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-PhysCellIdRange.c b/src/codec_utils/RRC/EUTRA-PhysCellIdRange.c new file mode 100644 index 000000000..5108fe37f --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-PhysCellIdRange.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-PhysCellIdRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_range_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_range_specs_3 = { + asn_MAP_range_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_range_3 = { + "range", + "range", + &asn_OP_NativeEnumerated, + asn_DEF_range_tags_3, + sizeof(asn_DEF_range_tags_3) + /sizeof(asn_DEF_range_tags_3[0]) - 1, /* 1 */ + asn_DEF_range_tags_3, /* Same as above */ + sizeof(asn_DEF_range_tags_3) + /sizeof(asn_DEF_range_tags_3[0]), /* 2 */ + { &asn_OER_type_range_constr_3, &asn_PER_type_range_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_range_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EUTRA_PhysCellIdRange_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_PhysCellIdRange, start), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "start" + }, + { ATF_POINTER, 1, offsetof(struct EUTRA_PhysCellIdRange, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_range_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, +}; +static const int asn_MAP_EUTRA_PhysCellIdRange_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_EUTRA_PhysCellIdRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_PhysCellIdRange_specs_1 = { + sizeof(struct EUTRA_PhysCellIdRange), + offsetof(struct EUTRA_PhysCellIdRange, _asn_ctx), + asn_MAP_EUTRA_PhysCellIdRange_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_EUTRA_PhysCellIdRange_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_PhysCellIdRange = { + "EUTRA-PhysCellIdRange", + "EUTRA-PhysCellIdRange", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_PhysCellIdRange_tags_1, + sizeof(asn_DEF_EUTRA_PhysCellIdRange_tags_1) + /sizeof(asn_DEF_EUTRA_PhysCellIdRange_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_PhysCellIdRange_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_PhysCellIdRange_tags_1) + /sizeof(asn_DEF_EUTRA_PhysCellIdRange_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_PhysCellIdRange_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_PhysCellIdRange_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-PhysCellIdRange.h b/src/codec_utils/RRC/EUTRA-PhysCellIdRange.h new file mode 100644 index 000000000..82315079b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_PhysCellIdRange_H_ +#define _EUTRA_PhysCellIdRange_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_PhysCellIdRange__range { + EUTRA_PhysCellIdRange__range_n4 = 0, + EUTRA_PhysCellIdRange__range_n8 = 1, + EUTRA_PhysCellIdRange__range_n12 = 2, + EUTRA_PhysCellIdRange__range_n16 = 3, + EUTRA_PhysCellIdRange__range_n24 = 4, + EUTRA_PhysCellIdRange__range_n32 = 5, + EUTRA_PhysCellIdRange__range_n48 = 6, + EUTRA_PhysCellIdRange__range_n64 = 7, + EUTRA_PhysCellIdRange__range_n84 = 8, + EUTRA_PhysCellIdRange__range_n96 = 9, + EUTRA_PhysCellIdRange__range_n128 = 10, + EUTRA_PhysCellIdRange__range_n168 = 11, + EUTRA_PhysCellIdRange__range_n252 = 12, + EUTRA_PhysCellIdRange__range_n504 = 13, + EUTRA_PhysCellIdRange__range_spare2 = 14, + EUTRA_PhysCellIdRange__range_spare1 = 15 +} e_EUTRA_PhysCellIdRange__range; + +/* EUTRA-PhysCellIdRange */ +typedef struct EUTRA_PhysCellIdRange { + EUTRA_PhysCellId_t start; + long *range; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_PhysCellIdRange_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_range_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_PhysCellIdRange; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_PhysCellIdRange_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_PhysCellIdRange_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_PhysCellIdRange_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.c b/src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.c new file mode 100644 index 000000000..67fdd3cbf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-PresenceAntennaPort1.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_EUTRA_PresenceAntennaPort1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_PresenceAntennaPort1 = { + "EUTRA-PresenceAntennaPort1", + "EUTRA-PresenceAntennaPort1", + &asn_OP_BOOLEAN, + asn_DEF_EUTRA_PresenceAntennaPort1_tags_1, + sizeof(asn_DEF_EUTRA_PresenceAntennaPort1_tags_1) + /sizeof(asn_DEF_EUTRA_PresenceAntennaPort1_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_PresenceAntennaPort1_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_PresenceAntennaPort1_tags_1) + /sizeof(asn_DEF_EUTRA_PresenceAntennaPort1_tags_1[0]), /* 1 */ + { 0, 0, BOOLEAN_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.h b/src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.h new file mode 100644 index 000000000..0d2b6fce9 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-PresenceAntennaPort1.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_PresenceAntennaPort1_H_ +#define _EUTRA_PresenceAntennaPort1_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-PresenceAntennaPort1 */ +typedef BOOLEAN_t EUTRA_PresenceAntennaPort1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_PresenceAntennaPort1; +asn_struct_free_f EUTRA_PresenceAntennaPort1_free; +asn_struct_print_f EUTRA_PresenceAntennaPort1_print; +asn_constr_check_f EUTRA_PresenceAntennaPort1_constraint; +ber_type_decoder_f EUTRA_PresenceAntennaPort1_decode_ber; +der_type_encoder_f EUTRA_PresenceAntennaPort1_encode_der; +xer_type_decoder_f EUTRA_PresenceAntennaPort1_decode_xer; +xer_type_encoder_f EUTRA_PresenceAntennaPort1_encode_xer; +oer_type_decoder_f EUTRA_PresenceAntennaPort1_decode_oer; +oer_type_encoder_f EUTRA_PresenceAntennaPort1_encode_oer; +per_type_decoder_f EUTRA_PresenceAntennaPort1_decode_uper; +per_type_encoder_f EUTRA_PresenceAntennaPort1_encode_uper; +per_type_decoder_f EUTRA_PresenceAntennaPort1_decode_aper; +per_type_encoder_f EUTRA_PresenceAntennaPort1_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_PresenceAntennaPort1_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-Q-OffsetRange.c b/src/codec_utils/RRC/EUTRA-Q-OffsetRange.c new file mode 100644 index 000000000..de9247cb5 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-Q-OffsetRange.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-Q-OffsetRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EUTRA_Q_OffsetRange_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_EUTRA_Q_OffsetRange_specs_1 = { + asn_MAP_EUTRA_Q_OffsetRange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_EUTRA_Q_OffsetRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_Q_OffsetRange = { + "EUTRA-Q-OffsetRange", + "EUTRA-Q-OffsetRange", + &asn_OP_NativeEnumerated, + asn_DEF_EUTRA_Q_OffsetRange_tags_1, + sizeof(asn_DEF_EUTRA_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_EUTRA_Q_OffsetRange_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_Q_OffsetRange_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_EUTRA_Q_OffsetRange_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_Q_OffsetRange_constr_1, &asn_PER_type_EUTRA_Q_OffsetRange_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EUTRA_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-Q-OffsetRange.h b/src/codec_utils/RRC/EUTRA-Q-OffsetRange.h new file mode 100644 index 000000000..ea42c9ad7 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-Q-OffsetRange.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_Q_OffsetRange_H_ +#define _EUTRA_Q_OffsetRange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EUTRA_Q_OffsetRange { + EUTRA_Q_OffsetRange_dB_24 = 0, + EUTRA_Q_OffsetRange_dB_22 = 1, + EUTRA_Q_OffsetRange_dB_20 = 2, + EUTRA_Q_OffsetRange_dB_18 = 3, + EUTRA_Q_OffsetRange_dB_16 = 4, + EUTRA_Q_OffsetRange_dB_14 = 5, + EUTRA_Q_OffsetRange_dB_12 = 6, + EUTRA_Q_OffsetRange_dB_10 = 7, + EUTRA_Q_OffsetRange_dB_8 = 8, + EUTRA_Q_OffsetRange_dB_6 = 9, + EUTRA_Q_OffsetRange_dB_5 = 10, + EUTRA_Q_OffsetRange_dB_4 = 11, + EUTRA_Q_OffsetRange_dB_3 = 12, + EUTRA_Q_OffsetRange_dB_2 = 13, + EUTRA_Q_OffsetRange_dB_1 = 14, + EUTRA_Q_OffsetRange_dB0 = 15, + EUTRA_Q_OffsetRange_dB1 = 16, + EUTRA_Q_OffsetRange_dB2 = 17, + EUTRA_Q_OffsetRange_dB3 = 18, + EUTRA_Q_OffsetRange_dB4 = 19, + EUTRA_Q_OffsetRange_dB5 = 20, + EUTRA_Q_OffsetRange_dB6 = 21, + EUTRA_Q_OffsetRange_dB8 = 22, + EUTRA_Q_OffsetRange_dB10 = 23, + EUTRA_Q_OffsetRange_dB12 = 24, + EUTRA_Q_OffsetRange_dB14 = 25, + EUTRA_Q_OffsetRange_dB16 = 26, + EUTRA_Q_OffsetRange_dB18 = 27, + EUTRA_Q_OffsetRange_dB20 = 28, + EUTRA_Q_OffsetRange_dB22 = 29, + EUTRA_Q_OffsetRange_dB24 = 30 +} e_EUTRA_Q_OffsetRange; + +/* EUTRA-Q-OffsetRange */ +typedef long EUTRA_Q_OffsetRange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EUTRA_Q_OffsetRange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_Q_OffsetRange; +extern const asn_INTEGER_specifics_t asn_SPC_EUTRA_Q_OffsetRange_specs_1; +asn_struct_free_f EUTRA_Q_OffsetRange_free; +asn_struct_print_f EUTRA_Q_OffsetRange_print; +asn_constr_check_f EUTRA_Q_OffsetRange_constraint; +ber_type_decoder_f EUTRA_Q_OffsetRange_decode_ber; +der_type_encoder_f EUTRA_Q_OffsetRange_encode_der; +xer_type_decoder_f EUTRA_Q_OffsetRange_decode_xer; +xer_type_encoder_f EUTRA_Q_OffsetRange_encode_xer; +oer_type_decoder_f EUTRA_Q_OffsetRange_decode_oer; +oer_type_encoder_f EUTRA_Q_OffsetRange_encode_oer; +per_type_decoder_f EUTRA_Q_OffsetRange_decode_uper; +per_type_encoder_f EUTRA_Q_OffsetRange_encode_uper; +per_type_decoder_f EUTRA_Q_OffsetRange_decode_aper; +per_type_encoder_f EUTRA_Q_OffsetRange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_Q_OffsetRange_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-RSTD-Info.c b/src/codec_utils/RRC/EUTRA-RSTD-Info.c new file mode 100644 index 000000000..4603ddc44 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-RSTD-Info.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-RSTD-Info.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_measPRS_Offset_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_EUTRA_RSTD_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_RSTD_Info, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct EUTRA_RSTD_Info, measPRS_Offset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_measPRS_Offset_constr_3, &asn_PER_memb_measPRS_Offset_constr_3, memb_measPRS_Offset_constraint_1 }, + 0, 0, /* No default value */ + "measPRS-Offset" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_RSTD_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EUTRA_RSTD_Info_specs_1 = { + sizeof(struct EUTRA_RSTD_Info), + offsetof(struct EUTRA_RSTD_Info, _asn_ctx), + asn_MAP_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_EUTRA_RSTD_Info = { + "EUTRA-RSTD-Info", + "EUTRA-RSTD-Info", + &asn_OP_SEQUENCE, + asn_DEF_EUTRA_RSTD_Info_tags_1, + sizeof(asn_DEF_EUTRA_RSTD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_RSTD_Info_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_RSTD_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_RSTD_Info_tags_1) + /sizeof(asn_DEF_EUTRA_RSTD_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EUTRA_RSTD_Info_1, + 2, /* Elements count */ + &asn_SPC_EUTRA_RSTD_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-RSTD-Info.h b/src/codec_utils/RRC/EUTRA-RSTD-Info.h new file mode 100644 index 000000000..e978b78a0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_RSTD_Info_H_ +#define _EUTRA_RSTD_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* EUTRA-RSTD-Info */ +typedef struct EUTRA_RSTD_Info { + 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; +} EUTRA_RSTD_Info_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_RSTD_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_EUTRA_RSTD_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_RSTD_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_RSTD_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/EUTRA-RSTD-InfoList.c b/src/codec_utils/RRC/EUTRA-RSTD-InfoList.c new file mode 100644 index 000000000..967026eb1 --- /dev/null +++ b/src/codec_utils/RRC/EUTRA-RSTD-InfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EUTRA-RSTD-InfoList.h" + +#include "EUTRA-RSTD-Info.h" +static asn_oer_constraints_t asn_OER_type_EUTRA_RSTD_InfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_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_EUTRA_RSTD_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_RSTD_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_EUTRA_RSTD_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_EUTRA_RSTD_InfoList_specs_1 = { + sizeof(struct EUTRA_RSTD_InfoList), + offsetof(struct EUTRA_RSTD_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_EUTRA_RSTD_InfoList = { + "EUTRA-RSTD-InfoList", + "EUTRA-RSTD-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_EUTRA_RSTD_InfoList_tags_1, + sizeof(asn_DEF_EUTRA_RSTD_InfoList_tags_1) + /sizeof(asn_DEF_EUTRA_RSTD_InfoList_tags_1[0]), /* 1 */ + asn_DEF_EUTRA_RSTD_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_EUTRA_RSTD_InfoList_tags_1) + /sizeof(asn_DEF_EUTRA_RSTD_InfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_EUTRA_RSTD_InfoList_constr_1, &asn_PER_type_EUTRA_RSTD_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_EUTRA_RSTD_InfoList_1, + 1, /* Single element */ + &asn_SPC_EUTRA_RSTD_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EUTRA-RSTD-InfoList.h b/src/codec_utils/RRC/EUTRA-RSTD-InfoList.h new file mode 100644 index 000000000..7de602a9c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EUTRA_RSTD_InfoList_H_ +#define _EUTRA_RSTD_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_RSTD_Info; + +/* EUTRA-RSTD-InfoList */ +typedef struct EUTRA_RSTD_InfoList { + A_SEQUENCE_OF(struct EUTRA_RSTD_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} EUTRA_RSTD_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_EUTRA_RSTD_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_EUTRA_RSTD_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_EUTRA_RSTD_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_EUTRA_RSTD_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _EUTRA_RSTD_InfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/EstablishmentCause.c b/src/codec_utils/RRC/EstablishmentCause.c new file mode 100644 index 000000000..f5bc4816c --- /dev/null +++ b/src/codec_utils/RRC/EstablishmentCause.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EstablishmentCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_EstablishmentCause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_EstablishmentCause_specs_1 = { + asn_MAP_EstablishmentCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_EstablishmentCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_EstablishmentCause = { + "EstablishmentCause", + "EstablishmentCause", + &asn_OP_NativeEnumerated, + asn_DEF_EstablishmentCause_tags_1, + sizeof(asn_DEF_EstablishmentCause_tags_1) + /sizeof(asn_DEF_EstablishmentCause_tags_1[0]), /* 1 */ + asn_DEF_EstablishmentCause_tags_1, /* Same as above */ + sizeof(asn_DEF_EstablishmentCause_tags_1) + /sizeof(asn_DEF_EstablishmentCause_tags_1[0]), /* 1 */ + { &asn_OER_type_EstablishmentCause_constr_1, &asn_PER_type_EstablishmentCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_EstablishmentCause_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EstablishmentCause.h b/src/codec_utils/RRC/EstablishmentCause.h new file mode 100644 index 000000000..1b3c52f07 --- /dev/null +++ b/src/codec_utils/RRC/EstablishmentCause.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EstablishmentCause_H_ +#define _EstablishmentCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EstablishmentCause { + EstablishmentCause_emergency = 0, + EstablishmentCause_highPriorityAccess = 1, + EstablishmentCause_mt_Access = 2, + EstablishmentCause_mo_Signalling = 3, + EstablishmentCause_mo_Data = 4, + EstablishmentCause_mo_VoiceCall = 5, + EstablishmentCause_mo_VideoCall = 6, + EstablishmentCause_mo_SMS = 7, + EstablishmentCause_mps_PriorityAccess = 8, + EstablishmentCause_mcs_PriorityAccess = 9, + EstablishmentCause_spare6 = 10, + EstablishmentCause_spare5 = 11, + EstablishmentCause_spare4 = 12, + EstablishmentCause_spare3 = 13, + EstablishmentCause_spare2 = 14, + EstablishmentCause_spare1 = 15 +} e_EstablishmentCause; + +/* EstablishmentCause */ +typedef long EstablishmentCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_EstablishmentCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_EstablishmentCause; +extern const asn_INTEGER_specifics_t asn_SPC_EstablishmentCause_specs_1; +asn_struct_free_f EstablishmentCause_free; +asn_struct_print_f EstablishmentCause_print; +asn_constr_check_f EstablishmentCause_constraint; +ber_type_decoder_f EstablishmentCause_decode_ber; +der_type_encoder_f EstablishmentCause_encode_der; +xer_type_decoder_f EstablishmentCause_decode_xer; +xer_type_encoder_f EstablishmentCause_encode_xer; +oer_type_decoder_f EstablishmentCause_decode_oer; +oer_type_encoder_f EstablishmentCause_encode_oer; +per_type_decoder_f EstablishmentCause_decode_uper; +per_type_encoder_f EstablishmentCause_encode_uper; +per_type_decoder_f EstablishmentCause_decode_aper; +per_type_encoder_f EstablishmentCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _EstablishmentCause_H_ */ +#include diff --git a/src/codec_utils/RRC/EventTriggerConfig.c b/src/codec_utils/RRC/EventTriggerConfig.c new file mode 100644 index 000000000..ca19feb49 --- /dev/null +++ b/src/codec_utils/RRC/EventTriggerConfig.c @@ -0,0 +1,902 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EventTriggerConfig.h" + +#include "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_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_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_oer_constraints_t asn_OER_type_eventId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportAmount_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportAddNeighMeas_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxReportCells_constr_51 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNrofRS_IndexesToReport_constr_53 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_eventA1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA1, a1_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a1-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA1, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA1, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_eventA1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA1_specs_3 = { + sizeof(struct EventTriggerConfig__eventId__eventA1), + offsetof(struct EventTriggerConfig__eventId__eventA1, _asn_ctx), + asn_MAP_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_eventA1_3 = { + "eventA1", + "eventA1", + &asn_OP_SEQUENCE, + asn_DEF_eventA1_tags_3, + sizeof(asn_DEF_eventA1_tags_3) + /sizeof(asn_DEF_eventA1_tags_3[0]) - 1, /* 1 */ + asn_DEF_eventA1_tags_3, /* Same as above */ + sizeof(asn_DEF_eventA1_tags_3) + /sizeof(asn_DEF_eventA1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA1_3, + 4, /* Elements count */ + &asn_SPC_eventA1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventA2_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA2, a2_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a2-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA2, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA2, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_eventA2_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA2_specs_8 = { + sizeof(struct EventTriggerConfig__eventId__eventA2), + offsetof(struct EventTriggerConfig__eventId__eventA2, _asn_ctx), + asn_MAP_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_eventA2_8 = { + "eventA2", + "eventA2", + &asn_OP_SEQUENCE, + asn_DEF_eventA2_tags_8, + sizeof(asn_DEF_eventA2_tags_8) + /sizeof(asn_DEF_eventA2_tags_8[0]) - 1, /* 1 */ + asn_DEF_eventA2_tags_8, /* Same as above */ + sizeof(asn_DEF_eventA2_tags_8) + /sizeof(asn_DEF_eventA2_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA2_8, + 4, /* Elements count */ + &asn_SPC_eventA2_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventA3_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA3, a3_Offset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantityOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a3-Offset" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA3, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA3, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_eventA3_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA3_specs_13 = { + sizeof(struct EventTriggerConfig__eventId__eventA3), + offsetof(struct EventTriggerConfig__eventId__eventA3, _asn_ctx), + asn_MAP_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_eventA3_13 = { + "eventA3", + "eventA3", + &asn_OP_SEQUENCE, + asn_DEF_eventA3_tags_13, + sizeof(asn_DEF_eventA3_tags_13) + /sizeof(asn_DEF_eventA3_tags_13[0]) - 1, /* 1 */ + asn_DEF_eventA3_tags_13, /* Same as above */ + sizeof(asn_DEF_eventA3_tags_13) + /sizeof(asn_DEF_eventA3_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA3_13, + 5, /* Elements count */ + &asn_SPC_eventA3_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventA4_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA4, a4_Threshold), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a4-Threshold" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA4, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA4, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_eventA4_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA4_specs_19 = { + sizeof(struct EventTriggerConfig__eventId__eventA4), + offsetof(struct EventTriggerConfig__eventId__eventA4, _asn_ctx), + asn_MAP_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_eventA4_19 = { + "eventA4", + "eventA4", + &asn_OP_SEQUENCE, + asn_DEF_eventA4_tags_19, + sizeof(asn_DEF_eventA4_tags_19) + /sizeof(asn_DEF_eventA4_tags_19[0]) - 1, /* 1 */ + asn_DEF_eventA4_tags_19, /* Same as above */ + sizeof(asn_DEF_eventA4_tags_19) + /sizeof(asn_DEF_eventA4_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA4_19, + 5, /* Elements count */ + &asn_SPC_eventA4_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventA5_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA5, a5_Threshold1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a5-Threshold1" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA5, a5_Threshold2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a5-Threshold2" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA5, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA5, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_eventA5_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA5_specs_25 = { + sizeof(struct EventTriggerConfig__eventId__eventA5), + offsetof(struct EventTriggerConfig__eventId__eventA5, _asn_ctx), + asn_MAP_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_eventA5_25 = { + "eventA5", + "eventA5", + &asn_OP_SEQUENCE, + asn_DEF_eventA5_tags_25, + sizeof(asn_DEF_eventA5_tags_25) + /sizeof(asn_DEF_eventA5_tags_25[0]) - 1, /* 1 */ + asn_DEF_eventA5_tags_25, /* Same as above */ + sizeof(asn_DEF_eventA5_tags_25) + /sizeof(asn_DEF_eventA5_tags_25[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA5_25, + 6, /* Elements count */ + &asn_SPC_eventA5_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventA6_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA6, a6_Offset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantityOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "a6-Offset" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig__eventId__eventA6, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig__eventId__eventA6, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_eventA6_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventA6_specs_32 = { + sizeof(struct EventTriggerConfig__eventId__eventA6), + offsetof(struct EventTriggerConfig__eventId__eventA6, _asn_ctx), + asn_MAP_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_eventA6_32 = { + "eventA6", + "eventA6", + &asn_OP_SEQUENCE, + asn_DEF_eventA6_tags_32, + sizeof(asn_DEF_eventA6_tags_32) + /sizeof(asn_DEF_eventA6_tags_32[0]) - 1, /* 1 */ + asn_DEF_eventA6_tags_32, /* Same as above */ + sizeof(asn_DEF_eventA6_tags_32) + /sizeof(asn_DEF_eventA6_tags_32[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventA6_32, + 5, /* Elements count */ + &asn_SPC_eventA6_specs_32 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventId_2[] = { + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_eventA1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA1" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_eventA2_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA2" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_eventA3_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA3" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_eventA4_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA4" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_eventA5_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA5" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfig__eventId, choice.eventA6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_eventA6_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA6" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventId_specs_2 = { + sizeof(struct EventTriggerConfig__eventId), + offsetof(struct EventTriggerConfig__eventId, _asn_ctx), + offsetof(struct EventTriggerConfig__eventId, present), + sizeof(((struct EventTriggerConfig__eventId *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_eventId_constr_2, &asn_PER_type_eventId_constr_2, CHOICE_constraint }, + asn_MBR_eventId_2, + 6, /* Elements count */ + &asn_SPC_eventId_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_reportAmount_specs_41 = { + asn_MAP_reportAmount_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportAmount_41 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_reportAmount_tags_41, + sizeof(asn_DEF_reportAmount_tags_41) + /sizeof(asn_DEF_reportAmount_tags_41[0]) - 1, /* 1 */ + asn_DEF_reportAmount_tags_41, /* Same as above */ + sizeof(asn_DEF_reportAmount_tags_41) + /sizeof(asn_DEF_reportAmount_tags_41[0]), /* 2 */ + { &asn_OER_type_reportAmount_constr_41, &asn_PER_type_reportAmount_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportAmount_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_reportAddNeighMeas_value2enum_55[] = { + { 0, 5, "setup" } +}; +static const unsigned int asn_MAP_reportAddNeighMeas_enum2value_55[] = { + 0 /* setup(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reportAddNeighMeas_specs_55 = { + asn_MAP_reportAddNeighMeas_value2enum_55, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportAddNeighMeas_55 = { + "reportAddNeighMeas", + "reportAddNeighMeas", + &asn_OP_NativeEnumerated, + asn_DEF_reportAddNeighMeas_tags_55, + sizeof(asn_DEF_reportAddNeighMeas_tags_55) + /sizeof(asn_DEF_reportAddNeighMeas_tags_55[0]) - 1, /* 1 */ + asn_DEF_reportAddNeighMeas_tags_55, /* Same as above */ + sizeof(asn_DEF_reportAddNeighMeas_tags_55) + /sizeof(asn_DEF_reportAddNeighMeas_tags_55[0]), /* 2 */ + { &asn_OER_type_reportAddNeighMeas_constr_55, &asn_PER_type_reportAddNeighMeas_constr_55, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportAddNeighMeas_specs_55 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EventTriggerConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, eventId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_eventId_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventId" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, rsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportAmount_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, reportQuantityCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfig, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxReportCells_constr_51, &asn_PER_memb_maxReportCells_constr_51, memb_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, + { ATF_POINTER, 2, offsetof(struct EventTriggerConfig, reportQuantityRS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityRS-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct EventTriggerConfig, maxNrofRS_IndexesToReport), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNrofRS_IndexesToReport_constr_53, &asn_PER_memb_maxNrofRS_IndexesToReport_constr_53, memb_maxNrofRS_IndexesToReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNrofRS-IndexesToReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfig, reportAddNeighMeas), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportAddNeighMeas_55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAddNeighMeas" + }, +}; +static const int asn_MAP_EventTriggerConfig_oms_1[] = { 6, 7, 9 }; +static const ber_tlv_tag_t asn_DEF_EventTriggerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EventTriggerConfig_specs_1 = { + sizeof(struct EventTriggerConfig), + offsetof(struct EventTriggerConfig, _asn_ctx), + asn_MAP_EventTriggerConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_EventTriggerConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_EventTriggerConfig = { + "EventTriggerConfig", + "EventTriggerConfig", + &asn_OP_SEQUENCE, + asn_DEF_EventTriggerConfig_tags_1, + sizeof(asn_DEF_EventTriggerConfig_tags_1) + /sizeof(asn_DEF_EventTriggerConfig_tags_1[0]), /* 1 */ + asn_DEF_EventTriggerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_EventTriggerConfig_tags_1) + /sizeof(asn_DEF_EventTriggerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventTriggerConfig_1, + 10, /* Elements count */ + &asn_SPC_EventTriggerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EventTriggerConfig.h b/src/codec_utils/RRC/EventTriggerConfig.h new file mode 100644 index 000000000..d2ab19d60 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EventTriggerConfig_H_ +#define _EventTriggerConfig_H_ + + +#include + +/* Including external dependencies */ +#include "NR-RS-Type.h" +#include "ReportInterval.h" +#include +#include "MeasReportQuantity.h" +#include +#include +#include "MeasTriggerQuantity.h" +#include "Hysteresis.h" +#include "TimeToTrigger.h" +#include +#include "MeasTriggerQuantityOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EventTriggerConfig__eventId_PR { + EventTriggerConfig__eventId_PR_NOTHING, /* No components present */ + EventTriggerConfig__eventId_PR_eventA1, + EventTriggerConfig__eventId_PR_eventA2, + EventTriggerConfig__eventId_PR_eventA3, + EventTriggerConfig__eventId_PR_eventA4, + EventTriggerConfig__eventId_PR_eventA5, + EventTriggerConfig__eventId_PR_eventA6 + /* Extensions may appear below */ + +} EventTriggerConfig__eventId_PR; +typedef enum EventTriggerConfig__reportAmount { + EventTriggerConfig__reportAmount_r1 = 0, + EventTriggerConfig__reportAmount_r2 = 1, + EventTriggerConfig__reportAmount_r4 = 2, + EventTriggerConfig__reportAmount_r8 = 3, + EventTriggerConfig__reportAmount_r16 = 4, + EventTriggerConfig__reportAmount_r32 = 5, + EventTriggerConfig__reportAmount_r64 = 6, + EventTriggerConfig__reportAmount_infinity = 7 +} e_EventTriggerConfig__reportAmount; +typedef enum EventTriggerConfig__reportAddNeighMeas { + EventTriggerConfig__reportAddNeighMeas_setup = 0 +} e_EventTriggerConfig__reportAddNeighMeas; + +/* Forward declarations */ +struct MeasReportQuantity; + +/* EventTriggerConfig */ +typedef struct EventTriggerConfig { + struct EventTriggerConfig__eventId { + EventTriggerConfig__eventId_PR present; + union EventTriggerConfig__eventId_u { + struct EventTriggerConfig__eventId__eventA1 { + MeasTriggerQuantity_t a1_Threshold; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + TimeToTrigger_t timeToTrigger; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA1; + struct EventTriggerConfig__eventId__eventA2 { + MeasTriggerQuantity_t a2_Threshold; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + TimeToTrigger_t timeToTrigger; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA2; + struct EventTriggerConfig__eventId__eventA3 { + MeasTriggerQuantityOffset_t a3_Offset; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA3; + struct EventTriggerConfig__eventId__eventA4 { + MeasTriggerQuantity_t a4_Threshold; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA4; + struct EventTriggerConfig__eventId__eventA5 { + MeasTriggerQuantity_t a5_Threshold1; + MeasTriggerQuantity_t a5_Threshold2; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + TimeToTrigger_t timeToTrigger; + BOOLEAN_t useWhiteCellList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eventA5; + struct EventTriggerConfig__eventId__eventA6 { + MeasTriggerQuantityOffset_t a6_Offset; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + 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; + NR_RS_Type_t rsType; + ReportInterval_t reportInterval; + long reportAmount; + MeasReportQuantity_t reportQuantityCell; + long maxReportCells; + struct 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; +} EventTriggerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportAmount_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportAddNeighMeas_55; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EventTriggerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_EventTriggerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_EventTriggerConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventTriggerConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/EventTriggerConfigInterRAT.c b/src/codec_utils/RRC/EventTriggerConfigInterRAT.c new file mode 100644 index 000000000..2fda1ea07 --- /dev/null +++ b/src/codec_utils/RRC/EventTriggerConfigInterRAT.c @@ -0,0 +1,407 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "EventTriggerConfigInterRAT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_eventId_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reportAmount_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxReportCells_constr_29 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_eventB1_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, b1_ThresholdEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b1-ThresholdEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfigInterRAT__eventId__eventB1, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_eventB1_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventB1_specs_3 = { + sizeof(struct EventTriggerConfigInterRAT__eventId__eventB1), + offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, _asn_ctx), + asn_MAP_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_eventB1_3 = { + "eventB1", + "eventB1", + &asn_OP_SEQUENCE, + asn_DEF_eventB1_tags_3, + sizeof(asn_DEF_eventB1_tags_3) + /sizeof(asn_DEF_eventB1_tags_3[0]) - 1, /* 1 */ + asn_DEF_eventB1_tags_3, /* Same as above */ + sizeof(asn_DEF_eventB1_tags_3) + /sizeof(asn_DEF_eventB1_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventB1_3, + 4, /* Elements count */ + &asn_SPC_eventB1_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventB2_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b2-Threshold1" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold2EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_MeasTriggerQuantityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "b2-Threshold2EUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 EventTriggerConfigInterRAT__eventId__eventB2, hysteresis), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Hysteresis, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "hysteresis" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, timeToTrigger), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeToTrigger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeToTrigger" + }, +}; +static const ber_tlv_tag_t asn_DEF_eventB2_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventB2_specs_9 = { + sizeof(struct EventTriggerConfigInterRAT__eventId__eventB2), + offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, _asn_ctx), + asn_MAP_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_eventB2_9 = { + "eventB2", + "eventB2", + &asn_OP_SEQUENCE, + asn_DEF_eventB2_tags_9, + sizeof(asn_DEF_eventB2_tags_9) + /sizeof(asn_DEF_eventB2_tags_9[0]) - 1, /* 1 */ + asn_DEF_eventB2_tags_9, /* Same as above */ + sizeof(asn_DEF_eventB2_tags_9) + /sizeof(asn_DEF_eventB2_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eventB2_9, + 5, /* Elements count */ + &asn_SPC_eventB2_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_eventId_2[] = { + { ATF_POINTER, 0, offsetof(struct EventTriggerConfigInterRAT__eventId, choice.eventB1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_eventB1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB1" + }, + { ATF_POINTER, 0, offsetof(struct EventTriggerConfigInterRAT__eventId, choice.eventB2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_eventB2_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eventId_specs_2 = { + sizeof(struct EventTriggerConfigInterRAT__eventId), + offsetof(struct EventTriggerConfigInterRAT__eventId, _asn_ctx), + offsetof(struct EventTriggerConfigInterRAT__eventId, present), + sizeof(((struct EventTriggerConfigInterRAT__eventId *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_eventId_constr_2, &asn_PER_type_eventId_constr_2, CHOICE_constraint }, + asn_MBR_eventId_2, + 2, /* Elements count */ + &asn_SPC_eventId_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_reportAmount_specs_19 = { + asn_MAP_reportAmount_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportAmount_19 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_reportAmount_tags_19, + sizeof(asn_DEF_reportAmount_tags_19) + /sizeof(asn_DEF_reportAmount_tags_19[0]) - 1, /* 1 */ + asn_DEF_reportAmount_tags_19, /* Same as above */ + sizeof(asn_DEF_reportAmount_tags_19) + /sizeof(asn_DEF_reportAmount_tags_19[0]), /* 2 */ + { &asn_OER_type_reportAmount_constr_19, &asn_PER_type_reportAmount_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportAmount_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_EventTriggerConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, eventId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_eventId_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventId" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, rsType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportAmount_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxReportCells_constr_29, &asn_PER_memb_maxReportCells_constr_29, memb_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, +}; +static const ber_tlv_tag_t asn_DEF_EventTriggerConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_EventTriggerConfigInterRAT_specs_1 = { + sizeof(struct EventTriggerConfigInterRAT), + offsetof(struct EventTriggerConfigInterRAT, _asn_ctx), + asn_MAP_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_EventTriggerConfigInterRAT = { + "EventTriggerConfigInterRAT", + "EventTriggerConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_EventTriggerConfigInterRAT_tags_1, + sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1) + /sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_EventTriggerConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1) + /sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_EventTriggerConfigInterRAT_1, + 6, /* Elements count */ + &asn_SPC_EventTriggerConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/EventTriggerConfigInterRAT.h b/src/codec_utils/RRC/EventTriggerConfigInterRAT.h new file mode 100644 index 000000000..6cb16f7c4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _EventTriggerConfigInterRAT_H_ +#define _EventTriggerConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include "NR-RS-Type.h" +#include "ReportInterval.h" +#include +#include "MeasReportQuantity.h" +#include +#include "MeasTriggerQuantityEUTRA.h" +#include +#include "Hysteresis.h" +#include "TimeToTrigger.h" +#include +#include "MeasTriggerQuantity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum EventTriggerConfigInterRAT__eventId_PR { + EventTriggerConfigInterRAT__eventId_PR_NOTHING, /* No components present */ + EventTriggerConfigInterRAT__eventId_PR_eventB1, + EventTriggerConfigInterRAT__eventId_PR_eventB2 + /* Extensions may appear below */ + +} EventTriggerConfigInterRAT__eventId_PR; +typedef enum EventTriggerConfigInterRAT__reportAmount { + EventTriggerConfigInterRAT__reportAmount_r1 = 0, + EventTriggerConfigInterRAT__reportAmount_r2 = 1, + EventTriggerConfigInterRAT__reportAmount_r4 = 2, + EventTriggerConfigInterRAT__reportAmount_r8 = 3, + EventTriggerConfigInterRAT__reportAmount_r16 = 4, + EventTriggerConfigInterRAT__reportAmount_r32 = 5, + EventTriggerConfigInterRAT__reportAmount_r64 = 6, + EventTriggerConfigInterRAT__reportAmount_infinity = 7 +} e_EventTriggerConfigInterRAT__reportAmount; + +/* EventTriggerConfigInterRAT */ +typedef struct EventTriggerConfigInterRAT { + struct EventTriggerConfigInterRAT__eventId { + EventTriggerConfigInterRAT__eventId_PR present; + union EventTriggerConfigInterRAT__eventId_u { + struct EventTriggerConfigInterRAT__eventId__eventB1 { + MeasTriggerQuantityEUTRA_t b1_ThresholdEUTRA; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + 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 EventTriggerConfigInterRAT__eventId__eventB2 { + MeasTriggerQuantity_t b2_Threshold1; + MeasTriggerQuantityEUTRA_t b2_Threshold2EUTRA; + BOOLEAN_t reportOnLeave; + Hysteresis_t hysteresis; + 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; + NR_RS_Type_t rsType; + ReportInterval_t reportInterval; + long reportAmount; + 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; +} EventTriggerConfigInterRAT_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportAmount_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_EventTriggerConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_EventTriggerConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_EventTriggerConfigInterRAT_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _EventTriggerConfigInterRAT_H_ */ +#include diff --git a/src/codec_utils/RRC/FR-Info.c b/src/codec_utils/RRC/FR-Info.c new file mode 100644 index 000000000..920305ce8 --- /dev/null +++ b/src/codec_utils/RRC/FR-Info.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FR-Info.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_fr_Type_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_fr_Type_value2enum_3[] = { + { 0, 3, "fr1" }, + { 1, 3, "fr2" } +}; +static const unsigned int asn_MAP_fr_Type_enum2value_3[] = { + 0, /* fr1(0) */ + 1 /* fr2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_fr_Type_specs_3 = { + asn_MAP_fr_Type_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_fr_Type_3 = { + "fr-Type", + "fr-Type", + &asn_OP_NativeEnumerated, + asn_DEF_fr_Type_tags_3, + sizeof(asn_DEF_fr_Type_tags_3) + /sizeof(asn_DEF_fr_Type_tags_3[0]) - 1, /* 1 */ + asn_DEF_fr_Type_tags_3, /* Same as above */ + sizeof(asn_DEF_fr_Type_tags_3) + /sizeof(asn_DEF_fr_Type_tags_3[0]), /* 2 */ + { &asn_OER_type_fr_Type_constr_3, &asn_PER_type_fr_Type_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fr_Type_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FR_Info_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FR_Info, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct FR_Info, fr_Type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fr_Type_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr-Type" + }, +}; +static const ber_tlv_tag_t asn_DEF_FR_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FR_Info_specs_1 = { + sizeof(struct FR_Info), + offsetof(struct FR_Info, _asn_ctx), + asn_MAP_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_FR_Info = { + "FR-Info", + "FR-Info", + &asn_OP_SEQUENCE, + asn_DEF_FR_Info_tags_1, + sizeof(asn_DEF_FR_Info_tags_1) + /sizeof(asn_DEF_FR_Info_tags_1[0]), /* 1 */ + asn_DEF_FR_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_FR_Info_tags_1) + /sizeof(asn_DEF_FR_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FR_Info_1, + 2, /* Elements count */ + &asn_SPC_FR_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FR-Info.h b/src/codec_utils/RRC/FR-Info.h new file mode 100644 index 000000000..6c4f32fbc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FR_Info_H_ +#define _FR_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FR_Info__fr_Type { + FR_Info__fr_Type_fr1 = 0, + FR_Info__fr_Type_fr2 = 1 +} e_FR_Info__fr_Type; + +/* FR-Info */ +typedef struct FR_Info { + ServCellIndex_t servCellIndex; + long fr_Type; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FR_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_fr_Type_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FR_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_FR_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_FR_Info_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FR_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/FR-InfoList.c b/src/codec_utils/RRC/FR-InfoList.c new file mode 100644 index 000000000..908676698 --- /dev/null +++ b/src/codec_utils/RRC/FR-InfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FR-InfoList.h" + +#include "FR-Info.h" +static asn_oer_constraints_t asn_OER_type_FR_InfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +asn_per_constraints_t asn_PER_type_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_FR_InfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FR_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FR_InfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FR_InfoList_specs_1 = { + sizeof(struct FR_InfoList), + offsetof(struct FR_InfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_FR_InfoList = { + "FR-InfoList", + "FR-InfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_FR_InfoList_tags_1, + sizeof(asn_DEF_FR_InfoList_tags_1) + /sizeof(asn_DEF_FR_InfoList_tags_1[0]), /* 1 */ + asn_DEF_FR_InfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_FR_InfoList_tags_1) + /sizeof(asn_DEF_FR_InfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_FR_InfoList_constr_1, &asn_PER_type_FR_InfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FR_InfoList_1, + 1, /* Single element */ + &asn_SPC_FR_InfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FR-InfoList.h b/src/codec_utils/RRC/FR-InfoList.h new file mode 100644 index 000000000..1adffb582 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FR_InfoList_H_ +#define _FR_InfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FR_Info; + +/* FR-InfoList */ +typedef struct FR_InfoList { + A_SEQUENCE_OF(struct FR_Info) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FR_InfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FR_InfoList; +extern asn_SET_OF_specifics_t asn_SPC_FR_InfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_FR_InfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_FR_InfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FR_InfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/FailureInfoRLC-Bearer.c b/src/codec_utils/RRC/FailureInfoRLC-Bearer.c new file mode 100644 index 000000000..ccb9ca5c7 --- /dev/null +++ b/src/codec_utils/RRC/FailureInfoRLC-Bearer.c @@ -0,0 +1,123 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FailureInfoRLC-Bearer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_failureType_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_failureType_value2enum_4[] = { + { 0, 11, "duplication" }, + { 1, 6, "spare3" }, + { 2, 6, "spare2" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_failureType_enum2value_4[] = { + 0, /* duplication(0) */ + 3, /* spare1(3) */ + 2, /* spare2(2) */ + 1 /* spare3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_failureType_specs_4 = { + asn_MAP_failureType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_failureType_4 = { + "failureType", + "failureType", + &asn_OP_NativeEnumerated, + asn_DEF_failureType_tags_4, + sizeof(asn_DEF_failureType_tags_4) + /sizeof(asn_DEF_failureType_tags_4[0]) - 1, /* 1 */ + asn_DEF_failureType_tags_4, /* Same as above */ + sizeof(asn_DEF_failureType_tags_4) + /sizeof(asn_DEF_failureType_tags_4[0]), /* 2 */ + { &asn_OER_type_failureType_constr_4, &asn_PER_type_failureType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_failureType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FailureInfoRLC_Bearer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FailureInfoRLC_Bearer, cellGroupId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroupId" + }, + { ATF_NOFLAGS, 0, offsetof(struct FailureInfoRLC_Bearer, logicalChannelIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct FailureInfoRLC_Bearer, failureType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_failureType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureType" + }, +}; +static const ber_tlv_tag_t asn_DEF_FailureInfoRLC_Bearer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FailureInfoRLC_Bearer_specs_1 = { + sizeof(struct FailureInfoRLC_Bearer), + offsetof(struct FailureInfoRLC_Bearer, _asn_ctx), + asn_MAP_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_FailureInfoRLC_Bearer = { + "FailureInfoRLC-Bearer", + "FailureInfoRLC-Bearer", + &asn_OP_SEQUENCE, + asn_DEF_FailureInfoRLC_Bearer_tags_1, + sizeof(asn_DEF_FailureInfoRLC_Bearer_tags_1) + /sizeof(asn_DEF_FailureInfoRLC_Bearer_tags_1[0]), /* 1 */ + asn_DEF_FailureInfoRLC_Bearer_tags_1, /* Same as above */ + sizeof(asn_DEF_FailureInfoRLC_Bearer_tags_1) + /sizeof(asn_DEF_FailureInfoRLC_Bearer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FailureInfoRLC_Bearer_1, + 3, /* Elements count */ + &asn_SPC_FailureInfoRLC_Bearer_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FailureInfoRLC-Bearer.h b/src/codec_utils/RRC/FailureInfoRLC-Bearer.h new file mode 100644 index 000000000..e1961ff53 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FailureInfoRLC_Bearer_H_ +#define _FailureInfoRLC_Bearer_H_ + + +#include + +/* Including external dependencies */ +#include "CellGroupId.h" +#include "LogicalChannelIdentity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FailureInfoRLC_Bearer__failureType { + FailureInfoRLC_Bearer__failureType_duplication = 0, + FailureInfoRLC_Bearer__failureType_spare3 = 1, + FailureInfoRLC_Bearer__failureType_spare2 = 2, + FailureInfoRLC_Bearer__failureType_spare1 = 3 +} e_FailureInfoRLC_Bearer__failureType; + +/* FailureInfoRLC-Bearer */ +typedef struct FailureInfoRLC_Bearer { + CellGroupId_t cellGroupId; + LogicalChannelIdentity_t logicalChannelIdentity; + long failureType; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FailureInfoRLC_Bearer_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_failureType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FailureInfoRLC_Bearer; +extern asn_SEQUENCE_specifics_t asn_SPC_FailureInfoRLC_Bearer_specs_1; +extern asn_TYPE_member_t asn_MBR_FailureInfoRLC_Bearer_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FailureInfoRLC_Bearer_H_ */ +#include diff --git a/src/codec_utils/RRC/FailureInformation-IEs.c b/src/codec_utils/RRC/FailureInformation-IEs.c new file mode 100644 index 000000000..a144152db --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FailureInformation-IEs.h" + +#include "FailureInfoRLC-Bearer.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct FailureInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FailureInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct FailureInformation_IEs, failureInfoRLC_Bearer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FailureInfoRLC_Bearer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInfoRLC-Bearer" + }, + { ATF_POINTER, 2, offsetof(struct 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 FailureInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_FailureInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_FailureInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FailureInformation_IEs_specs_1 = { + sizeof(struct FailureInformation_IEs), + offsetof(struct FailureInformation_IEs, _asn_ctx), + asn_MAP_FailureInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FailureInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FailureInformation_IEs = { + "FailureInformation-IEs", + "FailureInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_FailureInformation_IEs_tags_1, + sizeof(asn_DEF_FailureInformation_IEs_tags_1) + /sizeof(asn_DEF_FailureInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_FailureInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_FailureInformation_IEs_tags_1) + /sizeof(asn_DEF_FailureInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FailureInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_FailureInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FailureInformation-IEs.h b/src/codec_utils/RRC/FailureInformation-IEs.h new file mode 100644 index 000000000..5e1563dfc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FailureInformation_IEs_H_ +#define _FailureInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FailureInfoRLC_Bearer; + +/* FailureInformation-IEs */ +typedef struct FailureInformation_IEs { + struct FailureInfoRLC_Bearer *failureInfoRLC_Bearer; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} FailureInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FailureInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_FailureInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_FailureInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FailureInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/FailureInformation.c b/src/codec_utils/RRC/FailureInformation.c new file mode 100644 index 000000000..1b3e0163f --- /dev/null +++ b/src/codec_utils/RRC/FailureInformation.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FailureInformation.h" + +#include "FailureInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct FailureInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct FailureInformation__criticalExtensions, choice.failureInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FailureInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInformation" + }, + { ATF_POINTER, 0, offsetof(struct FailureInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct FailureInformation__criticalExtensions), + offsetof(struct FailureInformation__criticalExtensions, _asn_ctx), + offsetof(struct FailureInformation__criticalExtensions, present), + sizeof(((struct FailureInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FailureInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FailureInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_FailureInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_FailureInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FailureInformation_specs_1 = { + sizeof(struct FailureInformation), + offsetof(struct FailureInformation, _asn_ctx), + asn_MAP_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_FailureInformation = { + "FailureInformation", + "FailureInformation", + &asn_OP_SEQUENCE, + asn_DEF_FailureInformation_tags_1, + sizeof(asn_DEF_FailureInformation_tags_1) + /sizeof(asn_DEF_FailureInformation_tags_1[0]), /* 1 */ + asn_DEF_FailureInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_FailureInformation_tags_1) + /sizeof(asn_DEF_FailureInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FailureInformation_1, + 1, /* Elements count */ + &asn_SPC_FailureInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FailureInformation.h b/src/codec_utils/RRC/FailureInformation.h new file mode 100644 index 000000000..bf1591e57 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FailureInformation_H_ +#define _FailureInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FailureInformation__criticalExtensions_PR { + FailureInformation__criticalExtensions_PR_NOTHING, /* No components present */ + FailureInformation__criticalExtensions_PR_failureInformation, + FailureInformation__criticalExtensions_PR_criticalExtensionsFuture +} FailureInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct FailureInformation_IEs; + +/* FailureInformation */ +typedef struct FailureInformation { + struct FailureInformation__criticalExtensions { + FailureInformation__criticalExtensions_PR present; + union FailureInformation__criticalExtensions_u { + struct FailureInformation_IEs *failureInformation; + struct 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; +} FailureInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FailureInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_FailureInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_FailureInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FailureInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSet.c b/src/codec_utils/RRC/FeatureSet.c new file mode 100644 index 000000000..a7c77f8bb --- /dev/null +++ b/src/codec_utils/RRC/FeatureSet.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSet.h" + +static asn_oer_constraints_t asn_OER_type_FeatureSet_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_eutra_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSet__eutra, downlinkSetEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetEUTRA_DownlinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSetEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct FeatureSet__eutra, uplinkSetEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetEUTRA_UplinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkSetEUTRA" + }, +}; +static const ber_tlv_tag_t asn_DEF_eutra_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_eutra_specs_2 = { + sizeof(struct FeatureSet__eutra), + offsetof(struct FeatureSet__eutra, _asn_ctx), + asn_MAP_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_eutra_2 = { + "eutra", + "eutra", + &asn_OP_SEQUENCE, + asn_DEF_eutra_tags_2, + sizeof(asn_DEF_eutra_tags_2) + /sizeof(asn_DEF_eutra_tags_2[0]) - 1, /* 1 */ + asn_DEF_eutra_tags_2, /* Same as above */ + sizeof(asn_DEF_eutra_tags_2) + /sizeof(asn_DEF_eutra_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_eutra_2, + 2, /* Elements count */ + &asn_SPC_eutra_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nr_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSet__nr, downlinkSetNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetDownlinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSetNR" + }, + { ATF_NOFLAGS, 0, offsetof(struct FeatureSet__nr, uplinkSetNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSetUplinkId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkSetNR" + }, +}; +static const ber_tlv_tag_t asn_DEF_nr_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nr_specs_5 = { + sizeof(struct FeatureSet__nr), + offsetof(struct FeatureSet__nr, _asn_ctx), + asn_MAP_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_nr_5 = { + "nr", + "nr", + &asn_OP_SEQUENCE, + asn_DEF_nr_tags_5, + sizeof(asn_DEF_nr_tags_5) + /sizeof(asn_DEF_nr_tags_5[0]) - 1, /* 1 */ + asn_DEF_nr_tags_5, /* Same as above */ + sizeof(asn_DEF_nr_tags_5) + /sizeof(asn_DEF_nr_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nr_5, + 2, /* Elements count */ + &asn_SPC_nr_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSet_1[] = { + { ATF_POINTER, 0, offsetof(struct FeatureSet, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_eutra_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, + { ATF_POINTER, 0, offsetof(struct FeatureSet, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nr_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FeatureSet_specs_1 = { + sizeof(struct FeatureSet), + offsetof(struct FeatureSet, _asn_ctx), + offsetof(struct FeatureSet, present), + sizeof(((struct FeatureSet *)0)->present), + asn_MAP_FeatureSet_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSet = { + "FeatureSet", + "FeatureSet", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_FeatureSet_constr_1, &asn_PER_type_FeatureSet_constr_1, CHOICE_constraint }, + asn_MBR_FeatureSet_1, + 2, /* Elements count */ + &asn_SPC_FeatureSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSet.h b/src/codec_utils/RRC/FeatureSet.h new file mode 100644 index 000000000..6e7506386 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSet_H_ +#define _FeatureSet_H_ + + +#include + +/* Including external dependencies */ +#include "FeatureSetEUTRA-DownlinkId.h" +#include "FeatureSetEUTRA-UplinkId.h" +#include +#include "FeatureSetDownlinkId.h" +#include "FeatureSetUplinkId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FeatureSet_PR { + FeatureSet_PR_NOTHING, /* No components present */ + FeatureSet_PR_eutra, + FeatureSet_PR_nr +} FeatureSet_PR; + +/* FeatureSet */ +typedef struct FeatureSet { + FeatureSet_PR present; + union FeatureSet_u { + struct FeatureSet__eutra { + FeatureSetEUTRA_DownlinkId_t downlinkSetEUTRA; + FeatureSetEUTRA_UplinkId_t uplinkSetEUTRA; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *eutra; + struct FeatureSet__nr { + FeatureSetDownlinkId_t downlinkSetNR; + 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; +} FeatureSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSet; +extern asn_CHOICE_specifics_t asn_SPC_FeatureSet_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSet_1[2]; +extern asn_per_constraints_t asn_PER_type_FeatureSet_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSet_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetCombination.c b/src/codec_utils/RRC/FeatureSetCombination.c new file mode 100644 index 000000000..2d1959e9e --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetCombination.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetCombination.h" + +#include "FeatureSetsPerBand.h" +static asn_oer_constraints_t asn_OER_type_FeatureSetCombination_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_FeatureSetCombination_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetsPerBand, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FeatureSetCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FeatureSetCombination_specs_1 = { + sizeof(struct FeatureSetCombination), + offsetof(struct FeatureSetCombination, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetCombination = { + "FeatureSetCombination", + "FeatureSetCombination", + &asn_OP_SEQUENCE_OF, + asn_DEF_FeatureSetCombination_tags_1, + sizeof(asn_DEF_FeatureSetCombination_tags_1) + /sizeof(asn_DEF_FeatureSetCombination_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetCombination_tags_1) + /sizeof(asn_DEF_FeatureSetCombination_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetCombination_constr_1, &asn_PER_type_FeatureSetCombination_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FeatureSetCombination_1, + 1, /* Single element */ + &asn_SPC_FeatureSetCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetCombination.h b/src/codec_utils/RRC/FeatureSetCombination.h new file mode 100644 index 000000000..529f1b46f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetCombination_H_ +#define _FeatureSetCombination_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FeatureSetsPerBand; + +/* FeatureSetCombination */ +typedef struct FeatureSetCombination { + A_SEQUENCE_OF(struct FeatureSetsPerBand) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetCombination_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetCombination; +extern asn_SET_OF_specifics_t asn_SPC_FeatureSetCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetCombination_1[1]; +extern asn_per_constraints_t asn_PER_type_FeatureSetCombination_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetCombination_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetCombinationId.c b/src/codec_utils/RRC/FeatureSetCombinationId.c new file mode 100644 index 000000000..940d98681 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetCombinationId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetCombinationId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetCombinationId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetCombinationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetCombinationId = { + "FeatureSetCombinationId", + "FeatureSetCombinationId", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetCombinationId_tags_1, + sizeof(asn_DEF_FeatureSetCombinationId_tags_1) + /sizeof(asn_DEF_FeatureSetCombinationId_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetCombinationId_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetCombinationId_tags_1) + /sizeof(asn_DEF_FeatureSetCombinationId_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetCombinationId_constr_1, &asn_PER_type_FeatureSetCombinationId_constr_1, FeatureSetCombinationId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetCombinationId.h b/src/codec_utils/RRC/FeatureSetCombinationId.h new file mode 100644 index 000000000..81aba37ba --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetCombinationId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetCombinationId_H_ +#define _FeatureSetCombinationId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetCombinationId */ +typedef long FeatureSetCombinationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetCombinationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetCombinationId; +asn_struct_free_f FeatureSetCombinationId_free; +asn_struct_print_f FeatureSetCombinationId_print; +asn_constr_check_f FeatureSetCombinationId_constraint; +ber_type_decoder_f FeatureSetCombinationId_decode_ber; +der_type_encoder_f FeatureSetCombinationId_encode_der; +xer_type_decoder_f FeatureSetCombinationId_decode_xer; +xer_type_encoder_f FeatureSetCombinationId_encode_xer; +oer_type_decoder_f FeatureSetCombinationId_decode_oer; +oer_type_encoder_f FeatureSetCombinationId_encode_oer; +per_type_decoder_f FeatureSetCombinationId_decode_uper; +per_type_encoder_f FeatureSetCombinationId_encode_uper; +per_type_decoder_f FeatureSetCombinationId_decode_aper; +per_type_encoder_f FeatureSetCombinationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetCombinationId_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetDownlink.c b/src/codec_utils/RRC/FeatureSetDownlink.c new file mode 100644 index 000000000..5de7695b3 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlink.c @@ -0,0 +1,1542 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetDownlink.h" + +#include "CSI-RS-IM-ReceptionForFeedback.h" +#include "TypeI-SinglePanelCodebook.h" +#include "TypeI-MultiPanelCodebook.h" +#include "TypeII-Codebook.h" +#include "TypeII-CodebookPortSelection.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_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_typeI_SinglePanelCodebookList_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_typeI_MultiPanelCodebookList_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_typeII_CodebookList_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_typeII_CodebookPortSelectionList_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_oer_constraints_t asn_OER_type_featureSetListPerDownlinkCC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scalingFactor_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_crossCarrierScheduling_OtherSCS_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scellWithoutSSB_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_RS_MeasSCellWithoutSSB_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srs_AssocCSI_RS_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_srs_AssocCSI_RS_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_oer_constraints_t asn_OER_type_type1_3_CSS_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcch_MonitoringAnyOccasions_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcch_MonitoringAnyOccasionsWithSpanGap_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdcch_MonitoringAnyOccasionsWithSpanGap_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_oer_constraints_t asn_OER_type_ue_SpecificUL_DL_Assignment_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpaceSharingCA_DL_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_120kHz_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_15kHz_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_30kHz_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_120kHz_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_typeI_SinglePanelCodebookList_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_typeI_SinglePanelCodebookList_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_oer_constraints_t asn_OER_type_typeI_MultiPanelCodebookList_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_typeI_MultiPanelCodebookList_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_oer_constraints_t asn_OER_type_typeII_CodebookList_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_typeII_CodebookList_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_oer_constraints_t asn_OER_type_typeII_CodebookPortSelectionList_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_typeII_CodebookPortSelectionList_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_oer_constraints_t asn_OER_memb_featureSetListPerDownlinkCC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_typeI_SinglePanelCodebookList_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_typeI_SinglePanelCodebookList_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_oer_constraints_t asn_OER_memb_typeI_MultiPanelCodebookList_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_typeI_MultiPanelCodebookList_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_oer_constraints_t asn_OER_memb_typeII_CodebookList_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_typeII_CodebookList_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_oer_constraints_t asn_OER_memb_typeII_CodebookPortSelectionList_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_typeII_CodebookPortSelectionList_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_featureSetListPerDownlinkCC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FeatureSetDownlinkPerCC_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetListPerDownlinkCC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetListPerDownlinkCC_specs_2 = { + sizeof(struct FeatureSetDownlink__featureSetListPerDownlinkCC), + offsetof(struct FeatureSetDownlink__featureSetListPerDownlinkCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetListPerDownlinkCC_2 = { + "featureSetListPerDownlinkCC", + "featureSetListPerDownlinkCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetListPerDownlinkCC_tags_2, + sizeof(asn_DEF_featureSetListPerDownlinkCC_tags_2) + /sizeof(asn_DEF_featureSetListPerDownlinkCC_tags_2[0]) - 1, /* 1 */ + asn_DEF_featureSetListPerDownlinkCC_tags_2, /* Same as above */ + sizeof(asn_DEF_featureSetListPerDownlinkCC_tags_2) + /sizeof(asn_DEF_featureSetListPerDownlinkCC_tags_2[0]), /* 2 */ + { &asn_OER_type_featureSetListPerDownlinkCC_constr_2, &asn_PER_type_featureSetListPerDownlinkCC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_featureSetListPerDownlinkCC_2, + 1, /* Single element */ + &asn_SPC_featureSetListPerDownlinkCC_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scalingFactor_value2enum_5[] = { + { 0, 4, "f0p4" }, + { 1, 5, "f0p75" }, + { 2, 4, "f0p8" } +}; +static const unsigned int asn_MAP_scalingFactor_enum2value_5[] = { + 0, /* f0p4(0) */ + 1, /* f0p75(1) */ + 2 /* f0p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scalingFactor_specs_5 = { + asn_MAP_scalingFactor_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scalingFactor_5 = { + "scalingFactor", + "scalingFactor", + &asn_OP_NativeEnumerated, + asn_DEF_scalingFactor_tags_5, + sizeof(asn_DEF_scalingFactor_tags_5) + /sizeof(asn_DEF_scalingFactor_tags_5[0]) - 1, /* 1 */ + asn_DEF_scalingFactor_tags_5, /* Same as above */ + sizeof(asn_DEF_scalingFactor_tags_5) + /sizeof(asn_DEF_scalingFactor_tags_5[0]), /* 2 */ + { &asn_OER_type_scalingFactor_constr_5, &asn_PER_type_scalingFactor_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scalingFactor_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_crossCarrierScheduling_OtherSCS_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_crossCarrierScheduling_OtherSCS_specs_9 = { + asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_crossCarrierScheduling_OtherSCS_9 = { + "crossCarrierScheduling-OtherSCS", + "crossCarrierScheduling-OtherSCS", + &asn_OP_NativeEnumerated, + asn_DEF_crossCarrierScheduling_OtherSCS_tags_9, + sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_9) + /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_9[0]) - 1, /* 1 */ + asn_DEF_crossCarrierScheduling_OtherSCS_tags_9, /* Same as above */ + sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_9) + /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_9[0]), /* 2 */ + { &asn_OER_type_crossCarrierScheduling_OtherSCS_constr_9, &asn_PER_type_crossCarrierScheduling_OtherSCS_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_crossCarrierScheduling_OtherSCS_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scellWithoutSSB_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_scellWithoutSSB_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scellWithoutSSB_specs_11 = { + asn_MAP_scellWithoutSSB_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scellWithoutSSB_11 = { + "scellWithoutSSB", + "scellWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_scellWithoutSSB_tags_11, + sizeof(asn_DEF_scellWithoutSSB_tags_11) + /sizeof(asn_DEF_scellWithoutSSB_tags_11[0]) - 1, /* 1 */ + asn_DEF_scellWithoutSSB_tags_11, /* Same as above */ + sizeof(asn_DEF_scellWithoutSSB_tags_11) + /sizeof(asn_DEF_scellWithoutSSB_tags_11[0]), /* 2 */ + { &asn_OER_type_scellWithoutSSB_constr_11, &asn_PER_type_scellWithoutSSB_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scellWithoutSSB_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_RS_MeasSCellWithoutSSB_value2enum_13[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_RS_MeasSCellWithoutSSB_enum2value_13[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_RS_MeasSCellWithoutSSB_specs_13 = { + asn_MAP_csi_RS_MeasSCellWithoutSSB_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_RS_MeasSCellWithoutSSB_13 = { + "csi-RS-MeasSCellWithoutSSB", + "csi-RS-MeasSCellWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13, + sizeof(asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13) + /sizeof(asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13[0]) - 1, /* 1 */ + asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13, /* Same as above */ + sizeof(asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13) + /sizeof(asn_DEF_csi_RS_MeasSCellWithoutSSB_tags_13[0]), /* 2 */ + { &asn_OER_type_csi_RS_MeasSCellWithoutSSB_constr_13, &asn_PER_type_csi_RS_MeasSCellWithoutSSB_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_RS_MeasSCellWithoutSSB_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_srs_AssocCSI_RS_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_srs_AssocCSI_RS_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_srs_AssocCSI_RS_specs_15 = { + asn_MAP_srs_AssocCSI_RS_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_srs_AssocCSI_RS_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_srs_AssocCSI_RS_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_srs_AssocCSI_RS_15 = { + "srs-AssocCSI-RS", + "srs-AssocCSI-RS", + &asn_OP_NativeEnumerated, + asn_DEF_srs_AssocCSI_RS_tags_15, + sizeof(asn_DEF_srs_AssocCSI_RS_tags_15) + /sizeof(asn_DEF_srs_AssocCSI_RS_tags_15[0]) - 1, /* 1 */ + asn_DEF_srs_AssocCSI_RS_tags_15, /* Same as above */ + sizeof(asn_DEF_srs_AssocCSI_RS_tags_15) + /sizeof(asn_DEF_srs_AssocCSI_RS_tags_15[0]), /* 2 */ + { &asn_OER_type_srs_AssocCSI_RS_constr_15, &asn_PER_type_srs_AssocCSI_RS_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_srs_AssocCSI_RS_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_type1_3_CSS_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_type1_3_CSS_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_type1_3_CSS_specs_17 = { + asn_MAP_type1_3_CSS_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type1_3_CSS_17 = { + "type1-3-CSS", + "type1-3-CSS", + &asn_OP_NativeEnumerated, + asn_DEF_type1_3_CSS_tags_17, + sizeof(asn_DEF_type1_3_CSS_tags_17) + /sizeof(asn_DEF_type1_3_CSS_tags_17[0]) - 1, /* 1 */ + asn_DEF_type1_3_CSS_tags_17, /* Same as above */ + sizeof(asn_DEF_type1_3_CSS_tags_17) + /sizeof(asn_DEF_type1_3_CSS_tags_17[0]), /* 2 */ + { &asn_OER_type_type1_3_CSS_constr_17, &asn_PER_type_type1_3_CSS_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type1_3_CSS_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcch_MonitoringAnyOccasions_value2enum_19[] = { + { 0, 14, "withoutDCI-Gap" }, + { 1, 11, "withDCI-Gap" } +}; +static const unsigned int asn_MAP_pdcch_MonitoringAnyOccasions_enum2value_19[] = { + 1, /* withDCI-Gap(1) */ + 0 /* withoutDCI-Gap(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcch_MonitoringAnyOccasions_specs_19 = { + asn_MAP_pdcch_MonitoringAnyOccasions_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcch_MonitoringAnyOccasions_19 = { + "pdcch-MonitoringAnyOccasions", + "pdcch-MonitoringAnyOccasions", + &asn_OP_NativeEnumerated, + asn_DEF_pdcch_MonitoringAnyOccasions_tags_19, + sizeof(asn_DEF_pdcch_MonitoringAnyOccasions_tags_19) + /sizeof(asn_DEF_pdcch_MonitoringAnyOccasions_tags_19[0]) - 1, /* 1 */ + asn_DEF_pdcch_MonitoringAnyOccasions_tags_19, /* Same as above */ + sizeof(asn_DEF_pdcch_MonitoringAnyOccasions_tags_19) + /sizeof(asn_DEF_pdcch_MonitoringAnyOccasions_tags_19[0]), /* 2 */ + { &asn_OER_type_pdcch_MonitoringAnyOccasions_constr_19, &asn_PER_type_pdcch_MonitoringAnyOccasions_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcch_MonitoringAnyOccasions_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcch_MonitoringAnyOccasionsWithSpanGap_value2enum_22[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcch_MonitoringAnyOccasionsWithSpanGap_enum2value_22[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcch_MonitoringAnyOccasionsWithSpanGap_specs_22 = { + asn_MAP_pdcch_MonitoringAnyOccasionsWithSpanGap_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_pdcch_MonitoringAnyOccasionsWithSpanGap_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_pdcch_MonitoringAnyOccasionsWithSpanGap_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_pdcch_MonitoringAnyOccasionsWithSpanGap_22 = { + "pdcch-MonitoringAnyOccasionsWithSpanGap", + "pdcch-MonitoringAnyOccasionsWithSpanGap", + &asn_OP_NativeEnumerated, + asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22, + sizeof(asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22) + /sizeof(asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22[0]) - 1, /* 1 */ + asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22, /* Same as above */ + sizeof(asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22) + /sizeof(asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_tags_22[0]), /* 2 */ + { &asn_OER_type_pdcch_MonitoringAnyOccasionsWithSpanGap_constr_22, &asn_PER_type_pdcch_MonitoringAnyOccasionsWithSpanGap_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcch_MonitoringAnyOccasionsWithSpanGap_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ue_SpecificUL_DL_Assignment_value2enum_24[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ue_SpecificUL_DL_Assignment_enum2value_24[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ue_SpecificUL_DL_Assignment_specs_24 = { + asn_MAP_ue_SpecificUL_DL_Assignment_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ue_SpecificUL_DL_Assignment_24 = { + "ue-SpecificUL-DL-Assignment", + "ue-SpecificUL-DL-Assignment", + &asn_OP_NativeEnumerated, + asn_DEF_ue_SpecificUL_DL_Assignment_tags_24, + sizeof(asn_DEF_ue_SpecificUL_DL_Assignment_tags_24) + /sizeof(asn_DEF_ue_SpecificUL_DL_Assignment_tags_24[0]) - 1, /* 1 */ + asn_DEF_ue_SpecificUL_DL_Assignment_tags_24, /* Same as above */ + sizeof(asn_DEF_ue_SpecificUL_DL_Assignment_tags_24) + /sizeof(asn_DEF_ue_SpecificUL_DL_Assignment_tags_24[0]), /* 2 */ + { &asn_OER_type_ue_SpecificUL_DL_Assignment_constr_24, &asn_PER_type_ue_SpecificUL_DL_Assignment_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ue_SpecificUL_DL_Assignment_specs_24 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_searchSpaceSharingCA_DL_value2enum_26[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_searchSpaceSharingCA_DL_enum2value_26[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_searchSpaceSharingCA_DL_specs_26 = { + asn_MAP_searchSpaceSharingCA_DL_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_searchSpaceSharingCA_DL_26 = { + "searchSpaceSharingCA-DL", + "searchSpaceSharingCA-DL", + &asn_OP_NativeEnumerated, + asn_DEF_searchSpaceSharingCA_DL_tags_26, + sizeof(asn_DEF_searchSpaceSharingCA_DL_tags_26) + /sizeof(asn_DEF_searchSpaceSharingCA_DL_tags_26[0]) - 1, /* 1 */ + asn_DEF_searchSpaceSharingCA_DL_tags_26, /* Same as above */ + sizeof(asn_DEF_searchSpaceSharingCA_DL_tags_26) + /sizeof(asn_DEF_searchSpaceSharingCA_DL_tags_26[0]), /* 2 */ + { &asn_OER_type_searchSpaceSharingCA_DL_constr_26, &asn_PER_type_searchSpaceSharingCA_DL_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_searchSpaceSharingCA_DL_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_29[] = { + { 0, 2, "s7" }, + { 1, 3, "s14" }, + { 2, 3, "s28" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_29[] = { + 1, /* s14(1) */ + 2, /* s28(2) */ + 0 /* s7(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_29 = { + asn_MAP_scs_60kHz_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_29 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_29, + sizeof(asn_DEF_scs_60kHz_tags_29) + /sizeof(asn_DEF_scs_60kHz_tags_29[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_29, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_29) + /sizeof(asn_DEF_scs_60kHz_tags_29[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_29, &asn_PER_type_scs_60kHz_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_33[] = { + { 0, 3, "s14" }, + { 1, 3, "s28" } +}; +static const unsigned int asn_MAP_scs_120kHz_enum2value_33[] = { + 0, /* s14(0) */ + 1 /* s28(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_33 = { + asn_MAP_scs_120kHz_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_120kHz_33 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_120kHz_tags_33, + sizeof(asn_DEF_scs_120kHz_tags_33) + /sizeof(asn_DEF_scs_120kHz_tags_33[0]) - 1, /* 1 */ + asn_DEF_scs_120kHz_tags_33, /* Same as above */ + sizeof(asn_DEF_scs_120kHz_tags_33) + /sizeof(asn_DEF_scs_120kHz_tags_33[0]), /* 2 */ + { &asn_OER_type_scs_120kHz_constr_33, &asn_PER_type_scs_120kHz_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_120kHz_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_timeDurationForQCL_28[] = { + { ATF_POINTER, 2, offsetof(struct FeatureSetDownlink__timeDurationForQCL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetDownlink__timeDurationForQCL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_120kHz_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_timeDurationForQCL_oms_28[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_timeDurationForQCL_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_timeDurationForQCL_specs_28 = { + sizeof(struct FeatureSetDownlink__timeDurationForQCL), + offsetof(struct FeatureSetDownlink__timeDurationForQCL, _asn_ctx), + asn_MAP_timeDurationForQCL_tag2el_28, + 2, /* Count of tags in the map */ + asn_MAP_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_timeDurationForQCL_28 = { + "timeDurationForQCL", + "timeDurationForQCL", + &asn_OP_SEQUENCE, + asn_DEF_timeDurationForQCL_tags_28, + sizeof(asn_DEF_timeDurationForQCL_tags_28) + /sizeof(asn_DEF_timeDurationForQCL_tags_28[0]) - 1, /* 1 */ + asn_DEF_timeDurationForQCL_tags_28, /* Same as above */ + sizeof(asn_DEF_timeDurationForQCL_tags_28) + /sizeof(asn_DEF_timeDurationForQCL_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_timeDurationForQCL_28, + 2, /* Elements count */ + &asn_SPC_timeDurationForQCL_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_15kHz_value2enum_37[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_15kHz_enum2value_37[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_15kHz_specs_37 = { + asn_MAP_scs_15kHz_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_15kHz_37 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_15kHz_tags_37, + sizeof(asn_DEF_scs_15kHz_tags_37) + /sizeof(asn_DEF_scs_15kHz_tags_37[0]) - 1, /* 1 */ + asn_DEF_scs_15kHz_tags_37, /* Same as above */ + sizeof(asn_DEF_scs_15kHz_tags_37) + /sizeof(asn_DEF_scs_15kHz_tags_37[0]), /* 2 */ + { &asn_OER_type_scs_15kHz_constr_37, &asn_PER_type_scs_15kHz_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_15kHz_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_30kHz_value2enum_41[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_30kHz_enum2value_41[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_30kHz_specs_41 = { + asn_MAP_scs_30kHz_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_30kHz_41 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_30kHz_tags_41, + sizeof(asn_DEF_scs_30kHz_tags_41) + /sizeof(asn_DEF_scs_30kHz_tags_41[0]) - 1, /* 1 */ + asn_DEF_scs_30kHz_tags_41, /* Same as above */ + sizeof(asn_DEF_scs_30kHz_tags_41) + /sizeof(asn_DEF_scs_30kHz_tags_41[0]), /* 2 */ + { &asn_OER_type_scs_30kHz_constr_41, &asn_PER_type_scs_30kHz_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_30kHz_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_45[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_45[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_45 = { + asn_MAP_scs_60kHz_value2enum_45, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_45 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_45, + sizeof(asn_DEF_scs_60kHz_tags_45) + /sizeof(asn_DEF_scs_60kHz_tags_45[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_45, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_45) + /sizeof(asn_DEF_scs_60kHz_tags_45[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_45, &asn_PER_type_scs_60kHz_constr_45, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_45 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_49[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_120kHz_enum2value_49[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_49 = { + asn_MAP_scs_120kHz_value2enum_49, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_120kHz_49 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_120kHz_tags_49, + sizeof(asn_DEF_scs_120kHz_tags_49) + /sizeof(asn_DEF_scs_120kHz_tags_49[0]) - 1, /* 1 */ + asn_DEF_scs_120kHz_tags_49, /* Same as above */ + sizeof(asn_DEF_scs_120kHz_tags_49) + /sizeof(asn_DEF_scs_120kHz_tags_49[0]), /* 2 */ + { &asn_OER_type_scs_120kHz_constr_49, &asn_PER_type_scs_120kHz_constr_49, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_120kHz_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdsch_ProcessingType1_DifferentTB_PerSlot_36[] = { + { ATF_POINTER, 4, offsetof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_15kHz_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_30kHz_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_120kHz_49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_pdsch_ProcessingType1_DifferentTB_PerSlot_oms_36[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_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_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_pdsch_ProcessingType1_DifferentTB_PerSlot_specs_36 = { + sizeof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot), + offsetof(struct FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot, _asn_ctx), + asn_MAP_pdsch_ProcessingType1_DifferentTB_PerSlot_tag2el_36, + 4, /* Count of tags in the map */ + asn_MAP_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_pdsch_ProcessingType1_DifferentTB_PerSlot_36 = { + "pdsch-ProcessingType1-DifferentTB-PerSlot", + "pdsch-ProcessingType1-DifferentTB-PerSlot", + &asn_OP_SEQUENCE, + asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36, + sizeof(asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36) + /sizeof(asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36[0]) - 1, /* 1 */ + asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36, /* Same as above */ + sizeof(asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36) + /sizeof(asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_tags_36[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pdsch_ProcessingType1_DifferentTB_PerSlot_36, + 4, /* Elements count */ + &asn_SPC_pdsch_ProcessingType1_DifferentTB_PerSlot_specs_36 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeI_SinglePanelCodebookList_54[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TypeI_SinglePanelCodebook, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeI_SinglePanelCodebookList_tags_54[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_typeI_SinglePanelCodebookList_specs_54 = { + sizeof(struct FeatureSetDownlink__typeI_SinglePanelCodebookList), + offsetof(struct FeatureSetDownlink__typeI_SinglePanelCodebookList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_typeI_SinglePanelCodebookList_54 = { + "typeI-SinglePanelCodebookList", + "typeI-SinglePanelCodebookList", + &asn_OP_SEQUENCE_OF, + asn_DEF_typeI_SinglePanelCodebookList_tags_54, + sizeof(asn_DEF_typeI_SinglePanelCodebookList_tags_54) + /sizeof(asn_DEF_typeI_SinglePanelCodebookList_tags_54[0]) - 1, /* 1 */ + asn_DEF_typeI_SinglePanelCodebookList_tags_54, /* Same as above */ + sizeof(asn_DEF_typeI_SinglePanelCodebookList_tags_54) + /sizeof(asn_DEF_typeI_SinglePanelCodebookList_tags_54[0]), /* 2 */ + { &asn_OER_type_typeI_SinglePanelCodebookList_constr_54, &asn_PER_type_typeI_SinglePanelCodebookList_constr_54, SEQUENCE_OF_constraint }, + asn_MBR_typeI_SinglePanelCodebookList_54, + 1, /* Single element */ + &asn_SPC_typeI_SinglePanelCodebookList_specs_54 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeI_MultiPanelCodebookList_56[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TypeI_MultiPanelCodebook, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeI_MultiPanelCodebookList_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_typeI_MultiPanelCodebookList_specs_56 = { + sizeof(struct FeatureSetDownlink__typeI_MultiPanelCodebookList), + offsetof(struct FeatureSetDownlink__typeI_MultiPanelCodebookList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_typeI_MultiPanelCodebookList_56 = { + "typeI-MultiPanelCodebookList", + "typeI-MultiPanelCodebookList", + &asn_OP_SEQUENCE_OF, + asn_DEF_typeI_MultiPanelCodebookList_tags_56, + sizeof(asn_DEF_typeI_MultiPanelCodebookList_tags_56) + /sizeof(asn_DEF_typeI_MultiPanelCodebookList_tags_56[0]) - 1, /* 1 */ + asn_DEF_typeI_MultiPanelCodebookList_tags_56, /* Same as above */ + sizeof(asn_DEF_typeI_MultiPanelCodebookList_tags_56) + /sizeof(asn_DEF_typeI_MultiPanelCodebookList_tags_56[0]), /* 2 */ + { &asn_OER_type_typeI_MultiPanelCodebookList_constr_56, &asn_PER_type_typeI_MultiPanelCodebookList_constr_56, SEQUENCE_OF_constraint }, + asn_MBR_typeI_MultiPanelCodebookList_56, + 1, /* Single element */ + &asn_SPC_typeI_MultiPanelCodebookList_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeII_CodebookList_58[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TypeII_Codebook, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeII_CodebookList_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_typeII_CodebookList_specs_58 = { + sizeof(struct FeatureSetDownlink__typeII_CodebookList), + offsetof(struct FeatureSetDownlink__typeII_CodebookList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_typeII_CodebookList_58 = { + "typeII-CodebookList", + "typeII-CodebookList", + &asn_OP_SEQUENCE_OF, + asn_DEF_typeII_CodebookList_tags_58, + sizeof(asn_DEF_typeII_CodebookList_tags_58) + /sizeof(asn_DEF_typeII_CodebookList_tags_58[0]) - 1, /* 1 */ + asn_DEF_typeII_CodebookList_tags_58, /* Same as above */ + sizeof(asn_DEF_typeII_CodebookList_tags_58) + /sizeof(asn_DEF_typeII_CodebookList_tags_58[0]), /* 2 */ + { &asn_OER_type_typeII_CodebookList_constr_58, &asn_PER_type_typeII_CodebookList_constr_58, SEQUENCE_OF_constraint }, + asn_MBR_typeII_CodebookList_58, + 1, /* Single element */ + &asn_SPC_typeII_CodebookList_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeII_CodebookPortSelectionList_60[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TypeII_CodebookPortSelection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeII_CodebookPortSelectionList_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_typeII_CodebookPortSelectionList_specs_60 = { + sizeof(struct FeatureSetDownlink__typeII_CodebookPortSelectionList), + offsetof(struct FeatureSetDownlink__typeII_CodebookPortSelectionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_typeII_CodebookPortSelectionList_60 = { + "typeII-CodebookPortSelectionList", + "typeII-CodebookPortSelectionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_typeII_CodebookPortSelectionList_tags_60, + sizeof(asn_DEF_typeII_CodebookPortSelectionList_tags_60) + /sizeof(asn_DEF_typeII_CodebookPortSelectionList_tags_60[0]) - 1, /* 1 */ + asn_DEF_typeII_CodebookPortSelectionList_tags_60, /* Same as above */ + sizeof(asn_DEF_typeII_CodebookPortSelectionList_tags_60) + /sizeof(asn_DEF_typeII_CodebookPortSelectionList_tags_60[0]), /* 2 */ + { &asn_OER_type_typeII_CodebookPortSelectionList_constr_60, &asn_PER_type_typeII_CodebookPortSelectionList_constr_60, SEQUENCE_OF_constraint }, + asn_MBR_typeII_CodebookPortSelectionList_60, + 1, /* Single element */ + &asn_SPC_typeII_CodebookPortSelectionList_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSetDownlink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetDownlink, featureSetListPerDownlinkCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_featureSetListPerDownlinkCC_2, + 0, + { &asn_OER_memb_featureSetListPerDownlinkCC_constr_2, &asn_PER_memb_featureSetListPerDownlinkCC_constr_2, memb_featureSetListPerDownlinkCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetListPerDownlinkCC" + }, + { ATF_POINTER, 18, offsetof(struct FeatureSetDownlink, intraBandFreqSeparationDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqSeparationClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraBandFreqSeparationDL" + }, + { ATF_POINTER, 17, offsetof(struct FeatureSetDownlink, scalingFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scalingFactor_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactor" + }, + { ATF_POINTER, 16, offsetof(struct FeatureSetDownlink, crossCarrierScheduling_OtherSCS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_crossCarrierScheduling_OtherSCS_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-OtherSCS" + }, + { ATF_POINTER, 15, offsetof(struct FeatureSetDownlink, scellWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scellWithoutSSB_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scellWithoutSSB" + }, + { ATF_POINTER, 14, offsetof(struct FeatureSetDownlink, csi_RS_MeasSCellWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_RS_MeasSCellWithoutSSB_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-MeasSCellWithoutSSB" + }, + { ATF_POINTER, 13, offsetof(struct FeatureSetDownlink, srs_AssocCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_srs_AssocCSI_RS_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-AssocCSI-RS" + }, + { ATF_POINTER, 12, offsetof(struct FeatureSetDownlink, type1_3_CSS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type1_3_CSS_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1-3-CSS" + }, + { ATF_POINTER, 11, offsetof(struct FeatureSetDownlink, pdcch_MonitoringAnyOccasions), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcch_MonitoringAnyOccasions_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-MonitoringAnyOccasions" + }, + { ATF_POINTER, 10, offsetof(struct FeatureSetDownlink, pdcch_MonitoringAnyOccasionsWithSpanGap), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-MonitoringAnyOccasionsWithSpanGap" + }, + { ATF_POINTER, 9, offsetof(struct FeatureSetDownlink, ue_SpecificUL_DL_Assignment), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ue_SpecificUL_DL_Assignment_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-SpecificUL-DL-Assignment" + }, + { ATF_POINTER, 8, offsetof(struct FeatureSetDownlink, searchSpaceSharingCA_DL), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_searchSpaceSharingCA_DL_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSharingCA-DL" + }, + { ATF_POINTER, 7, offsetof(struct FeatureSetDownlink, timeDurationForQCL), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_timeDurationForQCL_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDurationForQCL" + }, + { ATF_POINTER, 6, offsetof(struct FeatureSetDownlink, pdsch_ProcessingType1_DifferentTB_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_pdsch_ProcessingType1_DifferentTB_PerSlot_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ProcessingType1-DifferentTB-PerSlot" + }, + { ATF_POINTER, 5, offsetof(struct FeatureSetDownlink, csi_RS_IM_ReceptionForFeedback), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_IM_ReceptionForFeedback, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-IM-ReceptionForFeedback" + }, + { ATF_POINTER, 4, offsetof(struct FeatureSetDownlink, typeI_SinglePanelCodebookList), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_typeI_SinglePanelCodebookList_54, + 0, + { &asn_OER_memb_typeI_SinglePanelCodebookList_constr_54, &asn_PER_memb_typeI_SinglePanelCodebookList_constr_54, memb_typeI_SinglePanelCodebookList_constraint_1 }, + 0, 0, /* No default value */ + "typeI-SinglePanelCodebookList" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetDownlink, typeI_MultiPanelCodebookList), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + 0, + &asn_DEF_typeI_MultiPanelCodebookList_56, + 0, + { &asn_OER_memb_typeI_MultiPanelCodebookList_constr_56, &asn_PER_memb_typeI_MultiPanelCodebookList_constr_56, memb_typeI_MultiPanelCodebookList_constraint_1 }, + 0, 0, /* No default value */ + "typeI-MultiPanelCodebookList" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetDownlink, typeII_CodebookList), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_typeII_CodebookList_58, + 0, + { &asn_OER_memb_typeII_CodebookList_constr_58, &asn_PER_memb_typeII_CodebookList_constr_58, memb_typeII_CodebookList_constraint_1 }, + 0, 0, /* No default value */ + "typeII-CodebookList" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetDownlink, typeII_CodebookPortSelectionList), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_typeII_CodebookPortSelectionList_60, + 0, + { &asn_OER_memb_typeII_CodebookPortSelectionList_constr_60, &asn_PER_memb_typeII_CodebookPortSelectionList_constr_60, memb_typeII_CodebookPortSelectionList_constraint_1 }, + 0, 0, /* No default value */ + "typeII-CodebookPortSelectionList" + }, +}; +static const int asn_MAP_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_FeatureSetDownlink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 }, /* srs-AssocCSI-RS */ + { (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 }, /* pdcch-MonitoringAnyOccasionsWithSpanGap */ + { (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 }, /* csi-RS-IM-ReceptionForFeedback */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* typeI-SinglePanelCodebookList */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* typeI-MultiPanelCodebookList */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* typeII-CodebookList */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 } /* typeII-CodebookPortSelectionList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FeatureSetDownlink_specs_1 = { + sizeof(struct FeatureSetDownlink), + offsetof(struct FeatureSetDownlink, _asn_ctx), + asn_MAP_FeatureSetDownlink_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_FeatureSetDownlink_oms_1, /* Optional members */ + 18, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlink = { + "FeatureSetDownlink", + "FeatureSetDownlink", + &asn_OP_SEQUENCE, + asn_DEF_FeatureSetDownlink_tags_1, + sizeof(asn_DEF_FeatureSetDownlink_tags_1) + /sizeof(asn_DEF_FeatureSetDownlink_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetDownlink_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetDownlink_tags_1) + /sizeof(asn_DEF_FeatureSetDownlink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FeatureSetDownlink_1, + 19, /* Elements count */ + &asn_SPC_FeatureSetDownlink_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetDownlink.h b/src/codec_utils/RRC/FeatureSetDownlink.h new file mode 100644 index 000000000..d25112a48 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetDownlink_H_ +#define _FeatureSetDownlink_H_ + + +#include + +/* Including external dependencies */ +#include "FreqSeparationClass.h" +#include +#include "FeatureSetDownlinkPerCC-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FeatureSetDownlink__scalingFactor { + FeatureSetDownlink__scalingFactor_f0p4 = 0, + FeatureSetDownlink__scalingFactor_f0p75 = 1, + FeatureSetDownlink__scalingFactor_f0p8 = 2 +} e_FeatureSetDownlink__scalingFactor; +typedef enum FeatureSetDownlink__crossCarrierScheduling_OtherSCS { + FeatureSetDownlink__crossCarrierScheduling_OtherSCS_supported = 0 +} e_FeatureSetDownlink__crossCarrierScheduling_OtherSCS; +typedef enum FeatureSetDownlink__scellWithoutSSB { + FeatureSetDownlink__scellWithoutSSB_supported = 0 +} e_FeatureSetDownlink__scellWithoutSSB; +typedef enum FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB { + FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB_supported = 0 +} e_FeatureSetDownlink__csi_RS_MeasSCellWithoutSSB; +typedef enum FeatureSetDownlink__srs_AssocCSI_RS { + FeatureSetDownlink__srs_AssocCSI_RS_supported = 0 +} e_FeatureSetDownlink__srs_AssocCSI_RS; +typedef enum FeatureSetDownlink__type1_3_CSS { + FeatureSetDownlink__type1_3_CSS_supported = 0 +} e_FeatureSetDownlink__type1_3_CSS; +typedef enum FeatureSetDownlink__pdcch_MonitoringAnyOccasions { + FeatureSetDownlink__pdcch_MonitoringAnyOccasions_withoutDCI_Gap = 0, + FeatureSetDownlink__pdcch_MonitoringAnyOccasions_withDCI_Gap = 1 +} e_FeatureSetDownlink__pdcch_MonitoringAnyOccasions; +typedef enum FeatureSetDownlink__pdcch_MonitoringAnyOccasionsWithSpanGap { + FeatureSetDownlink__pdcch_MonitoringAnyOccasionsWithSpanGap_supported = 0 +} e_FeatureSetDownlink__pdcch_MonitoringAnyOccasionsWithSpanGap; +typedef enum FeatureSetDownlink__ue_SpecificUL_DL_Assignment { + FeatureSetDownlink__ue_SpecificUL_DL_Assignment_supported = 0 +} e_FeatureSetDownlink__ue_SpecificUL_DL_Assignment; +typedef enum FeatureSetDownlink__searchSpaceSharingCA_DL { + FeatureSetDownlink__searchSpaceSharingCA_DL_supported = 0 +} e_FeatureSetDownlink__searchSpaceSharingCA_DL; +typedef enum FeatureSetDownlink__timeDurationForQCL__scs_60kHz { + FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s7 = 0, + FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s14 = 1, + FeatureSetDownlink__timeDurationForQCL__scs_60kHz_s28 = 2 +} e_FeatureSetDownlink__timeDurationForQCL__scs_60kHz; +typedef enum FeatureSetDownlink__timeDurationForQCL__scs_120kHz { + FeatureSetDownlink__timeDurationForQCL__scs_120kHz_s14 = 0, + FeatureSetDownlink__timeDurationForQCL__scs_120kHz_s28 = 1 +} e_FeatureSetDownlink__timeDurationForQCL__scs_120kHz; +typedef enum FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz { + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto2 = 0, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto4 = 1, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz_upto7 = 2 +} e_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_15kHz; +typedef enum FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz { + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto2 = 0, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto4 = 1, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz_upto7 = 2 +} e_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_30kHz; +typedef enum FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz { + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto2 = 0, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto4 = 1, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz_upto7 = 2 +} e_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_60kHz; +typedef enum FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz { + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto2 = 0, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto4 = 1, + FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz_upto7 = 2 +} e_FeatureSetDownlink__pdsch_ProcessingType1_DifferentTB_PerSlot__scs_120kHz; + +/* Forward declarations */ +struct CSI_RS_IM_ReceptionForFeedback; +struct TypeI_SinglePanelCodebook; +struct TypeI_MultiPanelCodebook; +struct TypeII_Codebook; +struct TypeII_CodebookPortSelection; + +/* FeatureSetDownlink */ +typedef struct FeatureSetDownlink { + struct FeatureSetDownlink__featureSetListPerDownlinkCC { + A_SEQUENCE_OF(FeatureSetDownlinkPerCC_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } featureSetListPerDownlinkCC; + FreqSeparationClass_t *intraBandFreqSeparationDL; /* OPTIONAL */ + long *scalingFactor; /* OPTIONAL */ + long *crossCarrierScheduling_OtherSCS; /* OPTIONAL */ + long *scellWithoutSSB; /* OPTIONAL */ + long *csi_RS_MeasSCellWithoutSSB; /* OPTIONAL */ + long *srs_AssocCSI_RS; /* OPTIONAL */ + long *type1_3_CSS; /* OPTIONAL */ + long *pdcch_MonitoringAnyOccasions; /* OPTIONAL */ + long *pdcch_MonitoringAnyOccasionsWithSpanGap; /* OPTIONAL */ + long *ue_SpecificUL_DL_Assignment; /* OPTIONAL */ + long *searchSpaceSharingCA_DL; /* OPTIONAL */ + struct FeatureSetDownlink__timeDurationForQCL { + long *scs_60kHz; /* OPTIONAL */ + long *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *timeDurationForQCL; + struct 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 CSI_RS_IM_ReceptionForFeedback *csi_RS_IM_ReceptionForFeedback; /* OPTIONAL */ + struct FeatureSetDownlink__typeI_SinglePanelCodebookList { + A_SEQUENCE_OF(struct TypeI_SinglePanelCodebook) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeI_SinglePanelCodebookList; + struct FeatureSetDownlink__typeI_MultiPanelCodebookList { + A_SEQUENCE_OF(struct TypeI_MultiPanelCodebook) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeI_MultiPanelCodebookList; + struct FeatureSetDownlink__typeII_CodebookList { + A_SEQUENCE_OF(struct TypeII_Codebook) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeII_CodebookList; + struct FeatureSetDownlink__typeII_CodebookPortSelectionList { + A_SEQUENCE_OF(struct TypeII_CodebookPortSelection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeII_CodebookPortSelectionList; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetDownlink_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_scalingFactor_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_crossCarrierScheduling_OtherSCS_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scellWithoutSSB_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_RS_MeasSCellWithoutSSB_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_srs_AssocCSI_RS_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_type1_3_CSS_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcch_MonitoringAnyOccasions_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcch_MonitoringAnyOccasionsWithSpanGap_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ue_SpecificUL_DL_Assignment_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_searchSpaceSharingCA_DL_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_120kHz_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_15kHz_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_30kHz_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_45; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_120kHz_49; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlink; +extern asn_SEQUENCE_specifics_t asn_SPC_FeatureSetDownlink_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetDownlink_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetDownlink_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetDownlinkId.c b/src/codec_utils/RRC/FeatureSetDownlinkId.c new file mode 100644 index 000000000..7afae639b --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlinkId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetDownlinkId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetDownlinkId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetDownlinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkId = { + "FeatureSetDownlinkId", + "FeatureSetDownlinkId", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetDownlinkId_tags_1, + sizeof(asn_DEF_FeatureSetDownlinkId_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkId_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetDownlinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetDownlinkId_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkId_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetDownlinkId_constr_1, &asn_PER_type_FeatureSetDownlinkId_constr_1, FeatureSetDownlinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetDownlinkId.h b/src/codec_utils/RRC/FeatureSetDownlinkId.h new file mode 100644 index 000000000..8917e62df --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlinkId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetDownlinkId_H_ +#define _FeatureSetDownlinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetDownlinkId */ +typedef long FeatureSetDownlinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetDownlinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkId; +asn_struct_free_f FeatureSetDownlinkId_free; +asn_struct_print_f FeatureSetDownlinkId_print; +asn_constr_check_f FeatureSetDownlinkId_constraint; +ber_type_decoder_f FeatureSetDownlinkId_decode_ber; +der_type_encoder_f FeatureSetDownlinkId_encode_der; +xer_type_decoder_f FeatureSetDownlinkId_decode_xer; +xer_type_encoder_f FeatureSetDownlinkId_encode_xer; +oer_type_decoder_f FeatureSetDownlinkId_decode_oer; +oer_type_encoder_f FeatureSetDownlinkId_encode_oer; +per_type_decoder_f FeatureSetDownlinkId_decode_uper; +per_type_encoder_f FeatureSetDownlinkId_encode_uper; +per_type_decoder_f FeatureSetDownlinkId_decode_aper; +per_type_encoder_f FeatureSetDownlinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetDownlinkId_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.c b/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.c new file mode 100644 index 000000000..5d3b3ad63 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetDownlinkPerCC-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetDownlinkPerCC_Id_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetDownlinkPerCC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkPerCC_Id = { + "FeatureSetDownlinkPerCC-Id", + "FeatureSetDownlinkPerCC-Id", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1, + sizeof(asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkPerCC_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetDownlinkPerCC_Id_constr_1, &asn_PER_type_FeatureSetDownlinkPerCC_Id_constr_1, FeatureSetDownlinkPerCC_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.h b/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.h new file mode 100644 index 000000000..06ccf503a --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlinkPerCC-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetDownlinkPerCC_Id_H_ +#define _FeatureSetDownlinkPerCC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetDownlinkPerCC-Id */ +typedef long FeatureSetDownlinkPerCC_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetDownlinkPerCC_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkPerCC_Id; +asn_struct_free_f FeatureSetDownlinkPerCC_Id_free; +asn_struct_print_f FeatureSetDownlinkPerCC_Id_print; +asn_constr_check_f FeatureSetDownlinkPerCC_Id_constraint; +ber_type_decoder_f FeatureSetDownlinkPerCC_Id_decode_ber; +der_type_encoder_f FeatureSetDownlinkPerCC_Id_encode_der; +xer_type_decoder_f FeatureSetDownlinkPerCC_Id_decode_xer; +xer_type_encoder_f FeatureSetDownlinkPerCC_Id_encode_xer; +oer_type_decoder_f FeatureSetDownlinkPerCC_Id_decode_oer; +oer_type_encoder_f FeatureSetDownlinkPerCC_Id_encode_oer; +per_type_decoder_f FeatureSetDownlinkPerCC_Id_decode_uper; +per_type_encoder_f FeatureSetDownlinkPerCC_Id_encode_uper; +per_type_decoder_f FeatureSetDownlinkPerCC_Id_decode_aper; +per_type_encoder_f FeatureSetDownlinkPerCC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetDownlinkPerCC_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetDownlinkPerCC.c b/src/codec_utils/RRC/FeatureSetDownlinkPerCC.c new file mode 100644 index 000000000..4160f720b --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetDownlinkPerCC.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetDownlinkPerCC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_channelBW_90mhz_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_channelBW_90mhz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_channelBW_90mhz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_channelBW_90mhz_specs_4 = { + asn_MAP_channelBW_90mhz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_channelBW_90mhz_4 = { + "channelBW-90mhz", + "channelBW-90mhz", + &asn_OP_NativeEnumerated, + asn_DEF_channelBW_90mhz_tags_4, + sizeof(asn_DEF_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]) - 1, /* 1 */ + asn_DEF_channelBW_90mhz_tags_4, /* Same as above */ + sizeof(asn_DEF_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]), /* 2 */ + { &asn_OER_type_channelBW_90mhz_constr_4, &asn_PER_type_channelBW_90mhz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_channelBW_90mhz_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSetDownlinkPerCC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetDownlinkPerCC, supportedSubcarrierSpacingDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSubcarrierSpacingDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetDownlinkPerCC, supportedBandwidthDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SupportedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandwidthDL" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetDownlinkPerCC, channelBW_90mhz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_channelBW_90mhz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBW-90mhz" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetDownlinkPerCC, maxNumberMIMO_LayersPDSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersPDSCH" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetDownlinkPerCC, supportedModulationOrderDL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ModulationOrder, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedModulationOrderDL" + }, +}; +static const int asn_MAP_FeatureSetDownlinkPerCC_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_FeatureSetDownlinkPerCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FeatureSetDownlinkPerCC_specs_1 = { + sizeof(struct FeatureSetDownlinkPerCC), + offsetof(struct FeatureSetDownlinkPerCC, _asn_ctx), + asn_MAP_FeatureSetDownlinkPerCC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_FeatureSetDownlinkPerCC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkPerCC = { + "FeatureSetDownlinkPerCC", + "FeatureSetDownlinkPerCC", + &asn_OP_SEQUENCE, + asn_DEF_FeatureSetDownlinkPerCC_tags_1, + sizeof(asn_DEF_FeatureSetDownlinkPerCC_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkPerCC_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetDownlinkPerCC_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetDownlinkPerCC_tags_1) + /sizeof(asn_DEF_FeatureSetDownlinkPerCC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FeatureSetDownlinkPerCC_1, + 5, /* Elements count */ + &asn_SPC_FeatureSetDownlinkPerCC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetDownlinkPerCC.h b/src/codec_utils/RRC/FeatureSetDownlinkPerCC.h new file mode 100644 index 000000000..415da3a5f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetDownlinkPerCC_H_ +#define _FeatureSetDownlinkPerCC_H_ + + +#include + +/* Including external dependencies */ +#include "SubcarrierSpacing.h" +#include "SupportedBandwidth.h" +#include +#include "MIMO-LayersDL.h" +#include "ModulationOrder.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FeatureSetDownlinkPerCC__channelBW_90mhz { + FeatureSetDownlinkPerCC__channelBW_90mhz_supported = 0 +} e_FeatureSetDownlinkPerCC__channelBW_90mhz; + +/* FeatureSetDownlinkPerCC */ +typedef struct FeatureSetDownlinkPerCC { + SubcarrierSpacing_t supportedSubcarrierSpacingDL; + SupportedBandwidth_t supportedBandwidthDL; + long *channelBW_90mhz; /* OPTIONAL */ + MIMO_LayersDL_t *maxNumberMIMO_LayersPDSCH; /* OPTIONAL */ + ModulationOrder_t *supportedModulationOrderDL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetDownlinkPerCC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_channelBW_90mhz_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetDownlinkPerCC; +extern asn_SEQUENCE_specifics_t asn_SPC_FeatureSetDownlinkPerCC_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetDownlinkPerCC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetDownlinkPerCC_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.c b/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.c new file mode 100644 index 000000000..279733d5f --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetEUTRA-DownlinkId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetEUTRA_DownlinkId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..256) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetEUTRA_DownlinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetEUTRA_DownlinkId = { + "FeatureSetEUTRA-DownlinkId", + "FeatureSetEUTRA-DownlinkId", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1, + sizeof(asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1) + /sizeof(asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1) + /sizeof(asn_DEF_FeatureSetEUTRA_DownlinkId_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetEUTRA_DownlinkId_constr_1, &asn_PER_type_FeatureSetEUTRA_DownlinkId_constr_1, FeatureSetEUTRA_DownlinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.h b/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.h new file mode 100644 index 000000000..1af783de3 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEUTRA-DownlinkId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetEUTRA_DownlinkId_H_ +#define _FeatureSetEUTRA_DownlinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetEUTRA-DownlinkId */ +typedef long FeatureSetEUTRA_DownlinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetEUTRA_DownlinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetEUTRA_DownlinkId; +asn_struct_free_f FeatureSetEUTRA_DownlinkId_free; +asn_struct_print_f FeatureSetEUTRA_DownlinkId_print; +asn_constr_check_f FeatureSetEUTRA_DownlinkId_constraint; +ber_type_decoder_f FeatureSetEUTRA_DownlinkId_decode_ber; +der_type_encoder_f FeatureSetEUTRA_DownlinkId_encode_der; +xer_type_decoder_f FeatureSetEUTRA_DownlinkId_decode_xer; +xer_type_encoder_f FeatureSetEUTRA_DownlinkId_encode_xer; +oer_type_decoder_f FeatureSetEUTRA_DownlinkId_decode_oer; +oer_type_encoder_f FeatureSetEUTRA_DownlinkId_encode_oer; +per_type_decoder_f FeatureSetEUTRA_DownlinkId_decode_uper; +per_type_encoder_f FeatureSetEUTRA_DownlinkId_encode_uper; +per_type_decoder_f FeatureSetEUTRA_DownlinkId_decode_aper; +per_type_encoder_f FeatureSetEUTRA_DownlinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetEUTRA_DownlinkId_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.c b/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.c new file mode 100644 index 000000000..2a33ed826 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetEUTRA-UplinkId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetEUTRA_UplinkId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..256) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetEUTRA_UplinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetEUTRA_UplinkId = { + "FeatureSetEUTRA-UplinkId", + "FeatureSetEUTRA-UplinkId", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetEUTRA_UplinkId_tags_1, + sizeof(asn_DEF_FeatureSetEUTRA_UplinkId_tags_1) + /sizeof(asn_DEF_FeatureSetEUTRA_UplinkId_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetEUTRA_UplinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetEUTRA_UplinkId_tags_1) + /sizeof(asn_DEF_FeatureSetEUTRA_UplinkId_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetEUTRA_UplinkId_constr_1, &asn_PER_type_FeatureSetEUTRA_UplinkId_constr_1, FeatureSetEUTRA_UplinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.h b/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.h new file mode 100644 index 000000000..66bb1854c --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEUTRA-UplinkId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetEUTRA_UplinkId_H_ +#define _FeatureSetEUTRA_UplinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetEUTRA-UplinkId */ +typedef long FeatureSetEUTRA_UplinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetEUTRA_UplinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetEUTRA_UplinkId; +asn_struct_free_f FeatureSetEUTRA_UplinkId_free; +asn_struct_print_f FeatureSetEUTRA_UplinkId_print; +asn_constr_check_f FeatureSetEUTRA_UplinkId_constraint; +ber_type_decoder_f FeatureSetEUTRA_UplinkId_decode_ber; +der_type_encoder_f FeatureSetEUTRA_UplinkId_encode_der; +xer_type_decoder_f FeatureSetEUTRA_UplinkId_decode_xer; +xer_type_encoder_f FeatureSetEUTRA_UplinkId_encode_xer; +oer_type_decoder_f FeatureSetEUTRA_UplinkId_decode_oer; +oer_type_encoder_f FeatureSetEUTRA_UplinkId_encode_oer; +per_type_decoder_f FeatureSetEUTRA_UplinkId_decode_uper; +per_type_encoder_f FeatureSetEUTRA_UplinkId_encode_uper; +per_type_decoder_f FeatureSetEUTRA_UplinkId_decode_aper; +per_type_encoder_f FeatureSetEUTRA_UplinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetEUTRA_UplinkId_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetEntryIndex.c b/src/codec_utils/RRC/FeatureSetEntryIndex.c new file mode 100644 index 000000000..b355b2f24 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEntryIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetEntryIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetEntryIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetEntryIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetEntryIndex = { + "FeatureSetEntryIndex", + "FeatureSetEntryIndex", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetEntryIndex_tags_1, + sizeof(asn_DEF_FeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_FeatureSetEntryIndex_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetEntryIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetEntryIndex_tags_1) + /sizeof(asn_DEF_FeatureSetEntryIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetEntryIndex_constr_1, &asn_PER_type_FeatureSetEntryIndex_constr_1, FeatureSetEntryIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetEntryIndex.h b/src/codec_utils/RRC/FeatureSetEntryIndex.h new file mode 100644 index 000000000..aa4a23116 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetEntryIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetEntryIndex_H_ +#define _FeatureSetEntryIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetEntryIndex */ +typedef long FeatureSetEntryIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetEntryIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetEntryIndex; +asn_struct_free_f FeatureSetEntryIndex_free; +asn_struct_print_f FeatureSetEntryIndex_print; +asn_constr_check_f FeatureSetEntryIndex_constraint; +ber_type_decoder_f FeatureSetEntryIndex_decode_ber; +der_type_encoder_f FeatureSetEntryIndex_encode_der; +xer_type_decoder_f FeatureSetEntryIndex_decode_xer; +xer_type_encoder_f FeatureSetEntryIndex_encode_xer; +oer_type_decoder_f FeatureSetEntryIndex_decode_oer; +oer_type_encoder_f FeatureSetEntryIndex_encode_oer; +per_type_decoder_f FeatureSetEntryIndex_decode_uper; +per_type_encoder_f FeatureSetEntryIndex_encode_uper; +per_type_decoder_f FeatureSetEntryIndex_decode_aper; +per_type_encoder_f FeatureSetEntryIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetEntryIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetUplink.c b/src/codec_utils/RRC/FeatureSetUplink.c new file mode 100644 index 000000000..4fba5eedf --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplink.c @@ -0,0 +1,809 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetUplink.h" + +#include "SRS-TxSwitch.h" +#include "SRS-Resources.h" +#include "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. + */ +static int +memb_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_oer_constraints_t asn_OER_type_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scalingFactor_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_crossCarrierScheduling_OtherSCS_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpaceSharingCA_UL_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUCCH_Group_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicSwitchSUL_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousTxSUL_NonSUL_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_15kHz_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_30kHz_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_120kHz_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_featureSetListPerUplinkCC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_featureSetListPerUplinkCC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FeatureSetUplinkPerCC_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetListPerUplinkCC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetListPerUplinkCC_specs_2 = { + sizeof(struct FeatureSetUplink__featureSetListPerUplinkCC), + offsetof(struct FeatureSetUplink__featureSetListPerUplinkCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetListPerUplinkCC_2 = { + "featureSetListPerUplinkCC", + "featureSetListPerUplinkCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetListPerUplinkCC_tags_2, + sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2) + /sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2[0]) - 1, /* 1 */ + asn_DEF_featureSetListPerUplinkCC_tags_2, /* Same as above */ + sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2) + /sizeof(asn_DEF_featureSetListPerUplinkCC_tags_2[0]), /* 2 */ + { &asn_OER_type_featureSetListPerUplinkCC_constr_2, &asn_PER_type_featureSetListPerUplinkCC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_featureSetListPerUplinkCC_2, + 1, /* Single element */ + &asn_SPC_featureSetListPerUplinkCC_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scalingFactor_value2enum_4[] = { + { 0, 4, "f0p4" }, + { 1, 5, "f0p75" }, + { 2, 4, "f0p8" } +}; +static const unsigned int asn_MAP_scalingFactor_enum2value_4[] = { + 0, /* f0p4(0) */ + 1, /* f0p75(1) */ + 2 /* f0p8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scalingFactor_specs_4 = { + asn_MAP_scalingFactor_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scalingFactor_4 = { + "scalingFactor", + "scalingFactor", + &asn_OP_NativeEnumerated, + asn_DEF_scalingFactor_tags_4, + sizeof(asn_DEF_scalingFactor_tags_4) + /sizeof(asn_DEF_scalingFactor_tags_4[0]) - 1, /* 1 */ + asn_DEF_scalingFactor_tags_4, /* Same as above */ + sizeof(asn_DEF_scalingFactor_tags_4) + /sizeof(asn_DEF_scalingFactor_tags_4[0]), /* 2 */ + { &asn_OER_type_scalingFactor_constr_4, &asn_PER_type_scalingFactor_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scalingFactor_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_crossCarrierScheduling_OtherSCS_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_crossCarrierScheduling_OtherSCS_specs_8 = { + asn_MAP_crossCarrierScheduling_OtherSCS_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_crossCarrierScheduling_OtherSCS_8 = { + "crossCarrierScheduling-OtherSCS", + "crossCarrierScheduling-OtherSCS", + &asn_OP_NativeEnumerated, + asn_DEF_crossCarrierScheduling_OtherSCS_tags_8, + sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8) + /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8[0]) - 1, /* 1 */ + asn_DEF_crossCarrierScheduling_OtherSCS_tags_8, /* Same as above */ + sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8) + /sizeof(asn_DEF_crossCarrierScheduling_OtherSCS_tags_8[0]), /* 2 */ + { &asn_OER_type_crossCarrierScheduling_OtherSCS_constr_8, &asn_PER_type_crossCarrierScheduling_OtherSCS_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_crossCarrierScheduling_OtherSCS_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_searchSpaceSharingCA_UL_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_searchSpaceSharingCA_UL_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_searchSpaceSharingCA_UL_specs_11 = { + asn_MAP_searchSpaceSharingCA_UL_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_searchSpaceSharingCA_UL_11 = { + "searchSpaceSharingCA-UL", + "searchSpaceSharingCA-UL", + &asn_OP_NativeEnumerated, + asn_DEF_searchSpaceSharingCA_UL_tags_11, + sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11) + /sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11[0]) - 1, /* 1 */ + asn_DEF_searchSpaceSharingCA_UL_tags_11, /* Same as above */ + sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11) + /sizeof(asn_DEF_searchSpaceSharingCA_UL_tags_11[0]), /* 2 */ + { &asn_OER_type_searchSpaceSharingCA_UL_constr_11, &asn_PER_type_searchSpaceSharingCA_UL_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_searchSpaceSharingCA_UL_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_Group_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPUCCH_Group_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_Group_specs_15 = { + asn_MAP_twoPUCCH_Group_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUCCH_Group_15 = { + "twoPUCCH-Group", + "twoPUCCH-Group", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUCCH_Group_tags_15, + sizeof(asn_DEF_twoPUCCH_Group_tags_15) + /sizeof(asn_DEF_twoPUCCH_Group_tags_15[0]) - 1, /* 1 */ + asn_DEF_twoPUCCH_Group_tags_15, /* Same as above */ + sizeof(asn_DEF_twoPUCCH_Group_tags_15) + /sizeof(asn_DEF_twoPUCCH_Group_tags_15[0]), /* 2 */ + { &asn_OER_type_twoPUCCH_Group_constr_15, &asn_PER_type_twoPUCCH_Group_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUCCH_Group_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicSwitchSUL_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicSwitchSUL_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicSwitchSUL_specs_17 = { + asn_MAP_dynamicSwitchSUL_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicSwitchSUL_17 = { + "dynamicSwitchSUL", + "dynamicSwitchSUL", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicSwitchSUL_tags_17, + sizeof(asn_DEF_dynamicSwitchSUL_tags_17) + /sizeof(asn_DEF_dynamicSwitchSUL_tags_17[0]) - 1, /* 1 */ + asn_DEF_dynamicSwitchSUL_tags_17, /* Same as above */ + sizeof(asn_DEF_dynamicSwitchSUL_tags_17) + /sizeof(asn_DEF_dynamicSwitchSUL_tags_17[0]), /* 2 */ + { &asn_OER_type_dynamicSwitchSUL_constr_17, &asn_PER_type_dynamicSwitchSUL_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicSwitchSUL_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousTxSUL_NonSUL_value2enum_19[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousTxSUL_NonSUL_enum2value_19[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousTxSUL_NonSUL_specs_19 = { + asn_MAP_simultaneousTxSUL_NonSUL_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousTxSUL_NonSUL_19 = { + "simultaneousTxSUL-NonSUL", + "simultaneousTxSUL-NonSUL", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousTxSUL_NonSUL_tags_19, + sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19) + /sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19[0]) - 1, /* 1 */ + asn_DEF_simultaneousTxSUL_NonSUL_tags_19, /* Same as above */ + sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19) + /sizeof(asn_DEF_simultaneousTxSUL_NonSUL_tags_19[0]), /* 2 */ + { &asn_OER_type_simultaneousTxSUL_NonSUL_constr_19, &asn_PER_type_simultaneousTxSUL_NonSUL_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousTxSUL_NonSUL_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_15kHz_value2enum_22[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_15kHz_enum2value_22[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_15kHz_specs_22 = { + asn_MAP_scs_15kHz_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_15kHz_22 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_15kHz_tags_22, + sizeof(asn_DEF_scs_15kHz_tags_22) + /sizeof(asn_DEF_scs_15kHz_tags_22[0]) - 1, /* 1 */ + asn_DEF_scs_15kHz_tags_22, /* Same as above */ + sizeof(asn_DEF_scs_15kHz_tags_22) + /sizeof(asn_DEF_scs_15kHz_tags_22[0]), /* 2 */ + { &asn_OER_type_scs_15kHz_constr_22, &asn_PER_type_scs_15kHz_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_15kHz_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_30kHz_value2enum_26[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_30kHz_enum2value_26[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_30kHz_specs_26 = { + asn_MAP_scs_30kHz_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_30kHz_26 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_30kHz_tags_26, + sizeof(asn_DEF_scs_30kHz_tags_26) + /sizeof(asn_DEF_scs_30kHz_tags_26[0]) - 1, /* 1 */ + asn_DEF_scs_30kHz_tags_26, /* Same as above */ + sizeof(asn_DEF_scs_30kHz_tags_26) + /sizeof(asn_DEF_scs_30kHz_tags_26[0]), /* 2 */ + { &asn_OER_type_scs_30kHz_constr_26, &asn_PER_type_scs_30kHz_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_30kHz_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_30[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_30[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_30 = { + asn_MAP_scs_60kHz_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_30 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_30, + sizeof(asn_DEF_scs_60kHz_tags_30) + /sizeof(asn_DEF_scs_60kHz_tags_30[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_30, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_30) + /sizeof(asn_DEF_scs_60kHz_tags_30[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_30, &asn_PER_type_scs_60kHz_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_34[] = { + { 0, 5, "upto2" }, + { 1, 5, "upto4" }, + { 2, 5, "upto7" } +}; +static const unsigned int asn_MAP_scs_120kHz_enum2value_34[] = { + 0, /* upto2(0) */ + 1, /* upto4(1) */ + 2 /* upto7(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_34 = { + asn_MAP_scs_120kHz_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_120kHz_34 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_120kHz_tags_34, + sizeof(asn_DEF_scs_120kHz_tags_34) + /sizeof(asn_DEF_scs_120kHz_tags_34[0]) - 1, /* 1 */ + asn_DEF_scs_120kHz_tags_34, /* Same as above */ + sizeof(asn_DEF_scs_120kHz_tags_34) + /sizeof(asn_DEF_scs_120kHz_tags_34[0]), /* 2 */ + { &asn_OER_type_scs_120kHz_constr_34, &asn_PER_type_scs_120kHz_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_120kHz_specs_34 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pusch_DifferentTB_PerSlot_21[] = { + { ATF_POINTER, 4, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_15kHz_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_30kHz_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_120kHz_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_pusch_DifferentTB_PerSlot_oms_21[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_pusch_DifferentTB_PerSlot_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_pusch_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_pusch_DifferentTB_PerSlot_specs_21 = { + sizeof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot), + offsetof(struct FeatureSetUplink__pusch_DifferentTB_PerSlot, _asn_ctx), + asn_MAP_pusch_DifferentTB_PerSlot_tag2el_21, + 4, /* Count of tags in the map */ + asn_MAP_pusch_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_pusch_DifferentTB_PerSlot_21 = { + "pusch-DifferentTB-PerSlot", + "pusch-DifferentTB-PerSlot", + &asn_OP_SEQUENCE, + asn_DEF_pusch_DifferentTB_PerSlot_tags_21, + sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21) + /sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21[0]) - 1, /* 1 */ + asn_DEF_pusch_DifferentTB_PerSlot_tags_21, /* Same as above */ + sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21) + /sizeof(asn_DEF_pusch_DifferentTB_PerSlot_tags_21[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_pusch_DifferentTB_PerSlot_21, + 4, /* Elements count */ + &asn_SPC_pusch_DifferentTB_PerSlot_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSetUplink_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplink, featureSetListPerUplinkCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_featureSetListPerUplinkCC_2, + 0, + { &asn_OER_memb_featureSetListPerUplinkCC_constr_2, &asn_PER_memb_featureSetListPerUplinkCC_constr_2, memb_featureSetListPerUplinkCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetListPerUplinkCC" + }, + { ATF_POINTER, 11, offsetof(struct FeatureSetUplink, scalingFactor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scalingFactor_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactor" + }, + { ATF_POINTER, 10, offsetof(struct FeatureSetUplink, crossCarrierScheduling_OtherSCS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_crossCarrierScheduling_OtherSCS_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierScheduling-OtherSCS" + }, + { ATF_POINTER, 9, offsetof(struct FeatureSetUplink, intraBandFreqSeparationUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqSeparationClass, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraBandFreqSeparationUL" + }, + { ATF_POINTER, 8, offsetof(struct FeatureSetUplink, searchSpaceSharingCA_UL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_searchSpaceSharingCA_UL_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSharingCA-UL" + }, + { ATF_POINTER, 7, offsetof(struct FeatureSetUplink, srs_TxSwitch), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_TxSwitch, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-TxSwitch" + }, + { ATF_POINTER, 6, offsetof(struct FeatureSetUplink, supportedSRS_Resources), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_Resources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-Resources" + }, + { ATF_POINTER, 5, offsetof(struct FeatureSetUplink, twoPUCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUCCH_Group_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-Group" + }, + { ATF_POINTER, 4, offsetof(struct FeatureSetUplink, dynamicSwitchSUL), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicSwitchSUL_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchSUL" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetUplink, simultaneousTxSUL_NonSUL), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousTxSUL_NonSUL_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousTxSUL-NonSUL" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetUplink, pusch_DifferentTB_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_pusch_DifferentTB_PerSlot_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-DifferentTB-PerSlot" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetUplink, csi_ReportFramework), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_ReportFramework, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportFramework" + }, +}; +static const int asn_MAP_FeatureSetUplink_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_FeatureSetUplink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 }, /* srs-TxSwitch */ + { (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-DifferentTB-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* csi-ReportFramework */ +}; +asn_SEQUENCE_specifics_t asn_SPC_FeatureSetUplink_specs_1 = { + sizeof(struct FeatureSetUplink), + offsetof(struct FeatureSetUplink, _asn_ctx), + asn_MAP_FeatureSetUplink_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_FeatureSetUplink_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetUplink = { + "FeatureSetUplink", + "FeatureSetUplink", + &asn_OP_SEQUENCE, + asn_DEF_FeatureSetUplink_tags_1, + sizeof(asn_DEF_FeatureSetUplink_tags_1) + /sizeof(asn_DEF_FeatureSetUplink_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetUplink_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetUplink_tags_1) + /sizeof(asn_DEF_FeatureSetUplink_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FeatureSetUplink_1, + 12, /* Elements count */ + &asn_SPC_FeatureSetUplink_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetUplink.h b/src/codec_utils/RRC/FeatureSetUplink.h new file mode 100644 index 000000000..f2746d659 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetUplink_H_ +#define _FeatureSetUplink_H_ + + +#include + +/* Including external dependencies */ +#include +#include "FreqSeparationClass.h" +#include "FeatureSetUplinkPerCC-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FeatureSetUplink__scalingFactor { + FeatureSetUplink__scalingFactor_f0p4 = 0, + FeatureSetUplink__scalingFactor_f0p75 = 1, + FeatureSetUplink__scalingFactor_f0p8 = 2 +} e_FeatureSetUplink__scalingFactor; +typedef enum FeatureSetUplink__crossCarrierScheduling_OtherSCS { + FeatureSetUplink__crossCarrierScheduling_OtherSCS_supported = 0 +} e_FeatureSetUplink__crossCarrierScheduling_OtherSCS; +typedef enum FeatureSetUplink__searchSpaceSharingCA_UL { + FeatureSetUplink__searchSpaceSharingCA_UL_supported = 0 +} e_FeatureSetUplink__searchSpaceSharingCA_UL; +typedef enum FeatureSetUplink__twoPUCCH_Group { + FeatureSetUplink__twoPUCCH_Group_supported = 0 +} e_FeatureSetUplink__twoPUCCH_Group; +typedef enum FeatureSetUplink__dynamicSwitchSUL { + FeatureSetUplink__dynamicSwitchSUL_supported = 0 +} e_FeatureSetUplink__dynamicSwitchSUL; +typedef enum FeatureSetUplink__simultaneousTxSUL_NonSUL { + FeatureSetUplink__simultaneousTxSUL_NonSUL_supported = 0 +} e_FeatureSetUplink__simultaneousTxSUL_NonSUL; +typedef enum FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_15kHz { + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_15kHz_upto2 = 0, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_15kHz_upto4 = 1, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_15kHz_upto7 = 2 +} e_FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_15kHz; +typedef enum FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_30kHz { + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_30kHz_upto2 = 0, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_30kHz_upto4 = 1, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_30kHz_upto7 = 2 +} e_FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_30kHz; +typedef enum FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_60kHz { + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_60kHz_upto2 = 0, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_60kHz_upto4 = 1, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_60kHz_upto7 = 2 +} e_FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_60kHz; +typedef enum FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_120kHz { + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_120kHz_upto2 = 0, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_120kHz_upto4 = 1, + FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_120kHz_upto7 = 2 +} e_FeatureSetUplink__pusch_DifferentTB_PerSlot__scs_120kHz; + +/* Forward declarations */ +struct SRS_TxSwitch; +struct SRS_Resources; +struct CSI_ReportFramework; + +/* FeatureSetUplink */ +typedef struct FeatureSetUplink { + struct FeatureSetUplink__featureSetListPerUplinkCC { + A_SEQUENCE_OF(FeatureSetUplinkPerCC_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } featureSetListPerUplinkCC; + long *scalingFactor; /* OPTIONAL */ + long *crossCarrierScheduling_OtherSCS; /* OPTIONAL */ + FreqSeparationClass_t *intraBandFreqSeparationUL; /* OPTIONAL */ + long *searchSpaceSharingCA_UL; /* OPTIONAL */ + struct SRS_TxSwitch *srs_TxSwitch; /* OPTIONAL */ + struct SRS_Resources *supportedSRS_Resources; /* OPTIONAL */ + long *twoPUCCH_Group; /* OPTIONAL */ + long *dynamicSwitchSUL; /* OPTIONAL */ + long *simultaneousTxSUL_NonSUL; /* OPTIONAL */ + struct FeatureSetUplink__pusch_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_DifferentTB_PerSlot; + struct CSI_ReportFramework *csi_ReportFramework; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetUplink_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_scalingFactor_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_crossCarrierScheduling_OtherSCS_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_searchSpaceSharingCA_UL_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUCCH_Group_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicSwitchSUL_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousTxSUL_NonSUL_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_15kHz_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_30kHz_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_120kHz_34; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetUplink; +extern asn_SEQUENCE_specifics_t asn_SPC_FeatureSetUplink_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetUplink_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetUplink_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetUplinkId.c b/src/codec_utils/RRC/FeatureSetUplinkId.c new file mode 100644 index 000000000..0d95e12a4 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplinkId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetUplinkId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetUplinkId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetUplinkId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkId = { + "FeatureSetUplinkId", + "FeatureSetUplinkId", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetUplinkId_tags_1, + sizeof(asn_DEF_FeatureSetUplinkId_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkId_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetUplinkId_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetUplinkId_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkId_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetUplinkId_constr_1, &asn_PER_type_FeatureSetUplinkId_constr_1, FeatureSetUplinkId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetUplinkId.h b/src/codec_utils/RRC/FeatureSetUplinkId.h new file mode 100644 index 000000000..06c640f25 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplinkId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetUplinkId_H_ +#define _FeatureSetUplinkId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetUplinkId */ +typedef long FeatureSetUplinkId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetUplinkId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkId; +asn_struct_free_f FeatureSetUplinkId_free; +asn_struct_print_f FeatureSetUplinkId_print; +asn_constr_check_f FeatureSetUplinkId_constraint; +ber_type_decoder_f FeatureSetUplinkId_decode_ber; +der_type_encoder_f FeatureSetUplinkId_encode_der; +xer_type_decoder_f FeatureSetUplinkId_decode_xer; +xer_type_encoder_f FeatureSetUplinkId_encode_xer; +oer_type_decoder_f FeatureSetUplinkId_decode_oer; +oer_type_encoder_f FeatureSetUplinkId_encode_oer; +per_type_decoder_f FeatureSetUplinkId_decode_uper; +per_type_encoder_f FeatureSetUplinkId_encode_uper; +per_type_decoder_f FeatureSetUplinkId_decode_aper; +per_type_encoder_f FeatureSetUplinkId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetUplinkId_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.c b/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.c new file mode 100644 index 000000000..75c6ebeaf --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetUplinkPerCC-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FeatureSetUplinkPerCC_Id_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FeatureSetUplinkPerCC_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkPerCC_Id = { + "FeatureSetUplinkPerCC-Id", + "FeatureSetUplinkPerCC-Id", + &asn_OP_NativeInteger, + asn_DEF_FeatureSetUplinkPerCC_Id_tags_1, + sizeof(asn_DEF_FeatureSetUplinkPerCC_Id_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkPerCC_Id_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetUplinkPerCC_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetUplinkPerCC_Id_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkPerCC_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetUplinkPerCC_Id_constr_1, &asn_PER_type_FeatureSetUplinkPerCC_Id_constr_1, FeatureSetUplinkPerCC_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.h b/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.h new file mode 100644 index 000000000..32dc0a3bc --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplinkPerCC-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetUplinkPerCC_Id_H_ +#define _FeatureSetUplinkPerCC_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FeatureSetUplinkPerCC-Id */ +typedef long FeatureSetUplinkPerCC_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FeatureSetUplinkPerCC_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkPerCC_Id; +asn_struct_free_f FeatureSetUplinkPerCC_Id_free; +asn_struct_print_f FeatureSetUplinkPerCC_Id_print; +asn_constr_check_f FeatureSetUplinkPerCC_Id_constraint; +ber_type_decoder_f FeatureSetUplinkPerCC_Id_decode_ber; +der_type_encoder_f FeatureSetUplinkPerCC_Id_encode_der; +xer_type_decoder_f FeatureSetUplinkPerCC_Id_decode_xer; +xer_type_encoder_f FeatureSetUplinkPerCC_Id_encode_xer; +oer_type_decoder_f FeatureSetUplinkPerCC_Id_decode_oer; +oer_type_encoder_f FeatureSetUplinkPerCC_Id_encode_oer; +per_type_decoder_f FeatureSetUplinkPerCC_Id_decode_uper; +per_type_encoder_f FeatureSetUplinkPerCC_Id_encode_uper; +per_type_decoder_f FeatureSetUplinkPerCC_Id_decode_aper; +per_type_encoder_f FeatureSetUplinkPerCC_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetUplinkPerCC_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetUplinkPerCC.c b/src/codec_utils/RRC/FeatureSetUplinkPerCC.c new file mode 100644 index 000000000..c24c2c161 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetUplinkPerCC.c @@ -0,0 +1,237 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetUplinkPerCC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_channelBW_90mhz_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberSRS_ResourcePerSet_constr_8 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_channelBW_90mhz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_channelBW_90mhz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_channelBW_90mhz_specs_4 = { + asn_MAP_channelBW_90mhz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_channelBW_90mhz_4 = { + "channelBW-90mhz", + "channelBW-90mhz", + &asn_OP_NativeEnumerated, + asn_DEF_channelBW_90mhz_tags_4, + sizeof(asn_DEF_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]) - 1, /* 1 */ + asn_DEF_channelBW_90mhz_tags_4, /* Same as above */ + sizeof(asn_DEF_channelBW_90mhz_tags_4) + /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]), /* 2 */ + { &asn_OER_type_channelBW_90mhz_constr_4, &asn_PER_type_channelBW_90mhz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_channelBW_90mhz_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mimo_CB_PUSCH_6[] = { + { ATF_POINTER, 1, offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberMIMO_LayersCB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersCB-PUSCH" + }, + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberSRS_ResourcePerSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSRS_ResourcePerSet_constr_8, &asn_PER_memb_maxNumberSRS_ResourcePerSet_constr_8, memb_maxNumberSRS_ResourcePerSet_constraint_6 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourcePerSet" + }, +}; +static const int asn_MAP_mimo_CB_PUSCH_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_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_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_mimo_CB_PUSCH_specs_6 = { + sizeof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH), + offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, _asn_ctx), + asn_MAP_mimo_CB_PUSCH_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_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_mimo_CB_PUSCH_6 = { + "mimo-CB-PUSCH", + "mimo-CB-PUSCH", + &asn_OP_SEQUENCE, + asn_DEF_mimo_CB_PUSCH_tags_6, + sizeof(asn_DEF_mimo_CB_PUSCH_tags_6) + /sizeof(asn_DEF_mimo_CB_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_mimo_CB_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_mimo_CB_PUSCH_tags_6) + /sizeof(asn_DEF_mimo_CB_PUSCH_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_mimo_CB_PUSCH_6, + 2, /* Elements count */ + &asn_SPC_mimo_CB_PUSCH_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSetUplinkPerCC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC, supportedSubcarrierSpacingUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSubcarrierSpacingUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC, supportedBandwidthUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SupportedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandwidthUL" + }, + { ATF_POINTER, 4, offsetof(struct FeatureSetUplinkPerCC, channelBW_90mhz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_channelBW_90mhz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "channelBW-90mhz" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSetUplinkPerCC, mimo_CB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_mimo_CB_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mimo-CB-PUSCH" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSetUplinkPerCC, maxNumberMIMO_LayersNonCB_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberMIMO-LayersNonCB-PUSCH" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSetUplinkPerCC, supportedModulationOrderUL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ModulationOrder, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedModulationOrderUL" + }, +}; +static const int asn_MAP_FeatureSetUplinkPerCC_oms_1[] = { 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_FeatureSetUplinkPerCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FeatureSetUplinkPerCC_specs_1 = { + sizeof(struct FeatureSetUplinkPerCC), + offsetof(struct FeatureSetUplinkPerCC, _asn_ctx), + asn_MAP_FeatureSetUplinkPerCC_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_FeatureSetUplinkPerCC_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkPerCC = { + "FeatureSetUplinkPerCC", + "FeatureSetUplinkPerCC", + &asn_OP_SEQUENCE, + asn_DEF_FeatureSetUplinkPerCC_tags_1, + sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetUplinkPerCC_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1) + /sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FeatureSetUplinkPerCC_1, + 6, /* Elements count */ + &asn_SPC_FeatureSetUplinkPerCC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetUplinkPerCC.h b/src/codec_utils/RRC/FeatureSetUplinkPerCC.h new file mode 100644 index 000000000..f627c1a21 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetUplinkPerCC_H_ +#define _FeatureSetUplinkPerCC_H_ + + +#include + +/* Including external dependencies */ +#include "SubcarrierSpacing.h" +#include "SupportedBandwidth.h" +#include +#include "MIMO-LayersUL.h" +#include "ModulationOrder.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FeatureSetUplinkPerCC__channelBW_90mhz { + FeatureSetUplinkPerCC__channelBW_90mhz_supported = 0 +} e_FeatureSetUplinkPerCC__channelBW_90mhz; + +/* FeatureSetUplinkPerCC */ +typedef struct FeatureSetUplinkPerCC { + SubcarrierSpacing_t supportedSubcarrierSpacingUL; + SupportedBandwidth_t supportedBandwidthUL; + long *channelBW_90mhz; /* OPTIONAL */ + struct FeatureSetUplinkPerCC__mimo_CB_PUSCH { + 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; + MIMO_LayersUL_t *maxNumberMIMO_LayersNonCB_PUSCH; /* OPTIONAL */ + ModulationOrder_t *supportedModulationOrderUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetUplinkPerCC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_channelBW_90mhz_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkPerCC; +extern asn_SEQUENCE_specifics_t asn_SPC_FeatureSetUplinkPerCC_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetUplinkPerCC_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetUplinkPerCC_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSets.c b/src/codec_utils/RRC/FeatureSets.c new file mode 100644 index 000000000..ae1b17891 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSets.c @@ -0,0 +1,402 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSets.h" + +#include "FeatureSetDownlink.h" +#include "FeatureSetDownlinkPerCC.h" +#include "FeatureSetUplink.h" +#include "FeatureSetUplinkPerCC.h" +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_featureSetsDownlink_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_featureSetsDownlinkPerCC_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_featureSetsUplink_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_featureSetsUplinkPerCC_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_featureSetsDownlink_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_featureSetsDownlinkPerCC_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_featureSetsUplink_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_featureSetsUplinkPerCC_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_featureSetsDownlink_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetDownlink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetsDownlink_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetsDownlink_specs_2 = { + sizeof(struct FeatureSets__featureSetsDownlink), + offsetof(struct FeatureSets__featureSetsDownlink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetsDownlink_2 = { + "featureSetsDownlink", + "featureSetsDownlink", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetsDownlink_tags_2, + sizeof(asn_DEF_featureSetsDownlink_tags_2) + /sizeof(asn_DEF_featureSetsDownlink_tags_2[0]) - 1, /* 1 */ + asn_DEF_featureSetsDownlink_tags_2, /* Same as above */ + sizeof(asn_DEF_featureSetsDownlink_tags_2) + /sizeof(asn_DEF_featureSetsDownlink_tags_2[0]), /* 2 */ + { &asn_OER_type_featureSetsDownlink_constr_2, &asn_PER_type_featureSetsDownlink_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_featureSetsDownlink_2, + 1, /* Single element */ + &asn_SPC_featureSetsDownlink_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_featureSetsDownlinkPerCC_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetDownlinkPerCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetsDownlinkPerCC_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetsDownlinkPerCC_specs_4 = { + sizeof(struct FeatureSets__featureSetsDownlinkPerCC), + offsetof(struct FeatureSets__featureSetsDownlinkPerCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetsDownlinkPerCC_4 = { + "featureSetsDownlinkPerCC", + "featureSetsDownlinkPerCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetsDownlinkPerCC_tags_4, + sizeof(asn_DEF_featureSetsDownlinkPerCC_tags_4) + /sizeof(asn_DEF_featureSetsDownlinkPerCC_tags_4[0]) - 1, /* 1 */ + asn_DEF_featureSetsDownlinkPerCC_tags_4, /* Same as above */ + sizeof(asn_DEF_featureSetsDownlinkPerCC_tags_4) + /sizeof(asn_DEF_featureSetsDownlinkPerCC_tags_4[0]), /* 2 */ + { &asn_OER_type_featureSetsDownlinkPerCC_constr_4, &asn_PER_type_featureSetsDownlinkPerCC_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_featureSetsDownlinkPerCC_4, + 1, /* Single element */ + &asn_SPC_featureSetsDownlinkPerCC_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_featureSetsUplink_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetUplink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetsUplink_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetsUplink_specs_6 = { + sizeof(struct FeatureSets__featureSetsUplink), + offsetof(struct FeatureSets__featureSetsUplink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetsUplink_6 = { + "featureSetsUplink", + "featureSetsUplink", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetsUplink_tags_6, + sizeof(asn_DEF_featureSetsUplink_tags_6) + /sizeof(asn_DEF_featureSetsUplink_tags_6[0]) - 1, /* 1 */ + asn_DEF_featureSetsUplink_tags_6, /* Same as above */ + sizeof(asn_DEF_featureSetsUplink_tags_6) + /sizeof(asn_DEF_featureSetsUplink_tags_6[0]), /* 2 */ + { &asn_OER_type_featureSetsUplink_constr_6, &asn_PER_type_featureSetsUplink_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_featureSetsUplink_6, + 1, /* Single element */ + &asn_SPC_featureSetsUplink_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_featureSetsUplinkPerCC_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetUplinkPerCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetsUplinkPerCC_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetsUplinkPerCC_specs_8 = { + sizeof(struct FeatureSets__featureSetsUplinkPerCC), + offsetof(struct FeatureSets__featureSetsUplinkPerCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetsUplinkPerCC_8 = { + "featureSetsUplinkPerCC", + "featureSetsUplinkPerCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetsUplinkPerCC_tags_8, + sizeof(asn_DEF_featureSetsUplinkPerCC_tags_8) + /sizeof(asn_DEF_featureSetsUplinkPerCC_tags_8[0]) - 1, /* 1 */ + asn_DEF_featureSetsUplinkPerCC_tags_8, /* Same as above */ + sizeof(asn_DEF_featureSetsUplinkPerCC_tags_8) + /sizeof(asn_DEF_featureSetsUplinkPerCC_tags_8[0]), /* 2 */ + { &asn_OER_type_featureSetsUplinkPerCC_constr_8, &asn_PER_type_featureSetsUplinkPerCC_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_featureSetsUplinkPerCC_8, + 1, /* Single element */ + &asn_SPC_featureSetsUplinkPerCC_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FeatureSets_1[] = { + { ATF_POINTER, 4, offsetof(struct FeatureSets, featureSetsDownlink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_featureSetsDownlink_2, + 0, + { &asn_OER_memb_featureSetsDownlink_constr_2, &asn_PER_memb_featureSetsDownlink_constr_2, memb_featureSetsDownlink_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsDownlink" + }, + { ATF_POINTER, 3, offsetof(struct FeatureSets, featureSetsDownlinkPerCC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_featureSetsDownlinkPerCC_4, + 0, + { &asn_OER_memb_featureSetsDownlinkPerCC_constr_4, &asn_PER_memb_featureSetsDownlinkPerCC_constr_4, memb_featureSetsDownlinkPerCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsDownlinkPerCC" + }, + { ATF_POINTER, 2, offsetof(struct FeatureSets, featureSetsUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_featureSetsUplink_6, + 0, + { &asn_OER_memb_featureSetsUplink_constr_6, &asn_PER_memb_featureSetsUplink_constr_6, memb_featureSetsUplink_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsUplink" + }, + { ATF_POINTER, 1, offsetof(struct FeatureSets, featureSetsUplinkPerCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_featureSetsUplinkPerCC_8, + 0, + { &asn_OER_memb_featureSetsUplinkPerCC_constr_8, &asn_PER_memb_featureSetsUplinkPerCC_constr_8, memb_featureSetsUplinkPerCC_constraint_1 }, + 0, 0, /* No default value */ + "featureSetsUplinkPerCC" + }, +}; +static const int asn_MAP_FeatureSets_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_FeatureSets_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_FeatureSets_specs_1 = { + sizeof(struct FeatureSets), + offsetof(struct FeatureSets, _asn_ctx), + asn_MAP_FeatureSets_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_FeatureSets_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSets = { + "FeatureSets", + "FeatureSets", + &asn_OP_SEQUENCE, + asn_DEF_FeatureSets_tags_1, + sizeof(asn_DEF_FeatureSets_tags_1) + /sizeof(asn_DEF_FeatureSets_tags_1[0]), /* 1 */ + asn_DEF_FeatureSets_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSets_tags_1) + /sizeof(asn_DEF_FeatureSets_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FeatureSets_1, + 4, /* Elements count */ + &asn_SPC_FeatureSets_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSets.h b/src/codec_utils/RRC/FeatureSets.h new file mode 100644 index 000000000..2fcabdc92 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSets.h @@ -0,0 +1,74 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSets_H_ +#define _FeatureSets_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FeatureSetDownlink; +struct FeatureSetDownlinkPerCC; +struct FeatureSetUplink; +struct FeatureSetUplinkPerCC; + +/* FeatureSets */ +typedef struct FeatureSets { + struct FeatureSets__featureSetsDownlink { + A_SEQUENCE_OF(struct FeatureSetDownlink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsDownlink; + struct FeatureSets__featureSetsDownlinkPerCC { + A_SEQUENCE_OF(struct FeatureSetDownlinkPerCC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsDownlinkPerCC; + struct FeatureSets__featureSetsUplink { + A_SEQUENCE_OF(struct FeatureSetUplink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplink; + struct FeatureSets__featureSetsUplinkPerCC { + A_SEQUENCE_OF(struct FeatureSetUplinkPerCC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetsUplinkPerCC; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSets_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSets; +extern asn_SEQUENCE_specifics_t asn_SPC_FeatureSets_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSets_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSets_H_ */ +#include diff --git a/src/codec_utils/RRC/FeatureSetsPerBand.c b/src/codec_utils/RRC/FeatureSetsPerBand.c new file mode 100644 index 000000000..683984300 --- /dev/null +++ b/src/codec_utils/RRC/FeatureSetsPerBand.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FeatureSetsPerBand.h" + +#include "FeatureSet.h" +static asn_oer_constraints_t asn_OER_type_FeatureSetsPerBand_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +asn_per_constraints_t asn_PER_type_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_FeatureSetsPerBand_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_FeatureSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FeatureSetsPerBand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FeatureSetsPerBand_specs_1 = { + sizeof(struct FeatureSetsPerBand), + offsetof(struct FeatureSetsPerBand, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_FeatureSetsPerBand = { + "FeatureSetsPerBand", + "FeatureSetsPerBand", + &asn_OP_SEQUENCE_OF, + asn_DEF_FeatureSetsPerBand_tags_1, + sizeof(asn_DEF_FeatureSetsPerBand_tags_1) + /sizeof(asn_DEF_FeatureSetsPerBand_tags_1[0]), /* 1 */ + asn_DEF_FeatureSetsPerBand_tags_1, /* Same as above */ + sizeof(asn_DEF_FeatureSetsPerBand_tags_1) + /sizeof(asn_DEF_FeatureSetsPerBand_tags_1[0]), /* 1 */ + { &asn_OER_type_FeatureSetsPerBand_constr_1, &asn_PER_type_FeatureSetsPerBand_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FeatureSetsPerBand_1, + 1, /* Single element */ + &asn_SPC_FeatureSetsPerBand_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FeatureSetsPerBand.h b/src/codec_utils/RRC/FeatureSetsPerBand.h new file mode 100644 index 000000000..4a0f75790 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FeatureSetsPerBand_H_ +#define _FeatureSetsPerBand_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FeatureSet; + +/* FeatureSetsPerBand */ +typedef struct FeatureSetsPerBand { + A_SEQUENCE_OF(struct FeatureSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FeatureSetsPerBand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FeatureSetsPerBand; +extern asn_SET_OF_specifics_t asn_SPC_FeatureSetsPerBand_specs_1; +extern asn_TYPE_member_t asn_MBR_FeatureSetsPerBand_1[1]; +extern asn_per_constraints_t asn_PER_type_FeatureSetsPerBand_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FeatureSetsPerBand_H_ */ +#include diff --git a/src/codec_utils/RRC/FilterCoefficient.c b/src/codec_utils/RRC/FilterCoefficient.c new file mode 100644 index 000000000..12e530085 --- /dev/null +++ b/src/codec_utils/RRC/FilterCoefficient.c @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FilterCoefficient.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FilterCoefficient_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_FilterCoefficient_specs_1 = { + asn_MAP_FilterCoefficient_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_FilterCoefficient_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FilterCoefficient = { + "FilterCoefficient", + "FilterCoefficient", + &asn_OP_NativeEnumerated, + asn_DEF_FilterCoefficient_tags_1, + sizeof(asn_DEF_FilterCoefficient_tags_1) + /sizeof(asn_DEF_FilterCoefficient_tags_1[0]), /* 1 */ + asn_DEF_FilterCoefficient_tags_1, /* Same as above */ + sizeof(asn_DEF_FilterCoefficient_tags_1) + /sizeof(asn_DEF_FilterCoefficient_tags_1[0]), /* 1 */ + { &asn_OER_type_FilterCoefficient_constr_1, &asn_PER_type_FilterCoefficient_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_FilterCoefficient_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FilterCoefficient.h b/src/codec_utils/RRC/FilterCoefficient.h new file mode 100644 index 000000000..c22b2111c --- /dev/null +++ b/src/codec_utils/RRC/FilterCoefficient.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FilterCoefficient_H_ +#define _FilterCoefficient_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FilterCoefficient { + FilterCoefficient_fc0 = 0, + FilterCoefficient_fc1 = 1, + FilterCoefficient_fc2 = 2, + FilterCoefficient_fc3 = 3, + FilterCoefficient_fc4 = 4, + FilterCoefficient_fc5 = 5, + FilterCoefficient_fc6 = 6, + FilterCoefficient_fc7 = 7, + FilterCoefficient_fc8 = 8, + FilterCoefficient_fc9 = 9, + FilterCoefficient_fc11 = 10, + FilterCoefficient_fc13 = 11, + FilterCoefficient_fc15 = 12, + FilterCoefficient_fc17 = 13, + FilterCoefficient_fc19 = 14, + FilterCoefficient_spare1 = 15 + /* + * Enumeration is extensible + */ +} e_FilterCoefficient; + +/* FilterCoefficient */ +typedef long FilterCoefficient_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FilterCoefficient_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FilterCoefficient; +extern const asn_INTEGER_specifics_t asn_SPC_FilterCoefficient_specs_1; +asn_struct_free_f FilterCoefficient_free; +asn_struct_print_f FilterCoefficient_print; +asn_constr_check_f FilterCoefficient_constraint; +ber_type_decoder_f FilterCoefficient_decode_ber; +der_type_encoder_f FilterCoefficient_encode_der; +xer_type_decoder_f FilterCoefficient_decode_xer; +xer_type_encoder_f FilterCoefficient_encode_xer; +oer_type_decoder_f FilterCoefficient_decode_oer; +oer_type_encoder_f FilterCoefficient_encode_oer; +per_type_decoder_f FilterCoefficient_decode_uper; +per_type_encoder_f FilterCoefficient_encode_uper; +per_type_decoder_f FilterCoefficient_decode_aper; +per_type_encoder_f FilterCoefficient_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FilterCoefficient_H_ */ +#include diff --git a/src/codec_utils/RRC/FilterConfig.c b/src/codec_utils/RRC/FilterConfig.c new file mode 100644 index 000000000..a5b8709d4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FilterConfig.h" + +static int asn_DFL_2_cmp_4(const void *sptr) { + const 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) { + 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 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) { + 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 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) { + 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_FilterConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct FilterConfig, filterCoefficientRSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 FilterConfig, filterCoefficientRSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 FilterConfig, filterCoefficientRS_SINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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_FilterConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_FilterConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FilterConfig_specs_1 = { + sizeof(struct FilterConfig), + offsetof(struct FilterConfig, _asn_ctx), + asn_MAP_FilterConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FilterConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FilterConfig = { + "FilterConfig", + "FilterConfig", + &asn_OP_SEQUENCE, + asn_DEF_FilterConfig_tags_1, + sizeof(asn_DEF_FilterConfig_tags_1) + /sizeof(asn_DEF_FilterConfig_tags_1[0]), /* 1 */ + asn_DEF_FilterConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_FilterConfig_tags_1) + /sizeof(asn_DEF_FilterConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FilterConfig_1, + 3, /* Elements count */ + &asn_SPC_FilterConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FilterConfig.h b/src/codec_utils/RRC/FilterConfig.h new file mode 100644 index 000000000..3d5e0d916 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FilterConfig_H_ +#define _FilterConfig_H_ + + +#include + +/* Including external dependencies */ +#include "FilterCoefficient.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FilterConfig */ +typedef struct FilterConfig { + FilterCoefficient_t *filterCoefficientRSRP; /* DEFAULT 4 */ + FilterCoefficient_t *filterCoefficientRSRQ; /* DEFAULT 4 */ + FilterCoefficient_t *filterCoefficientRS_SINR; /* DEFAULT 4 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FilterConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FilterConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_FilterConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_FilterConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FilterConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandIndicatorEUTRA.c b/src/codec_utils/RRC/FreqBandIndicatorEUTRA.c new file mode 100644 index 000000000..2621d31d7 --- /dev/null +++ b/src/codec_utils/RRC/FreqBandIndicatorEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandIndicatorEUTRA.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FreqBandIndicatorEUTRA_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..256) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FreqBandIndicatorEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorEUTRA = { + "FreqBandIndicatorEUTRA", + "FreqBandIndicatorEUTRA", + &asn_OP_NativeInteger, + asn_DEF_FreqBandIndicatorEUTRA_tags_1, + sizeof(asn_DEF_FreqBandIndicatorEUTRA_tags_1) + /sizeof(asn_DEF_FreqBandIndicatorEUTRA_tags_1[0]), /* 1 */ + asn_DEF_FreqBandIndicatorEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandIndicatorEUTRA_tags_1) + /sizeof(asn_DEF_FreqBandIndicatorEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqBandIndicatorEUTRA_constr_1, &asn_PER_type_FreqBandIndicatorEUTRA_constr_1, FreqBandIndicatorEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FreqBandIndicatorEUTRA.h b/src/codec_utils/RRC/FreqBandIndicatorEUTRA.h new file mode 100644 index 000000000..c05cbd097 --- /dev/null +++ b/src/codec_utils/RRC/FreqBandIndicatorEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandIndicatorEUTRA_H_ +#define _FreqBandIndicatorEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqBandIndicatorEUTRA */ +typedef long FreqBandIndicatorEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FreqBandIndicatorEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorEUTRA; +asn_struct_free_f FreqBandIndicatorEUTRA_free; +asn_struct_print_f FreqBandIndicatorEUTRA_print; +asn_constr_check_f FreqBandIndicatorEUTRA_constraint; +ber_type_decoder_f FreqBandIndicatorEUTRA_decode_ber; +der_type_encoder_f FreqBandIndicatorEUTRA_encode_der; +xer_type_decoder_f FreqBandIndicatorEUTRA_decode_xer; +xer_type_encoder_f FreqBandIndicatorEUTRA_encode_xer; +oer_type_decoder_f FreqBandIndicatorEUTRA_decode_oer; +oer_type_encoder_f FreqBandIndicatorEUTRA_encode_oer; +per_type_decoder_f FreqBandIndicatorEUTRA_decode_uper; +per_type_encoder_f FreqBandIndicatorEUTRA_encode_uper; +per_type_decoder_f FreqBandIndicatorEUTRA_decode_aper; +per_type_encoder_f FreqBandIndicatorEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandIndicatorEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandIndicatorNR.c b/src/codec_utils/RRC/FreqBandIndicatorNR.c new file mode 100644 index 000000000..391cdbf9d --- /dev/null +++ b/src/codec_utils/RRC/FreqBandIndicatorNR.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandIndicatorNR.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_FreqBandIndicatorNR_constr_1 CC_NOTUSED = { + { 2, 1 } /* (1..1024) */, + -1}; +asn_per_constraints_t asn_PER_type_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_FreqBandIndicatorNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorNR = { + "FreqBandIndicatorNR", + "FreqBandIndicatorNR", + &asn_OP_NativeInteger, + asn_DEF_FreqBandIndicatorNR_tags_1, + sizeof(asn_DEF_FreqBandIndicatorNR_tags_1) + /sizeof(asn_DEF_FreqBandIndicatorNR_tags_1[0]), /* 1 */ + asn_DEF_FreqBandIndicatorNR_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandIndicatorNR_tags_1) + /sizeof(asn_DEF_FreqBandIndicatorNR_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqBandIndicatorNR_constr_1, &asn_PER_type_FreqBandIndicatorNR_constr_1, FreqBandIndicatorNR_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/FreqBandIndicatorNR.h b/src/codec_utils/RRC/FreqBandIndicatorNR.h new file mode 100644 index 000000000..011b97dad --- /dev/null +++ b/src/codec_utils/RRC/FreqBandIndicatorNR.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandIndicatorNR_H_ +#define _FreqBandIndicatorNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqBandIndicatorNR */ +typedef long FreqBandIndicatorNR_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FreqBandIndicatorNR_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorNR; +asn_struct_free_f FreqBandIndicatorNR_free; +asn_struct_print_f FreqBandIndicatorNR_print; +asn_constr_check_f FreqBandIndicatorNR_constraint; +ber_type_decoder_f FreqBandIndicatorNR_decode_ber; +der_type_encoder_f FreqBandIndicatorNR_encode_der; +xer_type_decoder_f FreqBandIndicatorNR_decode_xer; +xer_type_encoder_f FreqBandIndicatorNR_encode_xer; +oer_type_decoder_f FreqBandIndicatorNR_decode_oer; +oer_type_encoder_f FreqBandIndicatorNR_encode_oer; +per_type_decoder_f FreqBandIndicatorNR_decode_uper; +per_type_encoder_f FreqBandIndicatorNR_encode_uper; +per_type_decoder_f FreqBandIndicatorNR_decode_aper; +per_type_encoder_f FreqBandIndicatorNR_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandIndicatorNR_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandInformation.c b/src/codec_utils/RRC/FreqBandInformation.c new file mode 100644 index 000000000..18d5e8a2f --- /dev/null +++ b/src/codec_utils/RRC/FreqBandInformation.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandInformation.h" + +#include "FreqBandInformationEUTRA.h" +#include "FreqBandInformationNR.h" +static asn_oer_constraints_t asn_OER_type_FreqBandInformation_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_FreqBandInformation_1[] = { + { ATF_POINTER, 0, offsetof(struct FreqBandInformation, choice.bandInformationEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandInformationEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandInformationEUTRA" + }, + { ATF_POINTER, 0, offsetof(struct FreqBandInformation, choice.bandInformationNR), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandInformationNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandInformationNR" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FreqBandInformation_specs_1 = { + sizeof(struct FreqBandInformation), + offsetof(struct FreqBandInformation, _asn_ctx), + offsetof(struct FreqBandInformation, present), + sizeof(((struct FreqBandInformation *)0)->present), + asn_MAP_FreqBandInformation_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandInformation = { + "FreqBandInformation", + "FreqBandInformation", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_FreqBandInformation_constr_1, &asn_PER_type_FreqBandInformation_constr_1, CHOICE_constraint }, + asn_MBR_FreqBandInformation_1, + 2, /* Elements count */ + &asn_SPC_FreqBandInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqBandInformation.h b/src/codec_utils/RRC/FreqBandInformation.h new file mode 100644 index 000000000..8e34a09cd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandInformation_H_ +#define _FreqBandInformation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FreqBandInformation_PR { + FreqBandInformation_PR_NOTHING, /* No components present */ + FreqBandInformation_PR_bandInformationEUTRA, + FreqBandInformation_PR_bandInformationNR +} FreqBandInformation_PR; + +/* Forward declarations */ +struct FreqBandInformationEUTRA; +struct FreqBandInformationNR; + +/* FreqBandInformation */ +typedef struct FreqBandInformation { + FreqBandInformation_PR present; + union FreqBandInformation_u { + struct FreqBandInformationEUTRA *bandInformationEUTRA; + struct FreqBandInformationNR *bandInformationNR; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandInformation; +extern asn_CHOICE_specifics_t asn_SPC_FreqBandInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqBandInformation_1[2]; +extern asn_per_constraints_t asn_PER_type_FreqBandInformation_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandInformationEUTRA.c b/src/codec_utils/RRC/FreqBandInformationEUTRA.c new file mode 100644 index 000000000..5236466d8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandInformationEUTRA.h" + +asn_TYPE_member_t asn_MBR_FreqBandInformationEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqBandInformationEUTRA, bandEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct FreqBandInformationEUTRA, ca_BandwidthClassDL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassDL-EUTRA" + }, + { ATF_POINTER, 1, offsetof(struct FreqBandInformationEUTRA, ca_BandwidthClassUL_EUTRA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CA_BandwidthClassEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ca-BandwidthClassUL-EUTRA" + }, +}; +static const int asn_MAP_FreqBandInformationEUTRA_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_FreqBandInformationEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FreqBandInformationEUTRA_specs_1 = { + sizeof(struct FreqBandInformationEUTRA), + offsetof(struct FreqBandInformationEUTRA, _asn_ctx), + asn_MAP_FreqBandInformationEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FreqBandInformationEUTRA_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandInformationEUTRA = { + "FreqBandInformationEUTRA", + "FreqBandInformationEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_FreqBandInformationEUTRA_tags_1, + sizeof(asn_DEF_FreqBandInformationEUTRA_tags_1) + /sizeof(asn_DEF_FreqBandInformationEUTRA_tags_1[0]), /* 1 */ + asn_DEF_FreqBandInformationEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandInformationEUTRA_tags_1) + /sizeof(asn_DEF_FreqBandInformationEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqBandInformationEUTRA_1, + 3, /* Elements count */ + &asn_SPC_FreqBandInformationEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqBandInformationEUTRA.h b/src/codec_utils/RRC/FreqBandInformationEUTRA.h new file mode 100644 index 000000000..0cf57b6f5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandInformationEUTRA_H_ +#define _FreqBandInformationEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorEUTRA.h" +#include "CA-BandwidthClassEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqBandInformationEUTRA */ +typedef struct FreqBandInformationEUTRA { + FreqBandIndicatorEUTRA_t bandEUTRA; + CA_BandwidthClassEUTRA_t *ca_BandwidthClassDL_EUTRA; /* OPTIONAL */ + CA_BandwidthClassEUTRA_t *ca_BandwidthClassUL_EUTRA; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandInformationEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandInformationEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandInformationEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqBandInformationEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandInformationEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandInformationNR.c b/src/codec_utils/RRC/FreqBandInformationNR.c new file mode 100644 index 000000000..c8b016015 --- /dev/null +++ b/src/codec_utils/RRC/FreqBandInformationNR.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandInformationNR.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_maxCarriersRequestedDL_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxCarriersRequestedUL_constr_6 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_FreqBandInformationNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqBandInformationNR, bandNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bandNR" + }, + { ATF_POINTER, 4, offsetof(struct FreqBandInformationNR, maxBandwidthRequestedDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxBandwidthRequestedDL" + }, + { ATF_POINTER, 3, offsetof(struct FreqBandInformationNR, maxBandwidthRequestedUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxBandwidthRequestedUL" + }, + { ATF_POINTER, 2, offsetof(struct FreqBandInformationNR, maxCarriersRequestedDL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxCarriersRequestedDL_constr_5, &asn_PER_memb_maxCarriersRequestedDL_constr_5, memb_maxCarriersRequestedDL_constraint_1 }, + 0, 0, /* No default value */ + "maxCarriersRequestedDL" + }, + { ATF_POINTER, 1, offsetof(struct FreqBandInformationNR, maxCarriersRequestedUL), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxCarriersRequestedUL_constr_6, &asn_PER_memb_maxCarriersRequestedUL_constr_6, memb_maxCarriersRequestedUL_constraint_1 }, + 0, 0, /* No default value */ + "maxCarriersRequestedUL" + }, +}; +static const int asn_MAP_FreqBandInformationNR_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_FreqBandInformationNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FreqBandInformationNR_specs_1 = { + sizeof(struct FreqBandInformationNR), + offsetof(struct FreqBandInformationNR, _asn_ctx), + asn_MAP_FreqBandInformationNR_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_FreqBandInformationNR_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandInformationNR = { + "FreqBandInformationNR", + "FreqBandInformationNR", + &asn_OP_SEQUENCE, + asn_DEF_FreqBandInformationNR_tags_1, + sizeof(asn_DEF_FreqBandInformationNR_tags_1) + /sizeof(asn_DEF_FreqBandInformationNR_tags_1[0]), /* 1 */ + asn_DEF_FreqBandInformationNR_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandInformationNR_tags_1) + /sizeof(asn_DEF_FreqBandInformationNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqBandInformationNR_1, + 5, /* Elements count */ + &asn_SPC_FreqBandInformationNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqBandInformationNR.h b/src/codec_utils/RRC/FreqBandInformationNR.h new file mode 100644 index 000000000..afc9c8ffb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandInformationNR_H_ +#define _FreqBandInformationNR_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorNR.h" +#include "AggregatedBandwidth.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqBandInformationNR */ +typedef struct FreqBandInformationNR { + FreqBandIndicatorNR_t bandNR; + AggregatedBandwidth_t *maxBandwidthRequestedDL; /* OPTIONAL */ + AggregatedBandwidth_t *maxBandwidthRequestedUL; /* OPTIONAL */ + long *maxCarriersRequestedDL; /* OPTIONAL */ + long *maxCarriersRequestedUL; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandInformationNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandInformationNR; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqBandInformationNR_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqBandInformationNR_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandInformationNR_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqBandList.c b/src/codec_utils/RRC/FreqBandList.c new file mode 100644 index 000000000..4ae18b31e --- /dev/null +++ b/src/codec_utils/RRC/FreqBandList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqBandList.h" + +#include "FreqBandInformation.h" +static asn_oer_constraints_t asn_OER_type_FreqBandList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1280)) */}; +asn_per_constraints_t asn_PER_type_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_FreqBandList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_FreqBandInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreqBandList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FreqBandList_specs_1 = { + sizeof(struct FreqBandList), + offsetof(struct FreqBandList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqBandList = { + "FreqBandList", + "FreqBandList", + &asn_OP_SEQUENCE_OF, + asn_DEF_FreqBandList_tags_1, + sizeof(asn_DEF_FreqBandList_tags_1) + /sizeof(asn_DEF_FreqBandList_tags_1[0]), /* 1 */ + asn_DEF_FreqBandList_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqBandList_tags_1) + /sizeof(asn_DEF_FreqBandList_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqBandList_constr_1, &asn_PER_type_FreqBandList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FreqBandList_1, + 1, /* Single element */ + &asn_SPC_FreqBandList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqBandList.h b/src/codec_utils/RRC/FreqBandList.h new file mode 100644 index 000000000..e5e262b1d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqBandList_H_ +#define _FreqBandList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FreqBandInformation; + +/* FreqBandList */ +typedef struct FreqBandList { + A_SEQUENCE_OF(struct FreqBandInformation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqBandList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqBandList; +extern asn_SET_OF_specifics_t asn_SPC_FreqBandList_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqBandList_1[1]; +extern asn_per_constraints_t asn_PER_type_FreqBandList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqBandList_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqPriorityEUTRA.c b/src/codec_utils/RRC/FreqPriorityEUTRA.c new file mode 100644 index 000000000..fc6435c29 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqPriorityEUTRA.h" + +asn_TYPE_member_t asn_MBR_FreqPriorityEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqPriorityEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreqPriorityEUTRA, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct FreqPriorityEUTRA, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_FreqPriorityEUTRA_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_FreqPriorityEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FreqPriorityEUTRA_specs_1 = { + sizeof(struct FreqPriorityEUTRA), + offsetof(struct FreqPriorityEUTRA, _asn_ctx), + asn_MAP_FreqPriorityEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FreqPriorityEUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqPriorityEUTRA = { + "FreqPriorityEUTRA", + "FreqPriorityEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_FreqPriorityEUTRA_tags_1, + sizeof(asn_DEF_FreqPriorityEUTRA_tags_1) + /sizeof(asn_DEF_FreqPriorityEUTRA_tags_1[0]), /* 1 */ + asn_DEF_FreqPriorityEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqPriorityEUTRA_tags_1) + /sizeof(asn_DEF_FreqPriorityEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqPriorityEUTRA_1, + 3, /* Elements count */ + &asn_SPC_FreqPriorityEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqPriorityEUTRA.h b/src/codec_utils/RRC/FreqPriorityEUTRA.h new file mode 100644 index 000000000..55ee886a7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqPriorityEUTRA_H_ +#define _FreqPriorityEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include "CellReselectionPriority.h" +#include "CellReselectionSubPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqPriorityEUTRA */ +typedef struct FreqPriorityEUTRA { + ARFCN_ValueEUTRA_t carrierFreq; + CellReselectionPriority_t cellReselectionPriority; + CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqPriorityEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqPriorityEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqPriorityEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqPriorityEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqPriorityEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqPriorityListEUTRA.c b/src/codec_utils/RRC/FreqPriorityListEUTRA.c new file mode 100644 index 000000000..01bf83e78 --- /dev/null +++ b/src/codec_utils/RRC/FreqPriorityListEUTRA.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqPriorityListEUTRA.h" + +#include "FreqPriorityEUTRA.h" +static asn_oer_constraints_t asn_OER_type_FreqPriorityListEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_FreqPriorityListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FreqPriorityEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreqPriorityListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FreqPriorityListEUTRA_specs_1 = { + sizeof(struct FreqPriorityListEUTRA), + offsetof(struct FreqPriorityListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqPriorityListEUTRA = { + "FreqPriorityListEUTRA", + "FreqPriorityListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_FreqPriorityListEUTRA_tags_1, + sizeof(asn_DEF_FreqPriorityListEUTRA_tags_1) + /sizeof(asn_DEF_FreqPriorityListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_FreqPriorityListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqPriorityListEUTRA_tags_1) + /sizeof(asn_DEF_FreqPriorityListEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqPriorityListEUTRA_constr_1, &asn_PER_type_FreqPriorityListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FreqPriorityListEUTRA_1, + 1, /* Single element */ + &asn_SPC_FreqPriorityListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqPriorityListEUTRA.h b/src/codec_utils/RRC/FreqPriorityListEUTRA.h new file mode 100644 index 000000000..e33d02b8b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqPriorityListEUTRA_H_ +#define _FreqPriorityListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FreqPriorityEUTRA; + +/* FreqPriorityListEUTRA */ +typedef struct FreqPriorityListEUTRA { + A_SEQUENCE_OF(struct FreqPriorityEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqPriorityListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqPriorityListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_FreqPriorityListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqPriorityListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_FreqPriorityListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqPriorityListEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqPriorityListNR.c b/src/codec_utils/RRC/FreqPriorityListNR.c new file mode 100644 index 000000000..68618a833 --- /dev/null +++ b/src/codec_utils/RRC/FreqPriorityListNR.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqPriorityListNR.h" + +#include "FreqPriorityNR.h" +static asn_oer_constraints_t asn_OER_type_FreqPriorityListNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_FreqPriorityListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FreqPriorityNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_FreqPriorityListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_FreqPriorityListNR_specs_1 = { + sizeof(struct FreqPriorityListNR), + offsetof(struct FreqPriorityListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqPriorityListNR = { + "FreqPriorityListNR", + "FreqPriorityListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_FreqPriorityListNR_tags_1, + sizeof(asn_DEF_FreqPriorityListNR_tags_1) + /sizeof(asn_DEF_FreqPriorityListNR_tags_1[0]), /* 1 */ + asn_DEF_FreqPriorityListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqPriorityListNR_tags_1) + /sizeof(asn_DEF_FreqPriorityListNR_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqPriorityListNR_constr_1, &asn_PER_type_FreqPriorityListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_FreqPriorityListNR_1, + 1, /* Single element */ + &asn_SPC_FreqPriorityListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqPriorityListNR.h b/src/codec_utils/RRC/FreqPriorityListNR.h new file mode 100644 index 000000000..bb58d19f0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqPriorityListNR_H_ +#define _FreqPriorityListNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FreqPriorityNR; + +/* FreqPriorityListNR */ +typedef struct FreqPriorityListNR { + A_SEQUENCE_OF(struct FreqPriorityNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqPriorityListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqPriorityListNR; +extern asn_SET_OF_specifics_t asn_SPC_FreqPriorityListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqPriorityListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_FreqPriorityListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqPriorityListNR_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqPriorityNR.c b/src/codec_utils/RRC/FreqPriorityNR.c new file mode 100644 index 000000000..50dd9e225 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqPriorityNR.h" + +asn_TYPE_member_t asn_MBR_FreqPriorityNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FreqPriorityNR, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct FreqPriorityNR, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct FreqPriorityNR, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_FreqPriorityNR_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_FreqPriorityNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FreqPriorityNR_specs_1 = { + sizeof(struct FreqPriorityNR), + offsetof(struct FreqPriorityNR, _asn_ctx), + asn_MAP_FreqPriorityNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_FreqPriorityNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FreqPriorityNR = { + "FreqPriorityNR", + "FreqPriorityNR", + &asn_OP_SEQUENCE, + asn_DEF_FreqPriorityNR_tags_1, + sizeof(asn_DEF_FreqPriorityNR_tags_1) + /sizeof(asn_DEF_FreqPriorityNR_tags_1[0]), /* 1 */ + asn_DEF_FreqPriorityNR_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqPriorityNR_tags_1) + /sizeof(asn_DEF_FreqPriorityNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FreqPriorityNR_1, + 3, /* Elements count */ + &asn_SPC_FreqPriorityNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqPriorityNR.h b/src/codec_utils/RRC/FreqPriorityNR.h new file mode 100644 index 000000000..82c9a4dc6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqPriorityNR_H_ +#define _FreqPriorityNR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "CellReselectionPriority.h" +#include "CellReselectionSubPriority.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* FreqPriorityNR */ +typedef struct FreqPriorityNR { + ARFCN_ValueNR_t carrierFreq; + CellReselectionPriority_t cellReselectionPriority; + CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} FreqPriorityNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FreqPriorityNR; +extern asn_SEQUENCE_specifics_t asn_SPC_FreqPriorityNR_specs_1; +extern asn_TYPE_member_t asn_MBR_FreqPriorityNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqPriorityNR_H_ */ +#include diff --git a/src/codec_utils/RRC/FreqSeparationClass.c b/src/codec_utils/RRC/FreqSeparationClass.c new file mode 100644 index 000000000..3ccd7a17b --- /dev/null +++ b/src/codec_utils/RRC/FreqSeparationClass.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FreqSeparationClass.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_FreqSeparationClass_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_FreqSeparationClass_value2enum_1[] = { + { 0, 2, "c1" }, + { 1, 2, "c2" }, + { 2, 2, "c3" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_FreqSeparationClass_enum2value_1[] = { + 0, /* c1(0) */ + 1, /* c2(1) */ + 2 /* c3(2) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_FreqSeparationClass_specs_1 = { + asn_MAP_FreqSeparationClass_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_FreqSeparationClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_FreqSeparationClass = { + "FreqSeparationClass", + "FreqSeparationClass", + &asn_OP_NativeEnumerated, + asn_DEF_FreqSeparationClass_tags_1, + sizeof(asn_DEF_FreqSeparationClass_tags_1) + /sizeof(asn_DEF_FreqSeparationClass_tags_1[0]), /* 1 */ + asn_DEF_FreqSeparationClass_tags_1, /* Same as above */ + sizeof(asn_DEF_FreqSeparationClass_tags_1) + /sizeof(asn_DEF_FreqSeparationClass_tags_1[0]), /* 1 */ + { &asn_OER_type_FreqSeparationClass_constr_1, &asn_PER_type_FreqSeparationClass_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_FreqSeparationClass_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FreqSeparationClass.h b/src/codec_utils/RRC/FreqSeparationClass.h new file mode 100644 index 000000000..5ba5dac3b --- /dev/null +++ b/src/codec_utils/RRC/FreqSeparationClass.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FreqSeparationClass_H_ +#define _FreqSeparationClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FreqSeparationClass { + FreqSeparationClass_c1 = 0, + FreqSeparationClass_c2 = 1, + FreqSeparationClass_c3 = 2 + /* + * Enumeration is extensible + */ +} e_FreqSeparationClass; + +/* FreqSeparationClass */ +typedef long FreqSeparationClass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_FreqSeparationClass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_FreqSeparationClass; +extern const asn_INTEGER_specifics_t asn_SPC_FreqSeparationClass_specs_1; +asn_struct_free_f FreqSeparationClass_free; +asn_struct_print_f FreqSeparationClass_print; +asn_constr_check_f FreqSeparationClass_constraint; +ber_type_decoder_f FreqSeparationClass_decode_ber; +der_type_encoder_f FreqSeparationClass_encode_der; +xer_type_decoder_f FreqSeparationClass_decode_xer; +xer_type_encoder_f FreqSeparationClass_encode_xer; +oer_type_decoder_f FreqSeparationClass_decode_oer; +oer_type_encoder_f FreqSeparationClass_encode_oer; +per_type_decoder_f FreqSeparationClass_decode_uper; +per_type_encoder_f FreqSeparationClass_encode_uper; +per_type_decoder_f FreqSeparationClass_decode_aper; +per_type_encoder_f FreqSeparationClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _FreqSeparationClass_H_ */ +#include diff --git a/src/codec_utils/RRC/FrequencyInfoDL-SIB.c b/src/codec_utils/RRC/FrequencyInfoDL-SIB.c new file mode 100644 index 000000000..cdb3905b3 --- /dev/null +++ b/src/codec_utils/RRC/FrequencyInfoDL-SIB.c @@ -0,0 +1,183 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FrequencyInfoDL-SIB.h" + +#include "SCS-SpecificCarrier.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_offsetToPointA_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..2199) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct FrequencyInfoDL_SIB__scs_SpecificCarrierList), + offsetof(struct FrequencyInfoDL_SIB__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { &asn_OER_type_scs_SpecificCarrierList_constr_4, &asn_PER_type_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FrequencyInfoDL_SIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, offsetToPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_offsetToPointA_constr_3, &asn_PER_memb_offsetToPointA_constr_3, memb_offsetToPointA_constraint_1 }, + 0, 0, /* No default value */ + "offsetToPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_scs_SpecificCarrierList_4, + 0, + { &asn_OER_memb_scs_SpecificCarrierList_constr_4, &asn_PER_memb_scs_SpecificCarrierList_constr_4, memb_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, +}; +static const ber_tlv_tag_t asn_DEF_FrequencyInfoDL_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoDL_SIB_specs_1 = { + sizeof(struct FrequencyInfoDL_SIB), + offsetof(struct FrequencyInfoDL_SIB, _asn_ctx), + asn_MAP_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_FrequencyInfoDL_SIB = { + "FrequencyInfoDL-SIB", + "FrequencyInfoDL-SIB", + &asn_OP_SEQUENCE, + asn_DEF_FrequencyInfoDL_SIB_tags_1, + sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1) + /sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ + asn_DEF_FrequencyInfoDL_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1) + /sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FrequencyInfoDL_SIB_1, + 3, /* Elements count */ + &asn_SPC_FrequencyInfoDL_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FrequencyInfoDL-SIB.h b/src/codec_utils/RRC/FrequencyInfoDL-SIB.h new file mode 100644 index 000000000..329660b6e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FrequencyInfoDL_SIB_H_ +#define _FrequencyInfoDL_SIB_H_ + + +#include + +/* Including external dependencies */ +#include "MultiFrequencyBandListNR-SIB.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SCS_SpecificCarrier; + +/* FrequencyInfoDL-SIB */ +typedef struct FrequencyInfoDL_SIB { + MultiFrequencyBandListNR_SIB_t frequencyBandList; + long offsetToPointA; + struct FrequencyInfoDL_SIB__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct 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; +} FrequencyInfoDL_SIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoDL_SIB; +extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoDL_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_FrequencyInfoDL_SIB_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrequencyInfoDL_SIB_H_ */ +#include diff --git a/src/codec_utils/RRC/FrequencyInfoDL.c b/src/codec_utils/RRC/FrequencyInfoDL.c new file mode 100644 index 000000000..94ae7a398 --- /dev/null +++ b/src/codec_utils/RRC/FrequencyInfoDL.c @@ -0,0 +1,162 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FrequencyInfoDL.h" + +#include "SCS-SpecificCarrier.h" +static int +memb_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_5 = { + sizeof(struct FrequencyInfoDL__scs_SpecificCarrierList), + offsetof(struct FrequencyInfoDL__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_5 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_scs_SpecificCarrierList_tags_5, + sizeof(asn_DEF_scs_SpecificCarrierList_tags_5) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_5[0]) - 1, /* 1 */ + asn_DEF_scs_SpecificCarrierList_tags_5, /* Same as above */ + sizeof(asn_DEF_scs_SpecificCarrierList_tags_5) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_5[0]), /* 2 */ + { &asn_OER_type_scs_SpecificCarrierList_constr_5, &asn_PER_type_scs_SpecificCarrierList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_scs_SpecificCarrierList_5, + 1, /* Single element */ + &asn_SPC_scs_SpecificCarrierList_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FrequencyInfoDL_1[] = { + { ATF_POINTER, 1, offsetof(struct FrequencyInfoDL, absoluteFrequencySSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencySSB" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_scs_SpecificCarrierList_5, + 0, + { &asn_OER_memb_scs_SpecificCarrierList_constr_5, &asn_PER_memb_scs_SpecificCarrierList_constr_5, memb_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, +}; +static const int asn_MAP_FrequencyInfoDL_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_FrequencyInfoDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoDL_specs_1 = { + sizeof(struct FrequencyInfoDL), + offsetof(struct FrequencyInfoDL, _asn_ctx), + asn_MAP_FrequencyInfoDL_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_FrequencyInfoDL_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FrequencyInfoDL = { + "FrequencyInfoDL", + "FrequencyInfoDL", + &asn_OP_SEQUENCE, + asn_DEF_FrequencyInfoDL_tags_1, + sizeof(asn_DEF_FrequencyInfoDL_tags_1) + /sizeof(asn_DEF_FrequencyInfoDL_tags_1[0]), /* 1 */ + asn_DEF_FrequencyInfoDL_tags_1, /* Same as above */ + sizeof(asn_DEF_FrequencyInfoDL_tags_1) + /sizeof(asn_DEF_FrequencyInfoDL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FrequencyInfoDL_1, + 4, /* Elements count */ + &asn_SPC_FrequencyInfoDL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FrequencyInfoDL.h b/src/codec_utils/RRC/FrequencyInfoDL.h new file mode 100644 index 000000000..ad5be694f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FrequencyInfoDL_H_ +#define _FrequencyInfoDL_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "MultiFrequencyBandListNR.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SCS_SpecificCarrier; + +/* FrequencyInfoDL */ +typedef struct FrequencyInfoDL { + ARFCN_ValueNR_t *absoluteFrequencySSB; /* OPTIONAL */ + MultiFrequencyBandListNR_t frequencyBandList; + ARFCN_ValueNR_t absoluteFrequencyPointA; + struct FrequencyInfoDL__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct 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; +} FrequencyInfoDL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoDL; +extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoDL_specs_1; +extern asn_TYPE_member_t asn_MBR_FrequencyInfoDL_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrequencyInfoDL_H_ */ +#include diff --git a/src/codec_utils/RRC/FrequencyInfoUL-SIB.c b/src/codec_utils/RRC/FrequencyInfoUL-SIB.c new file mode 100644 index 000000000..03cdca164 --- /dev/null +++ b/src/codec_utils/RRC/FrequencyInfoUL-SIB.c @@ -0,0 +1,220 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FrequencyInfoUL-SIB.h" + +#include "MultiFrequencyBandListNR-SIB.h" +#include "SCS-SpecificCarrier.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_frequencyShift7p5khz_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct FrequencyInfoUL_SIB__scs_SpecificCarrierList), + offsetof(struct FrequencyInfoUL_SIB__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { &asn_OER_type_scs_SpecificCarrierList_constr_4, &asn_PER_type_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_frequencyShift7p5khz_value2enum_7[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_frequencyShift7p5khz_enum2value_7[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_frequencyShift7p5khz_specs_7 = { + asn_MAP_frequencyShift7p5khz_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_frequencyShift7p5khz_7 = { + "frequencyShift7p5khz", + "frequencyShift7p5khz", + &asn_OP_NativeEnumerated, + asn_DEF_frequencyShift7p5khz_tags_7, + sizeof(asn_DEF_frequencyShift7p5khz_tags_7) + /sizeof(asn_DEF_frequencyShift7p5khz_tags_7[0]) - 1, /* 1 */ + asn_DEF_frequencyShift7p5khz_tags_7, /* Same as above */ + sizeof(asn_DEF_frequencyShift7p5khz_tags_7) + /sizeof(asn_DEF_frequencyShift7p5khz_tags_7[0]), /* 2 */ + { &asn_OER_type_frequencyShift7p5khz_constr_7, &asn_PER_type_frequencyShift7p5khz_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_frequencyShift7p5khz_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FrequencyInfoUL_SIB_1[] = { + { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL_SIB, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL_SIB, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoUL_SIB, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_scs_SpecificCarrierList_4, + 0, + { &asn_OER_memb_scs_SpecificCarrierList_constr_4, &asn_PER_memb_scs_SpecificCarrierList_constr_4, memb_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, + { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL_SIB, p_Max), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL_SIB, frequencyShift7p5khz), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_frequencyShift7p5khz_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyShift7p5khz" + }, +}; +static const int asn_MAP_FrequencyInfoUL_SIB_oms_1[] = { 0, 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_FrequencyInfoUL_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoUL_SIB_specs_1 = { + sizeof(struct FrequencyInfoUL_SIB), + offsetof(struct FrequencyInfoUL_SIB, _asn_ctx), + asn_MAP_FrequencyInfoUL_SIB_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_FrequencyInfoUL_SIB_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL_SIB = { + "FrequencyInfoUL-SIB", + "FrequencyInfoUL-SIB", + &asn_OP_SEQUENCE, + asn_DEF_FrequencyInfoUL_SIB_tags_1, + sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1) + /sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ + asn_DEF_FrequencyInfoUL_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1) + /sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FrequencyInfoUL_SIB_1, + 5, /* Elements count */ + &asn_SPC_FrequencyInfoUL_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FrequencyInfoUL-SIB.h b/src/codec_utils/RRC/FrequencyInfoUL-SIB.h new file mode 100644 index 000000000..50c530d92 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FrequencyInfoUL_SIB_H_ +#define _FrequencyInfoUL_SIB_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "P-Max.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FrequencyInfoUL_SIB__frequencyShift7p5khz { + FrequencyInfoUL_SIB__frequencyShift7p5khz_true = 0 +} e_FrequencyInfoUL_SIB__frequencyShift7p5khz; + +/* Forward declarations */ +struct MultiFrequencyBandListNR_SIB; +struct SCS_SpecificCarrier; + +/* FrequencyInfoUL-SIB */ +typedef struct FrequencyInfoUL_SIB { + struct MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + ARFCN_ValueNR_t *absoluteFrequencyPointA; /* OPTIONAL */ + struct FrequencyInfoUL_SIB__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + 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; +} FrequencyInfoUL_SIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_frequencyShift7p5khz_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL_SIB; +extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoUL_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_FrequencyInfoUL_SIB_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrequencyInfoUL_SIB_H_ */ +#include diff --git a/src/codec_utils/RRC/FrequencyInfoUL.c b/src/codec_utils/RRC/FrequencyInfoUL.c new file mode 100644 index 000000000..97defb6c2 --- /dev/null +++ b/src/codec_utils/RRC/FrequencyInfoUL.c @@ -0,0 +1,230 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "FrequencyInfoUL.h" + +#include "MultiFrequencyBandListNR.h" +#include "SCS-SpecificCarrier.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_frequencyShift7p5khz_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_4 = { + sizeof(struct FrequencyInfoUL__scs_SpecificCarrierList), + offsetof(struct FrequencyInfoUL__scs_SpecificCarrierList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_4 = { + "scs-SpecificCarrierList", + "scs-SpecificCarrierList", + &asn_OP_SEQUENCE_OF, + asn_DEF_scs_SpecificCarrierList_tags_4, + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ + asn_DEF_scs_SpecificCarrierList_tags_4, /* Same as above */ + sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) + /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]), /* 2 */ + { &asn_OER_type_scs_SpecificCarrierList_constr_4, &asn_PER_type_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_scs_SpecificCarrierList_4, + 1, /* Single element */ + &asn_SPC_scs_SpecificCarrierList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_frequencyShift7p5khz_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_frequencyShift7p5khz_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_frequencyShift7p5khz_specs_8 = { + asn_MAP_frequencyShift7p5khz_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_frequencyShift7p5khz_8 = { + "frequencyShift7p5khz", + "frequencyShift7p5khz", + &asn_OP_NativeEnumerated, + asn_DEF_frequencyShift7p5khz_tags_8, + sizeof(asn_DEF_frequencyShift7p5khz_tags_8) + /sizeof(asn_DEF_frequencyShift7p5khz_tags_8[0]) - 1, /* 1 */ + asn_DEF_frequencyShift7p5khz_tags_8, /* Same as above */ + sizeof(asn_DEF_frequencyShift7p5khz_tags_8) + /sizeof(asn_DEF_frequencyShift7p5khz_tags_8[0]), /* 2 */ + { &asn_OER_type_frequencyShift7p5khz_constr_8, &asn_PER_type_frequencyShift7p5khz_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_frequencyShift7p5khz_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_FrequencyInfoUL_1[] = { + { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL, absoluteFrequencyPointA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteFrequencyPointA" + }, + { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoUL, scs_SpecificCarrierList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_scs_SpecificCarrierList_4, + 0, + { &asn_OER_memb_scs_SpecificCarrierList_constr_4, &asn_PER_memb_scs_SpecificCarrierList_constr_4, memb_scs_SpecificCarrierList_constraint_1 }, + 0, 0, /* No default value */ + "scs-SpecificCarrierList" + }, + { ATF_POINTER, 3, offsetof(struct FrequencyInfoUL, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdditionalSpectrumEmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, + { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL, p_Max), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL, frequencyShift7p5khz), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_frequencyShift7p5khz_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyShift7p5khz" + }, +}; +static const int asn_MAP_FrequencyInfoUL_oms_1[] = { 0, 1, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_FrequencyInfoUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoUL_specs_1 = { + sizeof(struct FrequencyInfoUL), + offsetof(struct FrequencyInfoUL, _asn_ctx), + asn_MAP_FrequencyInfoUL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_FrequencyInfoUL_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL = { + "FrequencyInfoUL", + "FrequencyInfoUL", + &asn_OP_SEQUENCE, + asn_DEF_FrequencyInfoUL_tags_1, + sizeof(asn_DEF_FrequencyInfoUL_tags_1) + /sizeof(asn_DEF_FrequencyInfoUL_tags_1[0]), /* 1 */ + asn_DEF_FrequencyInfoUL_tags_1, /* Same as above */ + sizeof(asn_DEF_FrequencyInfoUL_tags_1) + /sizeof(asn_DEF_FrequencyInfoUL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_FrequencyInfoUL_1, + 6, /* Elements count */ + &asn_SPC_FrequencyInfoUL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/FrequencyInfoUL.h b/src/codec_utils/RRC/FrequencyInfoUL.h new file mode 100644 index 000000000..27390a5c4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _FrequencyInfoUL_H_ +#define _FrequencyInfoUL_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "AdditionalSpectrumEmission.h" +#include "P-Max.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum FrequencyInfoUL__frequencyShift7p5khz { + FrequencyInfoUL__frequencyShift7p5khz_true = 0 +} e_FrequencyInfoUL__frequencyShift7p5khz; + +/* Forward declarations */ +struct MultiFrequencyBandListNR; +struct SCS_SpecificCarrier; + +/* FrequencyInfoUL */ +typedef struct FrequencyInfoUL { + struct MultiFrequencyBandListNR *frequencyBandList; /* OPTIONAL */ + ARFCN_ValueNR_t *absoluteFrequencyPointA; /* OPTIONAL */ + struct FrequencyInfoUL__scs_SpecificCarrierList { + A_SEQUENCE_OF(struct SCS_SpecificCarrier) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } scs_SpecificCarrierList; + AdditionalSpectrumEmission_t *additionalSpectrumEmission; /* OPTIONAL */ + 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; +} FrequencyInfoUL_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_frequencyShift7p5khz_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL; +extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoUL_specs_1; +extern asn_TYPE_member_t asn_MBR_FrequencyInfoUL_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _FrequencyInfoUL_H_ */ +#include diff --git a/src/codec_utils/RRC/GapConfig.c b/src/codec_utils/RRC/GapConfig.c new file mode 100644 index 000000000..119fe2f12 --- /dev/null +++ b/src/codec_utils/RRC/GapConfig.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static int +memb_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_oer_constraints_t asn_OER_type_mgl_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mgrp_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mgta_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_gapOffset_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_mgl_specs_3 = { + asn_MAP_mgl_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mgl_3 = { + "mgl", + "mgl", + &asn_OP_NativeEnumerated, + asn_DEF_mgl_tags_3, + sizeof(asn_DEF_mgl_tags_3) + /sizeof(asn_DEF_mgl_tags_3[0]) - 1, /* 1 */ + asn_DEF_mgl_tags_3, /* Same as above */ + sizeof(asn_DEF_mgl_tags_3) + /sizeof(asn_DEF_mgl_tags_3[0]), /* 2 */ + { &asn_OER_type_mgl_constr_3, &asn_PER_type_mgl_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mgl_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mgrp_value2enum_10[] = { + { 0, 4, "ms20" }, + { 1, 4, "ms40" }, + { 2, 4, "ms80" }, + { 3, 5, "ms160" } +}; +static const unsigned int asn_MAP_mgrp_enum2value_10[] = { + 3, /* ms160(3) */ + 0, /* ms20(0) */ + 1, /* ms40(1) */ + 2 /* ms80(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mgrp_specs_10 = { + asn_MAP_mgrp_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mgrp_10 = { + "mgrp", + "mgrp", + &asn_OP_NativeEnumerated, + asn_DEF_mgrp_tags_10, + sizeof(asn_DEF_mgrp_tags_10) + /sizeof(asn_DEF_mgrp_tags_10[0]) - 1, /* 1 */ + asn_DEF_mgrp_tags_10, /* Same as above */ + sizeof(asn_DEF_mgrp_tags_10) + /sizeof(asn_DEF_mgrp_tags_10[0]), /* 2 */ + { &asn_OER_type_mgrp_constr_10, &asn_PER_type_mgrp_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mgrp_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mgta_value2enum_15[] = { + { 0, 3, "ms0" }, + { 1, 8, "ms0dot25" }, + { 2, 7, "ms0dot5" } +}; +static const unsigned int asn_MAP_mgta_enum2value_15[] = { + 0, /* ms0(0) */ + 1, /* ms0dot25(1) */ + 2 /* ms0dot5(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mgta_specs_15 = { + asn_MAP_mgta_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mgta_15 = { + "mgta", + "mgta", + &asn_OP_NativeEnumerated, + asn_DEF_mgta_tags_15, + sizeof(asn_DEF_mgta_tags_15) + /sizeof(asn_DEF_mgta_tags_15[0]) - 1, /* 1 */ + asn_DEF_mgta_tags_15, /* Same as above */ + sizeof(asn_DEF_mgta_tags_15) + /sizeof(asn_DEF_mgta_tags_15[0]), /* 2 */ + { &asn_OER_type_mgta_constr_15, &asn_PER_type_mgta_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mgta_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GapConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct GapConfig, gapOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_gapOffset_constr_2, &asn_PER_memb_gapOffset_constr_2, memb_gapOffset_constraint_1 }, + 0, 0, /* No default value */ + "gapOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct GapConfig, mgl), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mgl_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgl" + }, + { ATF_NOFLAGS, 0, offsetof(struct GapConfig, mgrp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mgrp_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct GapConfig, mgta), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mgta_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mgta" + }, +}; +static const ber_tlv_tag_t asn_DEF_GapConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_GapConfig_specs_1 = { + sizeof(struct GapConfig), + offsetof(struct GapConfig, _asn_ctx), + asn_MAP_GapConfig_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_GapConfig = { + "GapConfig", + "GapConfig", + &asn_OP_SEQUENCE, + asn_DEF_GapConfig_tags_1, + sizeof(asn_DEF_GapConfig_tags_1) + /sizeof(asn_DEF_GapConfig_tags_1[0]), /* 1 */ + asn_DEF_GapConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_GapConfig_tags_1) + /sizeof(asn_DEF_GapConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GapConfig_1, + 4, /* Elements count */ + &asn_SPC_GapConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/GapConfig.h b/src/codec_utils/RRC/GapConfig.h new file mode 100644 index 000000000..84c5529c8 --- /dev/null +++ b/src/codec_utils/RRC/GapConfig.h @@ -0,0 +1,72 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GapConfig_H_ +#define _GapConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GapConfig__mgl { + GapConfig__mgl_ms1dot5 = 0, + GapConfig__mgl_ms3 = 1, + GapConfig__mgl_ms3dot5 = 2, + GapConfig__mgl_ms4 = 3, + GapConfig__mgl_ms5dot5 = 4, + GapConfig__mgl_ms6 = 5 +} e_GapConfig__mgl; +typedef enum GapConfig__mgrp { + GapConfig__mgrp_ms20 = 0, + GapConfig__mgrp_ms40 = 1, + GapConfig__mgrp_ms80 = 2, + GapConfig__mgrp_ms160 = 3 +} e_GapConfig__mgrp; +typedef enum GapConfig__mgta { + GapConfig__mgta_ms0 = 0, + GapConfig__mgta_ms0dot25 = 1, + GapConfig__mgta_ms0dot5 = 2 +} e_GapConfig__mgta; + +/* GapConfig */ +typedef struct GapConfig { + long gapOffset; + long mgl; + long mgrp; + long mgta; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GapConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_mgl_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mgrp_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mgta_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_GapConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_GapConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_GapConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GapConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.c b/src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.c new file mode 100644 index 000000000..53b267b94 --- /dev/null +++ b/src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.c @@ -0,0 +1,270 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_splitSRB_WithOneUL_Path_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_splitDRB_withUL_Both_MCG_SCG_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srb3_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_v2x_EUTRA_v1530_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_v2x_EUTRA_v1530_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_splitSRB_WithOneUL_Path_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_splitSRB_WithOneUL_Path_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_splitSRB_WithOneUL_Path_specs_2 = { + asn_MAP_splitSRB_WithOneUL_Path_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_splitSRB_WithOneUL_Path_2 = { + "splitSRB-WithOneUL-Path", + "splitSRB-WithOneUL-Path", + &asn_OP_NativeEnumerated, + asn_DEF_splitSRB_WithOneUL_Path_tags_2, + sizeof(asn_DEF_splitSRB_WithOneUL_Path_tags_2) + /sizeof(asn_DEF_splitSRB_WithOneUL_Path_tags_2[0]) - 1, /* 1 */ + asn_DEF_splitSRB_WithOneUL_Path_tags_2, /* Same as above */ + sizeof(asn_DEF_splitSRB_WithOneUL_Path_tags_2) + /sizeof(asn_DEF_splitSRB_WithOneUL_Path_tags_2[0]), /* 2 */ + { &asn_OER_type_splitSRB_WithOneUL_Path_constr_2, &asn_PER_type_splitSRB_WithOneUL_Path_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_splitSRB_WithOneUL_Path_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_splitDRB_withUL_Both_MCG_SCG_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_splitDRB_withUL_Both_MCG_SCG_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_splitDRB_withUL_Both_MCG_SCG_specs_4 = { + asn_MAP_splitDRB_withUL_Both_MCG_SCG_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_splitDRB_withUL_Both_MCG_SCG_4 = { + "splitDRB-withUL-Both-MCG-SCG", + "splitDRB-withUL-Both-MCG-SCG", + &asn_OP_NativeEnumerated, + asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4, + sizeof(asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4) + /sizeof(asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4[0]) - 1, /* 1 */ + asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4, /* Same as above */ + sizeof(asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4) + /sizeof(asn_DEF_splitDRB_withUL_Both_MCG_SCG_tags_4[0]), /* 2 */ + { &asn_OER_type_splitDRB_withUL_Both_MCG_SCG_constr_4, &asn_PER_type_splitDRB_withUL_Both_MCG_SCG_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_splitDRB_withUL_Both_MCG_SCG_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_srb3_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_srb3_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_srb3_specs_6 = { + asn_MAP_srb3_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_srb3_6 = { + "srb3", + "srb3", + &asn_OP_NativeEnumerated, + asn_DEF_srb3_tags_6, + sizeof(asn_DEF_srb3_tags_6) + /sizeof(asn_DEF_srb3_tags_6[0]) - 1, /* 1 */ + asn_DEF_srb3_tags_6, /* Same as above */ + sizeof(asn_DEF_srb3_tags_6) + /sizeof(asn_DEF_srb3_tags_6[0]), /* 2 */ + { &asn_OER_type_srb3_constr_6, &asn_PER_type_srb3_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_srb3_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_v2x_EUTRA_v1530_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_v2x_EUTRA_v1530_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_v2x_EUTRA_v1530_specs_8 = { + asn_MAP_v2x_EUTRA_v1530_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_v2x_EUTRA_v1530_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_v2x_EUTRA_v1530_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_v2x_EUTRA_v1530_8 = { + "v2x-EUTRA-v1530", + "v2x-EUTRA-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_v2x_EUTRA_v1530_tags_8, + sizeof(asn_DEF_v2x_EUTRA_v1530_tags_8) + /sizeof(asn_DEF_v2x_EUTRA_v1530_tags_8[0]) - 1, /* 1 */ + asn_DEF_v2x_EUTRA_v1530_tags_8, /* Same as above */ + sizeof(asn_DEF_v2x_EUTRA_v1530_tags_8) + /sizeof(asn_DEF_v2x_EUTRA_v1530_tags_8[0]), /* 2 */ + { &asn_OER_type_v2x_EUTRA_v1530_constr_8, &asn_PER_type_v2x_EUTRA_v1530_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_v2x_EUTRA_v1530_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_GeneralParametersMRDC_XDD_Diff_1[] = { + { ATF_POINTER, 4, offsetof(struct GeneralParametersMRDC_XDD_Diff, splitSRB_WithOneUL_Path), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_splitSRB_WithOneUL_Path_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "splitSRB-WithOneUL-Path" + }, + { ATF_POINTER, 3, offsetof(struct GeneralParametersMRDC_XDD_Diff, splitDRB_withUL_Both_MCG_SCG), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 GeneralParametersMRDC_XDD_Diff, srb3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_srb3_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb3" + }, + { ATF_POINTER, 1, offsetof(struct GeneralParametersMRDC_XDD_Diff, v2x_EUTRA_v1530), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_v2x_EUTRA_v1530_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "v2x-EUTRA-v1530" + }, +}; +static const int asn_MAP_GeneralParametersMRDC_XDD_Diff_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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-v1530 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_GeneralParametersMRDC_XDD_Diff_specs_1 = { + sizeof(struct GeneralParametersMRDC_XDD_Diff), + offsetof(struct GeneralParametersMRDC_XDD_Diff, _asn_ctx), + asn_MAP_GeneralParametersMRDC_XDD_Diff_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_GeneralParametersMRDC_XDD_Diff_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_GeneralParametersMRDC_XDD_Diff = { + "GeneralParametersMRDC-XDD-Diff", + "GeneralParametersMRDC-XDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1, + sizeof(asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_GeneralParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_GeneralParametersMRDC_XDD_Diff_1, + 4, /* Elements count */ + &asn_SPC_GeneralParametersMRDC_XDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.h b/src/codec_utils/RRC/GeneralParametersMRDC-XDD-Diff.h new file mode 100644 index 000000000..5ee9ce31e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GeneralParametersMRDC_XDD_Diff_H_ +#define _GeneralParametersMRDC_XDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path { + GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path_supported = 0 +} e_GeneralParametersMRDC_XDD_Diff__splitSRB_WithOneUL_Path; +typedef enum GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG { + GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG_supported = 0 +} e_GeneralParametersMRDC_XDD_Diff__splitDRB_withUL_Both_MCG_SCG; +typedef enum GeneralParametersMRDC_XDD_Diff__srb3 { + GeneralParametersMRDC_XDD_Diff__srb3_supported = 0 +} e_GeneralParametersMRDC_XDD_Diff__srb3; +typedef enum GeneralParametersMRDC_XDD_Diff__v2x_EUTRA_v1530 { + GeneralParametersMRDC_XDD_Diff__v2x_EUTRA_v1530_supported = 0 +} e_GeneralParametersMRDC_XDD_Diff__v2x_EUTRA_v1530; + +/* GeneralParametersMRDC-XDD-Diff */ +typedef struct GeneralParametersMRDC_XDD_Diff { + long *splitSRB_WithOneUL_Path; /* OPTIONAL */ + long *splitDRB_withUL_Both_MCG_SCG; /* OPTIONAL */ + long *srb3; /* OPTIONAL */ + long *v2x_EUTRA_v1530; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GeneralParametersMRDC_XDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_splitSRB_WithOneUL_Path_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_splitDRB_withUL_Both_MCG_SCG_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_srb3_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_v2x_EUTRA_v1530_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_GeneralParametersMRDC_XDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_GeneralParametersMRDC_XDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_GeneralParametersMRDC_XDD_Diff_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _GeneralParametersMRDC_XDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/HandoverCommand-IEs.c b/src/codec_utils/RRC/HandoverCommand-IEs.c new file mode 100644 index 000000000..a0dfcbac2 --- /dev/null +++ b/src/codec_utils/RRC/HandoverCommand-IEs.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "HandoverCommand-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_handoverCommandMessage_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct HandoverCommand_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_HandoverCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HandoverCommand_IEs, handoverCommandMessage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_handoverCommandMessage_constr_2, &asn_PER_memb_handoverCommandMessage_constr_2, memb_handoverCommandMessage_constraint_1 }, + 0, 0, /* No default value */ + "handoverCommandMessage" + }, + { ATF_POINTER, 1, offsetof(struct HandoverCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_HandoverCommand_IEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_HandoverCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_HandoverCommand_IEs_specs_1 = { + sizeof(struct HandoverCommand_IEs), + offsetof(struct HandoverCommand_IEs, _asn_ctx), + asn_MAP_HandoverCommand_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_HandoverCommand_IEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_HandoverCommand_IEs = { + "HandoverCommand-IEs", + "HandoverCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_HandoverCommand_IEs_tags_1, + sizeof(asn_DEF_HandoverCommand_IEs_tags_1) + /sizeof(asn_DEF_HandoverCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_HandoverCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_HandoverCommand_IEs_tags_1) + /sizeof(asn_DEF_HandoverCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_HandoverCommand_IEs_1, + 2, /* Elements count */ + &asn_SPC_HandoverCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/HandoverCommand-IEs.h b/src/codec_utils/RRC/HandoverCommand-IEs.h new file mode 100644 index 000000000..d332421ef --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _HandoverCommand_IEs_H_ +#define _HandoverCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* HandoverCommand-IEs */ +typedef struct HandoverCommand_IEs { + OCTET_STRING_t handoverCommandMessage; + struct 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; +} HandoverCommand_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HandoverCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_HandoverCommand_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _HandoverCommand_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/HandoverCommand.c b/src/codec_utils/RRC/HandoverCommand.c new file mode 100644 index 000000000..a8ca0c9f9 --- /dev/null +++ b/src/codec_utils/RRC/HandoverCommand.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "HandoverCommand.h" + +#include "HandoverCommand-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct HandoverCommand__criticalExtensions__c1, choice.handoverCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HandoverCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverCommand" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_3 = { + sizeof(struct HandoverCommand__criticalExtensions__c1), + offsetof(struct HandoverCommand__criticalExtensions__c1, _asn_ctx), + offsetof(struct HandoverCommand__criticalExtensions__c1, present), + sizeof(((struct HandoverCommand__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 4, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_8 = { + sizeof(struct HandoverCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct HandoverCommand__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct HandoverCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct HandoverCommand__criticalExtensions), + offsetof(struct HandoverCommand__criticalExtensions, _asn_ctx), + offsetof(struct HandoverCommand__criticalExtensions, present), + sizeof(((struct HandoverCommand__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_HandoverCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HandoverCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_HandoverCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_HandoverCommand_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_HandoverCommand_specs_1 = { + sizeof(struct HandoverCommand), + offsetof(struct HandoverCommand, _asn_ctx), + asn_MAP_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_HandoverCommand = { + "HandoverCommand", + "HandoverCommand", + &asn_OP_SEQUENCE, + asn_DEF_HandoverCommand_tags_1, + sizeof(asn_DEF_HandoverCommand_tags_1) + /sizeof(asn_DEF_HandoverCommand_tags_1[0]), /* 1 */ + asn_DEF_HandoverCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_HandoverCommand_tags_1) + /sizeof(asn_DEF_HandoverCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_HandoverCommand_1, + 1, /* Elements count */ + &asn_SPC_HandoverCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/HandoverCommand.h b/src/codec_utils/RRC/HandoverCommand.h new file mode 100644 index 000000000..9dccba0b2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _HandoverCommand_H_ +#define _HandoverCommand_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HandoverCommand__criticalExtensions_PR { + HandoverCommand__criticalExtensions_PR_NOTHING, /* No components present */ + HandoverCommand__criticalExtensions_PR_c1, + HandoverCommand__criticalExtensions_PR_criticalExtensionsFuture +} HandoverCommand__criticalExtensions_PR; +typedef enum HandoverCommand__criticalExtensions__c1_PR { + HandoverCommand__criticalExtensions__c1_PR_NOTHING, /* No components present */ + HandoverCommand__criticalExtensions__c1_PR_handoverCommand, + HandoverCommand__criticalExtensions__c1_PR_spare3, + HandoverCommand__criticalExtensions__c1_PR_spare2, + HandoverCommand__criticalExtensions__c1_PR_spare1 +} HandoverCommand__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct HandoverCommand_IEs; + +/* HandoverCommand */ +typedef struct HandoverCommand { + struct HandoverCommand__criticalExtensions { + HandoverCommand__criticalExtensions_PR present; + union HandoverCommand__criticalExtensions_u { + struct HandoverCommand__criticalExtensions__c1 { + HandoverCommand__criticalExtensions__c1_PR present; + union HandoverCommand__criticalExtensions__c1_u { + struct 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 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; +} HandoverCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HandoverCommand; + +#ifdef __cplusplus +} +#endif + +#endif /* _HandoverCommand_H_ */ +#include diff --git a/src/codec_utils/RRC/HandoverPreparationInformation-IEs.c b/src/codec_utils/RRC/HandoverPreparationInformation-IEs.c new file mode 100644 index 000000000..6088d3313 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "HandoverPreparationInformation-IEs.h" + +#include "AS-Config.h" +#include "RRM-Config.h" +#include "AS-Context.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_6 = { + sizeof(struct HandoverPreparationInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_6, + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_HandoverPreparationInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationInformation_IEs, ue_CapabilityRAT_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_CapabilityRAT_ContainerList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-List" + }, + { ATF_POINTER, 4, offsetof(struct HandoverPreparationInformation_IEs, sourceConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AS_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourceConfig" + }, + { ATF_POINTER, 3, offsetof(struct HandoverPreparationInformation_IEs, rrm_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRM_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrm-Config" + }, + { ATF_POINTER, 2, offsetof(struct HandoverPreparationInformation_IEs, as_Context), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AS_Context, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "as-Context" + }, + { ATF_POINTER, 1, offsetof(struct HandoverPreparationInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_HandoverPreparationInformation_IEs_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_HandoverPreparationInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_HandoverPreparationInformation_IEs_specs_1 = { + sizeof(struct HandoverPreparationInformation_IEs), + offsetof(struct HandoverPreparationInformation_IEs, _asn_ctx), + asn_MAP_HandoverPreparationInformation_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_HandoverPreparationInformation_IEs_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_HandoverPreparationInformation_IEs = { + "HandoverPreparationInformation-IEs", + "HandoverPreparationInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_HandoverPreparationInformation_IEs_tags_1, + sizeof(asn_DEF_HandoverPreparationInformation_IEs_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_HandoverPreparationInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_HandoverPreparationInformation_IEs_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_HandoverPreparationInformation_IEs_1, + 5, /* Elements count */ + &asn_SPC_HandoverPreparationInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/HandoverPreparationInformation-IEs.h b/src/codec_utils/RRC/HandoverPreparationInformation-IEs.h new file mode 100644 index 000000000..ad48ea8ab --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _HandoverPreparationInformation_IEs_H_ +#define _HandoverPreparationInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "UE-CapabilityRAT-ContainerList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AS_Config; +struct RRM_Config; +struct AS_Context; + +/* HandoverPreparationInformation-IEs */ +typedef struct HandoverPreparationInformation_IEs { + UE_CapabilityRAT_ContainerList_t ue_CapabilityRAT_List; + struct AS_Config *sourceConfig; /* OPTIONAL */ + struct RRM_Config *rrm_Config; /* OPTIONAL */ + struct AS_Context *as_Context; /* OPTIONAL */ + struct 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; +} HandoverPreparationInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_HandoverPreparationInformation_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _HandoverPreparationInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/HandoverPreparationInformation.c b/src/codec_utils/RRC/HandoverPreparationInformation.c new file mode 100644 index 000000000..e50087461 --- /dev/null +++ b/src/codec_utils/RRC/HandoverPreparationInformation.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "HandoverPreparationInformation.h" + +#include "HandoverPreparationInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct HandoverPreparationInformation__criticalExtensions__c1, choice.handoverPreparationInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_HandoverPreparationInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverPreparationInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_3 = { + sizeof(struct HandoverPreparationInformation__criticalExtensions__c1), + offsetof(struct HandoverPreparationInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct HandoverPreparationInformation__criticalExtensions__c1, present), + sizeof(((struct HandoverPreparationInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 4, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_8 = { + sizeof(struct HandoverPreparationInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct HandoverPreparationInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct HandoverPreparationInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct HandoverPreparationInformation__criticalExtensions), + offsetof(struct HandoverPreparationInformation__criticalExtensions, _asn_ctx), + offsetof(struct HandoverPreparationInformation__criticalExtensions, present), + sizeof(((struct HandoverPreparationInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_HandoverPreparationInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct HandoverPreparationInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_HandoverPreparationInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_HandoverPreparationInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationInformation_specs_1 = { + sizeof(struct HandoverPreparationInformation), + offsetof(struct HandoverPreparationInformation, _asn_ctx), + asn_MAP_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_HandoverPreparationInformation = { + "HandoverPreparationInformation", + "HandoverPreparationInformation", + &asn_OP_SEQUENCE, + asn_DEF_HandoverPreparationInformation_tags_1, + sizeof(asn_DEF_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_tags_1[0]), /* 1 */ + asn_DEF_HandoverPreparationInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_HandoverPreparationInformation_tags_1) + /sizeof(asn_DEF_HandoverPreparationInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_HandoverPreparationInformation_1, + 1, /* Elements count */ + &asn_SPC_HandoverPreparationInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/HandoverPreparationInformation.h b/src/codec_utils/RRC/HandoverPreparationInformation.h new file mode 100644 index 000000000..faa122748 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _HandoverPreparationInformation_H_ +#define _HandoverPreparationInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum HandoverPreparationInformation__criticalExtensions_PR { + HandoverPreparationInformation__criticalExtensions_PR_NOTHING, /* No components present */ + HandoverPreparationInformation__criticalExtensions_PR_c1, + HandoverPreparationInformation__criticalExtensions_PR_criticalExtensionsFuture +} HandoverPreparationInformation__criticalExtensions_PR; +typedef enum HandoverPreparationInformation__criticalExtensions__c1_PR { + HandoverPreparationInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + HandoverPreparationInformation__criticalExtensions__c1_PR_handoverPreparationInformation, + HandoverPreparationInformation__criticalExtensions__c1_PR_spare3, + HandoverPreparationInformation__criticalExtensions__c1_PR_spare2, + HandoverPreparationInformation__criticalExtensions__c1_PR_spare1 +} HandoverPreparationInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct HandoverPreparationInformation_IEs; + +/* HandoverPreparationInformation */ +typedef struct HandoverPreparationInformation { + struct HandoverPreparationInformation__criticalExtensions { + HandoverPreparationInformation__criticalExtensions_PR present; + union HandoverPreparationInformation__criticalExtensions_u { + struct HandoverPreparationInformation__criticalExtensions__c1 { + HandoverPreparationInformation__criticalExtensions__c1_PR present; + union HandoverPreparationInformation__criticalExtensions__c1_u { + struct 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 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; +} HandoverPreparationInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _HandoverPreparationInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/Hysteresis.c b/src/codec_utils/RRC/Hysteresis.c new file mode 100644 index 000000000..235189ce1 --- /dev/null +++ b/src/codec_utils/RRC/Hysteresis.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Hysteresis.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_Hysteresis_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..30) */, + -1}; +asn_per_constraints_t asn_PER_type_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_Hysteresis_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Hysteresis = { + "Hysteresis", + "Hysteresis", + &asn_OP_NativeInteger, + asn_DEF_Hysteresis_tags_1, + sizeof(asn_DEF_Hysteresis_tags_1) + /sizeof(asn_DEF_Hysteresis_tags_1[0]), /* 1 */ + asn_DEF_Hysteresis_tags_1, /* Same as above */ + sizeof(asn_DEF_Hysteresis_tags_1) + /sizeof(asn_DEF_Hysteresis_tags_1[0]), /* 1 */ + { &asn_OER_type_Hysteresis_constr_1, &asn_PER_type_Hysteresis_constr_1, Hysteresis_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/Hysteresis.h b/src/codec_utils/RRC/Hysteresis.h new file mode 100644 index 000000000..211ca5b09 --- /dev/null +++ b/src/codec_utils/RRC/Hysteresis.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Hysteresis_H_ +#define _Hysteresis_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Hysteresis */ +typedef long Hysteresis_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Hysteresis_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Hysteresis; +asn_struct_free_f Hysteresis_free; +asn_struct_print_f Hysteresis_print; +asn_constr_check_f Hysteresis_constraint; +ber_type_decoder_f Hysteresis_decode_ber; +der_type_encoder_f Hysteresis_encode_der; +xer_type_decoder_f Hysteresis_decode_xer; +xer_type_encoder_f Hysteresis_encode_xer; +oer_type_decoder_f Hysteresis_decode_oer; +oer_type_encoder_f Hysteresis_encode_oer; +per_type_decoder_f Hysteresis_decode_uper; +per_type_encoder_f Hysteresis_encode_uper; +per_type_decoder_f Hysteresis_decode_aper; +per_type_encoder_f Hysteresis_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Hysteresis_H_ */ +#include diff --git a/src/codec_utils/RRC/I-RNTI-Value.c b/src/codec_utils/RRC/I-RNTI-Value.c new file mode 100644 index 000000000..d063214f0 --- /dev/null +++ b/src/codec_utils/RRC/I-RNTI-Value.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "I-RNTI-Value.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_I_RNTI_Value_constr_1 CC_NOTUSED = { + { 0, 0 }, + 40 /* (SIZE(40..40)) */}; +asn_per_constraints_t asn_PER_type_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_I_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_I_RNTI_Value = { + "I-RNTI-Value", + "I-RNTI-Value", + &asn_OP_BIT_STRING, + asn_DEF_I_RNTI_Value_tags_1, + sizeof(asn_DEF_I_RNTI_Value_tags_1) + /sizeof(asn_DEF_I_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_I_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_I_RNTI_Value_tags_1) + /sizeof(asn_DEF_I_RNTI_Value_tags_1[0]), /* 1 */ + { &asn_OER_type_I_RNTI_Value_constr_1, &asn_PER_type_I_RNTI_Value_constr_1, I_RNTI_Value_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/I-RNTI-Value.h b/src/codec_utils/RRC/I-RNTI-Value.h new file mode 100644 index 000000000..23c6c49dd --- /dev/null +++ b/src/codec_utils/RRC/I-RNTI-Value.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _I_RNTI_Value_H_ +#define _I_RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* I-RNTI-Value */ +typedef BIT_STRING_t I_RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_I_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_I_RNTI_Value; +asn_struct_free_f I_RNTI_Value_free; +asn_struct_print_f I_RNTI_Value_print; +asn_constr_check_f I_RNTI_Value_constraint; +ber_type_decoder_f I_RNTI_Value_decode_ber; +der_type_encoder_f I_RNTI_Value_encode_der; +xer_type_decoder_f I_RNTI_Value_decode_xer; +xer_type_encoder_f I_RNTI_Value_encode_xer; +oer_type_decoder_f I_RNTI_Value_decode_oer; +oer_type_encoder_f I_RNTI_Value_encode_oer; +per_type_decoder_f I_RNTI_Value_decode_uper; +per_type_encoder_f I_RNTI_Value_encode_uper; +per_type_decoder_f I_RNTI_Value_decode_aper; +per_type_encoder_f I_RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _I_RNTI_Value_H_ */ +#include diff --git a/src/codec_utils/RRC/INT-ConfigurationPerServingCell.c b/src/codec_utils/RRC/INT-ConfigurationPerServingCell.c new file mode 100644 index 000000000..ad7deee2b --- /dev/null +++ b/src/codec_utils/RRC/INT-ConfigurationPerServingCell.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "INT-ConfigurationPerServingCell.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_positionInDCI_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..125) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_INT_ConfigurationPerServingCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct INT_ConfigurationPerServingCell, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct INT_ConfigurationPerServingCell, positionInDCI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_positionInDCI_constr_3, &asn_PER_memb_positionInDCI_constr_3, memb_positionInDCI_constraint_1 }, + 0, 0, /* No default value */ + "positionInDCI" + }, +}; +static const ber_tlv_tag_t asn_DEF_INT_ConfigurationPerServingCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_INT_ConfigurationPerServingCell_specs_1 = { + sizeof(struct INT_ConfigurationPerServingCell), + offsetof(struct INT_ConfigurationPerServingCell, _asn_ctx), + asn_MAP_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_INT_ConfigurationPerServingCell = { + "INT-ConfigurationPerServingCell", + "INT-ConfigurationPerServingCell", + &asn_OP_SEQUENCE, + asn_DEF_INT_ConfigurationPerServingCell_tags_1, + sizeof(asn_DEF_INT_ConfigurationPerServingCell_tags_1) + /sizeof(asn_DEF_INT_ConfigurationPerServingCell_tags_1[0]), /* 1 */ + asn_DEF_INT_ConfigurationPerServingCell_tags_1, /* Same as above */ + sizeof(asn_DEF_INT_ConfigurationPerServingCell_tags_1) + /sizeof(asn_DEF_INT_ConfigurationPerServingCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_INT_ConfigurationPerServingCell_1, + 2, /* Elements count */ + &asn_SPC_INT_ConfigurationPerServingCell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/INT-ConfigurationPerServingCell.h b/src/codec_utils/RRC/INT-ConfigurationPerServingCell.h new file mode 100644 index 000000000..e25ae14ad --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _INT_ConfigurationPerServingCell_H_ +#define _INT_ConfigurationPerServingCell_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* INT-ConfigurationPerServingCell */ +typedef struct INT_ConfigurationPerServingCell { + ServCellIndex_t servingCellId; + long positionInDCI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} INT_ConfigurationPerServingCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_INT_ConfigurationPerServingCell; +extern asn_SEQUENCE_specifics_t asn_SPC_INT_ConfigurationPerServingCell_specs_1; +extern asn_TYPE_member_t asn_MBR_INT_ConfigurationPerServingCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _INT_ConfigurationPerServingCell_H_ */ +#include diff --git a/src/codec_utils/RRC/InitialUE-Identity.c b/src/codec_utils/RRC/InitialUE-Identity.c new file mode 100644 index 000000000..5d9cc5d44 --- /dev/null +++ b/src/codec_utils/RRC/InitialUE-Identity.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InitialUE-Identity.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_ng_5G_S_TMSI_Part1_constr_2 CC_NOTUSED = { + { 0, 0 }, + 39 /* (SIZE(39..39)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_randomValue_constr_3 CC_NOTUSED = { + { 0, 0 }, + 39 /* (SIZE(39..39)) */}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_InitialUE_Identity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_InitialUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_ng_5G_S_TMSI_Part1_constr_2, &asn_PER_memb_ng_5G_S_TMSI_Part1_constr_2, memb_ng_5G_S_TMSI_Part1_constraint_1 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI-Part1" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitialUE_Identity, choice.randomValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_randomValue_constr_3, &asn_PER_memb_randomValue_constr_3, memb_randomValue_constraint_1 }, + 0, 0, /* No default value */ + "randomValue" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_InitialUE_Identity_specs_1 = { + sizeof(struct InitialUE_Identity), + offsetof(struct InitialUE_Identity, _asn_ctx), + offsetof(struct InitialUE_Identity, present), + sizeof(((struct InitialUE_Identity *)0)->present), + asn_MAP_InitialUE_Identity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_InitialUE_Identity_constr_1, &asn_PER_type_InitialUE_Identity_constr_1, CHOICE_constraint }, + asn_MBR_InitialUE_Identity_1, + 2, /* Elements count */ + &asn_SPC_InitialUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InitialUE-Identity.h b/src/codec_utils/RRC/InitialUE-Identity.h new file mode 100644 index 000000000..e3ecd350e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InitialUE_Identity_H_ +#define _InitialUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum InitialUE_Identity_PR { + InitialUE_Identity_PR_NOTHING, /* No components present */ + InitialUE_Identity_PR_ng_5G_S_TMSI_Part1, + InitialUE_Identity_PR_randomValue +} InitialUE_Identity_PR; + +/* InitialUE-Identity */ +typedef struct InitialUE_Identity { + InitialUE_Identity_PR present; + union 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; +} InitialUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InitialUE_Identity; +extern asn_CHOICE_specifics_t asn_SPC_InitialUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_InitialUE_Identity_1[2]; +extern asn_per_constraints_t asn_PER_type_InitialUE_Identity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _InitialUE_Identity_H_ */ +#include diff --git a/src/codec_utils/RRC/IntegrityProtAlgorithm.c b/src/codec_utils/RRC/IntegrityProtAlgorithm.c new file mode 100644 index 000000000..f1bb10a0e --- /dev/null +++ b/src/codec_utils/RRC/IntegrityProtAlgorithm.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "IntegrityProtAlgorithm.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_IntegrityProtAlgorithm_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_IntegrityProtAlgorithm_specs_1 = { + asn_MAP_IntegrityProtAlgorithm_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_IntegrityProtAlgorithm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_IntegrityProtAlgorithm = { + "IntegrityProtAlgorithm", + "IntegrityProtAlgorithm", + &asn_OP_NativeEnumerated, + asn_DEF_IntegrityProtAlgorithm_tags_1, + sizeof(asn_DEF_IntegrityProtAlgorithm_tags_1) + /sizeof(asn_DEF_IntegrityProtAlgorithm_tags_1[0]), /* 1 */ + asn_DEF_IntegrityProtAlgorithm_tags_1, /* Same as above */ + sizeof(asn_DEF_IntegrityProtAlgorithm_tags_1) + /sizeof(asn_DEF_IntegrityProtAlgorithm_tags_1[0]), /* 1 */ + { &asn_OER_type_IntegrityProtAlgorithm_constr_1, &asn_PER_type_IntegrityProtAlgorithm_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_IntegrityProtAlgorithm_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/IntegrityProtAlgorithm.h b/src/codec_utils/RRC/IntegrityProtAlgorithm.h new file mode 100644 index 000000000..f75113069 --- /dev/null +++ b/src/codec_utils/RRC/IntegrityProtAlgorithm.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _IntegrityProtAlgorithm_H_ +#define _IntegrityProtAlgorithm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum IntegrityProtAlgorithm { + IntegrityProtAlgorithm_nia0 = 0, + IntegrityProtAlgorithm_nia1 = 1, + IntegrityProtAlgorithm_nia2 = 2, + IntegrityProtAlgorithm_nia3 = 3, + IntegrityProtAlgorithm_spare4 = 4, + IntegrityProtAlgorithm_spare3 = 5, + IntegrityProtAlgorithm_spare2 = 6, + IntegrityProtAlgorithm_spare1 = 7 + /* + * Enumeration is extensible + */ +} e_IntegrityProtAlgorithm; + +/* IntegrityProtAlgorithm */ +typedef long IntegrityProtAlgorithm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_IntegrityProtAlgorithm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_IntegrityProtAlgorithm; +extern const asn_INTEGER_specifics_t asn_SPC_IntegrityProtAlgorithm_specs_1; +asn_struct_free_f IntegrityProtAlgorithm_free; +asn_struct_print_f IntegrityProtAlgorithm_print; +asn_constr_check_f IntegrityProtAlgorithm_constraint; +ber_type_decoder_f IntegrityProtAlgorithm_decode_ber; +der_type_encoder_f IntegrityProtAlgorithm_encode_der; +xer_type_decoder_f IntegrityProtAlgorithm_decode_xer; +xer_type_encoder_f IntegrityProtAlgorithm_encode_xer; +oer_type_decoder_f IntegrityProtAlgorithm_decode_oer; +oer_type_encoder_f IntegrityProtAlgorithm_encode_oer; +per_type_decoder_f IntegrityProtAlgorithm_decode_uper; +per_type_encoder_f IntegrityProtAlgorithm_encode_uper; +per_type_decoder_f IntegrityProtAlgorithm_decode_aper; +per_type_encoder_f IntegrityProtAlgorithm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntegrityProtAlgorithm_H_ */ +#include diff --git a/src/codec_utils/RRC/InterFreqBlackCellList.c b/src/codec_utils/RRC/InterFreqBlackCellList.c new file mode 100644 index 000000000..63fec11cc --- /dev/null +++ b/src/codec_utils/RRC/InterFreqBlackCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterFreqBlackCellList.h" + +#include "PCI-Range.h" +static asn_oer_constraints_t asn_OER_type_InterFreqBlackCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_InterFreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterFreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_InterFreqBlackCellList_specs_1 = { + sizeof(struct InterFreqBlackCellList), + offsetof(struct InterFreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_InterFreqBlackCellList = { + "InterFreqBlackCellList", + "InterFreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_InterFreqBlackCellList_tags_1, + sizeof(asn_DEF_InterFreqBlackCellList_tags_1) + /sizeof(asn_DEF_InterFreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_InterFreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_InterFreqBlackCellList_tags_1) + /sizeof(asn_DEF_InterFreqBlackCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_InterFreqBlackCellList_constr_1, &asn_PER_type_InterFreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_InterFreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_InterFreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterFreqBlackCellList.h b/src/codec_utils/RRC/InterFreqBlackCellList.h new file mode 100644 index 000000000..c8e77a261 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterFreqBlackCellList_H_ +#define _InterFreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PCI_Range; + +/* InterFreqBlackCellList */ +typedef struct InterFreqBlackCellList { + A_SEQUENCE_OF(struct PCI_Range) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterFreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterFreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_InterFreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_InterFreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_InterFreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterFreqBlackCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/InterFreqCarrierFreqInfo.c b/src/codec_utils/RRC/InterFreqCarrierFreqInfo.c new file mode 100644 index 000000000..952a630e1 --- /dev/null +++ b/src/codec_utils/RRC/InterFreqCarrierFreqInfo.c @@ -0,0 +1,399 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterFreqCarrierFreqInfo.h" + +#include "MultiFrequencyBandListNR-SIB.h" +#include "ThresholdNR.h" +#include "SSB-MTC.h" +#include "SSB-ToMeasure.h" +#include "SS-RSSI-Measurement.h" +#include "SpeedStateScaleFactors.h" +#include "InterFreqNeighCellList.h" +#include "InterFreqBlackCellList.h" +static int +memb_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_oer_constraints_t asn_OER_memb_nrofSS_BlocksToAverage_constr_5 CC_NOTUSED = { + { 1, 1 } /* (2..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_threshX_Q_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo__threshX_Q, threshX_HighQ), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo__threshX_Q, threshX_LowQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowQ" + }, +}; +static const ber_tlv_tag_t asn_DEF_threshX_Q_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_threshX_Q_specs_20 = { + sizeof(struct InterFreqCarrierFreqInfo__threshX_Q), + offsetof(struct InterFreqCarrierFreqInfo__threshX_Q, _asn_ctx), + asn_MAP_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_threshX_Q_20 = { + "threshX-Q", + "threshX-Q", + &asn_OP_SEQUENCE, + asn_DEF_threshX_Q_tags_20, + sizeof(asn_DEF_threshX_Q_tags_20) + /sizeof(asn_DEF_threshX_Q_tags_20[0]) - 1, /* 1 */ + asn_DEF_threshX_Q_tags_20, /* Same as above */ + sizeof(asn_DEF_threshX_Q_tags_20) + /sizeof(asn_DEF_threshX_Q_tags_20[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_threshX_Q_20, + 2, /* Elements count */ + &asn_SPC_threshX_Q_specs_20 /* Additional specs */ +}; + +static int asn_DFL_25_cmp_15(const void *sptr) { + const 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) { + 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_InterFreqCarrierFreqInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, dl_CarrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-CarrierFreq" + }, + { ATF_POINTER, 5, offsetof(struct InterFreqCarrierFreqInfo, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 4, offsetof(struct InterFreqCarrierFreqInfo, frequencyBandListSUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListSUL" + }, + { ATF_POINTER, 3, offsetof(struct InterFreqCarrierFreqInfo, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSS_BlocksToAverage_constr_5, &asn_PER_memb_nrofSS_BlocksToAverage_constr_5, memb_nrofSS_BlocksToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 2, offsetof(struct InterFreqCarrierFreqInfo, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqCarrierFreqInfo, smtc), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqCarrierFreqInfo, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 InterFreqCarrierFreqInfo, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 3, offsetof(struct InterFreqCarrierFreqInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 2, offsetof(struct InterFreqCarrierFreqInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqCarrierFreqInfo, p_Max), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, t_ReselectionNR), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqCarrierFreqInfo, t_ReselectionNR_SF), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR-SF" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, threshX_HighP), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-HighP" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqCarrierFreqInfo, threshX_LowP), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-LowP" + }, + { ATF_POINTER, 6, offsetof(struct InterFreqCarrierFreqInfo, threshX_Q), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_threshX_Q_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshX-Q" + }, + { ATF_POINTER, 5, offsetof(struct InterFreqCarrierFreqInfo, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 4, offsetof(struct InterFreqCarrierFreqInfo, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, + { ATF_POINTER, 3, offsetof(struct InterFreqCarrierFreqInfo, q_OffsetFreq), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 InterFreqCarrierFreqInfo, interFreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterFreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqNeighCellList" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqCarrierFreqInfo, interFreqBlackCellList), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterFreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqBlackCellList" + }, +}; +static const int asn_MAP_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_InterFreqCarrierFreqInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_InterFreqCarrierFreqInfo_specs_1 = { + sizeof(struct InterFreqCarrierFreqInfo), + offsetof(struct InterFreqCarrierFreqInfo, _asn_ctx), + asn_MAP_InterFreqCarrierFreqInfo_tag2el_1, + 24, /* Count of tags in the map */ + asn_MAP_InterFreqCarrierFreqInfo_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 24, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InterFreqCarrierFreqInfo = { + "InterFreqCarrierFreqInfo", + "InterFreqCarrierFreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_InterFreqCarrierFreqInfo_tags_1, + sizeof(asn_DEF_InterFreqCarrierFreqInfo_tags_1) + /sizeof(asn_DEF_InterFreqCarrierFreqInfo_tags_1[0]), /* 1 */ + asn_DEF_InterFreqCarrierFreqInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_InterFreqCarrierFreqInfo_tags_1) + /sizeof(asn_DEF_InterFreqCarrierFreqInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InterFreqCarrierFreqInfo_1, + 24, /* Elements count */ + &asn_SPC_InterFreqCarrierFreqInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterFreqCarrierFreqInfo.h b/src/codec_utils/RRC/InterFreqCarrierFreqInfo.h new file mode 100644 index 000000000..6ad741531 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterFreqCarrierFreqInfo_H_ +#define _InterFreqCarrierFreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include +#include "SubcarrierSpacing.h" +#include +#include "Q-RxLevMin.h" +#include "Q-QualMin.h" +#include "P-Max.h" +#include "T-Reselection.h" +#include "ReselectionThreshold.h" +#include "CellReselectionPriority.h" +#include "CellReselectionSubPriority.h" +#include "Q-OffsetRange.h" +#include "ReselectionThresholdQ.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MultiFrequencyBandListNR_SIB; +struct ThresholdNR; +struct SSB_MTC; +struct SSB_ToMeasure; +struct SS_RSSI_Measurement; +struct SpeedStateScaleFactors; +struct InterFreqNeighCellList; +struct InterFreqBlackCellList; + +/* InterFreqCarrierFreqInfo */ +typedef struct InterFreqCarrierFreqInfo { + ARFCN_ValueNR_t dl_CarrierFreq; + struct MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + struct MultiFrequencyBandListNR_SIB *frequencyBandListSUL; /* OPTIONAL */ + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + struct ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + struct SSB_MTC *smtc; /* OPTIONAL */ + SubcarrierSpacing_t ssbSubcarrierSpacing; + struct SSB_ToMeasure *ssb_ToMeasure; /* OPTIONAL */ + BOOLEAN_t deriveSSB_IndexFromCell; + struct SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + Q_RxLevMin_t q_RxLevMin; + Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + Q_QualMin_t *q_QualMin; /* OPTIONAL */ + P_Max_t *p_Max; /* OPTIONAL */ + T_Reselection_t t_ReselectionNR; + struct SpeedStateScaleFactors *t_ReselectionNR_SF; /* OPTIONAL */ + ReselectionThreshold_t threshX_HighP; + ReselectionThreshold_t threshX_LowP; + struct InterFreqCarrierFreqInfo__threshX_Q { + ReselectionThresholdQ_t threshX_HighQ; + ReselectionThresholdQ_t threshX_LowQ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *threshX_Q; + CellReselectionPriority_t *cellReselectionPriority; /* OPTIONAL */ + CellReselectionSubPriority_t *cellReselectionSubPriority; /* OPTIONAL */ + Q_OffsetRange_t *q_OffsetFreq; /* DEFAULT 15 */ + struct InterFreqNeighCellList *interFreqNeighCellList; /* OPTIONAL */ + struct InterFreqBlackCellList *interFreqBlackCellList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterFreqCarrierFreqInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterFreqCarrierFreqInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_InterFreqCarrierFreqInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_InterFreqCarrierFreqInfo_1[24]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterFreqCarrierFreqInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/InterFreqCarrierFreqList.c b/src/codec_utils/RRC/InterFreqCarrierFreqList.c new file mode 100644 index 000000000..2ac6fbd52 --- /dev/null +++ b/src/codec_utils/RRC/InterFreqCarrierFreqList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterFreqCarrierFreqList.h" + +#include "InterFreqCarrierFreqInfo.h" +static asn_oer_constraints_t asn_OER_type_InterFreqCarrierFreqList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_InterFreqCarrierFreqList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_InterFreqCarrierFreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterFreqCarrierFreqList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_InterFreqCarrierFreqList_specs_1 = { + sizeof(struct InterFreqCarrierFreqList), + offsetof(struct InterFreqCarrierFreqList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_InterFreqCarrierFreqList = { + "InterFreqCarrierFreqList", + "InterFreqCarrierFreqList", + &asn_OP_SEQUENCE_OF, + asn_DEF_InterFreqCarrierFreqList_tags_1, + sizeof(asn_DEF_InterFreqCarrierFreqList_tags_1) + /sizeof(asn_DEF_InterFreqCarrierFreqList_tags_1[0]), /* 1 */ + asn_DEF_InterFreqCarrierFreqList_tags_1, /* Same as above */ + sizeof(asn_DEF_InterFreqCarrierFreqList_tags_1) + /sizeof(asn_DEF_InterFreqCarrierFreqList_tags_1[0]), /* 1 */ + { &asn_OER_type_InterFreqCarrierFreqList_constr_1, &asn_PER_type_InterFreqCarrierFreqList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_InterFreqCarrierFreqList_1, + 1, /* Single element */ + &asn_SPC_InterFreqCarrierFreqList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterFreqCarrierFreqList.h b/src/codec_utils/RRC/InterFreqCarrierFreqList.h new file mode 100644 index 000000000..8a747bbb1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterFreqCarrierFreqList_H_ +#define _InterFreqCarrierFreqList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct InterFreqCarrierFreqInfo; + +/* InterFreqCarrierFreqList */ +typedef struct InterFreqCarrierFreqList { + A_SEQUENCE_OF(struct InterFreqCarrierFreqInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterFreqCarrierFreqList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterFreqCarrierFreqList; +extern asn_SET_OF_specifics_t asn_SPC_InterFreqCarrierFreqList_specs_1; +extern asn_TYPE_member_t asn_MBR_InterFreqCarrierFreqList_1[1]; +extern asn_per_constraints_t asn_PER_type_InterFreqCarrierFreqList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterFreqCarrierFreqList_H_ */ +#include diff --git a/src/codec_utils/RRC/InterFreqNeighCellInfo.c b/src/codec_utils/RRC/InterFreqNeighCellInfo.c new file mode 100644 index 000000000..cfdf4c7a2 --- /dev/null +++ b/src/codec_utils/RRC/InterFreqNeighCellInfo.c @@ -0,0 +1,191 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterFreqNeighCellInfo.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffsetCellSUL_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMinOffsetCell_constr_6 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_InterFreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct InterFreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct InterFreqNeighCellInfo, q_OffsetCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-OffsetCell" + }, + { ATF_POINTER, 3, offsetof(struct InterFreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffsetCell_constr_4, &asn_PER_memb_q_RxLevMinOffsetCell_constr_4, memb_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 2, offsetof(struct InterFreqNeighCellInfo, q_RxLevMinOffsetCellSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffsetCellSUL_constr_5, &asn_PER_memb_q_RxLevMinOffsetCellSUL_constr_5, memb_q_RxLevMinOffsetCellSUL_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCellSUL" + }, + { ATF_POINTER, 1, offsetof(struct InterFreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_QualMinOffsetCell_constr_6, &asn_PER_memb_q_QualMinOffsetCell_constr_6, memb_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_InterFreqNeighCellInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_InterFreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_InterFreqNeighCellInfo_specs_1 = { + sizeof(struct InterFreqNeighCellInfo), + offsetof(struct InterFreqNeighCellInfo, _asn_ctx), + asn_MAP_InterFreqNeighCellInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_InterFreqNeighCellInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InterFreqNeighCellInfo = { + "InterFreqNeighCellInfo", + "InterFreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_InterFreqNeighCellInfo_tags_1, + sizeof(asn_DEF_InterFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_InterFreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_InterFreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_InterFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_InterFreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InterFreqNeighCellInfo_1, + 5, /* Elements count */ + &asn_SPC_InterFreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterFreqNeighCellInfo.h b/src/codec_utils/RRC/InterFreqNeighCellInfo.h new file mode 100644 index 000000000..23aa3f57d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterFreqNeighCellInfo_H_ +#define _InterFreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* InterFreqNeighCellInfo */ +typedef struct InterFreqNeighCellInfo { + PhysCellId_t physCellId; + 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; +} InterFreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterFreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_InterFreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_InterFreqNeighCellInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterFreqNeighCellInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/InterFreqNeighCellList.c b/src/codec_utils/RRC/InterFreqNeighCellList.c new file mode 100644 index 000000000..8b1e169f7 --- /dev/null +++ b/src/codec_utils/RRC/InterFreqNeighCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterFreqNeighCellList.h" + +#include "InterFreqNeighCellInfo.h" +static asn_oer_constraints_t asn_OER_type_InterFreqNeighCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_InterFreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_InterFreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_InterFreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_InterFreqNeighCellList_specs_1 = { + sizeof(struct InterFreqNeighCellList), + offsetof(struct InterFreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_InterFreqNeighCellList = { + "InterFreqNeighCellList", + "InterFreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_InterFreqNeighCellList_tags_1, + sizeof(asn_DEF_InterFreqNeighCellList_tags_1) + /sizeof(asn_DEF_InterFreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_InterFreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_InterFreqNeighCellList_tags_1) + /sizeof(asn_DEF_InterFreqNeighCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_InterFreqNeighCellList_constr_1, &asn_PER_type_InterFreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_InterFreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_InterFreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterFreqNeighCellList.h b/src/codec_utils/RRC/InterFreqNeighCellList.h new file mode 100644 index 000000000..a23e67c11 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterFreqNeighCellList_H_ +#define _InterFreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct InterFreqNeighCellInfo; + +/* InterFreqNeighCellList */ +typedef struct InterFreqNeighCellList { + A_SEQUENCE_OF(struct InterFreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterFreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterFreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_InterFreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_InterFreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_InterFreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterFreqNeighCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/InterRAT-Parameters.c b/src/codec_utils/RRC/InterRAT-Parameters.c new file mode 100644 index 000000000..097f4e596 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "InterRAT-Parameters.h" + +#include "EUTRA-Parameters.h" +static asn_TYPE_member_t asn_MBR_InterRAT_Parameters_1[] = { + { ATF_POINTER, 1, offsetof(struct InterRAT_Parameters, eutra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, +}; +static const int asn_MAP_InterRAT_Parameters_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_InterRAT_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_InterRAT_Parameters_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eutra */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_InterRAT_Parameters_specs_1 = { + sizeof(struct InterRAT_Parameters), + offsetof(struct InterRAT_Parameters, _asn_ctx), + asn_MAP_InterRAT_Parameters_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_InterRAT_Parameters_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_InterRAT_Parameters = { + "InterRAT-Parameters", + "InterRAT-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_InterRAT_Parameters_tags_1, + sizeof(asn_DEF_InterRAT_Parameters_tags_1) + /sizeof(asn_DEF_InterRAT_Parameters_tags_1[0]), /* 1 */ + asn_DEF_InterRAT_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_InterRAT_Parameters_tags_1) + /sizeof(asn_DEF_InterRAT_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_InterRAT_Parameters_1, + 1, /* Elements count */ + &asn_SPC_InterRAT_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/InterRAT-Parameters.h b/src/codec_utils/RRC/InterRAT-Parameters.h new file mode 100644 index 000000000..3fd4d24d6 --- /dev/null +++ b/src/codec_utils/RRC/InterRAT-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _InterRAT_Parameters_H_ +#define _InterRAT_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_Parameters; + +/* InterRAT-Parameters */ +typedef struct InterRAT_Parameters { + struct EUTRA_Parameters *eutra; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} InterRAT_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_InterRAT_Parameters; + +#ifdef __cplusplus +} +#endif + +#endif /* _InterRAT_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/IntraFreqBlackCellList.c b/src/codec_utils/RRC/IntraFreqBlackCellList.c new file mode 100644 index 000000000..165b7b078 --- /dev/null +++ b/src/codec_utils/RRC/IntraFreqBlackCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "IntraFreqBlackCellList.h" + +#include "PCI-Range.h" +static asn_oer_constraints_t asn_OER_type_IntraFreqBlackCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_IntraFreqBlackCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntraFreqBlackCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntraFreqBlackCellList_specs_1 = { + sizeof(struct IntraFreqBlackCellList), + offsetof(struct IntraFreqBlackCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntraFreqBlackCellList = { + "IntraFreqBlackCellList", + "IntraFreqBlackCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntraFreqBlackCellList_tags_1, + sizeof(asn_DEF_IntraFreqBlackCellList_tags_1) + /sizeof(asn_DEF_IntraFreqBlackCellList_tags_1[0]), /* 1 */ + asn_DEF_IntraFreqBlackCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntraFreqBlackCellList_tags_1) + /sizeof(asn_DEF_IntraFreqBlackCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntraFreqBlackCellList_constr_1, &asn_PER_type_IntraFreqBlackCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntraFreqBlackCellList_1, + 1, /* Single element */ + &asn_SPC_IntraFreqBlackCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/IntraFreqBlackCellList.h b/src/codec_utils/RRC/IntraFreqBlackCellList.h new file mode 100644 index 000000000..e482b3fcb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _IntraFreqBlackCellList_H_ +#define _IntraFreqBlackCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PCI_Range; + +/* IntraFreqBlackCellList */ +typedef struct IntraFreqBlackCellList { + A_SEQUENCE_OF(struct PCI_Range) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntraFreqBlackCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntraFreqBlackCellList; +extern asn_SET_OF_specifics_t asn_SPC_IntraFreqBlackCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntraFreqBlackCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntraFreqBlackCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntraFreqBlackCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/IntraFreqNeighCellInfo.c b/src/codec_utils/RRC/IntraFreqNeighCellInfo.c new file mode 100644 index 000000000..555c60fb5 --- /dev/null +++ b/src/codec_utils/RRC/IntraFreqNeighCellInfo.c @@ -0,0 +1,191 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "IntraFreqNeighCellInfo.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffsetCell_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffsetCellSUL_constr_5 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMinOffsetCell_constr_6 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_IntraFreqNeighCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct IntraFreqNeighCellInfo, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct IntraFreqNeighCellInfo, q_OffsetCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-OffsetCell" + }, + { ATF_POINTER, 3, offsetof(struct IntraFreqNeighCellInfo, q_RxLevMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffsetCell_constr_4, &asn_PER_memb_q_RxLevMinOffsetCell_constr_4, memb_q_RxLevMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCell" + }, + { ATF_POINTER, 2, offsetof(struct IntraFreqNeighCellInfo, q_RxLevMinOffsetCellSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffsetCellSUL_constr_5, &asn_PER_memb_q_RxLevMinOffsetCellSUL_constr_5, memb_q_RxLevMinOffsetCellSUL_constraint_1 }, + 0, 0, /* No default value */ + "q-RxLevMinOffsetCellSUL" + }, + { ATF_POINTER, 1, offsetof(struct IntraFreqNeighCellInfo, q_QualMinOffsetCell), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_QualMinOffsetCell_constr_6, &asn_PER_memb_q_QualMinOffsetCell_constr_6, memb_q_QualMinOffsetCell_constraint_1 }, + 0, 0, /* No default value */ + "q-QualMinOffsetCell" + }, +}; +static const int asn_MAP_IntraFreqNeighCellInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_IntraFreqNeighCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_IntraFreqNeighCellInfo_specs_1 = { + sizeof(struct IntraFreqNeighCellInfo), + offsetof(struct IntraFreqNeighCellInfo, _asn_ctx), + asn_MAP_IntraFreqNeighCellInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_IntraFreqNeighCellInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_IntraFreqNeighCellInfo = { + "IntraFreqNeighCellInfo", + "IntraFreqNeighCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_IntraFreqNeighCellInfo_tags_1, + sizeof(asn_DEF_IntraFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_IntraFreqNeighCellInfo_tags_1[0]), /* 1 */ + asn_DEF_IntraFreqNeighCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_IntraFreqNeighCellInfo_tags_1) + /sizeof(asn_DEF_IntraFreqNeighCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_IntraFreqNeighCellInfo_1, + 5, /* Elements count */ + &asn_SPC_IntraFreqNeighCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/IntraFreqNeighCellInfo.h b/src/codec_utils/RRC/IntraFreqNeighCellInfo.h new file mode 100644 index 000000000..2ef026d96 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _IntraFreqNeighCellInfo_H_ +#define _IntraFreqNeighCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "Q-OffsetRange.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* IntraFreqNeighCellInfo */ +typedef struct IntraFreqNeighCellInfo { + PhysCellId_t physCellId; + 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; +} IntraFreqNeighCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntraFreqNeighCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_IntraFreqNeighCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_IntraFreqNeighCellInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntraFreqNeighCellInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/IntraFreqNeighCellList.c b/src/codec_utils/RRC/IntraFreqNeighCellList.c new file mode 100644 index 000000000..9c4419f90 --- /dev/null +++ b/src/codec_utils/RRC/IntraFreqNeighCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "IntraFreqNeighCellList.h" + +#include "IntraFreqNeighCellInfo.h" +static asn_oer_constraints_t asn_OER_type_IntraFreqNeighCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_IntraFreqNeighCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_IntraFreqNeighCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_IntraFreqNeighCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_IntraFreqNeighCellList_specs_1 = { + sizeof(struct IntraFreqNeighCellList), + offsetof(struct IntraFreqNeighCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_IntraFreqNeighCellList = { + "IntraFreqNeighCellList", + "IntraFreqNeighCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_IntraFreqNeighCellList_tags_1, + sizeof(asn_DEF_IntraFreqNeighCellList_tags_1) + /sizeof(asn_DEF_IntraFreqNeighCellList_tags_1[0]), /* 1 */ + asn_DEF_IntraFreqNeighCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_IntraFreqNeighCellList_tags_1) + /sizeof(asn_DEF_IntraFreqNeighCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_IntraFreqNeighCellList_constr_1, &asn_PER_type_IntraFreqNeighCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_IntraFreqNeighCellList_1, + 1, /* Single element */ + &asn_SPC_IntraFreqNeighCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/IntraFreqNeighCellList.h b/src/codec_utils/RRC/IntraFreqNeighCellList.h new file mode 100644 index 000000000..823dec8ad --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _IntraFreqNeighCellList_H_ +#define _IntraFreqNeighCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntraFreqNeighCellInfo; + +/* IntraFreqNeighCellList */ +typedef struct IntraFreqNeighCellList { + A_SEQUENCE_OF(struct IntraFreqNeighCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} IntraFreqNeighCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_IntraFreqNeighCellList; +extern asn_SET_OF_specifics_t asn_SPC_IntraFreqNeighCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_IntraFreqNeighCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_IntraFreqNeighCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _IntraFreqNeighCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/LocationMeasurementIndication-IEs.c b/src/codec_utils/RRC/LocationMeasurementIndication-IEs.c new file mode 100644 index 000000000..d431bac52 --- /dev/null +++ b/src/codec_utils/RRC/LocationMeasurementIndication-IEs.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LocationMeasurementIndication-IEs.h" + +#include "LocationMeasurementInfo.h" +static asn_oer_constraints_t asn_OER_type_measurementIndication_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_measurementIndication_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_measurementIndication_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct LocationMeasurementIndication_IEs__measurementIndication, 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 LocationMeasurementIndication_IEs__measurementIndication, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_LocationMeasurementInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_measurementIndication_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_measurementIndication_specs_2 = { + sizeof(struct LocationMeasurementIndication_IEs__measurementIndication), + offsetof(struct LocationMeasurementIndication_IEs__measurementIndication, _asn_ctx), + offsetof(struct LocationMeasurementIndication_IEs__measurementIndication, present), + sizeof(((struct LocationMeasurementIndication_IEs__measurementIndication *)0)->present), + asn_MAP_measurementIndication_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_measurementIndication_2 = { + "measurementIndication", + "measurementIndication", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_measurementIndication_constr_2, &asn_PER_type_measurementIndication_constr_2, CHOICE_constraint }, + asn_MBR_measurementIndication_2, + 2, /* Elements count */ + &asn_SPC_measurementIndication_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_6 = { + sizeof(struct LocationMeasurementIndication_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_6, + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LocationMeasurementIndication_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LocationMeasurementIndication_IEs, measurementIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_measurementIndication_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementIndication" + }, + { ATF_POINTER, 2, offsetof(struct 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 LocationMeasurementIndication_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_LocationMeasurementIndication_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_LocationMeasurementIndication_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_LocationMeasurementIndication_IEs_specs_1 = { + sizeof(struct LocationMeasurementIndication_IEs), + offsetof(struct LocationMeasurementIndication_IEs, _asn_ctx), + asn_MAP_LocationMeasurementIndication_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_LocationMeasurementIndication_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LocationMeasurementIndication_IEs = { + "LocationMeasurementIndication-IEs", + "LocationMeasurementIndication-IEs", + &asn_OP_SEQUENCE, + asn_DEF_LocationMeasurementIndication_IEs_tags_1, + sizeof(asn_DEF_LocationMeasurementIndication_IEs_tags_1) + /sizeof(asn_DEF_LocationMeasurementIndication_IEs_tags_1[0]), /* 1 */ + asn_DEF_LocationMeasurementIndication_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_LocationMeasurementIndication_IEs_tags_1) + /sizeof(asn_DEF_LocationMeasurementIndication_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LocationMeasurementIndication_IEs_1, + 3, /* Elements count */ + &asn_SPC_LocationMeasurementIndication_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/LocationMeasurementIndication-IEs.h b/src/codec_utils/RRC/LocationMeasurementIndication-IEs.h new file mode 100644 index 000000000..e45751cb1 --- /dev/null +++ b/src/codec_utils/RRC/LocationMeasurementIndication-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LocationMeasurementIndication_IEs_H_ +#define _LocationMeasurementIndication_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LocationMeasurementIndication_IEs__measurementIndication_PR { + LocationMeasurementIndication_IEs__measurementIndication_PR_NOTHING, /* No components present */ + LocationMeasurementIndication_IEs__measurementIndication_PR_release, + LocationMeasurementIndication_IEs__measurementIndication_PR_setup +} LocationMeasurementIndication_IEs__measurementIndication_PR; + +/* Forward declarations */ +struct LocationMeasurementInfo; + +/* LocationMeasurementIndication-IEs */ +typedef struct LocationMeasurementIndication_IEs { + struct LocationMeasurementIndication_IEs__measurementIndication { + LocationMeasurementIndication_IEs__measurementIndication_PR present; + union LocationMeasurementIndication_IEs__measurementIndication_u { + NULL_t release; + struct LocationMeasurementInfo *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } measurementIndication; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} LocationMeasurementIndication_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LocationMeasurementIndication_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_LocationMeasurementIndication_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_LocationMeasurementIndication_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LocationMeasurementIndication_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/LocationMeasurementIndication.c b/src/codec_utils/RRC/LocationMeasurementIndication.c new file mode 100644 index 000000000..042264d0b --- /dev/null +++ b/src/codec_utils/RRC/LocationMeasurementIndication.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LocationMeasurementIndication.h" + +#include "LocationMeasurementIndication-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct LocationMeasurementIndication__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct LocationMeasurementIndication__criticalExtensions, choice.locationMeasurementIndication), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LocationMeasurementIndication_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationMeasurementIndication" + }, + { ATF_POINTER, 0, offsetof(struct LocationMeasurementIndication__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct LocationMeasurementIndication__criticalExtensions), + offsetof(struct LocationMeasurementIndication__criticalExtensions, _asn_ctx), + offsetof(struct LocationMeasurementIndication__criticalExtensions, present), + sizeof(((struct LocationMeasurementIndication__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LocationMeasurementIndication_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct LocationMeasurementIndication, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_LocationMeasurementIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LocationMeasurementIndication_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LocationMeasurementIndication_specs_1 = { + sizeof(struct LocationMeasurementIndication), + offsetof(struct LocationMeasurementIndication, _asn_ctx), + asn_MAP_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_LocationMeasurementIndication = { + "LocationMeasurementIndication", + "LocationMeasurementIndication", + &asn_OP_SEQUENCE, + asn_DEF_LocationMeasurementIndication_tags_1, + sizeof(asn_DEF_LocationMeasurementIndication_tags_1) + /sizeof(asn_DEF_LocationMeasurementIndication_tags_1[0]), /* 1 */ + asn_DEF_LocationMeasurementIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_LocationMeasurementIndication_tags_1) + /sizeof(asn_DEF_LocationMeasurementIndication_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LocationMeasurementIndication_1, + 1, /* Elements count */ + &asn_SPC_LocationMeasurementIndication_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/LocationMeasurementIndication.h b/src/codec_utils/RRC/LocationMeasurementIndication.h new file mode 100644 index 000000000..245368e38 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LocationMeasurementIndication_H_ +#define _LocationMeasurementIndication_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LocationMeasurementIndication__criticalExtensions_PR { + LocationMeasurementIndication__criticalExtensions_PR_NOTHING, /* No components present */ + LocationMeasurementIndication__criticalExtensions_PR_locationMeasurementIndication, + LocationMeasurementIndication__criticalExtensions_PR_criticalExtensionsFuture +} LocationMeasurementIndication__criticalExtensions_PR; + +/* Forward declarations */ +struct LocationMeasurementIndication_IEs; + +/* LocationMeasurementIndication */ +typedef struct LocationMeasurementIndication { + struct LocationMeasurementIndication__criticalExtensions { + LocationMeasurementIndication__criticalExtensions_PR present; + union LocationMeasurementIndication__criticalExtensions_u { + struct LocationMeasurementIndication_IEs *locationMeasurementIndication; + struct 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; +} LocationMeasurementIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LocationMeasurementIndication; +extern asn_SEQUENCE_specifics_t asn_SPC_LocationMeasurementIndication_specs_1; +extern asn_TYPE_member_t asn_MBR_LocationMeasurementIndication_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LocationMeasurementIndication_H_ */ +#include diff --git a/src/codec_utils/RRC/LocationMeasurementInfo.c b/src/codec_utils/RRC/LocationMeasurementInfo.c new file mode 100644 index 000000000..8f6cc4535 --- /dev/null +++ b/src/codec_utils/RRC/LocationMeasurementInfo.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LocationMeasurementInfo.h" + +#include "EUTRA-RSTD-InfoList.h" +static asn_oer_constraints_t asn_OER_type_LocationMeasurementInfo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_LocationMeasurementInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct LocationMeasurementInfo, choice.eutra_RSTD), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_RSTD_InfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-RSTD" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_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_LocationMeasurementInfo_specs_1 = { + sizeof(struct LocationMeasurementInfo), + offsetof(struct LocationMeasurementInfo, _asn_ctx), + offsetof(struct LocationMeasurementInfo, present), + sizeof(((struct LocationMeasurementInfo *)0)->present), + asn_MAP_LocationMeasurementInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_LocationMeasurementInfo = { + "LocationMeasurementInfo", + "LocationMeasurementInfo", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_LocationMeasurementInfo_constr_1, &asn_PER_type_LocationMeasurementInfo_constr_1, CHOICE_constraint }, + asn_MBR_LocationMeasurementInfo_1, + 2, /* Elements count */ + &asn_SPC_LocationMeasurementInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/LocationMeasurementInfo.h b/src/codec_utils/RRC/LocationMeasurementInfo.h new file mode 100644 index 000000000..ee1e5ba37 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LocationMeasurementInfo_H_ +#define _LocationMeasurementInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LocationMeasurementInfo_PR { + LocationMeasurementInfo_PR_NOTHING, /* No components present */ + LocationMeasurementInfo_PR_eutra_RSTD, + /* Extensions may appear below */ + LocationMeasurementInfo_PR_eutra_FineTimingDetection +} LocationMeasurementInfo_PR; + +/* Forward declarations */ +struct EUTRA_RSTD_InfoList; + +/* LocationMeasurementInfo */ +typedef struct LocationMeasurementInfo { + LocationMeasurementInfo_PR present; + union LocationMeasurementInfo_u { + struct 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; +} LocationMeasurementInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_LocationMeasurementInfo; +extern asn_CHOICE_specifics_t asn_SPC_LocationMeasurementInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_LocationMeasurementInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_LocationMeasurementInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _LocationMeasurementInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/LogicalChannelConfig.c b/src/codec_utils/RRC/LogicalChannelConfig.c new file mode 100644 index 000000000..bc6914985 --- /dev/null +++ b/src/codec_utils/RRC/LogicalChannelConfig.c @@ -0,0 +1,754 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_oer_constraints_t asn_OER_type_prioritisedBitRate_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bucketSizeDuration_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_allowedServingCells_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_allowedSCS_List_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxPUSCH_Duration_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_configuredGrantType1Allowed_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bitRateQueryProhibitTimer_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_priority_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_allowedServingCells_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..31)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_allowedSCS_List_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_logicalChannelGroup_constr_53 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_prioritisedBitRate_specs_4 = { + asn_MAP_prioritisedBitRate_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_prioritisedBitRate_4 = { + "prioritisedBitRate", + "prioritisedBitRate", + &asn_OP_NativeEnumerated, + asn_DEF_prioritisedBitRate_tags_4, + sizeof(asn_DEF_prioritisedBitRate_tags_4) + /sizeof(asn_DEF_prioritisedBitRate_tags_4[0]) - 1, /* 1 */ + asn_DEF_prioritisedBitRate_tags_4, /* Same as above */ + sizeof(asn_DEF_prioritisedBitRate_tags_4) + /sizeof(asn_DEF_prioritisedBitRate_tags_4[0]), /* 2 */ + { &asn_OER_type_prioritisedBitRate_constr_4, &asn_PER_type_prioritisedBitRate_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_prioritisedBitRate_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_bucketSizeDuration_specs_21 = { + asn_MAP_bucketSizeDuration_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bucketSizeDuration_21 = { + "bucketSizeDuration", + "bucketSizeDuration", + &asn_OP_NativeEnumerated, + asn_DEF_bucketSizeDuration_tags_21, + sizeof(asn_DEF_bucketSizeDuration_tags_21) + /sizeof(asn_DEF_bucketSizeDuration_tags_21[0]) - 1, /* 1 */ + asn_DEF_bucketSizeDuration_tags_21, /* Same as above */ + sizeof(asn_DEF_bucketSizeDuration_tags_21) + /sizeof(asn_DEF_bucketSizeDuration_tags_21[0]), /* 2 */ + { &asn_OER_type_bucketSizeDuration_constr_21, &asn_PER_type_bucketSizeDuration_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bucketSizeDuration_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_allowedServingCells_38[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_allowedServingCells_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_allowedServingCells_specs_38 = { + sizeof(struct LogicalChannelConfig__ul_SpecificParameters__allowedServingCells), + offsetof(struct LogicalChannelConfig__ul_SpecificParameters__allowedServingCells, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_allowedServingCells_38 = { + "allowedServingCells", + "allowedServingCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_allowedServingCells_tags_38, + sizeof(asn_DEF_allowedServingCells_tags_38) + /sizeof(asn_DEF_allowedServingCells_tags_38[0]) - 1, /* 1 */ + asn_DEF_allowedServingCells_tags_38, /* Same as above */ + sizeof(asn_DEF_allowedServingCells_tags_38) + /sizeof(asn_DEF_allowedServingCells_tags_38[0]), /* 2 */ + { &asn_OER_type_allowedServingCells_constr_38, &asn_PER_type_allowedServingCells_constr_38, SEQUENCE_OF_constraint }, + asn_MBR_allowedServingCells_38, + 1, /* Single element */ + &asn_SPC_allowedServingCells_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_allowedSCS_List_40[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_allowedSCS_List_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_allowedSCS_List_specs_40 = { + sizeof(struct LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List), + offsetof(struct 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_allowedSCS_List_40 = { + "allowedSCS-List", + "allowedSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_allowedSCS_List_tags_40, + sizeof(asn_DEF_allowedSCS_List_tags_40) + /sizeof(asn_DEF_allowedSCS_List_tags_40[0]) - 1, /* 1 */ + asn_DEF_allowedSCS_List_tags_40, /* Same as above */ + sizeof(asn_DEF_allowedSCS_List_tags_40) + /sizeof(asn_DEF_allowedSCS_List_tags_40[0]), /* 2 */ + { &asn_OER_type_allowedSCS_List_constr_40, &asn_PER_type_allowedSCS_List_constr_40, SEQUENCE_OF_constraint }, + asn_MBR_allowedSCS_List_40, + 1, /* Single element */ + &asn_SPC_allowedSCS_List_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxPUSCH_Duration_specs_42 = { + asn_MAP_maxPUSCH_Duration_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxPUSCH_Duration_42 = { + "maxPUSCH-Duration", + "maxPUSCH-Duration", + &asn_OP_NativeEnumerated, + asn_DEF_maxPUSCH_Duration_tags_42, + sizeof(asn_DEF_maxPUSCH_Duration_tags_42) + /sizeof(asn_DEF_maxPUSCH_Duration_tags_42[0]) - 1, /* 1 */ + asn_DEF_maxPUSCH_Duration_tags_42, /* Same as above */ + sizeof(asn_DEF_maxPUSCH_Duration_tags_42) + /sizeof(asn_DEF_maxPUSCH_Duration_tags_42[0]), /* 2 */ + { &asn_OER_type_maxPUSCH_Duration_constr_42, &asn_PER_type_maxPUSCH_Duration_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxPUSCH_Duration_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_configuredGrantType1Allowed_value2enum_51[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_configuredGrantType1Allowed_enum2value_51[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_configuredGrantType1Allowed_specs_51 = { + asn_MAP_configuredGrantType1Allowed_value2enum_51, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_configuredGrantType1Allowed_51 = { + "configuredGrantType1Allowed", + "configuredGrantType1Allowed", + &asn_OP_NativeEnumerated, + asn_DEF_configuredGrantType1Allowed_tags_51, + sizeof(asn_DEF_configuredGrantType1Allowed_tags_51) + /sizeof(asn_DEF_configuredGrantType1Allowed_tags_51[0]) - 1, /* 1 */ + asn_DEF_configuredGrantType1Allowed_tags_51, /* Same as above */ + sizeof(asn_DEF_configuredGrantType1Allowed_tags_51) + /sizeof(asn_DEF_configuredGrantType1Allowed_tags_51[0]), /* 2 */ + { &asn_OER_type_configuredGrantType1Allowed_constr_51, &asn_PER_type_configuredGrantType1Allowed_constr_51, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_configuredGrantType1Allowed_specs_51 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_bitRateQueryProhibitTimer_specs_58 = { + asn_MAP_bitRateQueryProhibitTimer_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bitRateQueryProhibitTimer_58 = { + "bitRateQueryProhibitTimer", + "bitRateQueryProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_bitRateQueryProhibitTimer_tags_58, + sizeof(asn_DEF_bitRateQueryProhibitTimer_tags_58) + /sizeof(asn_DEF_bitRateQueryProhibitTimer_tags_58[0]) - 1, /* 1 */ + asn_DEF_bitRateQueryProhibitTimer_tags_58, /* Same as above */ + sizeof(asn_DEF_bitRateQueryProhibitTimer_tags_58) + /sizeof(asn_DEF_bitRateQueryProhibitTimer_tags_58[0]), /* 2 */ + { &asn_OER_type_bitRateQueryProhibitTimer_constr_58, &asn_PER_type_bitRateQueryProhibitTimer_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bitRateQueryProhibitTimer_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ul_SpecificParameters_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, priority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_priority_constr_3, &asn_PER_memb_priority_constr_3, memb_priority_constraint_2 }, + 0, 0, /* No default value */ + "priority" + }, + { ATF_NOFLAGS, 0, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, prioritisedBitRate), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_prioritisedBitRate_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prioritisedBitRate" + }, + { ATF_NOFLAGS, 0, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, bucketSizeDuration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bucketSizeDuration_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bucketSizeDuration" + }, + { ATF_POINTER, 6, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, allowedServingCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_allowedServingCells_38, + 0, + { &asn_OER_memb_allowedServingCells_constr_38, &asn_PER_memb_allowedServingCells_constr_38, memb_allowedServingCells_constraint_2 }, + 0, 0, /* No default value */ + "allowedServingCells" + }, + { ATF_POINTER, 5, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, allowedSCS_List), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_allowedSCS_List_40, + 0, + { &asn_OER_memb_allowedSCS_List_constr_40, &asn_PER_memb_allowedSCS_List_constr_40, memb_allowedSCS_List_constraint_2 }, + 0, 0, /* No default value */ + "allowedSCS-List" + }, + { ATF_POINTER, 4, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, maxPUSCH_Duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxPUSCH_Duration_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxPUSCH-Duration" + }, + { ATF_POINTER, 3, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, configuredGrantType1Allowed), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_configuredGrantType1Allowed_51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredGrantType1Allowed" + }, + { ATF_POINTER, 2, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, logicalChannelGroup), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_logicalChannelGroup_constr_53, &asn_PER_memb_logicalChannelGroup_constr_53, memb_logicalChannelGroup_constraint_2 }, + 0, 0, /* No default value */ + "logicalChannelGroup" + }, + { ATF_POINTER, 1, offsetof(struct LogicalChannelConfig__ul_SpecificParameters, schedulingRequestID), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 LogicalChannelConfig__ul_SpecificParameters, bitRateQueryProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bitRateQueryProhibitTimer_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bitRateQueryProhibitTimer" + }, +}; +static const int asn_MAP_ul_SpecificParameters_oms_2[] = { 3, 4, 5, 6, 7, 8, 11 }; +static const ber_tlv_tag_t asn_DEF_ul_SpecificParameters_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ul_SpecificParameters_specs_2 = { + sizeof(struct LogicalChannelConfig__ul_SpecificParameters), + offsetof(struct LogicalChannelConfig__ul_SpecificParameters, _asn_ctx), + asn_MAP_ul_SpecificParameters_tag2el_2, + 12, /* Count of tags in the map */ + asn_MAP_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_ul_SpecificParameters_2 = { + "ul-SpecificParameters", + "ul-SpecificParameters", + &asn_OP_SEQUENCE, + asn_DEF_ul_SpecificParameters_tags_2, + sizeof(asn_DEF_ul_SpecificParameters_tags_2) + /sizeof(asn_DEF_ul_SpecificParameters_tags_2[0]) - 1, /* 1 */ + asn_DEF_ul_SpecificParameters_tags_2, /* Same as above */ + sizeof(asn_DEF_ul_SpecificParameters_tags_2) + /sizeof(asn_DEF_ul_SpecificParameters_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ul_SpecificParameters_2, + 12, /* Elements count */ + &asn_SPC_ul_SpecificParameters_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_LogicalChannelConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct LogicalChannelConfig, ul_SpecificParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_ul_SpecificParameters_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SpecificParameters" + }, +}; +static const int asn_MAP_LogicalChannelConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_LogicalChannelConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_LogicalChannelConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ul-SpecificParameters */ +}; +asn_SEQUENCE_specifics_t asn_SPC_LogicalChannelConfig_specs_1 = { + sizeof(struct LogicalChannelConfig), + offsetof(struct LogicalChannelConfig, _asn_ctx), + asn_MAP_LogicalChannelConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_LogicalChannelConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_LogicalChannelConfig = { + "LogicalChannelConfig", + "LogicalChannelConfig", + &asn_OP_SEQUENCE, + asn_DEF_LogicalChannelConfig_tags_1, + sizeof(asn_DEF_LogicalChannelConfig_tags_1) + /sizeof(asn_DEF_LogicalChannelConfig_tags_1[0]), /* 1 */ + asn_DEF_LogicalChannelConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_LogicalChannelConfig_tags_1) + /sizeof(asn_DEF_LogicalChannelConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_LogicalChannelConfig_1, + 1, /* Elements count */ + &asn_SPC_LogicalChannelConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/LogicalChannelConfig.h b/src/codec_utils/RRC/LogicalChannelConfig.h new file mode 100644 index 000000000..a1f0e6450 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LogicalChannelConfig_H_ +#define _LogicalChannelConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "SchedulingRequestId.h" +#include +#include "ServCellIndex.h" +#include +#include +#include "SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate { + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps0 = 0, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 = 1, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps16 = 2, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps32 = 3, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps64 = 4, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps128 = 5, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps256 = 6, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps512 = 7, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps1024 = 8, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps2048 = 9, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps4096 = 10, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8192 = 11, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps16384 = 12, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps32768 = 13, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps65536 = 14, + LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity = 15 +} e_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate; +typedef enum LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration { + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5 = 0, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms10 = 1, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms20 = 2, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50 = 3, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms100 = 4, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms150 = 5, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms300 = 6, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms500 = 7, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms1000 = 8, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare7 = 9, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare6 = 10, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare5 = 11, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare4 = 12, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare3 = 13, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare2 = 14, + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_spare1 = 15 +} e_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration; +typedef enum LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration { + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p02 = 0, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p04 = 1, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p0625 = 2, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p125 = 3, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p25 = 4, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_ms0p5 = 5, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_spare2 = 6, + LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration_spare1 = 7 +} e_LogicalChannelConfig__ul_SpecificParameters__maxPUSCH_Duration; +typedef enum LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed { + LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed_true = 0 +} e_LogicalChannelConfig__ul_SpecificParameters__configuredGrantType1Allowed; +typedef enum LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer { + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0 = 0, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0dot4 = 1, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s0dot8 = 2, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s1dot6 = 3, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s3 = 4, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s6 = 5, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s12 = 6, + LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer_s30 = 7 +} e_LogicalChannelConfig__ul_SpecificParameters__bitRateQueryProhibitTimer; + +/* LogicalChannelConfig */ +typedef struct LogicalChannelConfig { + struct LogicalChannelConfig__ul_SpecificParameters { + long priority; + long prioritisedBitRate; + long bucketSizeDuration; + struct LogicalChannelConfig__ul_SpecificParameters__allowedServingCells { + A_SEQUENCE_OF(ServCellIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *allowedServingCells; + struct LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List { + A_SEQUENCE_OF(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 */ + 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; +} LogicalChannelConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_prioritisedBitRate_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bucketSizeDuration_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxPUSCH_Duration_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_configuredGrantType1Allowed_51; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bitRateQueryProhibitTimer_58; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_LogicalChannelConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_LogicalChannelConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_LogicalChannelConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _LogicalChannelConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/LogicalChannelIdentity.c b/src/codec_utils/RRC/LogicalChannelIdentity.c new file mode 100644 index 000000000..5ceb2b365 --- /dev/null +++ b/src/codec_utils/RRC/LogicalChannelIdentity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "LogicalChannelIdentity.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_LogicalChannelIdentity_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +asn_per_constraints_t asn_PER_type_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_LogicalChannelIdentity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_LogicalChannelIdentity = { + "LogicalChannelIdentity", + "LogicalChannelIdentity", + &asn_OP_NativeInteger, + asn_DEF_LogicalChannelIdentity_tags_1, + sizeof(asn_DEF_LogicalChannelIdentity_tags_1) + /sizeof(asn_DEF_LogicalChannelIdentity_tags_1[0]), /* 1 */ + asn_DEF_LogicalChannelIdentity_tags_1, /* Same as above */ + sizeof(asn_DEF_LogicalChannelIdentity_tags_1) + /sizeof(asn_DEF_LogicalChannelIdentity_tags_1[0]), /* 1 */ + { &asn_OER_type_LogicalChannelIdentity_constr_1, &asn_PER_type_LogicalChannelIdentity_constr_1, LogicalChannelIdentity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/LogicalChannelIdentity.h b/src/codec_utils/RRC/LogicalChannelIdentity.h new file mode 100644 index 000000000..5a0158965 --- /dev/null +++ b/src/codec_utils/RRC/LogicalChannelIdentity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _LogicalChannelIdentity_H_ +#define _LogicalChannelIdentity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* LogicalChannelIdentity */ +typedef long LogicalChannelIdentity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_LogicalChannelIdentity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_LogicalChannelIdentity; +asn_struct_free_f LogicalChannelIdentity_free; +asn_struct_print_f LogicalChannelIdentity_print; +asn_constr_check_f LogicalChannelIdentity_constraint; +ber_type_decoder_f LogicalChannelIdentity_decode_ber; +der_type_encoder_f LogicalChannelIdentity_encode_der; +xer_type_decoder_f LogicalChannelIdentity_decode_xer; +xer_type_encoder_f LogicalChannelIdentity_encode_xer; +oer_type_decoder_f LogicalChannelIdentity_decode_oer; +oer_type_encoder_f LogicalChannelIdentity_encode_oer; +per_type_decoder_f LogicalChannelIdentity_decode_uper; +per_type_encoder_f LogicalChannelIdentity_encode_uper; +per_type_decoder_f LogicalChannelIdentity_decode_aper; +per_type_encoder_f LogicalChannelIdentity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _LogicalChannelIdentity_H_ */ +#include diff --git a/src/codec_utils/RRC/MAC-CellGroupConfig.c b/src/codec_utils/RRC/MAC-CellGroupConfig.c new file mode 100644 index 000000000..2f937272f --- /dev/null +++ b/src/codec_utils/RRC/MAC-CellGroupConfig.c @@ -0,0 +1,343 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MAC-CellGroupConfig.h" + +#include "SchedulingRequestConfig.h" +#include "BSR-Config.h" +#include "TAG-Config.h" +#include "DRX-Config.h" +#include "PHR-Config.h" +static asn_oer_constraints_t asn_OER_type_drx_Config_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_drx_Config_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_phr_Config_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_phr_Config_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_oer_constraints_t asn_OER_type_dataInactivityTimer_v1530_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dataInactivityTimer_v1530_constr_15 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_drx_Config_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct MAC_CellGroupConfig__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 MAC_CellGroupConfig__drx_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRX_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_drx_Config_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_drx_Config_specs_2 = { + sizeof(struct MAC_CellGroupConfig__drx_Config), + offsetof(struct MAC_CellGroupConfig__drx_Config, _asn_ctx), + offsetof(struct MAC_CellGroupConfig__drx_Config, present), + sizeof(((struct MAC_CellGroupConfig__drx_Config *)0)->present), + asn_MAP_drx_Config_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_drx_Config_2 = { + "drx-Config", + "drx-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_drx_Config_constr_2, &asn_PER_type_drx_Config_constr_2, CHOICE_constraint }, + asn_MBR_drx_Config_2, + 2, /* Elements count */ + &asn_SPC_drx_Config_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_phr_Config_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct MAC_CellGroupConfig__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 MAC_CellGroupConfig__phr_Config, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PHR_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_phr_Config_tag2el_8[] = { + { (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_phr_Config_specs_8 = { + sizeof(struct MAC_CellGroupConfig__phr_Config), + offsetof(struct MAC_CellGroupConfig__phr_Config, _asn_ctx), + offsetof(struct MAC_CellGroupConfig__phr_Config, present), + sizeof(((struct MAC_CellGroupConfig__phr_Config *)0)->present), + asn_MAP_phr_Config_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_phr_Config_8 = { + "phr-Config", + "phr-Config", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_phr_Config_constr_8, &asn_PER_type_phr_Config_constr_8, CHOICE_constraint }, + asn_MBR_phr_Config_8, + 2, /* Elements count */ + &asn_SPC_phr_Config_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dataInactivityTimer_v1530_15[] = { + { ATF_NOFLAGS, 0, offsetof(struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530, 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 MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DataInactivityTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_dataInactivityTimer_v1530_tag2el_15[] = { + { (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_dataInactivityTimer_v1530_specs_15 = { + sizeof(struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530), + offsetof(struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530, _asn_ctx), + offsetof(struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530, present), + sizeof(((struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530 *)0)->present), + asn_MAP_dataInactivityTimer_v1530_tag2el_15, + 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_dataInactivityTimer_v1530_15 = { + "dataInactivityTimer-v1530", + "dataInactivityTimer-v1530", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_dataInactivityTimer_v1530_constr_15, &asn_PER_type_dataInactivityTimer_v1530_constr_15, CHOICE_constraint }, + asn_MBR_dataInactivityTimer_v1530_15, + 2, /* Elements count */ + &asn_SPC_dataInactivityTimer_v1530_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_13[] = { + { ATF_POINTER, 2, offsetof(struct MAC_CellGroupConfig__ext1, csi_Mask_v1530), + (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-v1530" + }, + { ATF_POINTER, 1, offsetof(struct MAC_CellGroupConfig__ext1, dataInactivityTimer_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_dataInactivityTimer_v1530_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dataInactivityTimer-v1530" + }, +}; +static const int asn_MAP_ext1_oms_13[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* csi-Mask-v1530 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* dataInactivityTimer-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_13 = { + sizeof(struct MAC_CellGroupConfig__ext1), + offsetof(struct MAC_CellGroupConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_13, + 2, /* Count of tags in the map */ + asn_MAP_ext1_oms_13, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_13, + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_13, + 2, /* Elements count */ + &asn_SPC_ext1_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MAC_CellGroupConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct MAC_CellGroupConfig, drx_Config), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_drx_Config_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drx-Config" + }, + { ATF_POINTER, 4, offsetof(struct MAC_CellGroupConfig, schedulingRequestConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SchedulingRequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestConfig" + }, + { ATF_POINTER, 3, offsetof(struct MAC_CellGroupConfig, bsr_Config), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BSR_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bsr-Config" + }, + { ATF_POINTER, 2, offsetof(struct MAC_CellGroupConfig, tag_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TAG_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Config" + }, + { ATF_POINTER, 1, offsetof(struct MAC_CellGroupConfig, phr_Config), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_phr_Config_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-Config" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 MAC_CellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ext1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MAC_CellGroupConfig_oms_1[] = { 0, 1, 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_MAC_CellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MAC_CellGroupConfig_specs_1 = { + sizeof(struct MAC_CellGroupConfig), + offsetof(struct MAC_CellGroupConfig, _asn_ctx), + asn_MAP_MAC_CellGroupConfig_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_MAC_CellGroupConfig_oms_1, /* Optional members */ + 5, 1, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MAC_CellGroupConfig = { + "MAC-CellGroupConfig", + "MAC-CellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_MAC_CellGroupConfig_tags_1, + sizeof(asn_DEF_MAC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_MAC_CellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_MAC_CellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MAC_CellGroupConfig_tags_1) + /sizeof(asn_DEF_MAC_CellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MAC_CellGroupConfig_1, + 7, /* Elements count */ + &asn_SPC_MAC_CellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MAC-CellGroupConfig.h b/src/codec_utils/RRC/MAC-CellGroupConfig.h new file mode 100644 index 000000000..5a842d074 --- /dev/null +++ b/src/codec_utils/RRC/MAC-CellGroupConfig.h @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MAC_CellGroupConfig_H_ +#define _MAC_CellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "DataInactivityTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MAC_CellGroupConfig__drx_Config_PR { + MAC_CellGroupConfig__drx_Config_PR_NOTHING, /* No components present */ + MAC_CellGroupConfig__drx_Config_PR_release, + MAC_CellGroupConfig__drx_Config_PR_setup +} MAC_CellGroupConfig__drx_Config_PR; +typedef enum MAC_CellGroupConfig__phr_Config_PR { + MAC_CellGroupConfig__phr_Config_PR_NOTHING, /* No components present */ + MAC_CellGroupConfig__phr_Config_PR_release, + MAC_CellGroupConfig__phr_Config_PR_setup +} MAC_CellGroupConfig__phr_Config_PR; +typedef enum MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR { + MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR_NOTHING, /* No components present */ + MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR_release, + MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR_setup +} MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR; + +/* Forward declarations */ +struct SchedulingRequestConfig; +struct BSR_Config; +struct TAG_Config; +struct DRX_Config; +struct PHR_Config; + +/* MAC-CellGroupConfig */ +typedef struct MAC_CellGroupConfig { + struct MAC_CellGroupConfig__drx_Config { + MAC_CellGroupConfig__drx_Config_PR present; + union MAC_CellGroupConfig__drx_Config_u { + NULL_t release; + struct DRX_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *drx_Config; + struct SchedulingRequestConfig *schedulingRequestConfig; /* OPTIONAL */ + struct BSR_Config *bsr_Config; /* OPTIONAL */ + struct TAG_Config *tag_Config; /* OPTIONAL */ + struct MAC_CellGroupConfig__phr_Config { + MAC_CellGroupConfig__phr_Config_PR present; + union MAC_CellGroupConfig__phr_Config_u { + NULL_t release; + struct PHR_Config *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *phr_Config; + BOOLEAN_t skipUplinkTxDynamic; + /* + * This type is extensible, + * possible extensions are below. + */ + struct MAC_CellGroupConfig__ext1 { + BOOLEAN_t *csi_Mask_v1530; /* OPTIONAL */ + struct MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530 { + MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_PR present; + union MAC_CellGroupConfig__ext1__dataInactivityTimer_v1530_u { + NULL_t release; + DataInactivityTimer_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dataInactivityTimer_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; +} MAC_CellGroupConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MAC_CellGroupConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_MAC_CellGroupConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_MAC_CellGroupConfig_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MAC_CellGroupConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/MAC-Parameters.c b/src/codec_utils/RRC/MAC-Parameters.c new file mode 100644 index 000000000..a22982d02 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MAC-Parameters.h" + +#include "MAC-ParametersCommon.h" +#include "MAC-ParametersXDD-Diff.h" +asn_TYPE_member_t asn_MBR_MAC_Parameters_1[] = { + { ATF_POINTER, 2, offsetof(struct MAC_Parameters, mac_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MAC_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersCommon" + }, + { ATF_POINTER, 1, offsetof(struct MAC_Parameters, mac_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MAC_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersXDD-Diff" + }, +}; +static const int asn_MAP_MAC_Parameters_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MAC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MAC_Parameters_specs_1 = { + sizeof(struct MAC_Parameters), + offsetof(struct MAC_Parameters, _asn_ctx), + asn_MAP_MAC_Parameters_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MAC_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MAC_Parameters = { + "MAC-Parameters", + "MAC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_MAC_Parameters_tags_1, + sizeof(asn_DEF_MAC_Parameters_tags_1) + /sizeof(asn_DEF_MAC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_MAC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_MAC_Parameters_tags_1) + /sizeof(asn_DEF_MAC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MAC_Parameters_1, + 2, /* Elements count */ + &asn_SPC_MAC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MAC-Parameters.h b/src/codec_utils/RRC/MAC-Parameters.h new file mode 100644 index 000000000..bd8692342 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MAC_Parameters_H_ +#define _MAC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MAC_ParametersCommon; +struct MAC_ParametersXDD_Diff; + +/* MAC-Parameters */ +typedef struct MAC_Parameters { + struct MAC_ParametersCommon *mac_ParametersCommon; /* OPTIONAL */ + struct MAC_ParametersXDD_Diff *mac_ParametersXDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MAC_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MAC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_MAC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_MAC_Parameters_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MAC_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/MAC-ParametersCommon.c b/src/codec_utils/RRC/MAC-ParametersCommon.c new file mode 100644 index 000000000..e9f735e78 --- /dev/null +++ b/src/codec_utils/RRC/MAC-ParametersCommon.c @@ -0,0 +1,372 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_lcp_Restriction_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_SpatialRelInfoMAC_CE_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pucch_SpatialRelInfoMAC_CE_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_oer_constraints_t asn_OER_type_lch_ToSCellRestriction_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_recommendedBitRate_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_recommendedBitRateQuery_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_lcp_Restriction_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_lcp_Restriction_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_lcp_Restriction_specs_2 = { + asn_MAP_lcp_Restriction_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_lcp_Restriction_2 = { + "lcp-Restriction", + "lcp-Restriction", + &asn_OP_NativeEnumerated, + asn_DEF_lcp_Restriction_tags_2, + sizeof(asn_DEF_lcp_Restriction_tags_2) + /sizeof(asn_DEF_lcp_Restriction_tags_2[0]) - 1, /* 1 */ + asn_DEF_lcp_Restriction_tags_2, /* Same as above */ + sizeof(asn_DEF_lcp_Restriction_tags_2) + /sizeof(asn_DEF_lcp_Restriction_tags_2[0]), /* 2 */ + { &asn_OER_type_lcp_Restriction_constr_2, &asn_PER_type_lcp_Restriction_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_lcp_Restriction_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_SpatialRelInfoMAC_CE_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_SpatialRelInfoMAC_CE_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_SpatialRelInfoMAC_CE_specs_4 = { + asn_MAP_pucch_SpatialRelInfoMAC_CE_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_pucch_SpatialRelInfoMAC_CE_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_pucch_SpatialRelInfoMAC_CE_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_pucch_SpatialRelInfoMAC_CE_4 = { + "pucch-SpatialRelInfoMAC-CE", + "pucch-SpatialRelInfoMAC-CE", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4, + sizeof(asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4) + /sizeof(asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4[0]) - 1, /* 1 */ + asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4, /* Same as above */ + sizeof(asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4) + /sizeof(asn_DEF_pucch_SpatialRelInfoMAC_CE_tags_4[0]), /* 2 */ + { &asn_OER_type_pucch_SpatialRelInfoMAC_CE_constr_4, &asn_PER_type_pucch_SpatialRelInfoMAC_CE_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_SpatialRelInfoMAC_CE_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_lch_ToSCellRestriction_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_lch_ToSCellRestriction_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_lch_ToSCellRestriction_specs_6 = { + asn_MAP_lch_ToSCellRestriction_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_lch_ToSCellRestriction_6 = { + "lch-ToSCellRestriction", + "lch-ToSCellRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_lch_ToSCellRestriction_tags_6, + sizeof(asn_DEF_lch_ToSCellRestriction_tags_6) + /sizeof(asn_DEF_lch_ToSCellRestriction_tags_6[0]) - 1, /* 1 */ + asn_DEF_lch_ToSCellRestriction_tags_6, /* Same as above */ + sizeof(asn_DEF_lch_ToSCellRestriction_tags_6) + /sizeof(asn_DEF_lch_ToSCellRestriction_tags_6[0]), /* 2 */ + { &asn_OER_type_lch_ToSCellRestriction_constr_6, &asn_PER_type_lch_ToSCellRestriction_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_lch_ToSCellRestriction_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_recommendedBitRate_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_recommendedBitRate_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_recommendedBitRate_specs_10 = { + asn_MAP_recommendedBitRate_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_recommendedBitRate_10 = { + "recommendedBitRate", + "recommendedBitRate", + &asn_OP_NativeEnumerated, + asn_DEF_recommendedBitRate_tags_10, + sizeof(asn_DEF_recommendedBitRate_tags_10) + /sizeof(asn_DEF_recommendedBitRate_tags_10[0]) - 1, /* 1 */ + asn_DEF_recommendedBitRate_tags_10, /* Same as above */ + sizeof(asn_DEF_recommendedBitRate_tags_10) + /sizeof(asn_DEF_recommendedBitRate_tags_10[0]), /* 2 */ + { &asn_OER_type_recommendedBitRate_constr_10, &asn_PER_type_recommendedBitRate_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_recommendedBitRate_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_recommendedBitRateQuery_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_recommendedBitRateQuery_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_recommendedBitRateQuery_specs_12 = { + asn_MAP_recommendedBitRateQuery_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_recommendedBitRateQuery_12 = { + "recommendedBitRateQuery", + "recommendedBitRateQuery", + &asn_OP_NativeEnumerated, + asn_DEF_recommendedBitRateQuery_tags_12, + sizeof(asn_DEF_recommendedBitRateQuery_tags_12) + /sizeof(asn_DEF_recommendedBitRateQuery_tags_12[0]) - 1, /* 1 */ + asn_DEF_recommendedBitRateQuery_tags_12, /* Same as above */ + sizeof(asn_DEF_recommendedBitRateQuery_tags_12) + /sizeof(asn_DEF_recommendedBitRateQuery_tags_12[0]), /* 2 */ + { &asn_OER_type_recommendedBitRateQuery_constr_12, &asn_PER_type_recommendedBitRateQuery_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_recommendedBitRateQuery_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_9[] = { + { ATF_POINTER, 2, offsetof(struct MAC_ParametersCommon__ext1, recommendedBitRate), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_recommendedBitRate_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedBitRate" + }, + { ATF_POINTER, 1, offsetof(struct MAC_ParametersCommon__ext1, recommendedBitRateQuery), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_recommendedBitRateQuery_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "recommendedBitRateQuery" + }, +}; +static const int asn_MAP_ext1_oms_9[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ext1_specs_9 = { + sizeof(struct MAC_ParametersCommon__ext1), + offsetof(struct MAC_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_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_ext1_9 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_9, + sizeof(asn_DEF_ext1_tags_9) + /sizeof(asn_DEF_ext1_tags_9[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_9, /* Same as above */ + sizeof(asn_DEF_ext1_tags_9) + /sizeof(asn_DEF_ext1_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_9, + 2, /* Elements count */ + &asn_SPC_ext1_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MAC_ParametersCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct MAC_ParametersCommon, lcp_Restriction), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_lcp_Restriction_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lcp-Restriction" + }, + { ATF_POINTER, 3, offsetof(struct MAC_ParametersCommon, pucch_SpatialRelInfoMAC_CE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_SpatialRelInfoMAC_CE_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-SpatialRelInfoMAC-CE" + }, + { ATF_POINTER, 2, offsetof(struct MAC_ParametersCommon, lch_ToSCellRestriction), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_lch_ToSCellRestriction_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lch-ToSCellRestriction" + }, + { ATF_POINTER, 1, offsetof(struct MAC_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MAC_ParametersCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MAC_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MAC_ParametersCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* lcp-Restriction */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pucch-SpatialRelInfoMAC-CE */ + { (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_MAC_ParametersCommon_specs_1 = { + sizeof(struct MAC_ParametersCommon), + offsetof(struct MAC_ParametersCommon, _asn_ctx), + asn_MAP_MAC_ParametersCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MAC_ParametersCommon_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MAC_ParametersCommon = { + "MAC-ParametersCommon", + "MAC-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_MAC_ParametersCommon_tags_1, + sizeof(asn_DEF_MAC_ParametersCommon_tags_1) + /sizeof(asn_DEF_MAC_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_MAC_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_MAC_ParametersCommon_tags_1) + /sizeof(asn_DEF_MAC_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MAC_ParametersCommon_1, + 4, /* Elements count */ + &asn_SPC_MAC_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MAC-ParametersCommon.h b/src/codec_utils/RRC/MAC-ParametersCommon.h new file mode 100644 index 000000000..aadb83dbc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MAC_ParametersCommon_H_ +#define _MAC_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MAC_ParametersCommon__lcp_Restriction { + MAC_ParametersCommon__lcp_Restriction_supported = 0 +} e_MAC_ParametersCommon__lcp_Restriction; +typedef enum MAC_ParametersCommon__pucch_SpatialRelInfoMAC_CE { + MAC_ParametersCommon__pucch_SpatialRelInfoMAC_CE_supported = 0 +} e_MAC_ParametersCommon__pucch_SpatialRelInfoMAC_CE; +typedef enum MAC_ParametersCommon__lch_ToSCellRestriction { + MAC_ParametersCommon__lch_ToSCellRestriction_supported = 0 +} e_MAC_ParametersCommon__lch_ToSCellRestriction; +typedef enum MAC_ParametersCommon__ext1__recommendedBitRate { + MAC_ParametersCommon__ext1__recommendedBitRate_supported = 0 +} e_MAC_ParametersCommon__ext1__recommendedBitRate; +typedef enum MAC_ParametersCommon__ext1__recommendedBitRateQuery { + MAC_ParametersCommon__ext1__recommendedBitRateQuery_supported = 0 +} e_MAC_ParametersCommon__ext1__recommendedBitRateQuery; + +/* MAC-ParametersCommon */ +typedef struct MAC_ParametersCommon { + long *lcp_Restriction; /* OPTIONAL */ + long *pucch_SpatialRelInfoMAC_CE; /* OPTIONAL */ + long *lch_ToSCellRestriction; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} MAC_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_lcp_Restriction_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_SpatialRelInfoMAC_CE_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_lch_ToSCellRestriction_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_recommendedBitRate_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_recommendedBitRateQuery_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MAC_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_MAC_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_MAC_ParametersCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MAC_ParametersCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/MAC-ParametersXDD-Diff.c b/src/codec_utils/RRC/MAC-ParametersXDD-Diff.c new file mode 100644 index 000000000..88f241d14 --- /dev/null +++ b/src/codec_utils/RRC/MAC-ParametersXDD-Diff.c @@ -0,0 +1,384 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_skipUplinkTxDynamic_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_logicalChannelSR_DelayTimer_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_longDRX_Cycle_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_shortDRX_Cycle_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_multipleSR_Configurations_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_multipleConfiguredGrants_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_skipUplinkTxDynamic_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_skipUplinkTxDynamic_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_skipUplinkTxDynamic_specs_2 = { + asn_MAP_skipUplinkTxDynamic_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_skipUplinkTxDynamic_2 = { + "skipUplinkTxDynamic", + "skipUplinkTxDynamic", + &asn_OP_NativeEnumerated, + asn_DEF_skipUplinkTxDynamic_tags_2, + sizeof(asn_DEF_skipUplinkTxDynamic_tags_2) + /sizeof(asn_DEF_skipUplinkTxDynamic_tags_2[0]) - 1, /* 1 */ + asn_DEF_skipUplinkTxDynamic_tags_2, /* Same as above */ + sizeof(asn_DEF_skipUplinkTxDynamic_tags_2) + /sizeof(asn_DEF_skipUplinkTxDynamic_tags_2[0]), /* 2 */ + { &asn_OER_type_skipUplinkTxDynamic_constr_2, &asn_PER_type_skipUplinkTxDynamic_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_skipUplinkTxDynamic_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_logicalChannelSR_DelayTimer_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_logicalChannelSR_DelayTimer_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_logicalChannelSR_DelayTimer_specs_4 = { + asn_MAP_logicalChannelSR_DelayTimer_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_logicalChannelSR_DelayTimer_4 = { + "logicalChannelSR-DelayTimer", + "logicalChannelSR-DelayTimer", + &asn_OP_NativeEnumerated, + asn_DEF_logicalChannelSR_DelayTimer_tags_4, + sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_4) + /sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_4[0]) - 1, /* 1 */ + asn_DEF_logicalChannelSR_DelayTimer_tags_4, /* Same as above */ + sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_4) + /sizeof(asn_DEF_logicalChannelSR_DelayTimer_tags_4[0]), /* 2 */ + { &asn_OER_type_logicalChannelSR_DelayTimer_constr_4, &asn_PER_type_logicalChannelSR_DelayTimer_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_logicalChannelSR_DelayTimer_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_longDRX_Cycle_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_longDRX_Cycle_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_longDRX_Cycle_specs_6 = { + asn_MAP_longDRX_Cycle_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_longDRX_Cycle_6 = { + "longDRX-Cycle", + "longDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_longDRX_Cycle_tags_6, + sizeof(asn_DEF_longDRX_Cycle_tags_6) + /sizeof(asn_DEF_longDRX_Cycle_tags_6[0]) - 1, /* 1 */ + asn_DEF_longDRX_Cycle_tags_6, /* Same as above */ + sizeof(asn_DEF_longDRX_Cycle_tags_6) + /sizeof(asn_DEF_longDRX_Cycle_tags_6[0]), /* 2 */ + { &asn_OER_type_longDRX_Cycle_constr_6, &asn_PER_type_longDRX_Cycle_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_longDRX_Cycle_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_shortDRX_Cycle_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_shortDRX_Cycle_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_shortDRX_Cycle_specs_8 = { + asn_MAP_shortDRX_Cycle_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_shortDRX_Cycle_8 = { + "shortDRX-Cycle", + "shortDRX-Cycle", + &asn_OP_NativeEnumerated, + asn_DEF_shortDRX_Cycle_tags_8, + sizeof(asn_DEF_shortDRX_Cycle_tags_8) + /sizeof(asn_DEF_shortDRX_Cycle_tags_8[0]) - 1, /* 1 */ + asn_DEF_shortDRX_Cycle_tags_8, /* Same as above */ + sizeof(asn_DEF_shortDRX_Cycle_tags_8) + /sizeof(asn_DEF_shortDRX_Cycle_tags_8[0]), /* 2 */ + { &asn_OER_type_shortDRX_Cycle_constr_8, &asn_PER_type_shortDRX_Cycle_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_shortDRX_Cycle_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_multipleSR_Configurations_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleSR_Configurations_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleSR_Configurations_specs_10 = { + asn_MAP_multipleSR_Configurations_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multipleSR_Configurations_10 = { + "multipleSR-Configurations", + "multipleSR-Configurations", + &asn_OP_NativeEnumerated, + asn_DEF_multipleSR_Configurations_tags_10, + sizeof(asn_DEF_multipleSR_Configurations_tags_10) + /sizeof(asn_DEF_multipleSR_Configurations_tags_10[0]) - 1, /* 1 */ + asn_DEF_multipleSR_Configurations_tags_10, /* Same as above */ + sizeof(asn_DEF_multipleSR_Configurations_tags_10) + /sizeof(asn_DEF_multipleSR_Configurations_tags_10[0]), /* 2 */ + { &asn_OER_type_multipleSR_Configurations_constr_10, &asn_PER_type_multipleSR_Configurations_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleSR_Configurations_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_multipleConfiguredGrants_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleConfiguredGrants_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleConfiguredGrants_specs_12 = { + asn_MAP_multipleConfiguredGrants_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multipleConfiguredGrants_12 = { + "multipleConfiguredGrants", + "multipleConfiguredGrants", + &asn_OP_NativeEnumerated, + asn_DEF_multipleConfiguredGrants_tags_12, + sizeof(asn_DEF_multipleConfiguredGrants_tags_12) + /sizeof(asn_DEF_multipleConfiguredGrants_tags_12[0]) - 1, /* 1 */ + asn_DEF_multipleConfiguredGrants_tags_12, /* Same as above */ + sizeof(asn_DEF_multipleConfiguredGrants_tags_12) + /sizeof(asn_DEF_multipleConfiguredGrants_tags_12[0]), /* 2 */ + { &asn_OER_type_multipleConfiguredGrants_constr_12, &asn_PER_type_multipleConfiguredGrants_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleConfiguredGrants_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MAC_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 6, offsetof(struct MAC_ParametersXDD_Diff, skipUplinkTxDynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_skipUplinkTxDynamic_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "skipUplinkTxDynamic" + }, + { ATF_POINTER, 5, offsetof(struct MAC_ParametersXDD_Diff, logicalChannelSR_DelayTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_logicalChannelSR_DelayTimer_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelSR-DelayTimer" + }, + { ATF_POINTER, 4, offsetof(struct MAC_ParametersXDD_Diff, longDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_longDRX_Cycle_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "longDRX-Cycle" + }, + { ATF_POINTER, 3, offsetof(struct MAC_ParametersXDD_Diff, shortDRX_Cycle), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_shortDRX_Cycle_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortDRX-Cycle" + }, + { ATF_POINTER, 2, offsetof(struct MAC_ParametersXDD_Diff, multipleSR_Configurations), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleSR_Configurations_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleSR-Configurations" + }, + { ATF_POINTER, 1, offsetof(struct MAC_ParametersXDD_Diff, multipleConfiguredGrants), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleConfiguredGrants_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleConfiguredGrants" + }, +}; +static const int asn_MAP_MAC_ParametersXDD_Diff_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_MAC_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MAC_ParametersXDD_Diff_specs_1 = { + sizeof(struct MAC_ParametersXDD_Diff), + offsetof(struct MAC_ParametersXDD_Diff, _asn_ctx), + asn_MAP_MAC_ParametersXDD_Diff_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_MAC_ParametersXDD_Diff_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MAC_ParametersXDD_Diff = { + "MAC-ParametersXDD-Diff", + "MAC-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_MAC_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_MAC_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_MAC_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_MAC_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_MAC_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_MAC_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MAC_ParametersXDD_Diff_1, + 6, /* Elements count */ + &asn_SPC_MAC_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MAC-ParametersXDD-Diff.h b/src/codec_utils/RRC/MAC-ParametersXDD-Diff.h new file mode 100644 index 000000000..ec750dbdd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MAC_ParametersXDD_Diff_H_ +#define _MAC_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MAC_ParametersXDD_Diff__skipUplinkTxDynamic { + MAC_ParametersXDD_Diff__skipUplinkTxDynamic_supported = 0 +} e_MAC_ParametersXDD_Diff__skipUplinkTxDynamic; +typedef enum MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer { + MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer_supported = 0 +} e_MAC_ParametersXDD_Diff__logicalChannelSR_DelayTimer; +typedef enum MAC_ParametersXDD_Diff__longDRX_Cycle { + MAC_ParametersXDD_Diff__longDRX_Cycle_supported = 0 +} e_MAC_ParametersXDD_Diff__longDRX_Cycle; +typedef enum MAC_ParametersXDD_Diff__shortDRX_Cycle { + MAC_ParametersXDD_Diff__shortDRX_Cycle_supported = 0 +} e_MAC_ParametersXDD_Diff__shortDRX_Cycle; +typedef enum MAC_ParametersXDD_Diff__multipleSR_Configurations { + MAC_ParametersXDD_Diff__multipleSR_Configurations_supported = 0 +} e_MAC_ParametersXDD_Diff__multipleSR_Configurations; +typedef enum MAC_ParametersXDD_Diff__multipleConfiguredGrants { + MAC_ParametersXDD_Diff__multipleConfiguredGrants_supported = 0 +} e_MAC_ParametersXDD_Diff__multipleConfiguredGrants; + +/* MAC-ParametersXDD-Diff */ +typedef struct 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; +} MAC_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_skipUplinkTxDynamic_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_logicalChannelSR_DelayTimer_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_longDRX_Cycle_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_shortDRX_Cycle_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleSR_Configurations_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleConfiguredGrants_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MAC_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_MAC_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_MAC_ParametersXDD_Diff_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MAC_ParametersXDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/MCC-MNC-Digit.c b/src/codec_utils/RRC/MCC-MNC-Digit.c new file mode 100644 index 000000000..2f0aea9cb --- /dev/null +++ b/src/codec_utils/RRC/MCC-MNC-Digit.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MCC-MNC-Digit.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_MCC_MNC_Digit_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +asn_per_constraints_t asn_PER_type_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_MCC_MNC_Digit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MCC_MNC_Digit = { + "MCC-MNC-Digit", + "MCC-MNC-Digit", + &asn_OP_NativeInteger, + asn_DEF_MCC_MNC_Digit_tags_1, + sizeof(asn_DEF_MCC_MNC_Digit_tags_1) + /sizeof(asn_DEF_MCC_MNC_Digit_tags_1[0]), /* 1 */ + asn_DEF_MCC_MNC_Digit_tags_1, /* Same as above */ + sizeof(asn_DEF_MCC_MNC_Digit_tags_1) + /sizeof(asn_DEF_MCC_MNC_Digit_tags_1[0]), /* 1 */ + { &asn_OER_type_MCC_MNC_Digit_constr_1, &asn_PER_type_MCC_MNC_Digit_constr_1, MCC_MNC_Digit_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/MCC-MNC-Digit.h b/src/codec_utils/RRC/MCC-MNC-Digit.h new file mode 100644 index 000000000..16f76522e --- /dev/null +++ b/src/codec_utils/RRC/MCC-MNC-Digit.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MCC_MNC_Digit_H_ +#define _MCC_MNC_Digit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MCC-MNC-Digit */ +typedef long MCC_MNC_Digit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MCC_MNC_Digit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MCC_MNC_Digit; +asn_struct_free_f MCC_MNC_Digit_free; +asn_struct_print_f MCC_MNC_Digit_print; +asn_constr_check_f MCC_MNC_Digit_constraint; +ber_type_decoder_f MCC_MNC_Digit_decode_ber; +der_type_encoder_f MCC_MNC_Digit_encode_der; +xer_type_decoder_f MCC_MNC_Digit_decode_xer; +xer_type_encoder_f MCC_MNC_Digit_encode_xer; +oer_type_decoder_f MCC_MNC_Digit_decode_oer; +oer_type_encoder_f MCC_MNC_Digit_encode_oer; +per_type_decoder_f MCC_MNC_Digit_decode_uper; +per_type_encoder_f MCC_MNC_Digit_encode_uper; +per_type_decoder_f MCC_MNC_Digit_decode_aper; +per_type_encoder_f MCC_MNC_Digit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MCC_MNC_Digit_H_ */ +#include diff --git a/src/codec_utils/RRC/MCC.c b/src/codec_utils/RRC/MCC.c new file mode 100644 index 000000000..1e9013eb4 --- /dev/null +++ b/src/codec_utils/RRC/MCC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MCC.h" + +static asn_oer_constraints_t asn_OER_type_MCC_constr_1 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +asn_per_constraints_t asn_PER_type_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_MCC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_MCC_MNC_Digit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MCC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MCC_specs_1 = { + sizeof(struct MCC), + offsetof(struct MCC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MCC = { + "MCC", + "MCC", + &asn_OP_SEQUENCE_OF, + asn_DEF_MCC_tags_1, + sizeof(asn_DEF_MCC_tags_1) + /sizeof(asn_DEF_MCC_tags_1[0]), /* 1 */ + asn_DEF_MCC_tags_1, /* Same as above */ + sizeof(asn_DEF_MCC_tags_1) + /sizeof(asn_DEF_MCC_tags_1[0]), /* 1 */ + { &asn_OER_type_MCC_constr_1, &asn_PER_type_MCC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MCC_1, + 1, /* Single element */ + &asn_SPC_MCC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MCC.h b/src/codec_utils/RRC/MCC.h new file mode 100644 index 000000000..6551823a5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MCC_H_ +#define _MCC_H_ + + +#include + +/* Including external dependencies */ +#include "MCC-MNC-Digit.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MCC */ +typedef struct MCC { + A_SEQUENCE_OF(MCC_MNC_Digit_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MCC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MCC; +extern asn_SET_OF_specifics_t asn_SPC_MCC_specs_1; +extern asn_TYPE_member_t asn_MBR_MCC_1[1]; +extern asn_per_constraints_t asn_PER_type_MCC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MCC_H_ */ +#include diff --git a/src/codec_utils/RRC/MIB.c b/src/codec_utils/RRC/MIB.c new file mode 100644 index 000000000..8bf5077ff --- /dev/null +++ b/src/codec_utils/RRC/MIB.c @@ -0,0 +1,427 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_oer_constraints_t asn_OER_type_subCarrierSpacingCommon_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_TypeA_Position_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cellBarred_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_intraFreqReselection_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_systemFrameNumber_constr_2 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ssb_SubcarrierOffset_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_spare_constr_17 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_subCarrierSpacingCommon_value2enum_3[] = { + { 0, 9, "scs15or60" }, + { 1, 10, "scs30or120" } +}; +static const unsigned int asn_MAP_subCarrierSpacingCommon_enum2value_3[] = { + 0, /* scs15or60(0) */ + 1 /* scs30or120(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_subCarrierSpacingCommon_specs_3 = { + asn_MAP_subCarrierSpacingCommon_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_subCarrierSpacingCommon_3 = { + "subCarrierSpacingCommon", + "subCarrierSpacingCommon", + &asn_OP_NativeEnumerated, + asn_DEF_subCarrierSpacingCommon_tags_3, + sizeof(asn_DEF_subCarrierSpacingCommon_tags_3) + /sizeof(asn_DEF_subCarrierSpacingCommon_tags_3[0]) - 1, /* 1 */ + asn_DEF_subCarrierSpacingCommon_tags_3, /* Same as above */ + sizeof(asn_DEF_subCarrierSpacingCommon_tags_3) + /sizeof(asn_DEF_subCarrierSpacingCommon_tags_3[0]), /* 2 */ + { &asn_OER_type_subCarrierSpacingCommon_constr_3, &asn_PER_type_subCarrierSpacingCommon_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_subCarrierSpacingCommon_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dmrs_TypeA_Position_value2enum_7[] = { + { 0, 4, "pos2" }, + { 1, 4, "pos3" } +}; +static const unsigned int asn_MAP_dmrs_TypeA_Position_enum2value_7[] = { + 0, /* pos2(0) */ + 1 /* pos3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_TypeA_Position_specs_7 = { + asn_MAP_dmrs_TypeA_Position_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_TypeA_Position_7 = { + "dmrs-TypeA-Position", + "dmrs-TypeA-Position", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_TypeA_Position_tags_7, + sizeof(asn_DEF_dmrs_TypeA_Position_tags_7) + /sizeof(asn_DEF_dmrs_TypeA_Position_tags_7[0]) - 1, /* 1 */ + asn_DEF_dmrs_TypeA_Position_tags_7, /* Same as above */ + sizeof(asn_DEF_dmrs_TypeA_Position_tags_7) + /sizeof(asn_DEF_dmrs_TypeA_Position_tags_7[0]), /* 2 */ + { &asn_OER_type_dmrs_TypeA_Position_constr_7, &asn_PER_type_dmrs_TypeA_Position_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_TypeA_Position_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cellBarred_value2enum_11[] = { + { 0, 6, "barred" }, + { 1, 9, "notBarred" } +}; +static const unsigned int asn_MAP_cellBarred_enum2value_11[] = { + 0, /* barred(0) */ + 1 /* notBarred(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cellBarred_specs_11 = { + asn_MAP_cellBarred_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cellBarred_11 = { + "cellBarred", + "cellBarred", + &asn_OP_NativeEnumerated, + asn_DEF_cellBarred_tags_11, + sizeof(asn_DEF_cellBarred_tags_11) + /sizeof(asn_DEF_cellBarred_tags_11[0]) - 1, /* 1 */ + asn_DEF_cellBarred_tags_11, /* Same as above */ + sizeof(asn_DEF_cellBarred_tags_11) + /sizeof(asn_DEF_cellBarred_tags_11[0]), /* 2 */ + { &asn_OER_type_cellBarred_constr_11, &asn_PER_type_cellBarred_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cellBarred_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_intraFreqReselection_value2enum_14[] = { + { 0, 7, "allowed" }, + { 1, 10, "notAllowed" } +}; +static const unsigned int asn_MAP_intraFreqReselection_enum2value_14[] = { + 0, /* allowed(0) */ + 1 /* notAllowed(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_intraFreqReselection_specs_14 = { + asn_MAP_intraFreqReselection_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_intraFreqReselection_14 = { + "intraFreqReselection", + "intraFreqReselection", + &asn_OP_NativeEnumerated, + asn_DEF_intraFreqReselection_tags_14, + sizeof(asn_DEF_intraFreqReselection_tags_14) + /sizeof(asn_DEF_intraFreqReselection_tags_14[0]) - 1, /* 1 */ + asn_DEF_intraFreqReselection_tags_14, /* Same as above */ + sizeof(asn_DEF_intraFreqReselection_tags_14) + /sizeof(asn_DEF_intraFreqReselection_tags_14[0]), /* 2 */ + { &asn_OER_type_intraFreqReselection_constr_14, &asn_PER_type_intraFreqReselection_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_intraFreqReselection_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MIB, systemFrameNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_systemFrameNumber_constr_2, &asn_PER_memb_systemFrameNumber_constr_2, memb_systemFrameNumber_constraint_1 }, + 0, 0, /* No default value */ + "systemFrameNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, subCarrierSpacingCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_subCarrierSpacingCommon_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subCarrierSpacingCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, ssb_SubcarrierOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ssb_SubcarrierOffset_constr_6, &asn_PER_memb_ssb_SubcarrierOffset_constr_6, memb_ssb_SubcarrierOffset_constraint_1 }, + 0, 0, /* No default value */ + "ssb-SubcarrierOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, dmrs_TypeA_Position), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_TypeA_Position_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-TypeA-Position" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, pdcch_ConfigSIB1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCCH_ConfigSIB1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ConfigSIB1" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, cellBarred), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cellBarred_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellBarred" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, intraFreqReselection), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_intraFreqReselection_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqReselection" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIB, spare), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_17, &asn_PER_memb_spare_constr_17, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_MIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MIB_specs_1 = { + sizeof(struct MIB), + offsetof(struct MIB, _asn_ctx), + asn_MAP_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_MIB = { + "MIB", + "MIB", + &asn_OP_SEQUENCE, + asn_DEF_MIB_tags_1, + sizeof(asn_DEF_MIB_tags_1) + /sizeof(asn_DEF_MIB_tags_1[0]), /* 1 */ + asn_DEF_MIB_tags_1, /* Same as above */ + sizeof(asn_DEF_MIB_tags_1) + /sizeof(asn_DEF_MIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MIB_1, + 8, /* Elements count */ + &asn_SPC_MIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MIB.h b/src/codec_utils/RRC/MIB.h new file mode 100644 index 000000000..4d7db041c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MIB_H_ +#define _MIB_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "PDCCH-ConfigSIB1.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MIB__subCarrierSpacingCommon { + MIB__subCarrierSpacingCommon_scs15or60 = 0, + MIB__subCarrierSpacingCommon_scs30or120 = 1 +} e_MIB__subCarrierSpacingCommon; +typedef enum MIB__dmrs_TypeA_Position { + MIB__dmrs_TypeA_Position_pos2 = 0, + MIB__dmrs_TypeA_Position_pos3 = 1 +} e_MIB__dmrs_TypeA_Position; +typedef enum MIB__cellBarred { + MIB__cellBarred_barred = 0, + MIB__cellBarred_notBarred = 1 +} e_MIB__cellBarred; +typedef enum MIB__intraFreqReselection { + MIB__intraFreqReselection_allowed = 0, + MIB__intraFreqReselection_notAllowed = 1 +} e_MIB__intraFreqReselection; + +/* MIB */ +typedef struct MIB { + BIT_STRING_t systemFrameNumber; + long subCarrierSpacingCommon; + long ssb_SubcarrierOffset; + long dmrs_TypeA_Position; + 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; +} MIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_subCarrierSpacingCommon_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_TypeA_Position_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cellBarred_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_intraFreqReselection_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MIB; +extern asn_SEQUENCE_specifics_t asn_SPC_MIB_specs_1; +extern asn_TYPE_member_t asn_MBR_MIB_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MIB_H_ */ +#include diff --git a/src/codec_utils/RRC/MIMO-LayersDL.c b/src/codec_utils/RRC/MIMO-LayersDL.c new file mode 100644 index 000000000..bc4d384f0 --- /dev/null +++ b/src/codec_utils/RRC/MIMO-LayersDL.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MIMO-LayersDL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MIMO_LayersDL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MIMO_LayersDL_value2enum_1[] = { + { 0, 9, "twoLayers" }, + { 1, 10, "fourLayers" }, + { 2, 11, "eightLayers" } +}; +static const unsigned int asn_MAP_MIMO_LayersDL_enum2value_1[] = { + 2, /* eightLayers(2) */ + 1, /* fourLayers(1) */ + 0 /* twoLayers(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MIMO_LayersDL_specs_1 = { + asn_MAP_MIMO_LayersDL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_MIMO_LayersDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MIMO_LayersDL = { + "MIMO-LayersDL", + "MIMO-LayersDL", + &asn_OP_NativeEnumerated, + asn_DEF_MIMO_LayersDL_tags_1, + sizeof(asn_DEF_MIMO_LayersDL_tags_1) + /sizeof(asn_DEF_MIMO_LayersDL_tags_1[0]), /* 1 */ + asn_DEF_MIMO_LayersDL_tags_1, /* Same as above */ + sizeof(asn_DEF_MIMO_LayersDL_tags_1) + /sizeof(asn_DEF_MIMO_LayersDL_tags_1[0]), /* 1 */ + { &asn_OER_type_MIMO_LayersDL_constr_1, &asn_PER_type_MIMO_LayersDL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MIMO_LayersDL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MIMO-LayersDL.h b/src/codec_utils/RRC/MIMO-LayersDL.h new file mode 100644 index 000000000..bea393b71 --- /dev/null +++ b/src/codec_utils/RRC/MIMO-LayersDL.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MIMO_LayersDL_H_ +#define _MIMO_LayersDL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MIMO_LayersDL { + MIMO_LayersDL_twoLayers = 0, + MIMO_LayersDL_fourLayers = 1, + MIMO_LayersDL_eightLayers = 2 +} e_MIMO_LayersDL; + +/* MIMO-LayersDL */ +typedef long MIMO_LayersDL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MIMO_LayersDL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MIMO_LayersDL; +extern const asn_INTEGER_specifics_t asn_SPC_MIMO_LayersDL_specs_1; +asn_struct_free_f MIMO_LayersDL_free; +asn_struct_print_f MIMO_LayersDL_print; +asn_constr_check_f MIMO_LayersDL_constraint; +ber_type_decoder_f MIMO_LayersDL_decode_ber; +der_type_encoder_f MIMO_LayersDL_encode_der; +xer_type_decoder_f MIMO_LayersDL_decode_xer; +xer_type_encoder_f MIMO_LayersDL_encode_xer; +oer_type_decoder_f MIMO_LayersDL_decode_oer; +oer_type_encoder_f MIMO_LayersDL_encode_oer; +per_type_decoder_f MIMO_LayersDL_decode_uper; +per_type_encoder_f MIMO_LayersDL_encode_uper; +per_type_decoder_f MIMO_LayersDL_decode_aper; +per_type_encoder_f MIMO_LayersDL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MIMO_LayersDL_H_ */ +#include diff --git a/src/codec_utils/RRC/MIMO-LayersUL.c b/src/codec_utils/RRC/MIMO-LayersUL.c new file mode 100644 index 000000000..06ea239dd --- /dev/null +++ b/src/codec_utils/RRC/MIMO-LayersUL.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MIMO-LayersUL.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MIMO_LayersUL_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MIMO_LayersUL_value2enum_1[] = { + { 0, 8, "oneLayer" }, + { 1, 9, "twoLayers" }, + { 2, 10, "fourLayers" } +}; +static const unsigned int asn_MAP_MIMO_LayersUL_enum2value_1[] = { + 2, /* fourLayers(2) */ + 0, /* oneLayer(0) */ + 1 /* twoLayers(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MIMO_LayersUL_specs_1 = { + asn_MAP_MIMO_LayersUL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_MIMO_LayersUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MIMO_LayersUL = { + "MIMO-LayersUL", + "MIMO-LayersUL", + &asn_OP_NativeEnumerated, + asn_DEF_MIMO_LayersUL_tags_1, + sizeof(asn_DEF_MIMO_LayersUL_tags_1) + /sizeof(asn_DEF_MIMO_LayersUL_tags_1[0]), /* 1 */ + asn_DEF_MIMO_LayersUL_tags_1, /* Same as above */ + sizeof(asn_DEF_MIMO_LayersUL_tags_1) + /sizeof(asn_DEF_MIMO_LayersUL_tags_1[0]), /* 1 */ + { &asn_OER_type_MIMO_LayersUL_constr_1, &asn_PER_type_MIMO_LayersUL_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MIMO_LayersUL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MIMO-LayersUL.h b/src/codec_utils/RRC/MIMO-LayersUL.h new file mode 100644 index 000000000..bc276f139 --- /dev/null +++ b/src/codec_utils/RRC/MIMO-LayersUL.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MIMO_LayersUL_H_ +#define _MIMO_LayersUL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MIMO_LayersUL { + MIMO_LayersUL_oneLayer = 0, + MIMO_LayersUL_twoLayers = 1, + MIMO_LayersUL_fourLayers = 2 +} e_MIMO_LayersUL; + +/* MIMO-LayersUL */ +typedef long MIMO_LayersUL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MIMO_LayersUL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MIMO_LayersUL; +extern const asn_INTEGER_specifics_t asn_SPC_MIMO_LayersUL_specs_1; +asn_struct_free_f MIMO_LayersUL_free; +asn_struct_print_f MIMO_LayersUL_print; +asn_constr_check_f MIMO_LayersUL_constraint; +ber_type_decoder_f MIMO_LayersUL_decode_ber; +der_type_encoder_f MIMO_LayersUL_encode_der; +xer_type_decoder_f MIMO_LayersUL_decode_xer; +xer_type_encoder_f MIMO_LayersUL_encode_xer; +oer_type_decoder_f MIMO_LayersUL_decode_oer; +oer_type_encoder_f MIMO_LayersUL_encode_oer; +per_type_decoder_f MIMO_LayersUL_decode_uper; +per_type_encoder_f MIMO_LayersUL_encode_uper; +per_type_decoder_f MIMO_LayersUL_decode_aper; +per_type_encoder_f MIMO_LayersUL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MIMO_LayersUL_H_ */ +#include diff --git a/src/codec_utils/RRC/MIMO-ParametersPerBand.c b/src/codec_utils/RRC/MIMO-ParametersPerBand.c new file mode 100644 index 000000000..96b02c06b --- /dev/null +++ b/src/codec_utils/RRC/MIMO-ParametersPerBand.c @@ -0,0 +1,2119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MIMO-ParametersPerBand.h" + +#include "BeamManagementSSB-CSI-RS.h" +#include "SRS-Resources.h" +#include "CSI-RS-ForTracking.h" +#include "PTRS-DensityRecommendationDL.h" +#include "PTRS-DensityRecommendationUL.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_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. + */ +static int +memb_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_maxNumberCSI_RS_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 >= 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_maxNumberSSB_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 >= 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_maxNumberCSI_RS_SSB_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 >= 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_maxNumberSimultaneousSRS_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 <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_maxNumberConfiguredTCIstatesPerCC_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberActiveTCI_PerBWP_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_additionalActiveTCI_StatePDCCH_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_TransCoherence_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_beamCorrespondence_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_beamCorrespondence_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_oer_constraints_t asn_OER_type_periodicBeamReport_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aperiodicBeamReport_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_BeamReportPUCCH_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_BeamReportPUSCH_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_15kHz_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_30kHz_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_120kHz_constr_46 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_240kHz_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberNonGroupBeamReporting_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_groupBeamReporting_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberSRS_ResourcePerSet_BM_constr_61 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberSRS_ResourceSet_constr_66 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_twoPortsPTRS_DL_constr_70 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_twoPortsPTRS_DL_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_oer_constraints_t asn_OER_type_twoPortsPTRS_UL_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_15kHz_constr_77 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_30kHz_constr_81 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_86 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scs_120kHz_constr_90 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aperiodicTRS_constr_105 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberRxBeam_constr_32 CC_NOTUSED = { + { 1, 1 } /* (2..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_BFR_constr_67 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxNumberCSI_RS_BFR_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_oer_constraints_t asn_OER_memb_maxNumberSSB_BFR_constr_68 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxNumberSSB_BFR_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_SSB_BFR_constr_69 CC_NOTUSED = { + { 2, 1 } /* (1..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxNumberCSI_RS_SSB_BFR_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_oer_constraints_t asn_OER_memb_maxNumberSimultaneousSRS_PerCC_constr_75 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxNumberSimultaneousSRS_PerCC_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_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_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_maxNumberConfiguredTCIstatesPerCC_specs_3 = { + asn_MAP_maxNumberConfiguredTCIstatesPerCC_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberConfiguredTCIstatesPerCC_3 = { + "maxNumberConfiguredTCIstatesPerCC", + "maxNumberConfiguredTCIstatesPerCC", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3, + sizeof(asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3) + /sizeof(asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3[0]) - 1, /* 1 */ + asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3, /* Same as above */ + sizeof(asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3) + /sizeof(asn_DEF_maxNumberConfiguredTCIstatesPerCC_tags_3[0]), /* 2 */ + { &asn_OER_type_maxNumberConfiguredTCIstatesPerCC_constr_3, &asn_PER_type_maxNumberConfiguredTCIstatesPerCC_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberConfiguredTCIstatesPerCC_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberActiveTCI_PerBWP_value2enum_10[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_maxNumberActiveTCI_PerBWP_enum2value_10[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2, /* n4(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNumberActiveTCI_PerBWP_specs_10 = { + asn_MAP_maxNumberActiveTCI_PerBWP_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberActiveTCI_PerBWP_10 = { + "maxNumberActiveTCI-PerBWP", + "maxNumberActiveTCI-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberActiveTCI_PerBWP_tags_10, + sizeof(asn_DEF_maxNumberActiveTCI_PerBWP_tags_10) + /sizeof(asn_DEF_maxNumberActiveTCI_PerBWP_tags_10[0]) - 1, /* 1 */ + asn_DEF_maxNumberActiveTCI_PerBWP_tags_10, /* Same as above */ + sizeof(asn_DEF_maxNumberActiveTCI_PerBWP_tags_10) + /sizeof(asn_DEF_maxNumberActiveTCI_PerBWP_tags_10[0]), /* 2 */ + { &asn_OER_type_maxNumberActiveTCI_PerBWP_constr_10, &asn_PER_type_maxNumberActiveTCI_PerBWP_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberActiveTCI_PerBWP_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tci_StatePDSCH_2[] = { + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand__tci_StatePDSCH, maxNumberConfiguredTCIstatesPerCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberConfiguredTCIstatesPerCC_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberConfiguredTCIstatesPerCC" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand__tci_StatePDSCH, maxNumberActiveTCI_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberActiveTCI_PerBWP_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberActiveTCI-PerBWP" + }, +}; +static const int asn_MAP_tci_StatePDSCH_oms_2[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_tci_StatePDSCH_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_tci_StatePDSCH_specs_2 = { + sizeof(struct MIMO_ParametersPerBand__tci_StatePDSCH), + offsetof(struct MIMO_ParametersPerBand__tci_StatePDSCH, _asn_ctx), + asn_MAP_tci_StatePDSCH_tag2el_2, + 2, /* Count of tags in the map */ + asn_MAP_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_tci_StatePDSCH_2 = { + "tci-StatePDSCH", + "tci-StatePDSCH", + &asn_OP_SEQUENCE, + asn_DEF_tci_StatePDSCH_tags_2, + sizeof(asn_DEF_tci_StatePDSCH_tags_2) + /sizeof(asn_DEF_tci_StatePDSCH_tags_2[0]) - 1, /* 1 */ + asn_DEF_tci_StatePDSCH_tags_2, /* Same as above */ + sizeof(asn_DEF_tci_StatePDSCH_tags_2) + /sizeof(asn_DEF_tci_StatePDSCH_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_tci_StatePDSCH_2, + 2, /* Elements count */ + &asn_SPC_tci_StatePDSCH_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_additionalActiveTCI_StatePDCCH_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_additionalActiveTCI_StatePDCCH_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_additionalActiveTCI_StatePDCCH_specs_15 = { + asn_MAP_additionalActiveTCI_StatePDCCH_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_additionalActiveTCI_StatePDCCH_15 = { + "additionalActiveTCI-StatePDCCH", + "additionalActiveTCI-StatePDCCH", + &asn_OP_NativeEnumerated, + asn_DEF_additionalActiveTCI_StatePDCCH_tags_15, + sizeof(asn_DEF_additionalActiveTCI_StatePDCCH_tags_15) + /sizeof(asn_DEF_additionalActiveTCI_StatePDCCH_tags_15[0]) - 1, /* 1 */ + asn_DEF_additionalActiveTCI_StatePDCCH_tags_15, /* Same as above */ + sizeof(asn_DEF_additionalActiveTCI_StatePDCCH_tags_15) + /sizeof(asn_DEF_additionalActiveTCI_StatePDCCH_tags_15[0]), /* 2 */ + { &asn_OER_type_additionalActiveTCI_StatePDCCH_constr_15, &asn_PER_type_additionalActiveTCI_StatePDCCH_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_additionalActiveTCI_StatePDCCH_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_TransCoherence_value2enum_17[] = { + { 0, 11, "nonCoherent" }, + { 1, 15, "partialCoherent" }, + { 2, 12, "fullCoherent" } +}; +static const unsigned int asn_MAP_pusch_TransCoherence_enum2value_17[] = { + 2, /* fullCoherent(2) */ + 0, /* nonCoherent(0) */ + 1 /* partialCoherent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_TransCoherence_specs_17 = { + asn_MAP_pusch_TransCoherence_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pusch_TransCoherence_17 = { + "pusch-TransCoherence", + "pusch-TransCoherence", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_TransCoherence_tags_17, + sizeof(asn_DEF_pusch_TransCoherence_tags_17) + /sizeof(asn_DEF_pusch_TransCoherence_tags_17[0]) - 1, /* 1 */ + asn_DEF_pusch_TransCoherence_tags_17, /* Same as above */ + sizeof(asn_DEF_pusch_TransCoherence_tags_17) + /sizeof(asn_DEF_pusch_TransCoherence_tags_17[0]), /* 2 */ + { &asn_OER_type_pusch_TransCoherence_constr_17, &asn_PER_type_pusch_TransCoherence_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_TransCoherence_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_beamCorrespondence_value2enum_21[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_beamCorrespondence_enum2value_21[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_beamCorrespondence_specs_21 = { + asn_MAP_beamCorrespondence_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_beamCorrespondence_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_beamCorrespondence_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_beamCorrespondence_21 = { + "beamCorrespondence", + "beamCorrespondence", + &asn_OP_NativeEnumerated, + asn_DEF_beamCorrespondence_tags_21, + sizeof(asn_DEF_beamCorrespondence_tags_21) + /sizeof(asn_DEF_beamCorrespondence_tags_21[0]) - 1, /* 1 */ + asn_DEF_beamCorrespondence_tags_21, /* Same as above */ + sizeof(asn_DEF_beamCorrespondence_tags_21) + /sizeof(asn_DEF_beamCorrespondence_tags_21[0]), /* 2 */ + { &asn_OER_type_beamCorrespondence_constr_21, &asn_PER_type_beamCorrespondence_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_beamCorrespondence_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_periodicBeamReport_value2enum_23[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_periodicBeamReport_enum2value_23[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_periodicBeamReport_specs_23 = { + asn_MAP_periodicBeamReport_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_periodicBeamReport_23 = { + "periodicBeamReport", + "periodicBeamReport", + &asn_OP_NativeEnumerated, + asn_DEF_periodicBeamReport_tags_23, + sizeof(asn_DEF_periodicBeamReport_tags_23) + /sizeof(asn_DEF_periodicBeamReport_tags_23[0]) - 1, /* 1 */ + asn_DEF_periodicBeamReport_tags_23, /* Same as above */ + sizeof(asn_DEF_periodicBeamReport_tags_23) + /sizeof(asn_DEF_periodicBeamReport_tags_23[0]), /* 2 */ + { &asn_OER_type_periodicBeamReport_constr_23, &asn_PER_type_periodicBeamReport_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_periodicBeamReport_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aperiodicBeamReport_value2enum_25[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_aperiodicBeamReport_enum2value_25[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aperiodicBeamReport_specs_25 = { + asn_MAP_aperiodicBeamReport_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aperiodicBeamReport_25 = { + "aperiodicBeamReport", + "aperiodicBeamReport", + &asn_OP_NativeEnumerated, + asn_DEF_aperiodicBeamReport_tags_25, + sizeof(asn_DEF_aperiodicBeamReport_tags_25) + /sizeof(asn_DEF_aperiodicBeamReport_tags_25[0]) - 1, /* 1 */ + asn_DEF_aperiodicBeamReport_tags_25, /* Same as above */ + sizeof(asn_DEF_aperiodicBeamReport_tags_25) + /sizeof(asn_DEF_aperiodicBeamReport_tags_25[0]), /* 2 */ + { &asn_OER_type_aperiodicBeamReport_constr_25, &asn_PER_type_aperiodicBeamReport_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aperiodicBeamReport_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_BeamReportPUCCH_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_BeamReportPUCCH_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_BeamReportPUCCH_specs_27 = { + asn_MAP_sp_BeamReportPUCCH_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_BeamReportPUCCH_27 = { + "sp-BeamReportPUCCH", + "sp-BeamReportPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_sp_BeamReportPUCCH_tags_27, + sizeof(asn_DEF_sp_BeamReportPUCCH_tags_27) + /sizeof(asn_DEF_sp_BeamReportPUCCH_tags_27[0]) - 1, /* 1 */ + asn_DEF_sp_BeamReportPUCCH_tags_27, /* Same as above */ + sizeof(asn_DEF_sp_BeamReportPUCCH_tags_27) + /sizeof(asn_DEF_sp_BeamReportPUCCH_tags_27[0]), /* 2 */ + { &asn_OER_type_sp_BeamReportPUCCH_constr_27, &asn_PER_type_sp_BeamReportPUCCH_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_BeamReportPUCCH_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_BeamReportPUSCH_value2enum_29[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_BeamReportPUSCH_enum2value_29[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_BeamReportPUSCH_specs_29 = { + asn_MAP_sp_BeamReportPUSCH_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_BeamReportPUSCH_29 = { + "sp-BeamReportPUSCH", + "sp-BeamReportPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_sp_BeamReportPUSCH_tags_29, + sizeof(asn_DEF_sp_BeamReportPUSCH_tags_29) + /sizeof(asn_DEF_sp_BeamReportPUSCH_tags_29[0]) - 1, /* 1 */ + asn_DEF_sp_BeamReportPUSCH_tags_29, /* Same as above */ + sizeof(asn_DEF_sp_BeamReportPUSCH_tags_29) + /sizeof(asn_DEF_sp_BeamReportPUSCH_tags_29[0]), /* 2 */ + { &asn_OER_type_sp_BeamReportPUSCH_constr_29, &asn_PER_type_sp_BeamReportPUSCH_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_BeamReportPUSCH_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_15kHz_value2enum_34[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_scs_15kHz_enum2value_34[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_15kHz_specs_34 = { + asn_MAP_scs_15kHz_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_15kHz_34 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_15kHz_tags_34, + sizeof(asn_DEF_scs_15kHz_tags_34) + /sizeof(asn_DEF_scs_15kHz_tags_34[0]) - 1, /* 1 */ + asn_DEF_scs_15kHz_tags_34, /* Same as above */ + sizeof(asn_DEF_scs_15kHz_tags_34) + /sizeof(asn_DEF_scs_15kHz_tags_34[0]), /* 2 */ + { &asn_OER_type_scs_15kHz_constr_34, &asn_PER_type_scs_15kHz_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_15kHz_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_30kHz_value2enum_38[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_scs_30kHz_enum2value_38[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_30kHz_specs_38 = { + asn_MAP_scs_30kHz_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_30kHz_38 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_30kHz_tags_38, + sizeof(asn_DEF_scs_30kHz_tags_38) + /sizeof(asn_DEF_scs_30kHz_tags_38[0]) - 1, /* 1 */ + asn_DEF_scs_30kHz_tags_38, /* Same as above */ + sizeof(asn_DEF_scs_30kHz_tags_38) + /sizeof(asn_DEF_scs_30kHz_tags_38[0]), /* 2 */ + { &asn_OER_type_scs_30kHz_constr_38, &asn_PER_type_scs_30kHz_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_30kHz_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_42[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_42[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_42 = { + asn_MAP_scs_60kHz_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_42 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_42, + sizeof(asn_DEF_scs_60kHz_tags_42) + /sizeof(asn_DEF_scs_60kHz_tags_42[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_42, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_42) + /sizeof(asn_DEF_scs_60kHz_tags_42[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_42, &asn_PER_type_scs_60kHz_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_46[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_scs_120kHz_enum2value_46[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_46 = { + asn_MAP_scs_120kHz_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_120kHz_46 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_120kHz_tags_46, + sizeof(asn_DEF_scs_120kHz_tags_46) + /sizeof(asn_DEF_scs_120kHz_tags_46[0]) - 1, /* 1 */ + asn_DEF_scs_120kHz_tags_46, /* Same as above */ + sizeof(asn_DEF_scs_120kHz_tags_46) + /sizeof(asn_DEF_scs_120kHz_tags_46[0]), /* 2 */ + { &asn_OER_type_scs_120kHz_constr_46, &asn_PER_type_scs_120kHz_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_120kHz_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_240kHz_value2enum_50[] = { + { 0, 2, "n4" }, + { 1, 2, "n7" }, + { 2, 3, "n14" } +}; +static const unsigned int asn_MAP_scs_240kHz_enum2value_50[] = { + 2, /* n14(2) */ + 0, /* n4(0) */ + 1 /* n7(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_240kHz_specs_50 = { + asn_MAP_scs_240kHz_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_240kHz_50 = { + "scs-240kHz", + "scs-240kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_240kHz_tags_50, + sizeof(asn_DEF_scs_240kHz_tags_50) + /sizeof(asn_DEF_scs_240kHz_tags_50[0]) - 1, /* 1 */ + asn_DEF_scs_240kHz_tags_50, /* Same as above */ + sizeof(asn_DEF_scs_240kHz_tags_50) + /sizeof(asn_DEF_scs_240kHz_tags_50[0]), /* 2 */ + { &asn_OER_type_scs_240kHz_constr_50, &asn_PER_type_scs_240kHz_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_240kHz_specs_50 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_maxNumberRxTxBeamSwitchDL_33[] = { + { ATF_POINTER, 5, offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_15kHz_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 4, offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_30kHz_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 3, offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_120kHz_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, scs_240kHz), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_240kHz_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-240kHz" + }, +}; +static const int asn_MAP_maxNumberRxTxBeamSwitchDL_oms_33[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_maxNumberRxTxBeamSwitchDL_specs_33 = { + sizeof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL), + offsetof(struct MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL, _asn_ctx), + asn_MAP_maxNumberRxTxBeamSwitchDL_tag2el_33, + 5, /* Count of tags in the map */ + asn_MAP_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_maxNumberRxTxBeamSwitchDL_33 = { + "maxNumberRxTxBeamSwitchDL", + "maxNumberRxTxBeamSwitchDL", + &asn_OP_SEQUENCE, + asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33, + sizeof(asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33) + /sizeof(asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33[0]) - 1, /* 1 */ + asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33, /* Same as above */ + sizeof(asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33) + /sizeof(asn_DEF_maxNumberRxTxBeamSwitchDL_tags_33[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_maxNumberRxTxBeamSwitchDL_33, + 5, /* Elements count */ + &asn_SPC_maxNumberRxTxBeamSwitchDL_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberNonGroupBeamReporting_value2enum_54[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_maxNumberNonGroupBeamReporting_enum2value_54[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNumberNonGroupBeamReporting_specs_54 = { + asn_MAP_maxNumberNonGroupBeamReporting_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberNonGroupBeamReporting_54 = { + "maxNumberNonGroupBeamReporting", + "maxNumberNonGroupBeamReporting", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberNonGroupBeamReporting_tags_54, + sizeof(asn_DEF_maxNumberNonGroupBeamReporting_tags_54) + /sizeof(asn_DEF_maxNumberNonGroupBeamReporting_tags_54[0]) - 1, /* 1 */ + asn_DEF_maxNumberNonGroupBeamReporting_tags_54, /* Same as above */ + sizeof(asn_DEF_maxNumberNonGroupBeamReporting_tags_54) + /sizeof(asn_DEF_maxNumberNonGroupBeamReporting_tags_54[0]), /* 2 */ + { &asn_OER_type_maxNumberNonGroupBeamReporting_constr_54, &asn_PER_type_maxNumberNonGroupBeamReporting_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberNonGroupBeamReporting_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_groupBeamReporting_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_groupBeamReporting_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_groupBeamReporting_specs_58 = { + asn_MAP_groupBeamReporting_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_groupBeamReporting_58 = { + "groupBeamReporting", + "groupBeamReporting", + &asn_OP_NativeEnumerated, + asn_DEF_groupBeamReporting_tags_58, + sizeof(asn_DEF_groupBeamReporting_tags_58) + /sizeof(asn_DEF_groupBeamReporting_tags_58[0]) - 1, /* 1 */ + asn_DEF_groupBeamReporting_tags_58, /* Same as above */ + sizeof(asn_DEF_groupBeamReporting_tags_58) + /sizeof(asn_DEF_groupBeamReporting_tags_58[0]), /* 2 */ + { &asn_OER_type_groupBeamReporting_constr_58, &asn_PER_type_groupBeamReporting_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_groupBeamReporting_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberSRS_ResourcePerSet_BM_value2enum_61[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" }, + { 3, 3, "n16" } +}; +static const unsigned int asn_MAP_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_maxNumberSRS_ResourcePerSet_BM_specs_61 = { + asn_MAP_maxNumberSRS_ResourcePerSet_BM_value2enum_61, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberSRS_ResourcePerSet_BM_61 = { + "maxNumberSRS-ResourcePerSet-BM", + "maxNumberSRS-ResourcePerSet-BM", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61, + sizeof(asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61) + /sizeof(asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61[0]) - 1, /* 1 */ + asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61, /* Same as above */ + sizeof(asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61) + /sizeof(asn_DEF_maxNumberSRS_ResourcePerSet_BM_tags_61[0]), /* 2 */ + { &asn_OER_type_maxNumberSRS_ResourcePerSet_BM_constr_61, &asn_PER_type_maxNumberSRS_ResourcePerSet_BM_constr_61, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberSRS_ResourcePerSet_BM_specs_61 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uplinkBeamManagement_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct MIMO_ParametersPerBand__uplinkBeamManagement, maxNumberSRS_ResourcePerSet_BM), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberSRS_ResourcePerSet_BM_61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourcePerSet-BM" + }, + { ATF_NOFLAGS, 0, offsetof(struct MIMO_ParametersPerBand__uplinkBeamManagement, maxNumberSRS_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSRS_ResourceSet_constr_66, &asn_PER_memb_maxNumberSRS_ResourceSet_constr_66, memb_maxNumberSRS_ResourceSet_constraint_60 }, + 0, 0, /* No default value */ + "maxNumberSRS-ResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_uplinkBeamManagement_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_uplinkBeamManagement_specs_60 = { + sizeof(struct MIMO_ParametersPerBand__uplinkBeamManagement), + offsetof(struct MIMO_ParametersPerBand__uplinkBeamManagement, _asn_ctx), + asn_MAP_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_uplinkBeamManagement_60 = { + "uplinkBeamManagement", + "uplinkBeamManagement", + &asn_OP_SEQUENCE, + asn_DEF_uplinkBeamManagement_tags_60, + sizeof(asn_DEF_uplinkBeamManagement_tags_60) + /sizeof(asn_DEF_uplinkBeamManagement_tags_60[0]) - 1, /* 1 */ + asn_DEF_uplinkBeamManagement_tags_60, /* Same as above */ + sizeof(asn_DEF_uplinkBeamManagement_tags_60) + /sizeof(asn_DEF_uplinkBeamManagement_tags_60[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_uplinkBeamManagement_60, + 2, /* Elements count */ + &asn_SPC_uplinkBeamManagement_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPortsPTRS_DL_value2enum_70[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPortsPTRS_DL_enum2value_70[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPortsPTRS_DL_specs_70 = { + asn_MAP_twoPortsPTRS_DL_value2enum_70, /* "tag" => N; sorted by tag */ + asn_MAP_twoPortsPTRS_DL_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_twoPortsPTRS_DL_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_twoPortsPTRS_DL_70 = { + "twoPortsPTRS-DL", + "twoPortsPTRS-DL", + &asn_OP_NativeEnumerated, + asn_DEF_twoPortsPTRS_DL_tags_70, + sizeof(asn_DEF_twoPortsPTRS_DL_tags_70) + /sizeof(asn_DEF_twoPortsPTRS_DL_tags_70[0]) - 1, /* 1 */ + asn_DEF_twoPortsPTRS_DL_tags_70, /* Same as above */ + sizeof(asn_DEF_twoPortsPTRS_DL_tags_70) + /sizeof(asn_DEF_twoPortsPTRS_DL_tags_70[0]), /* 2 */ + { &asn_OER_type_twoPortsPTRS_DL_constr_70, &asn_PER_type_twoPortsPTRS_DL_constr_70, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPortsPTRS_DL_specs_70 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPortsPTRS_UL_value2enum_72[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPortsPTRS_UL_enum2value_72[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPortsPTRS_UL_specs_72 = { + asn_MAP_twoPortsPTRS_UL_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPortsPTRS_UL_72 = { + "twoPortsPTRS-UL", + "twoPortsPTRS-UL", + &asn_OP_NativeEnumerated, + asn_DEF_twoPortsPTRS_UL_tags_72, + sizeof(asn_DEF_twoPortsPTRS_UL_tags_72) + /sizeof(asn_DEF_twoPortsPTRS_UL_tags_72[0]) - 1, /* 1 */ + asn_DEF_twoPortsPTRS_UL_tags_72, /* Same as above */ + sizeof(asn_DEF_twoPortsPTRS_UL_tags_72) + /sizeof(asn_DEF_twoPortsPTRS_UL_tags_72[0]), /* 2 */ + { &asn_OER_type_twoPortsPTRS_UL_constr_72, &asn_PER_type_twoPortsPTRS_UL_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPortsPTRS_UL_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_15kHz_value2enum_77[] = { + { 0, 4, "sym2" }, + { 1, 4, "sym4" }, + { 2, 4, "sym8" } +}; +static const unsigned int asn_MAP_scs_15kHz_enum2value_77[] = { + 0, /* sym2(0) */ + 1, /* sym4(1) */ + 2 /* sym8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_15kHz_specs_77 = { + asn_MAP_scs_15kHz_value2enum_77, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_15kHz_77 = { + "scs-15kHz", + "scs-15kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_15kHz_tags_77, + sizeof(asn_DEF_scs_15kHz_tags_77) + /sizeof(asn_DEF_scs_15kHz_tags_77[0]) - 1, /* 1 */ + asn_DEF_scs_15kHz_tags_77, /* Same as above */ + sizeof(asn_DEF_scs_15kHz_tags_77) + /sizeof(asn_DEF_scs_15kHz_tags_77[0]), /* 2 */ + { &asn_OER_type_scs_15kHz_constr_77, &asn_PER_type_scs_15kHz_constr_77, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_15kHz_specs_77 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_30kHz_value2enum_81[] = { + { 0, 4, "sym4" }, + { 1, 4, "sym8" }, + { 2, 5, "sym14" }, + { 3, 5, "sym28" } +}; +static const unsigned int asn_MAP_scs_30kHz_enum2value_81[] = { + 2, /* sym14(2) */ + 3, /* sym28(3) */ + 0, /* sym4(0) */ + 1 /* sym8(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_30kHz_specs_81 = { + asn_MAP_scs_30kHz_value2enum_81, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_30kHz_81 = { + "scs-30kHz", + "scs-30kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_30kHz_tags_81, + sizeof(asn_DEF_scs_30kHz_tags_81) + /sizeof(asn_DEF_scs_30kHz_tags_81[0]) - 1, /* 1 */ + asn_DEF_scs_30kHz_tags_81, /* Same as above */ + sizeof(asn_DEF_scs_30kHz_tags_81) + /sizeof(asn_DEF_scs_30kHz_tags_81[0]), /* 2 */ + { &asn_OER_type_scs_30kHz_constr_81, &asn_PER_type_scs_30kHz_constr_81, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_30kHz_specs_81 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_86[] = { + { 0, 4, "sym8" }, + { 1, 5, "sym14" }, + { 2, 5, "sym28" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_86[] = { + 1, /* sym14(1) */ + 2, /* sym28(2) */ + 0 /* sym8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_86 = { + asn_MAP_scs_60kHz_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_86 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_86, + sizeof(asn_DEF_scs_60kHz_tags_86) + /sizeof(asn_DEF_scs_60kHz_tags_86[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_86, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_86) + /sizeof(asn_DEF_scs_60kHz_tags_86[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_86, &asn_PER_type_scs_60kHz_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_120kHz_value2enum_90[] = { + { 0, 5, "sym14" }, + { 1, 5, "sym28" }, + { 2, 5, "sym56" } +}; +static const unsigned int asn_MAP_scs_120kHz_enum2value_90[] = { + 0, /* sym14(0) */ + 1, /* sym28(1) */ + 2 /* sym56(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_120kHz_specs_90 = { + asn_MAP_scs_120kHz_value2enum_90, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_120kHz_90 = { + "scs-120kHz", + "scs-120kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_120kHz_tags_90, + sizeof(asn_DEF_scs_120kHz_tags_90) + /sizeof(asn_DEF_scs_120kHz_tags_90[0]) - 1, /* 1 */ + asn_DEF_scs_120kHz_tags_90, /* Same as above */ + sizeof(asn_DEF_scs_120kHz_tags_90) + /sizeof(asn_DEF_scs_120kHz_tags_90[0]), /* 2 */ + { &asn_OER_type_scs_120kHz_constr_90, &asn_PER_type_scs_120kHz_constr_90, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_120kHz_specs_90 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_beamReportTiming_76[] = { + { ATF_POINTER, 4, offsetof(struct MIMO_ParametersPerBand__beamReportTiming, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_15kHz_77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct MIMO_ParametersPerBand__beamReportTiming, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_30kHz_81, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand__beamReportTiming, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand__beamReportTiming, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_120kHz_90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_beamReportTiming_oms_76[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_beamReportTiming_tags_76[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_beamReportTiming_specs_76 = { + sizeof(struct MIMO_ParametersPerBand__beamReportTiming), + offsetof(struct MIMO_ParametersPerBand__beamReportTiming, _asn_ctx), + asn_MAP_beamReportTiming_tag2el_76, + 4, /* Count of tags in the map */ + asn_MAP_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_beamReportTiming_76 = { + "beamReportTiming", + "beamReportTiming", + &asn_OP_SEQUENCE, + asn_DEF_beamReportTiming_tags_76, + sizeof(asn_DEF_beamReportTiming_tags_76) + /sizeof(asn_DEF_beamReportTiming_tags_76[0]) - 1, /* 1 */ + asn_DEF_beamReportTiming_tags_76, /* Same as above */ + sizeof(asn_DEF_beamReportTiming_tags_76) + /sizeof(asn_DEF_beamReportTiming_tags_76[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_beamReportTiming_76, + 4, /* Elements count */ + &asn_SPC_beamReportTiming_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ptrs_DensityRecommendationSetDL_94[] = { + { ATF_POINTER, 4, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ptrs_DensityRecommendationSetDL_oms_94[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ptrs_DensityRecommendationSetDL_tags_94[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ptrs_DensityRecommendationSetDL_specs_94 = { + sizeof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL), + offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL, _asn_ctx), + asn_MAP_ptrs_DensityRecommendationSetDL_tag2el_94, + 4, /* Count of tags in the map */ + asn_MAP_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_ptrs_DensityRecommendationSetDL_94 = { + "ptrs-DensityRecommendationSetDL", + "ptrs-DensityRecommendationSetDL", + &asn_OP_SEQUENCE, + asn_DEF_ptrs_DensityRecommendationSetDL_tags_94, + sizeof(asn_DEF_ptrs_DensityRecommendationSetDL_tags_94) + /sizeof(asn_DEF_ptrs_DensityRecommendationSetDL_tags_94[0]) - 1, /* 1 */ + asn_DEF_ptrs_DensityRecommendationSetDL_tags_94, /* Same as above */ + sizeof(asn_DEF_ptrs_DensityRecommendationSetDL_tags_94) + /sizeof(asn_DEF_ptrs_DensityRecommendationSetDL_tags_94[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ptrs_DensityRecommendationSetDL_94, + 4, /* Elements count */ + &asn_SPC_ptrs_DensityRecommendationSetDL_specs_94 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ptrs_DensityRecommendationSetUL_99[] = { + { ATF_POINTER, 4, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_15kHz), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-15kHz" + }, + { ATF_POINTER, 3, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_30kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-30kHz" + }, + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, scs_120kHz), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PTRS_DensityRecommendationUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-120kHz" + }, +}; +static const int asn_MAP_ptrs_DensityRecommendationSetUL_oms_99[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ptrs_DensityRecommendationSetUL_tags_99[] = { + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ptrs_DensityRecommendationSetUL_specs_99 = { + sizeof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL), + offsetof(struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL, _asn_ctx), + asn_MAP_ptrs_DensityRecommendationSetUL_tag2el_99, + 4, /* Count of tags in the map */ + asn_MAP_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_ptrs_DensityRecommendationSetUL_99 = { + "ptrs-DensityRecommendationSetUL", + "ptrs-DensityRecommendationSetUL", + &asn_OP_SEQUENCE, + asn_DEF_ptrs_DensityRecommendationSetUL_tags_99, + sizeof(asn_DEF_ptrs_DensityRecommendationSetUL_tags_99) + /sizeof(asn_DEF_ptrs_DensityRecommendationSetUL_tags_99[0]) - 1, /* 1 */ + asn_DEF_ptrs_DensityRecommendationSetUL_tags_99, /* Same as above */ + sizeof(asn_DEF_ptrs_DensityRecommendationSetUL_tags_99) + /sizeof(asn_DEF_ptrs_DensityRecommendationSetUL_tags_99[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ptrs_DensityRecommendationSetUL_99, + 4, /* Elements count */ + &asn_SPC_ptrs_DensityRecommendationSetUL_specs_99 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aperiodicTRS_value2enum_105[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_aperiodicTRS_enum2value_105[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aperiodicTRS_specs_105 = { + asn_MAP_aperiodicTRS_value2enum_105, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aperiodicTRS_105 = { + "aperiodicTRS", + "aperiodicTRS", + &asn_OP_NativeEnumerated, + asn_DEF_aperiodicTRS_tags_105, + sizeof(asn_DEF_aperiodicTRS_tags_105) + /sizeof(asn_DEF_aperiodicTRS_tags_105[0]) - 1, /* 1 */ + asn_DEF_aperiodicTRS_tags_105, /* Same as above */ + sizeof(asn_DEF_aperiodicTRS_tags_105) + /sizeof(asn_DEF_aperiodicTRS_tags_105[0]), /* 2 */ + { &asn_OER_type_aperiodicTRS_constr_105, &asn_PER_type_aperiodicTRS_constr_105, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aperiodicTRS_specs_105 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MIMO_ParametersPerBand_1[] = { + { ATF_POINTER, 26, offsetof(struct MIMO_ParametersPerBand, tci_StatePDSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_tci_StatePDSCH_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-StatePDSCH" + }, + { ATF_POINTER, 25, offsetof(struct MIMO_ParametersPerBand, additionalActiveTCI_StatePDCCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_additionalActiveTCI_StatePDCCH_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalActiveTCI-StatePDCCH" + }, + { ATF_POINTER, 24, offsetof(struct MIMO_ParametersPerBand, pusch_TransCoherence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_TransCoherence_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TransCoherence" + }, + { ATF_POINTER, 23, offsetof(struct MIMO_ParametersPerBand, beamCorrespondence), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_beamCorrespondence_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamCorrespondence" + }, + { ATF_POINTER, 22, offsetof(struct MIMO_ParametersPerBand, periodicBeamReport), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_periodicBeamReport_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicBeamReport" + }, + { ATF_POINTER, 21, offsetof(struct MIMO_ParametersPerBand, aperiodicBeamReport), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aperiodicBeamReport_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicBeamReport" + }, + { ATF_POINTER, 20, offsetof(struct MIMO_ParametersPerBand, sp_BeamReportPUCCH), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_BeamReportPUCCH_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-BeamReportPUCCH" + }, + { ATF_POINTER, 19, offsetof(struct MIMO_ParametersPerBand, sp_BeamReportPUSCH), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_BeamReportPUSCH_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-BeamReportPUSCH" + }, + { ATF_POINTER, 18, offsetof(struct MIMO_ParametersPerBand, beamManagementSSB_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BeamManagementSSB_CSI_RS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamManagementSSB-CSI-RS" + }, + { ATF_POINTER, 17, offsetof(struct MIMO_ParametersPerBand, maxNumberRxBeam), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberRxBeam_constr_32, &asn_PER_memb_maxNumberRxBeam_constr_32, memb_maxNumberRxBeam_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberRxBeam" + }, + { ATF_POINTER, 16, offsetof(struct MIMO_ParametersPerBand, maxNumberRxTxBeamSwitchDL), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_maxNumberRxTxBeamSwitchDL_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberRxTxBeamSwitchDL" + }, + { ATF_POINTER, 15, offsetof(struct MIMO_ParametersPerBand, maxNumberNonGroupBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberNonGroupBeamReporting_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberNonGroupBeamReporting" + }, + { ATF_POINTER, 14, offsetof(struct MIMO_ParametersPerBand, groupBeamReporting), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_groupBeamReporting_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBeamReporting" + }, + { ATF_POINTER, 13, offsetof(struct MIMO_ParametersPerBand, uplinkBeamManagement), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_uplinkBeamManagement_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBeamManagement" + }, + { ATF_POINTER, 12, offsetof(struct MIMO_ParametersPerBand, maxNumberCSI_RS_BFR), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_BFR_constr_67, &asn_PER_memb_maxNumberCSI_RS_BFR_constr_67, memb_maxNumberCSI_RS_BFR_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-BFR" + }, + { ATF_POINTER, 11, offsetof(struct MIMO_ParametersPerBand, maxNumberSSB_BFR), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSSB_BFR_constr_68, &asn_PER_memb_maxNumberSSB_BFR_constr_68, memb_maxNumberSSB_BFR_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSSB-BFR" + }, + { ATF_POINTER, 10, offsetof(struct MIMO_ParametersPerBand, maxNumberCSI_RS_SSB_BFR), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_SSB_BFR_constr_69, &asn_PER_memb_maxNumberCSI_RS_SSB_BFR_constr_69, memb_maxNumberCSI_RS_SSB_BFR_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-SSB-BFR" + }, + { ATF_POINTER, 9, offsetof(struct MIMO_ParametersPerBand, twoPortsPTRS_DL), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPortsPTRS_DL_70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPortsPTRS-DL" + }, + { ATF_POINTER, 8, offsetof(struct MIMO_ParametersPerBand, twoPortsPTRS_UL), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPortsPTRS_UL_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPortsPTRS-UL" + }, + { ATF_POINTER, 7, offsetof(struct MIMO_ParametersPerBand, supportedSRS_Resources), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_Resources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-Resources" + }, + { ATF_POINTER, 6, offsetof(struct MIMO_ParametersPerBand, maxNumberSimultaneousSRS_PerCC), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSimultaneousSRS_PerCC_constr_75, &asn_PER_memb_maxNumberSimultaneousSRS_PerCC_constr_75, memb_maxNumberSimultaneousSRS_PerCC_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSimultaneousSRS-PerCC" + }, + { ATF_POINTER, 5, offsetof(struct MIMO_ParametersPerBand, beamReportTiming), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + 0, + &asn_DEF_beamReportTiming_76, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamReportTiming" + }, + { ATF_POINTER, 4, offsetof(struct MIMO_ParametersPerBand, ptrs_DensityRecommendationSetDL), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + 0, + &asn_DEF_ptrs_DensityRecommendationSetDL_94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-DensityRecommendationSetDL" + }, + { ATF_POINTER, 3, offsetof(struct MIMO_ParametersPerBand, ptrs_DensityRecommendationSetUL), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + 0, + &asn_DEF_ptrs_DensityRecommendationSetUL_99, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-DensityRecommendationSetUL" + }, + { ATF_POINTER, 2, offsetof(struct MIMO_ParametersPerBand, csi_RS_ForTracking), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_ForTracking, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-ForTracking" + }, + { ATF_POINTER, 1, offsetof(struct MIMO_ParametersPerBand, aperiodicTRS), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aperiodicTRS_105, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodicTRS" + }, +}; +static const int asn_MAP_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 }; +static const ber_tlv_tag_t asn_DEF_MIMO_ParametersPerBand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 }, /* beamCorrespondence */ + { (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 }, /* beamManagementSSB-CSI-RS */ + { (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-BFR */ + { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* maxNumberSSB-BFR */ + { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* maxNumberCSI-RS-SSB-BFR */ + { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* twoPortsPTRS-DL */ + { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* twoPortsPTRS-UL */ + { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* supportedSRS-Resources */ + { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* maxNumberSimultaneousSRS-PerCC */ + { (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 }, /* csi-RS-ForTracking */ + { (ASN_TAG_CLASS_CONTEXT | (25 << 2)), 25, 0, 0 } /* aperiodicTRS */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MIMO_ParametersPerBand_specs_1 = { + sizeof(struct MIMO_ParametersPerBand), + offsetof(struct MIMO_ParametersPerBand, _asn_ctx), + asn_MAP_MIMO_ParametersPerBand_tag2el_1, + 26, /* Count of tags in the map */ + asn_MAP_MIMO_ParametersPerBand_oms_1, /* Optional members */ + 26, 0, /* Root/Additions */ + 26, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MIMO_ParametersPerBand = { + "MIMO-ParametersPerBand", + "MIMO-ParametersPerBand", + &asn_OP_SEQUENCE, + asn_DEF_MIMO_ParametersPerBand_tags_1, + sizeof(asn_DEF_MIMO_ParametersPerBand_tags_1) + /sizeof(asn_DEF_MIMO_ParametersPerBand_tags_1[0]), /* 1 */ + asn_DEF_MIMO_ParametersPerBand_tags_1, /* Same as above */ + sizeof(asn_DEF_MIMO_ParametersPerBand_tags_1) + /sizeof(asn_DEF_MIMO_ParametersPerBand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MIMO_ParametersPerBand_1, + 26, /* Elements count */ + &asn_SPC_MIMO_ParametersPerBand_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MIMO-ParametersPerBand.h b/src/codec_utils/RRC/MIMO-ParametersPerBand.h new file mode 100644 index 000000000..f9bf3e675 --- /dev/null +++ b/src/codec_utils/RRC/MIMO-ParametersPerBand.h @@ -0,0 +1,254 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MIMO_ParametersPerBand_H_ +#define _MIMO_ParametersPerBand_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC { + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n4 = 0, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n8 = 1, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n16 = 2, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n32 = 3, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n64 = 4, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC_n128 = 5 +} e_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberConfiguredTCIstatesPerCC; +typedef enum MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP { + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n1 = 0, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n2 = 1, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n4 = 2, + MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP_n8 = 3 +} e_MIMO_ParametersPerBand__tci_StatePDSCH__maxNumberActiveTCI_PerBWP; +typedef enum MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH { + MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH_supported = 0 +} e_MIMO_ParametersPerBand__additionalActiveTCI_StatePDCCH; +typedef enum MIMO_ParametersPerBand__pusch_TransCoherence { + MIMO_ParametersPerBand__pusch_TransCoherence_nonCoherent = 0, + MIMO_ParametersPerBand__pusch_TransCoherence_partialCoherent = 1, + MIMO_ParametersPerBand__pusch_TransCoherence_fullCoherent = 2 +} e_MIMO_ParametersPerBand__pusch_TransCoherence; +typedef enum MIMO_ParametersPerBand__beamCorrespondence { + MIMO_ParametersPerBand__beamCorrespondence_supported = 0 +} e_MIMO_ParametersPerBand__beamCorrespondence; +typedef enum MIMO_ParametersPerBand__periodicBeamReport { + MIMO_ParametersPerBand__periodicBeamReport_supported = 0 +} e_MIMO_ParametersPerBand__periodicBeamReport; +typedef enum MIMO_ParametersPerBand__aperiodicBeamReport { + MIMO_ParametersPerBand__aperiodicBeamReport_supported = 0 +} e_MIMO_ParametersPerBand__aperiodicBeamReport; +typedef enum MIMO_ParametersPerBand__sp_BeamReportPUCCH { + MIMO_ParametersPerBand__sp_BeamReportPUCCH_supported = 0 +} e_MIMO_ParametersPerBand__sp_BeamReportPUCCH; +typedef enum MIMO_ParametersPerBand__sp_BeamReportPUSCH { + MIMO_ParametersPerBand__sp_BeamReportPUSCH_supported = 0 +} e_MIMO_ParametersPerBand__sp_BeamReportPUSCH; +typedef enum MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz { + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n4 = 0, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n7 = 1, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz_n14 = 2 +} e_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_15kHz; +typedef enum MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz { + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n4 = 0, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n7 = 1, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz_n14 = 2 +} e_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_30kHz; +typedef enum MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz { + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n4 = 0, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n7 = 1, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz_n14 = 2 +} e_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_60kHz; +typedef enum MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz { + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n4 = 0, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n7 = 1, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz_n14 = 2 +} e_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_120kHz; +typedef enum MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz { + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n4 = 0, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n7 = 1, + MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz_n14 = 2 +} e_MIMO_ParametersPerBand__maxNumberRxTxBeamSwitchDL__scs_240kHz; +typedef enum MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting { + MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n1 = 0, + MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n2 = 1, + MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting_n4 = 2 +} e_MIMO_ParametersPerBand__maxNumberNonGroupBeamReporting; +typedef enum MIMO_ParametersPerBand__groupBeamReporting { + MIMO_ParametersPerBand__groupBeamReporting_supported = 0 +} e_MIMO_ParametersPerBand__groupBeamReporting; +typedef enum MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM { + MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n2 = 0, + MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n4 = 1, + MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n8 = 2, + MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM_n16 = 3 +} e_MIMO_ParametersPerBand__uplinkBeamManagement__maxNumberSRS_ResourcePerSet_BM; +typedef enum MIMO_ParametersPerBand__twoPortsPTRS_DL { + MIMO_ParametersPerBand__twoPortsPTRS_DL_supported = 0 +} e_MIMO_ParametersPerBand__twoPortsPTRS_DL; +typedef enum MIMO_ParametersPerBand__twoPortsPTRS_UL { + MIMO_ParametersPerBand__twoPortsPTRS_UL_supported = 0 +} e_MIMO_ParametersPerBand__twoPortsPTRS_UL; +typedef enum MIMO_ParametersPerBand__beamReportTiming__scs_15kHz { + MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym2 = 0, + MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym4 = 1, + MIMO_ParametersPerBand__beamReportTiming__scs_15kHz_sym8 = 2 +} e_MIMO_ParametersPerBand__beamReportTiming__scs_15kHz; +typedef enum MIMO_ParametersPerBand__beamReportTiming__scs_30kHz { + MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym4 = 0, + MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym8 = 1, + MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym14 = 2, + MIMO_ParametersPerBand__beamReportTiming__scs_30kHz_sym28 = 3 +} e_MIMO_ParametersPerBand__beamReportTiming__scs_30kHz; +typedef enum MIMO_ParametersPerBand__beamReportTiming__scs_60kHz { + MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym8 = 0, + MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym14 = 1, + MIMO_ParametersPerBand__beamReportTiming__scs_60kHz_sym28 = 2 +} e_MIMO_ParametersPerBand__beamReportTiming__scs_60kHz; +typedef enum MIMO_ParametersPerBand__beamReportTiming__scs_120kHz { + MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym14 = 0, + MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym28 = 1, + MIMO_ParametersPerBand__beamReportTiming__scs_120kHz_sym56 = 2 +} e_MIMO_ParametersPerBand__beamReportTiming__scs_120kHz; +typedef enum MIMO_ParametersPerBand__aperiodicTRS { + MIMO_ParametersPerBand__aperiodicTRS_supported = 0 +} e_MIMO_ParametersPerBand__aperiodicTRS; + +/* Forward declarations */ +struct BeamManagementSSB_CSI_RS; +struct SRS_Resources; +struct CSI_RS_ForTracking; +struct PTRS_DensityRecommendationDL; +struct PTRS_DensityRecommendationUL; + +/* MIMO-ParametersPerBand */ +typedef struct MIMO_ParametersPerBand { + struct 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 *beamCorrespondence; /* OPTIONAL */ + long *periodicBeamReport; /* OPTIONAL */ + long *aperiodicBeamReport; /* OPTIONAL */ + long *sp_BeamReportPUCCH; /* OPTIONAL */ + long *sp_BeamReportPUSCH; /* OPTIONAL */ + struct BeamManagementSSB_CSI_RS *beamManagementSSB_CSI_RS; /* OPTIONAL */ + long *maxNumberRxBeam; /* OPTIONAL */ + struct 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 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_BFR; /* OPTIONAL */ + long *maxNumberSSB_BFR; /* OPTIONAL */ + long *maxNumberCSI_RS_SSB_BFR; /* OPTIONAL */ + long *twoPortsPTRS_DL; /* OPTIONAL */ + long *twoPortsPTRS_UL; /* OPTIONAL */ + struct SRS_Resources *supportedSRS_Resources; /* OPTIONAL */ + long *maxNumberSimultaneousSRS_PerCC; /* OPTIONAL */ + struct 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 MIMO_ParametersPerBand__ptrs_DensityRecommendationSetDL { + struct PTRS_DensityRecommendationDL *scs_15kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationDL *scs_30kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationDL *scs_60kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationDL *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ptrs_DensityRecommendationSetDL; + struct MIMO_ParametersPerBand__ptrs_DensityRecommendationSetUL { + struct PTRS_DensityRecommendationUL *scs_15kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationUL *scs_30kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationUL *scs_60kHz; /* OPTIONAL */ + struct PTRS_DensityRecommendationUL *scs_120kHz; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ptrs_DensityRecommendationSetUL; + struct CSI_RS_ForTracking *csi_RS_ForTracking; /* OPTIONAL */ + long *aperiodicTRS; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MIMO_ParametersPerBand_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberConfiguredTCIstatesPerCC_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberActiveTCI_PerBWP_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_additionalActiveTCI_StatePDCCH_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_TransCoherence_17; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_beamCorrespondence_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_periodicBeamReport_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aperiodicBeamReport_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_BeamReportPUCCH_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_BeamReportPUSCH_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_15kHz_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_30kHz_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_120kHz_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_240kHz_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberNonGroupBeamReporting_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_groupBeamReporting_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberSRS_ResourcePerSet_BM_61; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPortsPTRS_DL_70; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPortsPTRS_UL_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_15kHz_77; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_30kHz_81; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_120kHz_90; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aperiodicTRS_105; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MIMO_ParametersPerBand; +extern asn_SEQUENCE_specifics_t asn_SPC_MIMO_ParametersPerBand_specs_1; +extern asn_TYPE_member_t asn_MBR_MIMO_ParametersPerBand_1[26]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MIMO_ParametersPerBand_H_ */ +#include diff --git a/src/codec_utils/RRC/MNC.c b/src/codec_utils/RRC/MNC.c new file mode 100644 index 000000000..c53194efd --- /dev/null +++ b/src/codec_utils/RRC/MNC.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MNC.h" + +static asn_oer_constraints_t asn_OER_type_MNC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..3)) */}; +asn_per_constraints_t asn_PER_type_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_MNC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_MCC_MNC_Digit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MNC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MNC_specs_1 = { + sizeof(struct MNC), + offsetof(struct MNC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MNC = { + "MNC", + "MNC", + &asn_OP_SEQUENCE_OF, + asn_DEF_MNC_tags_1, + sizeof(asn_DEF_MNC_tags_1) + /sizeof(asn_DEF_MNC_tags_1[0]), /* 1 */ + asn_DEF_MNC_tags_1, /* Same as above */ + sizeof(asn_DEF_MNC_tags_1) + /sizeof(asn_DEF_MNC_tags_1[0]), /* 1 */ + { &asn_OER_type_MNC_constr_1, &asn_PER_type_MNC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MNC_1, + 1, /* Single element */ + &asn_SPC_MNC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MNC.h b/src/codec_utils/RRC/MNC.h new file mode 100644 index 000000000..c61f7d0e1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MNC_H_ +#define _MNC_H_ + + +#include + +/* Including external dependencies */ +#include "MCC-MNC-Digit.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MNC */ +typedef struct MNC { + A_SEQUENCE_OF(MCC_MNC_Digit_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MNC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MNC; +extern asn_SET_OF_specifics_t asn_SPC_MNC_specs_1; +extern asn_TYPE_member_t asn_MBR_MNC_1[1]; +extern asn_per_constraints_t asn_PER_type_MNC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MNC_H_ */ +#include diff --git a/src/codec_utils/RRC/MRDC-AssistanceInfo.c b/src/codec_utils/RRC/MRDC-AssistanceInfo.c new file mode 100644 index 000000000..2b1ed5dde --- /dev/null +++ b/src/codec_utils/RRC/MRDC-AssistanceInfo.c @@ -0,0 +1,130 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MRDC-AssistanceInfo.h" + +#include "AffectedCarrierFreqCombInfoMRDC.h" +static int +memb_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_oer_constraints_t asn_OER_type_affectedCarrierFreqCombInfoListMRDC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_affectedCarrierFreqCombInfoListMRDC_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_affectedCarrierFreqCombInfoListMRDC_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_AffectedCarrierFreqCombInfoMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_affectedCarrierFreqCombInfoListMRDC_specs_2 = { + sizeof(struct MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC), + offsetof(struct MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_affectedCarrierFreqCombInfoListMRDC_2 = { + "affectedCarrierFreqCombInfoListMRDC", + "affectedCarrierFreqCombInfoListMRDC", + &asn_OP_SEQUENCE_OF, + asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2, + sizeof(asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2) + /sizeof(asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2[0]) - 1, /* 1 */ + asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2, /* Same as above */ + sizeof(asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2) + /sizeof(asn_DEF_affectedCarrierFreqCombInfoListMRDC_tags_2[0]), /* 2 */ + { &asn_OER_type_affectedCarrierFreqCombInfoListMRDC_constr_2, &asn_PER_type_affectedCarrierFreqCombInfoListMRDC_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_affectedCarrierFreqCombInfoListMRDC_2, + 1, /* Single element */ + &asn_SPC_affectedCarrierFreqCombInfoListMRDC_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MRDC_AssistanceInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MRDC_AssistanceInfo, affectedCarrierFreqCombInfoListMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_affectedCarrierFreqCombInfoListMRDC_2, + 0, + { &asn_OER_memb_affectedCarrierFreqCombInfoListMRDC_constr_2, &asn_PER_memb_affectedCarrierFreqCombInfoListMRDC_constr_2, memb_affectedCarrierFreqCombInfoListMRDC_constraint_1 }, + 0, 0, /* No default value */ + "affectedCarrierFreqCombInfoListMRDC" + }, +}; +static const ber_tlv_tag_t asn_DEF_MRDC_AssistanceInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MRDC_AssistanceInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* affectedCarrierFreqCombInfoListMRDC */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MRDC_AssistanceInfo_specs_1 = { + sizeof(struct MRDC_AssistanceInfo), + offsetof(struct MRDC_AssistanceInfo, _asn_ctx), + asn_MAP_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_MRDC_AssistanceInfo = { + "MRDC-AssistanceInfo", + "MRDC-AssistanceInfo", + &asn_OP_SEQUENCE, + asn_DEF_MRDC_AssistanceInfo_tags_1, + sizeof(asn_DEF_MRDC_AssistanceInfo_tags_1) + /sizeof(asn_DEF_MRDC_AssistanceInfo_tags_1[0]), /* 1 */ + asn_DEF_MRDC_AssistanceInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_MRDC_AssistanceInfo_tags_1) + /sizeof(asn_DEF_MRDC_AssistanceInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MRDC_AssistanceInfo_1, + 1, /* Elements count */ + &asn_SPC_MRDC_AssistanceInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MRDC-AssistanceInfo.h b/src/codec_utils/RRC/MRDC-AssistanceInfo.h new file mode 100644 index 000000000..796496ecf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MRDC_AssistanceInfo_H_ +#define _MRDC_AssistanceInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct AffectedCarrierFreqCombInfoMRDC; + +/* MRDC-AssistanceInfo */ +typedef struct MRDC_AssistanceInfo { + struct MRDC_AssistanceInfo__affectedCarrierFreqCombInfoListMRDC { + A_SEQUENCE_OF(struct 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; +} MRDC_AssistanceInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MRDC_AssistanceInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_MRDC_AssistanceInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_MRDC_AssistanceInfo_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MRDC_AssistanceInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/MRDC-Parameters.c b/src/codec_utils/RRC/MRDC-Parameters.c new file mode 100644 index 000000000..b72a1e596 --- /dev/null +++ b/src/codec_utils/RRC/MRDC-Parameters.c @@ -0,0 +1,447 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_singleUL_Transmission_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicPowerSharing_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tdm_Pattern_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ul_SharingEUTRA_NR_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ul_SwitchingTimeEUTRA_NR_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousRxTxInterBandENDC_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_asyncIntraBandENDC_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 const asn_INTEGER_enum_map_t asn_MAP_singleUL_Transmission_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_singleUL_Transmission_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_singleUL_Transmission_specs_2 = { + asn_MAP_singleUL_Transmission_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_singleUL_Transmission_2 = { + "singleUL-Transmission", + "singleUL-Transmission", + &asn_OP_NativeEnumerated, + asn_DEF_singleUL_Transmission_tags_2, + sizeof(asn_DEF_singleUL_Transmission_tags_2) + /sizeof(asn_DEF_singleUL_Transmission_tags_2[0]) - 1, /* 1 */ + asn_DEF_singleUL_Transmission_tags_2, /* Same as above */ + sizeof(asn_DEF_singleUL_Transmission_tags_2) + /sizeof(asn_DEF_singleUL_Transmission_tags_2[0]), /* 2 */ + { &asn_OER_type_singleUL_Transmission_constr_2, &asn_PER_type_singleUL_Transmission_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_singleUL_Transmission_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicPowerSharing_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicPowerSharing_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicPowerSharing_specs_4 = { + asn_MAP_dynamicPowerSharing_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicPowerSharing_4 = { + "dynamicPowerSharing", + "dynamicPowerSharing", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicPowerSharing_tags_4, + sizeof(asn_DEF_dynamicPowerSharing_tags_4) + /sizeof(asn_DEF_dynamicPowerSharing_tags_4[0]) - 1, /* 1 */ + asn_DEF_dynamicPowerSharing_tags_4, /* Same as above */ + sizeof(asn_DEF_dynamicPowerSharing_tags_4) + /sizeof(asn_DEF_dynamicPowerSharing_tags_4[0]), /* 2 */ + { &asn_OER_type_dynamicPowerSharing_constr_4, &asn_PER_type_dynamicPowerSharing_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicPowerSharing_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tdm_Pattern_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_tdm_Pattern_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tdm_Pattern_specs_6 = { + asn_MAP_tdm_Pattern_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tdm_Pattern_6 = { + "tdm-Pattern", + "tdm-Pattern", + &asn_OP_NativeEnumerated, + asn_DEF_tdm_Pattern_tags_6, + sizeof(asn_DEF_tdm_Pattern_tags_6) + /sizeof(asn_DEF_tdm_Pattern_tags_6[0]) - 1, /* 1 */ + asn_DEF_tdm_Pattern_tags_6, /* Same as above */ + sizeof(asn_DEF_tdm_Pattern_tags_6) + /sizeof(asn_DEF_tdm_Pattern_tags_6[0]), /* 2 */ + { &asn_OER_type_tdm_Pattern_constr_6, &asn_PER_type_tdm_Pattern_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tdm_Pattern_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ul_SharingEUTRA_NR_value2enum_8[] = { + { 0, 3, "tdm" }, + { 1, 3, "fdm" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_ul_SharingEUTRA_NR_enum2value_8[] = { + 2, /* both(2) */ + 1, /* fdm(1) */ + 0 /* tdm(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ul_SharingEUTRA_NR_specs_8 = { + asn_MAP_ul_SharingEUTRA_NR_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ul_SharingEUTRA_NR_8 = { + "ul-SharingEUTRA-NR", + "ul-SharingEUTRA-NR", + &asn_OP_NativeEnumerated, + asn_DEF_ul_SharingEUTRA_NR_tags_8, + sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8) + /sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8[0]) - 1, /* 1 */ + asn_DEF_ul_SharingEUTRA_NR_tags_8, /* Same as above */ + sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8) + /sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8[0]), /* 2 */ + { &asn_OER_type_ul_SharingEUTRA_NR_constr_8, &asn_PER_type_ul_SharingEUTRA_NR_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ul_SharingEUTRA_NR_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ul_SwitchingTimeEUTRA_NR_value2enum_12[] = { + { 0, 5, "type1" }, + { 1, 5, "type2" } +}; +static const unsigned int asn_MAP_ul_SwitchingTimeEUTRA_NR_enum2value_12[] = { + 0, /* type1(0) */ + 1 /* type2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ul_SwitchingTimeEUTRA_NR_specs_12 = { + asn_MAP_ul_SwitchingTimeEUTRA_NR_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ul_SwitchingTimeEUTRA_NR_12 = { + "ul-SwitchingTimeEUTRA-NR", + "ul-SwitchingTimeEUTRA-NR", + &asn_OP_NativeEnumerated, + asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12, + sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12) + /sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12[0]) - 1, /* 1 */ + asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12, /* Same as above */ + sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12) + /sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12[0]), /* 2 */ + { &asn_OER_type_ul_SwitchingTimeEUTRA_NR_constr_12, &asn_PER_type_ul_SwitchingTimeEUTRA_NR_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ul_SwitchingTimeEUTRA_NR_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousRxTxInterBandENDC_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousRxTxInterBandENDC_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousRxTxInterBandENDC_specs_15 = { + asn_MAP_simultaneousRxTxInterBandENDC_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousRxTxInterBandENDC_15 = { + "simultaneousRxTxInterBandENDC", + "simultaneousRxTxInterBandENDC", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousRxTxInterBandENDC_tags_15, + sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15) + /sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15[0]) - 1, /* 1 */ + asn_DEF_simultaneousRxTxInterBandENDC_tags_15, /* Same as above */ + sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15) + /sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15[0]), /* 2 */ + { &asn_OER_type_simultaneousRxTxInterBandENDC_constr_15, &asn_PER_type_simultaneousRxTxInterBandENDC_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousRxTxInterBandENDC_specs_15 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_asyncIntraBandENDC_value2enum_17[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_asyncIntraBandENDC_enum2value_17[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_asyncIntraBandENDC_specs_17 = { + asn_MAP_asyncIntraBandENDC_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_asyncIntraBandENDC_17 = { + "asyncIntraBandENDC", + "asyncIntraBandENDC", + &asn_OP_NativeEnumerated, + asn_DEF_asyncIntraBandENDC_tags_17, + sizeof(asn_DEF_asyncIntraBandENDC_tags_17) + /sizeof(asn_DEF_asyncIntraBandENDC_tags_17[0]) - 1, /* 1 */ + asn_DEF_asyncIntraBandENDC_tags_17, /* Same as above */ + sizeof(asn_DEF_asyncIntraBandENDC_tags_17) + /sizeof(asn_DEF_asyncIntraBandENDC_tags_17[0]), /* 2 */ + { &asn_OER_type_asyncIntraBandENDC_constr_17, &asn_PER_type_asyncIntraBandENDC_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_asyncIntraBandENDC_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MRDC_Parameters_1[] = { + { ATF_POINTER, 7, offsetof(struct MRDC_Parameters, singleUL_Transmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_singleUL_Transmission_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "singleUL-Transmission" + }, + { ATF_POINTER, 6, offsetof(struct MRDC_Parameters, dynamicPowerSharing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicPowerSharing_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicPowerSharing" + }, + { ATF_POINTER, 5, offsetof(struct MRDC_Parameters, tdm_Pattern), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tdm_Pattern_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdm-Pattern" + }, + { ATF_POINTER, 4, offsetof(struct MRDC_Parameters, ul_SharingEUTRA_NR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ul_SharingEUTRA_NR_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SharingEUTRA-NR" + }, + { ATF_POINTER, 3, offsetof(struct MRDC_Parameters, ul_SwitchingTimeEUTRA_NR), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ul_SwitchingTimeEUTRA_NR_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-SwitchingTimeEUTRA-NR" + }, + { ATF_POINTER, 2, offsetof(struct MRDC_Parameters, simultaneousRxTxInterBandENDC), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousRxTxInterBandENDC_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxTxInterBandENDC" + }, + { ATF_POINTER, 1, offsetof(struct MRDC_Parameters, asyncIntraBandENDC), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_asyncIntraBandENDC_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "asyncIntraBandENDC" + }, +}; +static const int asn_MAP_MRDC_Parameters_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_MRDC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_MRDC_Parameters_specs_1 = { + sizeof(struct MRDC_Parameters), + offsetof(struct MRDC_Parameters, _asn_ctx), + asn_MAP_MRDC_Parameters_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_MRDC_Parameters_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MRDC_Parameters = { + "MRDC-Parameters", + "MRDC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_MRDC_Parameters_tags_1, + sizeof(asn_DEF_MRDC_Parameters_tags_1) + /sizeof(asn_DEF_MRDC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_MRDC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_MRDC_Parameters_tags_1) + /sizeof(asn_DEF_MRDC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MRDC_Parameters_1, + 7, /* Elements count */ + &asn_SPC_MRDC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MRDC-Parameters.h b/src/codec_utils/RRC/MRDC-Parameters.h new file mode 100644 index 000000000..7477e4800 --- /dev/null +++ b/src/codec_utils/RRC/MRDC-Parameters.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MRDC_Parameters_H_ +#define _MRDC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MRDC_Parameters__singleUL_Transmission { + MRDC_Parameters__singleUL_Transmission_supported = 0 +} e_MRDC_Parameters__singleUL_Transmission; +typedef enum MRDC_Parameters__dynamicPowerSharing { + MRDC_Parameters__dynamicPowerSharing_supported = 0 +} e_MRDC_Parameters__dynamicPowerSharing; +typedef enum MRDC_Parameters__tdm_Pattern { + MRDC_Parameters__tdm_Pattern_supported = 0 +} e_MRDC_Parameters__tdm_Pattern; +typedef enum MRDC_Parameters__ul_SharingEUTRA_NR { + MRDC_Parameters__ul_SharingEUTRA_NR_tdm = 0, + MRDC_Parameters__ul_SharingEUTRA_NR_fdm = 1, + MRDC_Parameters__ul_SharingEUTRA_NR_both = 2 +} e_MRDC_Parameters__ul_SharingEUTRA_NR; +typedef enum MRDC_Parameters__ul_SwitchingTimeEUTRA_NR { + MRDC_Parameters__ul_SwitchingTimeEUTRA_NR_type1 = 0, + MRDC_Parameters__ul_SwitchingTimeEUTRA_NR_type2 = 1 +} e_MRDC_Parameters__ul_SwitchingTimeEUTRA_NR; +typedef enum MRDC_Parameters__simultaneousRxTxInterBandENDC { + MRDC_Parameters__simultaneousRxTxInterBandENDC_supported = 0 +} e_MRDC_Parameters__simultaneousRxTxInterBandENDC; +typedef enum MRDC_Parameters__asyncIntraBandENDC { + MRDC_Parameters__asyncIntraBandENDC_supported = 0 +} e_MRDC_Parameters__asyncIntraBandENDC; + +/* MRDC-Parameters */ +typedef struct 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. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MRDC_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_singleUL_Transmission_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicPowerSharing_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tdm_Pattern_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ul_SharingEUTRA_NR_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ul_SwitchingTimeEUTRA_NR_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousRxTxInterBandENDC_15; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_asyncIntraBandENDC_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MRDC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_MRDC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_MRDC_Parameters_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MRDC_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/Makefile.am.libasncodec b/src/codec_utils/RRC/Makefile.am.libasncodec new file mode 100644 index 000000000..91b39c452 --- /dev/null +++ b/src/codec_utils/RRC/Makefile.am.libasncodec @@ -0,0 +1,1436 @@ +ASN_MODULE_SRCS= \ + ./rrc_out/BCCH-BCH-Message.c \ + ./rrc_out/BCCH-BCH-MessageType.c \ + ./rrc_out/BCCH-DL-SCH-Message.c \ + ./rrc_out/BCCH-DL-SCH-MessageType.c \ + ./rrc_out/DL-CCCH-Message.c \ + ./rrc_out/DL-CCCH-MessageType.c \ + ./rrc_out/DL-DCCH-Message.c \ + ./rrc_out/DL-DCCH-MessageType.c \ + ./rrc_out/PCCH-Message.c \ + ./rrc_out/PCCH-MessageType.c \ + ./rrc_out/UL-CCCH-Message.c \ + ./rrc_out/UL-CCCH-MessageType.c \ + ./rrc_out/UL-CCCH1-Message.c \ + ./rrc_out/UL-CCCH1-MessageType.c \ + ./rrc_out/UL-DCCH-Message.c \ + ./rrc_out/UL-DCCH-MessageType.c \ + ./rrc_out/CounterCheck.c \ + ./rrc_out/CounterCheck-IEs.c \ + ./rrc_out/DRB-CountMSB-InfoList.c \ + ./rrc_out/DRB-CountMSB-Info.c \ + ./rrc_out/CounterCheckResponse.c \ + ./rrc_out/CounterCheckResponse-IEs.c \ + ./rrc_out/DRB-CountInfoList.c \ + ./rrc_out/DRB-CountInfo.c \ + ./rrc_out/DLInformationTransfer.c \ + ./rrc_out/DLInformationTransfer-IEs.c \ + ./rrc_out/FailureInformation.c \ + ./rrc_out/FailureInformation-IEs.c \ + ./rrc_out/FailureInfoRLC-Bearer.c \ + ./rrc_out/LocationMeasurementIndication.c \ + ./rrc_out/LocationMeasurementIndication-IEs.c \ + ./rrc_out/MIB.c \ + ./rrc_out/MeasurementReport.c \ + ./rrc_out/MeasurementReport-IEs.c \ + ./rrc_out/MobilityFromNRCommand.c \ + ./rrc_out/MobilityFromNRCommand-IEs.c \ + ./rrc_out/Paging.c \ + ./rrc_out/PagingRecordList.c \ + ./rrc_out/PagingRecord.c \ + ./rrc_out/PagingUE-Identity.c \ + ./rrc_out/RRCReestablishment.c \ + ./rrc_out/RRCReestablishment-IEs.c \ + ./rrc_out/RRCReestablishmentComplete.c \ + ./rrc_out/RRCReestablishmentComplete-IEs.c \ + ./rrc_out/RRCReestablishmentRequest.c \ + ./rrc_out/RRCReestablishmentRequest-IEs.c \ + ./rrc_out/ReestabUE-Identity.c \ + ./rrc_out/ReestablishmentCause.c \ + ./rrc_out/RRCReconfiguration.c \ + ./rrc_out/RRCReconfiguration-IEs.c \ + ./rrc_out/RRCReconfiguration-v1530-IEs.c \ + ./rrc_out/MasterKeyUpdate.c \ + ./rrc_out/RRCReconfigurationComplete.c \ + ./rrc_out/RRCReconfigurationComplete-IEs.c \ + ./rrc_out/RRCReconfigurationComplete-v1530-IEs.c \ + ./rrc_out/RRCReject.c \ + ./rrc_out/RRCReject-IEs.c \ + ./rrc_out/RRCRelease.c \ + ./rrc_out/RRCRelease-IEs.c \ + ./rrc_out/RRCRelease-v1540-IEs.c \ + ./rrc_out/RedirectedCarrierInfo.c \ + ./rrc_out/RedirectedCarrierInfo-EUTRA.c \ + ./rrc_out/CarrierInfoNR.c \ + ./rrc_out/SuspendConfig.c \ + ./rrc_out/PeriodicRNAU-TimerValue.c \ + ./rrc_out/CellReselectionPriorities.c \ + ./rrc_out/PagingCycle.c \ + ./rrc_out/FreqPriorityListEUTRA.c \ + ./rrc_out/FreqPriorityListNR.c \ + ./rrc_out/FreqPriorityEUTRA.c \ + ./rrc_out/FreqPriorityNR.c \ + ./rrc_out/RAN-NotificationAreaInfo.c \ + ./rrc_out/PLMN-RAN-AreaCellList.c \ + ./rrc_out/PLMN-RAN-AreaCell.c \ + ./rrc_out/PLMN-RAN-AreaConfigList.c \ + ./rrc_out/PLMN-RAN-AreaConfig.c \ + ./rrc_out/RAN-AreaConfig.c \ + ./rrc_out/RRCResume.c \ + ./rrc_out/RRCResume-IEs.c \ + ./rrc_out/RRCResumeComplete.c \ + ./rrc_out/RRCResumeComplete-IEs.c \ + ./rrc_out/RRCResumeRequest.c \ + ./rrc_out/RRCResumeRequest-IEs.c \ + ./rrc_out/RRCResumeRequest1.c \ + ./rrc_out/RRCResumeRequest1-IEs.c \ + ./rrc_out/RRCSetup.c \ + ./rrc_out/RRCSetup-IEs.c \ + ./rrc_out/RRCSetupComplete.c \ + ./rrc_out/RRCSetupComplete-IEs.c \ + ./rrc_out/RegisteredAMF.c \ + ./rrc_out/RRCSetupRequest.c \ + ./rrc_out/RRCSetupRequest-IEs.c \ + ./rrc_out/InitialUE-Identity.c \ + ./rrc_out/EstablishmentCause.c \ + ./rrc_out/RRCSystemInfoRequest.c \ + ./rrc_out/RRCSystemInfoRequest-r15-IEs.c \ + ./rrc_out/SecurityModeCommand.c \ + ./rrc_out/SecurityModeCommand-IEs.c \ + ./rrc_out/SecurityConfigSMC.c \ + ./rrc_out/SecurityModeComplete.c \ + ./rrc_out/SecurityModeComplete-IEs.c \ + ./rrc_out/SecurityModeFailure.c \ + ./rrc_out/SecurityModeFailure-IEs.c \ + ./rrc_out/SIB1.c \ + ./rrc_out/UAC-AccessCategory1-SelectionAssistanceInfo.c \ + ./rrc_out/SystemInformation.c \ + ./rrc_out/SystemInformation-IEs.c \ + ./rrc_out/UEAssistanceInformation.c \ + ./rrc_out/UEAssistanceInformation-IEs.c \ + ./rrc_out/DelayBudgetReport.c \ + ./rrc_out/UEAssistanceInformation-v1540-IEs.c \ + ./rrc_out/OverheatingAssistance.c \ + ./rrc_out/ReducedAggregatedBandwidth.c \ + ./rrc_out/UECapabilityEnquiry.c \ + ./rrc_out/UECapabilityEnquiry-IEs.c \ + ./rrc_out/UECapabilityInformation.c \ + ./rrc_out/UECapabilityInformation-IEs.c \ + ./rrc_out/ULInformationTransfer.c \ + ./rrc_out/ULInformationTransfer-IEs.c \ + ./rrc_out/SIB2.c \ + ./rrc_out/RangeToBestCell.c \ + ./rrc_out/SIB3.c \ + ./rrc_out/IntraFreqNeighCellList.c \ + ./rrc_out/IntraFreqNeighCellInfo.c \ + ./rrc_out/IntraFreqBlackCellList.c \ + ./rrc_out/SIB4.c \ + ./rrc_out/InterFreqCarrierFreqList.c \ + ./rrc_out/InterFreqCarrierFreqInfo.c \ + ./rrc_out/InterFreqNeighCellList.c \ + ./rrc_out/InterFreqNeighCellInfo.c \ + ./rrc_out/InterFreqBlackCellList.c \ + ./rrc_out/SIB5.c \ + ./rrc_out/CarrierFreqListEUTRA.c \ + ./rrc_out/CarrierFreqEUTRA.c \ + ./rrc_out/EUTRA-FreqBlackCellList.c \ + ./rrc_out/EUTRA-FreqNeighCellList.c \ + ./rrc_out/EUTRA-FreqNeighCellInfo.c \ + ./rrc_out/SIB6.c \ + ./rrc_out/SIB7.c \ + ./rrc_out/SIB8.c \ + ./rrc_out/SIB9.c \ + ./rrc_out/AdditionalSpectrumEmission.c \ + ./rrc_out/Alpha.c \ + ./rrc_out/AMF-Identifier.c \ + ./rrc_out/ARFCN-ValueEUTRA.c \ + ./rrc_out/ARFCN-ValueNR.c \ + ./rrc_out/BeamFailureRecoveryConfig.c \ + ./rrc_out/PRACH-ResourceDedicatedBFR.c \ + ./rrc_out/BFR-SSB-Resource.c \ + ./rrc_out/BFR-CSIRS-Resource.c \ + ./rrc_out/BSR-Config.c \ + ./rrc_out/BWP.c \ + ./rrc_out/BWP-Downlink.c \ + ./rrc_out/BWP-DownlinkCommon.c \ + ./rrc_out/BWP-DownlinkDedicated.c \ + ./rrc_out/BWP-Id.c \ + ./rrc_out/BWP-Uplink.c \ + ./rrc_out/BWP-UplinkCommon.c \ + ./rrc_out/BWP-UplinkDedicated.c \ + ./rrc_out/CellAccessRelatedInfo.c \ + ./rrc_out/CellAccessRelatedInfo-EUTRA-5GC.c \ + ./rrc_out/PLMN-IdentityList-EUTRA-5GC.c \ + ./rrc_out/PLMN-Identity-EUTRA-5GC.c \ + ./rrc_out/CellIdentity-EUTRA-5GC.c \ + ./rrc_out/CellAccessRelatedInfo-EUTRA-EPC.c \ + ./rrc_out/PLMN-IdentityList-EUTRA-EPC.c \ + ./rrc_out/CellGroupConfig.c \ + ./rrc_out/SpCellConfig.c \ + ./rrc_out/ReconfigurationWithSync.c \ + ./rrc_out/SCellConfig.c \ + ./rrc_out/CellGroupId.c \ + ./rrc_out/CellIdentity.c \ + ./rrc_out/CellReselectionPriority.c \ + ./rrc_out/CellReselectionSubPriority.c \ + ./rrc_out/CGI-Info.c \ + ./rrc_out/CodebookConfig.c \ + ./rrc_out/ConfiguredGrantConfig.c \ + ./rrc_out/CG-UCI-OnPUSCH.c \ + ./rrc_out/ConnEstFailureControl.c \ + ./rrc_out/ControlResourceSet.c \ + ./rrc_out/ControlResourceSetId.c \ + ./rrc_out/ControlResourceSetZero.c \ + ./rrc_out/CrossCarrierSchedulingConfig.c \ + ./rrc_out/CSI-AperiodicTriggerStateList.c \ + ./rrc_out/CSI-AperiodicTriggerState.c \ + ./rrc_out/CSI-AssociatedReportConfigInfo.c \ + ./rrc_out/CSI-FrequencyOccupation.c \ + ./rrc_out/CSI-IM-Resource.c \ + ./rrc_out/CSI-IM-ResourceId.c \ + ./rrc_out/CSI-IM-ResourceSet.c \ + ./rrc_out/CSI-IM-ResourceSetId.c \ + ./rrc_out/CSI-MeasConfig.c \ + ./rrc_out/CSI-ReportConfig.c \ + ./rrc_out/CSI-ReportPeriodicityAndOffset.c \ + ./rrc_out/PUCCH-CSI-Resource.c \ + ./rrc_out/PortIndexFor8Ranks.c \ + ./rrc_out/PortIndex8.c \ + ./rrc_out/PortIndex4.c \ + ./rrc_out/PortIndex2.c \ + ./rrc_out/CSI-ReportConfigId.c \ + ./rrc_out/CSI-ResourceConfig.c \ + ./rrc_out/CSI-ResourceConfigId.c \ + ./rrc_out/CSI-ResourcePeriodicityAndOffset.c \ + ./rrc_out/CSI-RS-ResourceConfigMobility.c \ + ./rrc_out/CSI-RS-CellMobility.c \ + ./rrc_out/CSI-RS-Resource-Mobility.c \ + ./rrc_out/CSI-RS-Index.c \ + ./rrc_out/CSI-RS-ResourceMapping.c \ + ./rrc_out/CSI-SemiPersistentOnPUSCH-TriggerStateList.c \ + ./rrc_out/CSI-SemiPersistentOnPUSCH-TriggerState.c \ + ./rrc_out/CSI-SSB-ResourceSet.c \ + ./rrc_out/CSI-SSB-ResourceSetId.c \ + ./rrc_out/DedicatedNAS-Message.c \ + ./rrc_out/DMRS-DownlinkConfig.c \ + ./rrc_out/DMRS-UplinkConfig.c \ + ./rrc_out/DownlinkConfigCommon.c \ + ./rrc_out/DownlinkConfigCommonSIB.c \ + ./rrc_out/BCCH-Config.c \ + ./rrc_out/PCCH-Config.c \ + ./rrc_out/DownlinkPreemption.c \ + ./rrc_out/INT-ConfigurationPerServingCell.c \ + ./rrc_out/DRB-Identity.c \ + ./rrc_out/DRX-Config.c \ + ./rrc_out/FilterCoefficient.c \ + ./rrc_out/FreqBandIndicatorNR.c \ + ./rrc_out/FrequencyInfoDL.c \ + ./rrc_out/FrequencyInfoDL-SIB.c \ + ./rrc_out/FrequencyInfoUL.c \ + ./rrc_out/FrequencyInfoUL-SIB.c \ + ./rrc_out/Hysteresis.c \ + ./rrc_out/I-RNTI-Value.c \ + ./rrc_out/LocationMeasurementInfo.c \ + ./rrc_out/EUTRA-RSTD-InfoList.c \ + ./rrc_out/EUTRA-RSTD-Info.c \ + ./rrc_out/LogicalChannelConfig.c \ + ./rrc_out/LogicalChannelIdentity.c \ + ./rrc_out/MAC-CellGroupConfig.c \ + ./rrc_out/DataInactivityTimer.c \ + ./rrc_out/MeasConfig.c \ + ./rrc_out/MeasObjectToRemoveList.c \ + ./rrc_out/MeasIdToRemoveList.c \ + ./rrc_out/ReportConfigToRemoveList.c \ + ./rrc_out/MeasGapConfig.c \ + ./rrc_out/GapConfig.c \ + ./rrc_out/MeasGapSharingConfig.c \ + ./rrc_out/MeasGapSharingScheme.c \ + ./rrc_out/MeasId.c \ + ./rrc_out/MeasIdToAddModList.c \ + ./rrc_out/MeasIdToAddMod.c \ + ./rrc_out/MeasObjectEUTRA.c \ + ./rrc_out/EUTRA-CellIndexList.c \ + ./rrc_out/EUTRA-CellIndex.c \ + ./rrc_out/EUTRA-Cell.c \ + ./rrc_out/EUTRA-BlackCell.c \ + ./rrc_out/MeasObjectId.c \ + ./rrc_out/MeasObjectNR.c \ + ./rrc_out/ReferenceSignalConfig.c \ + ./rrc_out/SSB-ConfigMobility.c \ + ./rrc_out/Q-OffsetRangeList.c \ + ./rrc_out/ThresholdNR.c \ + ./rrc_out/CellsToAddModList.c \ + ./rrc_out/CellsToAddMod.c \ + ./rrc_out/MeasObjectToAddModList.c \ + ./rrc_out/MeasObjectToAddMod.c \ + ./rrc_out/MeasResultCellListSFTD.c \ + ./rrc_out/MeasResultCellSFTD.c \ + ./rrc_out/MeasResults.c \ + ./rrc_out/MeasResultServMOList.c \ + ./rrc_out/MeasResultServMO.c \ + ./rrc_out/MeasResultListNR.c \ + ./rrc_out/MeasResultNR.c \ + ./rrc_out/MeasResultListEUTRA.c \ + ./rrc_out/MeasResultEUTRA.c \ + ./rrc_out/MultiBandInfoListEUTRA.c \ + ./rrc_out/MeasQuantityResults.c \ + ./rrc_out/MeasQuantityResultsEUTRA.c \ + ./rrc_out/ResultsPerSSB-IndexList.c \ + ./rrc_out/ResultsPerSSB-Index.c \ + ./rrc_out/ResultsPerCSI-RS-IndexList.c \ + ./rrc_out/ResultsPerCSI-RS-Index.c \ + ./rrc_out/MeasResultSCG-Failure.c \ + ./rrc_out/MeasResultList2NR.c \ + ./rrc_out/MeasResult2NR.c \ + ./rrc_out/MobilityStateParameters.c \ + ./rrc_out/MultiFrequencyBandListNR.c \ + ./rrc_out/MultiFrequencyBandListNR-SIB.c \ + ./rrc_out/NR-MultiBandInfo.c \ + ./rrc_out/NextHopChainingCount.c \ + ./rrc_out/NG-5G-S-TMSI.c \ + ./rrc_out/NR-NS-PmaxList.c \ + ./rrc_out/NR-NS-PmaxValue.c \ + ./rrc_out/NZP-CSI-RS-Resource.c \ + ./rrc_out/NZP-CSI-RS-ResourceId.c \ + ./rrc_out/NZP-CSI-RS-ResourceSet.c \ + ./rrc_out/NZP-CSI-RS-ResourceSetId.c \ + ./rrc_out/P-Max.c \ + ./rrc_out/PCI-List.c \ + ./rrc_out/PCI-Range.c \ + ./rrc_out/PCI-RangeElement.c \ + ./rrc_out/PCI-RangeIndex.c \ + ./rrc_out/PCI-RangeIndexList.c \ + ./rrc_out/PDCCH-Config.c \ + ./rrc_out/PDCCH-ConfigCommon.c \ + ./rrc_out/PDCCH-ConfigSIB1.c \ + ./rrc_out/PDCCH-ServingCellConfig.c \ + ./rrc_out/PDCP-Config.c \ + ./rrc_out/UL-DataSplitThreshold.c \ + ./rrc_out/PDSCH-Config.c \ + ./rrc_out/RateMatchPatternGroup.c \ + ./rrc_out/PDSCH-ConfigCommon.c \ + ./rrc_out/PDSCH-ServingCellConfig.c \ + ./rrc_out/PDSCH-CodeBlockGroupTransmission.c \ + ./rrc_out/PDSCH-TimeDomainResourceAllocationList.c \ + ./rrc_out/PDSCH-TimeDomainResourceAllocation.c \ + ./rrc_out/PHR-Config.c \ + ./rrc_out/PhysCellId.c \ + ./rrc_out/PhysicalCellGroupConfig.c \ + ./rrc_out/PLMN-IdentitY.c \ + ./rrc_out/MCC.c \ + ./rrc_out/MNC.c \ + ./rrc_out/MCC-MNC-Digit.c \ + ./rrc_out/PLMN-IdentityInfoList.c \ + ./rrc_out/PLMN-IdentityInfo.c \ + ./rrc_out/PRB-Id.c \ + ./rrc_out/PTRS-DownlinkConfig.c \ + ./rrc_out/PTRS-UplinkConfig.c \ + ./rrc_out/PUCCH-Config.c \ + ./rrc_out/PUCCH-FormatConfig.c \ + ./rrc_out/PUCCH-MaxCodeRate.c \ + ./rrc_out/PUCCH-ResourceSet.c \ + ./rrc_out/PUCCH-ResourceSetId.c \ + ./rrc_out/PUCCH-Resource.c \ + ./rrc_out/PUCCH-ResourceId.c \ + ./rrc_out/PUCCH-format0.c \ + ./rrc_out/PUCCH-format1.c \ + ./rrc_out/PUCCH-format2.c \ + ./rrc_out/PUCCH-format3.c \ + ./rrc_out/PUCCH-format4.c \ + ./rrc_out/PUCCH-ConfigCommon.c \ + ./rrc_out/PUCCH-PathlossReferenceRS-Id.c \ + ./rrc_out/PUCCH-PowerControl.c \ + ./rrc_out/P0-PUCCH.c \ + ./rrc_out/P0-PUCCH-Id.c \ + ./rrc_out/PUCCH-PathlossReferenceRS.c \ + ./rrc_out/PUCCH-SpatialRelationInfo.c \ + ./rrc_out/PUCCH-SpatialRelationInfoId.c \ + ./rrc_out/PUCCH-TPC-CommandConfig.c \ + ./rrc_out/PUSCH-Config.c \ + ./rrc_out/UCI-OnPUSCH.c \ + ./rrc_out/PUSCH-ConfigCommon.c \ + ./rrc_out/PUSCH-PowerControl.c \ + ./rrc_out/P0-PUSCH-AlphaSet.c \ + ./rrc_out/P0-PUSCH-AlphaSetId.c \ + ./rrc_out/PUSCH-PathlossReferenceRS.c \ + ./rrc_out/PUSCH-PathlossReferenceRS-Id.c \ + ./rrc_out/SRI-PUSCH-PowerControl.c \ + ./rrc_out/SRI-PUSCH-PowerControlId.c \ + ./rrc_out/BetaOffsets.c \ + ./rrc_out/PUSCH-ServingCellConfig.c \ + ./rrc_out/PUSCH-CodeBlockGroupTransmission.c \ + ./rrc_out/PUSCH-TimeDomainResourceAllocationList.c \ + ./rrc_out/PUSCH-TimeDomainResourceAllocation.c \ + ./rrc_out/PUSCH-TPC-CommandConfig.c \ + ./rrc_out/Q-OffsetRange.c \ + ./rrc_out/Q-QualMin.c \ + ./rrc_out/Q-RxLevMin.c \ + ./rrc_out/QuantityConfig.c \ + ./rrc_out/QuantityConfigNR.c \ + ./rrc_out/QuantityConfigRS.c \ + ./rrc_out/FilterConfig.c \ + ./rrc_out/RACH-ConfigCommon.c \ + ./rrc_out/RACH-ConfigDedicated.c \ + ./rrc_out/CFRA.c \ + ./rrc_out/CFRA-SSB-Resource.c \ + ./rrc_out/CFRA-CSIRS-Resource.c \ + ./rrc_out/RACH-ConfigGeneric.c \ + ./rrc_out/RA-Prioritization.c \ + ./rrc_out/RadioBearerConfig.c \ + ./rrc_out/SRB-ToAddModList.c \ + ./rrc_out/SRB-ToAddMod.c \ + ./rrc_out/DRB-ToAddModList.c \ + ./rrc_out/DRB-ToAddMod.c \ + ./rrc_out/DRB-ToReleaseList.c \ + ./rrc_out/SecurityConfig.c \ + ./rrc_out/RadioLinkMonitoringConfig.c \ + ./rrc_out/RadioLinkMonitoringRS.c \ + ./rrc_out/RadioLinkMonitoringRS-Id.c \ + ./rrc_out/RAN-AreaCode.c \ + ./rrc_out/RateMatchPattern.c \ + ./rrc_out/RateMatchPatternId.c \ + ./rrc_out/RateMatchPatternLTE-CRS.c \ + ./rrc_out/RejectWaitTime.c \ + ./rrc_out/ReportConfigId.c \ + ./rrc_out/ReportConfigInterRAT.c \ + ./rrc_out/ReportCGI-EUTRA.c \ + ./rrc_out/EventTriggerConfigInterRAT.c \ + ./rrc_out/PeriodicalReportConfigInterRAT.c \ + ./rrc_out/MeasTriggerQuantityEUTRA.c \ + ./rrc_out/RSRP-RangeEUTRA.c \ + ./rrc_out/RSRQ-RangeEUTRA.c \ + ./rrc_out/SINR-RangeEUTRA.c \ + ./rrc_out/ReportConfigNR.c \ + ./rrc_out/ReportCGI.c \ + ./rrc_out/EventTriggerConfig.c \ + ./rrc_out/PeriodicalReportConfig.c \ + ./rrc_out/NR-RS-Type.c \ + ./rrc_out/MeasTriggerQuantity.c \ + ./rrc_out/MeasTriggerQuantityOffset.c \ + ./rrc_out/MeasReportQuantity.c \ + ./rrc_out/ReportConfigToAddModList.c \ + ./rrc_out/ReportConfigToAddMod.c \ + ./rrc_out/ReportInterval.c \ + ./rrc_out/ReselectionThreshold.c \ + ./rrc_out/ReselectionThresholdQ.c \ + ./rrc_out/ResumeCause.c \ + ./rrc_out/RLC-BearerConfig.c \ + ./rrc_out/RLC-Config.c \ + ./rrc_out/UL-AM-RLC.c \ + ./rrc_out/DL-AM-RLC.c \ + ./rrc_out/UL-UM-RLC.c \ + ./rrc_out/DL-UM-RLC.c \ + ./rrc_out/T-PollRetransmit.c \ + ./rrc_out/PollPDU.c \ + ./rrc_out/PollByte.c \ + ./rrc_out/T-Reassembly.c \ + ./rrc_out/T-StatusProhibit.c \ + ./rrc_out/SN-FieldLengthUM.c \ + ./rrc_out/SN-FieldLengthAM.c \ + ./rrc_out/RLF-TimersAndConstants.c \ + ./rrc_out/RNTI-Value.c \ + ./rrc_out/RSRP-Range.c \ + ./rrc_out/RSRQ-Range.c \ + ./rrc_out/SCellIndex.c \ + ./rrc_out/SchedulingRequestConfig.c \ + ./rrc_out/SchedulingRequestToAddMod.c \ + ./rrc_out/SchedulingRequestId.c \ + ./rrc_out/SchedulingRequestResourceConfig.c \ + ./rrc_out/SchedulingRequestResourceId.c \ + ./rrc_out/ScramblingId.c \ + ./rrc_out/SCS-SpecificCarrier.c \ + ./rrc_out/SDAP-Config.c \ + ./rrc_out/QFI.c \ + ./rrc_out/PDU-SessionID.c \ + ./rrc_out/SearchSpace.c \ + ./rrc_out/SearchSpaceId.c \ + ./rrc_out/SearchSpaceZero.c \ + ./rrc_out/SecurityAlgorithmConfig.c \ + ./rrc_out/IntegrityProtAlgorithm.c \ + ./rrc_out/CipheringAlgorithm.c \ + ./rrc_out/ServCellIndex.c \ + ./rrc_out/ServingCellConfig.c \ + ./rrc_out/UplinkConfig.c \ + ./rrc_out/ServingCellConfigCommon.c \ + ./rrc_out/ServingCellConfigCommonSIB.c \ + ./rrc_out/ShortI-RNTI-Value.c \ + ./rrc_out/ShortMAC-I.c \ + ./rrc_out/SINR-Range.c \ + ./rrc_out/SI-SchedulingInfo.c \ + ./rrc_out/SchedulingInfo.c \ + ./rrc_out/SIB-Mapping.c \ + ./rrc_out/SIB-TypeInfo.c \ + ./rrc_out/SI-RequestConfig.c \ + ./rrc_out/SI-RequestResources.c \ + ./rrc_out/SlotFormatCombinationsPerCell.c \ + ./rrc_out/SlotFormatCombination.c \ + ./rrc_out/SlotFormatCombinationId.c \ + ./rrc_out/SlotFormatIndicator.c \ + ./rrc_out/S-NSSAI.c \ + ./rrc_out/SpeedStateScaleFactors.c \ + ./rrc_out/SS-RSSI-Measurement.c \ + ./rrc_out/SPS-Config.c \ + ./rrc_out/SRB-Identity.c \ + ./rrc_out/SRS-CarrierSwitching.c \ + ./rrc_out/SRS-TPC-PDCCH-Config.c \ + ./rrc_out/SRS-CC-SetIndex.c \ + ./rrc_out/SRS-Config.c \ + ./rrc_out/SRS-ResourceSet.c \ + ./rrc_out/SRS-ResourceSetId.c \ + ./rrc_out/SRS-Resource.c \ + ./rrc_out/SRS-SpatialRelationInfo.c \ + ./rrc_out/SRS-ResourceId.c \ + ./rrc_out/SRS-PeriodicityAndOffset.c \ + ./rrc_out/SRS-TPC-CommandConfig.c \ + ./rrc_out/SSB-Index.c \ + ./rrc_out/SSB-MTC.c \ + ./rrc_out/SSB-MTC2.c \ + ./rrc_out/SSB-ToMeasure.c \ + ./rrc_out/SubcarrierSpacing.c \ + ./rrc_out/TAG-Config.c \ + ./rrc_out/TAG.c \ + ./rrc_out/TAG-Id.c \ + ./rrc_out/TimeAlignmentTimer.c \ + ./rrc_out/TCI-State.c \ + ./rrc_out/QCL-Info.c \ + ./rrc_out/TCI-StateId.c \ + ./rrc_out/TDD-UL-DL-ConfigCommon.c \ + ./rrc_out/TDD-UL-DL-Pattern.c \ + ./rrc_out/TDD-UL-DL-ConfigDedicated.c \ + ./rrc_out/TDD-UL-DL-SlotConfig.c \ + ./rrc_out/TDD-UL-DL-SlotIndex.c \ + ./rrc_out/TrackingAreaCode.c \ + ./rrc_out/T-Reselection.c \ + ./rrc_out/TimeToTrigger.c \ + ./rrc_out/UAC-BarringInfoSetIndex.c \ + ./rrc_out/UAC-BarringInfoSetList.c \ + ./rrc_out/UAC-BarringInfoSet.c \ + ./rrc_out/UAC-BarringPerCatList.c \ + ./rrc_out/UAC-BarringPerCat.c \ + ./rrc_out/UAC-BarringPerPLMN-List.c \ + ./rrc_out/UAC-BarringPerPLMN.c \ + ./rrc_out/UE-TimersAndConstants.c \ + ./rrc_out/UplinkConfigCommon.c \ + ./rrc_out/UplinkConfigCommonSIB.c \ + ./rrc_out/UplinkTxDirectCurrentList.c \ + ./rrc_out/UplinkTxDirectCurrentCell.c \ + ./rrc_out/UplinkTxDirectCurrentBWP.c \ + ./rrc_out/ZP-CSI-RS-Resource.c \ + ./rrc_out/ZP-CSI-RS-ResourceId.c \ + ./rrc_out/ZP-CSI-RS-ResourceSet.c \ + ./rrc_out/ZP-CSI-RS-ResourceSetId.c \ + ./rrc_out/AccessStratumRelease.c \ + ./rrc_out/BandCombinationList.c \ + ./rrc_out/BandCombination.c \ + ./rrc_out/BandParameters.c \ + ./rrc_out/CA-BandwidthClassEUTRA.c \ + ./rrc_out/CA-BandwidthClassNR.c \ + ./rrc_out/CA-ParametersEUTRA.c \ + ./rrc_out/CA-ParametersNR.c \ + ./rrc_out/FeatureSetCombination.c \ + ./rrc_out/FeatureSetsPerBand.c \ + ./rrc_out/FeatureSet.c \ + ./rrc_out/FeatureSetCombinationId.c \ + ./rrc_out/FeatureSetDownlink.c \ + ./rrc_out/CSI-RS-IM-ReceptionForFeedback.c \ + ./rrc_out/TypeI-SinglePanelCodebook.c \ + ./rrc_out/TypeI-MultiPanelCodebook.c \ + ./rrc_out/TypeII-Codebook.c \ + ./rrc_out/TypeII-CodebookPortSelection.c \ + ./rrc_out/FeatureSetDownlinkId.c \ + ./rrc_out/FeatureSetDownlinkPerCC.c \ + ./rrc_out/FeatureSetDownlinkPerCC-Id.c \ + ./rrc_out/FeatureSetEUTRA-DownlinkId.c \ + ./rrc_out/FeatureSetEUTRA-UplinkId.c \ + ./rrc_out/FeatureSets.c \ + ./rrc_out/FeatureSetUplink.c \ + ./rrc_out/CSI-ReportFramework.c \ + ./rrc_out/SRS-Resources.c \ + ./rrc_out/FeatureSetUplinkId.c \ + ./rrc_out/FeatureSetUplinkPerCC.c \ + ./rrc_out/FeatureSetUplinkPerCC-Id.c \ + ./rrc_out/FreqBandIndicatorEUTRA.c \ + ./rrc_out/FreqBandList.c \ + ./rrc_out/FreqBandInformation.c \ + ./rrc_out/FreqBandInformationEUTRA.c \ + ./rrc_out/FreqBandInformationNR.c \ + ./rrc_out/AggregatedBandwidth.c \ + ./rrc_out/FreqSeparationClass.c \ + ./rrc_out/InterRAT-Parameters.c \ + ./rrc_out/EUTRA-Parameters.c \ + ./rrc_out/EUTRA-ParametersCommon.c \ + ./rrc_out/EUTRA-ParametersXDD-Diff.c \ + ./rrc_out/MAC-Parameters.c \ + ./rrc_out/MAC-ParametersCommon.c \ + ./rrc_out/MAC-ParametersXDD-Diff.c \ + ./rrc_out/MeasAndMobParameters.c \ + ./rrc_out/MeasAndMobParametersCommon.c \ + ./rrc_out/MeasAndMobParametersXDD-Diff.c \ + ./rrc_out/MeasAndMobParametersFRX-Diff.c \ + ./rrc_out/MeasAndMobParametersMRDC.c \ + ./rrc_out/MeasAndMobParametersMRDC-Common.c \ + ./rrc_out/MeasAndMobParametersMRDC-XDD-Diff.c \ + ./rrc_out/MeasAndMobParametersMRDC-FRX-Diff.c \ + ./rrc_out/MIMO-LayersDL.c \ + ./rrc_out/MIMO-LayersUL.c \ + ./rrc_out/MIMO-ParametersPerBand.c \ + ./rrc_out/BeamManagementSSB-CSI-RS.c \ + ./rrc_out/CSI-RS-ForTracking.c \ + ./rrc_out/PTRS-DensityRecommendationDL.c \ + ./rrc_out/PTRS-DensityRecommendationUL.c \ + ./rrc_out/SRS-TxSwitch.c \ + ./rrc_out/ModulationOrder.c \ + ./rrc_out/MRDC-Parameters.c \ + ./rrc_out/PDCP-Parameters.c \ + ./rrc_out/PDCP-ParametersMRDC.c \ + ./rrc_out/Phy-Parameters.c \ + ./rrc_out/Phy-ParametersCommon.c \ + ./rrc_out/Phy-ParametersXDD-Diff.c \ + ./rrc_out/Phy-ParametersFRX-Diff.c \ + ./rrc_out/Phy-ParametersFR1.c \ + ./rrc_out/Phy-ParametersFR2.c \ + ./rrc_out/Phy-ParametersMRDC.c \ + ./rrc_out/NAICS-Capability-Entry.c \ + ./rrc_out/RAT-Type.c \ + ./rrc_out/RF-Parameters.c \ + ./rrc_out/BandNR.c \ + ./rrc_out/RF-ParametersMRDC.c \ + ./rrc_out/RLC-Parameters.c \ + ./rrc_out/SupportedBandwidth.c \ + ./rrc_out/UE-CapabilityRAT-ContainerList.c \ + ./rrc_out/UE-CapabilityRAT-Container.c \ + ./rrc_out/UE-CapabilityRAT-RequestList.c \ + ./rrc_out/UE-CapabilityRAT-Request.c \ + ./rrc_out/UE-CapabilityRequestFilterNR.c \ + ./rrc_out/UE-MRDC-Capability.c \ + ./rrc_out/UE-MRDC-CapabilityAddXDD-Mode.c \ + ./rrc_out/UE-MRDC-CapabilityAddFRX-Mode.c \ + ./rrc_out/GeneralParametersMRDC-XDD-Diff.c \ + ./rrc_out/UE-NR-Capability.c \ + ./rrc_out/UE-NR-CapabilityAddXDD-Mode.c \ + ./rrc_out/UE-NR-CapabilityAddFRX-Mode.c \ + ./rrc_out/EUTRA-AllowedMeasBandwidth.c \ + ./rrc_out/EUTRA-MBSFN-SubframeConfigList.c \ + ./rrc_out/EUTRA-MBSFN-SubframeConfig.c \ + ./rrc_out/EUTRA-MultiBandInfoList.c \ + ./rrc_out/EUTRA-MultiBandInfo.c \ + ./rrc_out/EUTRA-NS-PmaxList.c \ + ./rrc_out/EUTRA-NS-PmaxValue.c \ + ./rrc_out/EUTRA-PhysCellId.c \ + ./rrc_out/EUTRA-PhysCellIdRange.c \ + ./rrc_out/EUTRA-PresenceAntennaPort1.c \ + ./rrc_out/EUTRA-Q-OffsetRange.c \ + ./rrc_out/OtherConfig.c \ + ./rrc_out/RRC-TransactionIdentifier.c \ + ./rrc_out/VarPendingRNA-Update.c \ + ./rrc_out/VarMeasConfig.c \ + ./rrc_out/VarMeasReportList.c \ + ./rrc_out/VarMeasReport.c \ + ./rrc_out/CellsTriggeredList.c \ + ./rrc_out/VarResumeMAC-Input.c \ + ./rrc_out/VarShortMAC-Input.c \ + ./rrc_out/HandoverCommand.c \ + ./rrc_out/HandoverCommand-IEs.c \ + ./rrc_out/HandoverPreparationInformation.c \ + ./rrc_out/HandoverPreparationInformation-IEs.c \ + ./rrc_out/AS-Config.c \ + ./rrc_out/AS-Context.c \ + ./rrc_out/ReestablishmentInfo.c \ + ./rrc_out/ReestabNCellInfoList.c \ + ./rrc_out/ReestabNCellInfo.c \ + ./rrc_out/RRM-Config.c \ + ./rrc_out/CG-Config.c \ + ./rrc_out/CG-Config-IEs.c \ + ./rrc_out/MeasConfigSN.c \ + ./rrc_out/NR-FreqInfo.c \ + ./rrc_out/ConfigRestrictModReqSCG.c \ + ./rrc_out/BandCombinationIndex.c \ + ./rrc_out/BandCombinationInfoSN.c \ + ./rrc_out/FR-InfoList.c \ + ./rrc_out/FR-Info.c \ + ./rrc_out/CandidateServingFreqListNR.c \ + ./rrc_out/CG-ConfigInfo.c \ + ./rrc_out/CG-ConfigInfo-IEs.c \ + ./rrc_out/ConfigRestrictInfoSCG.c \ + ./rrc_out/BandCombinationInfoList.c \ + ./rrc_out/BandCombinationInfo.c \ + ./rrc_out/FeatureSetEntryIndex.c \ + ./rrc_out/DRX-Info.c \ + ./rrc_out/MeasConfigMN.c \ + ./rrc_out/MRDC-AssistanceInfo.c \ + ./rrc_out/AffectedCarrierFreqCombInfoMRDC.c \ + ./rrc_out/VictimSystemType.c \ + ./rrc_out/AffectedCarrierFreqCombEUTRA.c \ + ./rrc_out/AffectedCarrierFreqCombNR.c \ + ./rrc_out/MeasurementTimingConfiguration.c \ + ./rrc_out/MeasurementTimingConfiguration-IEs.c \ + ./rrc_out/MeasTimingList.c \ + ./rrc_out/MeasTiming.c \ + ./rrc_out/UERadioPagingInformation.c \ + ./rrc_out/UERadioPagingInformation-IEs.c \ + ./rrc_out/UERadioAccessCapabilityInformation.c \ + ./rrc_out/UERadioAccessCapabilityInformation-IEs.c + +ASN_MODULE_HDRS= \ + ./rrc_out/BCCH-BCH-Message.h \ + ./rrc_out/BCCH-BCH-MessageType.h \ + ./rrc_out/BCCH-DL-SCH-Message.h \ + ./rrc_out/BCCH-DL-SCH-MessageType.h \ + ./rrc_out/DL-CCCH-Message.h \ + ./rrc_out/DL-CCCH-MessageType.h \ + ./rrc_out/DL-DCCH-Message.h \ + ./rrc_out/DL-DCCH-MessageType.h \ + ./rrc_out/PCCH-Message.h \ + ./rrc_out/PCCH-MessageType.h \ + ./rrc_out/UL-CCCH-Message.h \ + ./rrc_out/UL-CCCH-MessageType.h \ + ./rrc_out/UL-CCCH1-Message.h \ + ./rrc_out/UL-CCCH1-MessageType.h \ + ./rrc_out/UL-DCCH-Message.h \ + ./rrc_out/UL-DCCH-MessageType.h \ + ./rrc_out/CounterCheck.h \ + ./rrc_out/CounterCheck-IEs.h \ + ./rrc_out/DRB-CountMSB-InfoList.h \ + ./rrc_out/DRB-CountMSB-Info.h \ + ./rrc_out/CounterCheckResponse.h \ + ./rrc_out/CounterCheckResponse-IEs.h \ + ./rrc_out/DRB-CountInfoList.h \ + ./rrc_out/DRB-CountInfo.h \ + ./rrc_out/DLInformationTransfer.h \ + ./rrc_out/DLInformationTransfer-IEs.h \ + ./rrc_out/FailureInformation.h \ + ./rrc_out/FailureInformation-IEs.h \ + ./rrc_out/FailureInfoRLC-Bearer.h \ + ./rrc_out/LocationMeasurementIndication.h \ + ./rrc_out/LocationMeasurementIndication-IEs.h \ + ./rrc_out/MIB.h \ + ./rrc_out/MeasurementReport.h \ + ./rrc_out/MeasurementReport-IEs.h \ + ./rrc_out/MobilityFromNRCommand.h \ + ./rrc_out/MobilityFromNRCommand-IEs.h \ + ./rrc_out/Paging.h \ + ./rrc_out/PagingRecordList.h \ + ./rrc_out/PagingRecord.h \ + ./rrc_out/PagingUE-Identity.h \ + ./rrc_out/RRCReestablishment.h \ + ./rrc_out/RRCReestablishment-IEs.h \ + ./rrc_out/RRCReestablishmentComplete.h \ + ./rrc_out/RRCReestablishmentComplete-IEs.h \ + ./rrc_out/RRCReestablishmentRequest.h \ + ./rrc_out/RRCReestablishmentRequest-IEs.h \ + ./rrc_out/ReestabUE-Identity.h \ + ./rrc_out/ReestablishmentCause.h \ + ./rrc_out/RRCReconfiguration.h \ + ./rrc_out/RRCReconfiguration-IEs.h \ + ./rrc_out/RRCReconfiguration-v1530-IEs.h \ + ./rrc_out/MasterKeyUpdate.h \ + ./rrc_out/RRCReconfigurationComplete.h \ + ./rrc_out/RRCReconfigurationComplete-IEs.h \ + ./rrc_out/RRCReconfigurationComplete-v1530-IEs.h \ + ./rrc_out/RRCReject.h \ + ./rrc_out/RRCReject-IEs.h \ + ./rrc_out/RRCRelease.h \ + ./rrc_out/RRCRelease-IEs.h \ + ./rrc_out/RRCRelease-v1540-IEs.h \ + ./rrc_out/RedirectedCarrierInfo.h \ + ./rrc_out/RedirectedCarrierInfo-EUTRA.h \ + ./rrc_out/CarrierInfoNR.h \ + ./rrc_out/SuspendConfig.h \ + ./rrc_out/PeriodicRNAU-TimerValue.h \ + ./rrc_out/CellReselectionPriorities.h \ + ./rrc_out/PagingCycle.h \ + ./rrc_out/FreqPriorityListEUTRA.h \ + ./rrc_out/FreqPriorityListNR.h \ + ./rrc_out/FreqPriorityEUTRA.h \ + ./rrc_out/FreqPriorityNR.h \ + ./rrc_out/RAN-NotificationAreaInfo.h \ + ./rrc_out/PLMN-RAN-AreaCellList.h \ + ./rrc_out/PLMN-RAN-AreaCell.h \ + ./rrc_out/PLMN-RAN-AreaConfigList.h \ + ./rrc_out/PLMN-RAN-AreaConfig.h \ + ./rrc_out/RAN-AreaConfig.h \ + ./rrc_out/RRCResume.h \ + ./rrc_out/RRCResume-IEs.h \ + ./rrc_out/RRCResumeComplete.h \ + ./rrc_out/RRCResumeComplete-IEs.h \ + ./rrc_out/RRCResumeRequest.h \ + ./rrc_out/RRCResumeRequest-IEs.h \ + ./rrc_out/RRCResumeRequest1.h \ + ./rrc_out/RRCResumeRequest1-IEs.h \ + ./rrc_out/RRCSetup.h \ + ./rrc_out/RRCSetup-IEs.h \ + ./rrc_out/RRCSetupComplete.h \ + ./rrc_out/RRCSetupComplete-IEs.h \ + ./rrc_out/RegisteredAMF.h \ + ./rrc_out/RRCSetupRequest.h \ + ./rrc_out/RRCSetupRequest-IEs.h \ + ./rrc_out/InitialUE-Identity.h \ + ./rrc_out/EstablishmentCause.h \ + ./rrc_out/RRCSystemInfoRequest.h \ + ./rrc_out/RRCSystemInfoRequest-r15-IEs.h \ + ./rrc_out/SecurityModeCommand.h \ + ./rrc_out/SecurityModeCommand-IEs.h \ + ./rrc_out/SecurityConfigSMC.h \ + ./rrc_out/SecurityModeComplete.h \ + ./rrc_out/SecurityModeComplete-IEs.h \ + ./rrc_out/SecurityModeFailure.h \ + ./rrc_out/SecurityModeFailure-IEs.h \ + ./rrc_out/SIB1.h \ + ./rrc_out/UAC-AccessCategory1-SelectionAssistanceInfo.h \ + ./rrc_out/SystemInformation.h \ + ./rrc_out/SystemInformation-IEs.h \ + ./rrc_out/UEAssistanceInformation.h \ + ./rrc_out/UEAssistanceInformation-IEs.h \ + ./rrc_out/DelayBudgetReport.h \ + ./rrc_out/UEAssistanceInformation-v1540-IEs.h \ + ./rrc_out/OverheatingAssistance.h \ + ./rrc_out/ReducedAggregatedBandwidth.h \ + ./rrc_out/UECapabilityEnquiry.h \ + ./rrc_out/UECapabilityEnquiry-IEs.h \ + ./rrc_out/UECapabilityInformation.h \ + ./rrc_out/UECapabilityInformation-IEs.h \ + ./rrc_out/ULInformationTransfer.h \ + ./rrc_out/ULInformationTransfer-IEs.h \ + ./rrc_out/SIB2.h \ + ./rrc_out/RangeToBestCell.h \ + ./rrc_out/SIB3.h \ + ./rrc_out/IntraFreqNeighCellList.h \ + ./rrc_out/IntraFreqNeighCellInfo.h \ + ./rrc_out/IntraFreqBlackCellList.h \ + ./rrc_out/SIB4.h \ + ./rrc_out/InterFreqCarrierFreqList.h \ + ./rrc_out/InterFreqCarrierFreqInfo.h \ + ./rrc_out/InterFreqNeighCellList.h \ + ./rrc_out/InterFreqNeighCellInfo.h \ + ./rrc_out/InterFreqBlackCellList.h \ + ./rrc_out/SIB5.h \ + ./rrc_out/CarrierFreqListEUTRA.h \ + ./rrc_out/CarrierFreqEUTRA.h \ + ./rrc_out/EUTRA-FreqBlackCellList.h \ + ./rrc_out/EUTRA-FreqNeighCellList.h \ + ./rrc_out/EUTRA-FreqNeighCellInfo.h \ + ./rrc_out/SIB6.h \ + ./rrc_out/SIB7.h \ + ./rrc_out/SIB8.h \ + ./rrc_out/SIB9.h \ + ./rrc_out/AdditionalSpectrumEmission.h \ + ./rrc_out/Alpha.h \ + ./rrc_out/AMF-Identifier.h \ + ./rrc_out/ARFCN-ValueEUTRA.h \ + ./rrc_out/ARFCN-ValueNR.h \ + ./rrc_out/BeamFailureRecoveryConfig.h \ + ./rrc_out/PRACH-ResourceDedicatedBFR.h \ + ./rrc_out/BFR-SSB-Resource.h \ + ./rrc_out/BFR-CSIRS-Resource.h \ + ./rrc_out/BSR-Config.h \ + ./rrc_out/BWP.h \ + ./rrc_out/BWP-Downlink.h \ + ./rrc_out/BWP-DownlinkCommon.h \ + ./rrc_out/BWP-DownlinkDedicated.h \ + ./rrc_out/BWP-Id.h \ + ./rrc_out/BWP-Uplink.h \ + ./rrc_out/BWP-UplinkCommon.h \ + ./rrc_out/BWP-UplinkDedicated.h \ + ./rrc_out/CellAccessRelatedInfo.h \ + ./rrc_out/CellAccessRelatedInfo-EUTRA-5GC.h \ + ./rrc_out/PLMN-IdentityList-EUTRA-5GC.h \ + ./rrc_out/PLMN-Identity-EUTRA-5GC.h \ + ./rrc_out/CellIdentity-EUTRA-5GC.h \ + ./rrc_out/CellAccessRelatedInfo-EUTRA-EPC.h \ + ./rrc_out/PLMN-IdentityList-EUTRA-EPC.h \ + ./rrc_out/CellGroupConfig.h \ + ./rrc_out/SpCellConfig.h \ + ./rrc_out/ReconfigurationWithSync.h \ + ./rrc_out/SCellConfig.h \ + ./rrc_out/CellGroupId.h \ + ./rrc_out/CellIdentity.h \ + ./rrc_out/CellReselectionPriority.h \ + ./rrc_out/CellReselectionSubPriority.h \ + ./rrc_out/CGI-Info.h \ + ./rrc_out/CodebookConfig.h \ + ./rrc_out/ConfiguredGrantConfig.h \ + ./rrc_out/CG-UCI-OnPUSCH.h \ + ./rrc_out/ConnEstFailureControl.h \ + ./rrc_out/ControlResourceSet.h \ + ./rrc_out/ControlResourceSetId.h \ + ./rrc_out/ControlResourceSetZero.h \ + ./rrc_out/CrossCarrierSchedulingConfig.h \ + ./rrc_out/CSI-AperiodicTriggerStateList.h \ + ./rrc_out/CSI-AperiodicTriggerState.h \ + ./rrc_out/CSI-AssociatedReportConfigInfo.h \ + ./rrc_out/CSI-FrequencyOccupation.h \ + ./rrc_out/CSI-IM-Resource.h \ + ./rrc_out/CSI-IM-ResourceId.h \ + ./rrc_out/CSI-IM-ResourceSet.h \ + ./rrc_out/CSI-IM-ResourceSetId.h \ + ./rrc_out/CSI-MeasConfig.h \ + ./rrc_out/CSI-ReportConfig.h \ + ./rrc_out/CSI-ReportPeriodicityAndOffset.h \ + ./rrc_out/PUCCH-CSI-Resource.h \ + ./rrc_out/PortIndexFor8Ranks.h \ + ./rrc_out/PortIndex8.h \ + ./rrc_out/PortIndex4.h \ + ./rrc_out/PortIndex2.h \ + ./rrc_out/CSI-ReportConfigId.h \ + ./rrc_out/CSI-ResourceConfig.h \ + ./rrc_out/CSI-ResourceConfigId.h \ + ./rrc_out/CSI-ResourcePeriodicityAndOffset.h \ + ./rrc_out/CSI-RS-ResourceConfigMobility.h \ + ./rrc_out/CSI-RS-CellMobility.h \ + ./rrc_out/CSI-RS-Resource-Mobility.h \ + ./rrc_out/CSI-RS-Index.h \ + ./rrc_out/CSI-RS-ResourceMapping.h \ + ./rrc_out/CSI-SemiPersistentOnPUSCH-TriggerStateList.h \ + ./rrc_out/CSI-SemiPersistentOnPUSCH-TriggerState.h \ + ./rrc_out/CSI-SSB-ResourceSet.h \ + ./rrc_out/CSI-SSB-ResourceSetId.h \ + ./rrc_out/DedicatedNAS-Message.h \ + ./rrc_out/DMRS-DownlinkConfig.h \ + ./rrc_out/DMRS-UplinkConfig.h \ + ./rrc_out/DownlinkConfigCommon.h \ + ./rrc_out/DownlinkConfigCommonSIB.h \ + ./rrc_out/BCCH-Config.h \ + ./rrc_out/PCCH-Config.h \ + ./rrc_out/DownlinkPreemption.h \ + ./rrc_out/INT-ConfigurationPerServingCell.h \ + ./rrc_out/DRB-Identity.h \ + ./rrc_out/DRX-Config.h \ + ./rrc_out/FilterCoefficient.h \ + ./rrc_out/FreqBandIndicatorNR.h \ + ./rrc_out/FrequencyInfoDL.h \ + ./rrc_out/FrequencyInfoDL-SIB.h \ + ./rrc_out/FrequencyInfoUL.h \ + ./rrc_out/FrequencyInfoUL-SIB.h \ + ./rrc_out/Hysteresis.h \ + ./rrc_out/I-RNTI-Value.h \ + ./rrc_out/LocationMeasurementInfo.h \ + ./rrc_out/EUTRA-RSTD-InfoList.h \ + ./rrc_out/EUTRA-RSTD-Info.h \ + ./rrc_out/LogicalChannelConfig.h \ + ./rrc_out/LogicalChannelIdentity.h \ + ./rrc_out/MAC-CellGroupConfig.h \ + ./rrc_out/DataInactivityTimer.h \ + ./rrc_out/MeasConfig.h \ + ./rrc_out/MeasObjectToRemoveList.h \ + ./rrc_out/MeasIdToRemoveList.h \ + ./rrc_out/ReportConfigToRemoveList.h \ + ./rrc_out/MeasGapConfig.h \ + ./rrc_out/GapConfig.h \ + ./rrc_out/MeasGapSharingConfig.h \ + ./rrc_out/MeasGapSharingScheme.h \ + ./rrc_out/MeasId.h \ + ./rrc_out/MeasIdToAddModList.h \ + ./rrc_out/MeasIdToAddMod.h \ + ./rrc_out/MeasObjectEUTRA.h \ + ./rrc_out/EUTRA-CellIndexList.h \ + ./rrc_out/EUTRA-CellIndex.h \ + ./rrc_out/EUTRA-Cell.h \ + ./rrc_out/EUTRA-BlackCell.h \ + ./rrc_out/MeasObjectId.h \ + ./rrc_out/MeasObjectNR.h \ + ./rrc_out/ReferenceSignalConfig.h \ + ./rrc_out/SSB-ConfigMobility.h \ + ./rrc_out/Q-OffsetRangeList.h \ + ./rrc_out/ThresholdNR.h \ + ./rrc_out/CellsToAddModList.h \ + ./rrc_out/CellsToAddMod.h \ + ./rrc_out/MeasObjectToAddModList.h \ + ./rrc_out/MeasObjectToAddMod.h \ + ./rrc_out/MeasResultCellListSFTD.h \ + ./rrc_out/MeasResultCellSFTD.h \ + ./rrc_out/MeasResults.h \ + ./rrc_out/MeasResultServMOList.h \ + ./rrc_out/MeasResultServMO.h \ + ./rrc_out/MeasResultListNR.h \ + ./rrc_out/MeasResultNR.h \ + ./rrc_out/MeasResultListEUTRA.h \ + ./rrc_out/MeasResultEUTRA.h \ + ./rrc_out/MultiBandInfoListEUTRA.h \ + ./rrc_out/MeasQuantityResults.h \ + ./rrc_out/MeasQuantityResultsEUTRA.h \ + ./rrc_out/ResultsPerSSB-IndexList.h \ + ./rrc_out/ResultsPerSSB-Index.h \ + ./rrc_out/ResultsPerCSI-RS-IndexList.h \ + ./rrc_out/ResultsPerCSI-RS-Index.h \ + ./rrc_out/MeasResultSCG-Failure.h \ + ./rrc_out/MeasResultList2NR.h \ + ./rrc_out/MeasResult2NR.h \ + ./rrc_out/MobilityStateParameters.h \ + ./rrc_out/MultiFrequencyBandListNR.h \ + ./rrc_out/MultiFrequencyBandListNR-SIB.h \ + ./rrc_out/NR-MultiBandInfo.h \ + ./rrc_out/NextHopChainingCount.h \ + ./rrc_out/NG-5G-S-TMSI.h \ + ./rrc_out/NR-NS-PmaxList.h \ + ./rrc_out/NR-NS-PmaxValue.h \ + ./rrc_out/NZP-CSI-RS-Resource.h \ + ./rrc_out/NZP-CSI-RS-ResourceId.h \ + ./rrc_out/NZP-CSI-RS-ResourceSet.h \ + ./rrc_out/NZP-CSI-RS-ResourceSetId.h \ + ./rrc_out/P-Max.h \ + ./rrc_out/PCI-List.h \ + ./rrc_out/PCI-Range.h \ + ./rrc_out/PCI-RangeElement.h \ + ./rrc_out/PCI-RangeIndex.h \ + ./rrc_out/PCI-RangeIndexList.h \ + ./rrc_out/PDCCH-Config.h \ + ./rrc_out/PDCCH-ConfigCommon.h \ + ./rrc_out/PDCCH-ConfigSIB1.h \ + ./rrc_out/PDCCH-ServingCellConfig.h \ + ./rrc_out/PDCP-Config.h \ + ./rrc_out/UL-DataSplitThreshold.h \ + ./rrc_out/PDSCH-Config.h \ + ./rrc_out/RateMatchPatternGroup.h \ + ./rrc_out/PDSCH-ConfigCommon.h \ + ./rrc_out/PDSCH-ServingCellConfig.h \ + ./rrc_out/PDSCH-CodeBlockGroupTransmission.h \ + ./rrc_out/PDSCH-TimeDomainResourceAllocationList.h \ + ./rrc_out/PDSCH-TimeDomainResourceAllocation.h \ + ./rrc_out/PHR-Config.h \ + ./rrc_out/PhysCellId.h \ + ./rrc_out/PhysicalCellGroupConfig.h \ + ./rrc_out/PLMN-IdentitY.h \ + ./rrc_out/MCC.h \ + ./rrc_out/MNC.h \ + ./rrc_out/MCC-MNC-Digit.h \ + ./rrc_out/PLMN-IdentityInfoList.h \ + ./rrc_out/PLMN-IdentityInfo.h \ + ./rrc_out/PRB-Id.h \ + ./rrc_out/PTRS-DownlinkConfig.h \ + ./rrc_out/PTRS-UplinkConfig.h \ + ./rrc_out/PUCCH-Config.h \ + ./rrc_out/PUCCH-FormatConfig.h \ + ./rrc_out/PUCCH-MaxCodeRate.h \ + ./rrc_out/PUCCH-ResourceSet.h \ + ./rrc_out/PUCCH-ResourceSetId.h \ + ./rrc_out/PUCCH-Resource.h \ + ./rrc_out/PUCCH-ResourceId.h \ + ./rrc_out/PUCCH-format0.h \ + ./rrc_out/PUCCH-format1.h \ + ./rrc_out/PUCCH-format2.h \ + ./rrc_out/PUCCH-format3.h \ + ./rrc_out/PUCCH-format4.h \ + ./rrc_out/PUCCH-ConfigCommon.h \ + ./rrc_out/PUCCH-PathlossReferenceRS-Id.h \ + ./rrc_out/PUCCH-PowerControl.h \ + ./rrc_out/P0-PUCCH.h \ + ./rrc_out/P0-PUCCH-Id.h \ + ./rrc_out/PUCCH-PathlossReferenceRS.h \ + ./rrc_out/PUCCH-SpatialRelationInfo.h \ + ./rrc_out/PUCCH-SpatialRelationInfoId.h \ + ./rrc_out/PUCCH-TPC-CommandConfig.h \ + ./rrc_out/PUSCH-Config.h \ + ./rrc_out/UCI-OnPUSCH.h \ + ./rrc_out/PUSCH-ConfigCommon.h \ + ./rrc_out/PUSCH-PowerControl.h \ + ./rrc_out/P0-PUSCH-AlphaSet.h \ + ./rrc_out/P0-PUSCH-AlphaSetId.h \ + ./rrc_out/PUSCH-PathlossReferenceRS.h \ + ./rrc_out/PUSCH-PathlossReferenceRS-Id.h \ + ./rrc_out/SRI-PUSCH-PowerControl.h \ + ./rrc_out/SRI-PUSCH-PowerControlId.h \ + ./rrc_out/BetaOffsets.h \ + ./rrc_out/PUSCH-ServingCellConfig.h \ + ./rrc_out/PUSCH-CodeBlockGroupTransmission.h \ + ./rrc_out/PUSCH-TimeDomainResourceAllocationList.h \ + ./rrc_out/PUSCH-TimeDomainResourceAllocation.h \ + ./rrc_out/PUSCH-TPC-CommandConfig.h \ + ./rrc_out/Q-OffsetRange.h \ + ./rrc_out/Q-QualMin.h \ + ./rrc_out/Q-RxLevMin.h \ + ./rrc_out/QuantityConfig.h \ + ./rrc_out/QuantityConfigNR.h \ + ./rrc_out/QuantityConfigRS.h \ + ./rrc_out/FilterConfig.h \ + ./rrc_out/RACH-ConfigCommon.h \ + ./rrc_out/RACH-ConfigDedicated.h \ + ./rrc_out/CFRA.h \ + ./rrc_out/CFRA-SSB-Resource.h \ + ./rrc_out/CFRA-CSIRS-Resource.h \ + ./rrc_out/RACH-ConfigGeneric.h \ + ./rrc_out/RA-Prioritization.h \ + ./rrc_out/RadioBearerConfig.h \ + ./rrc_out/SRB-ToAddModList.h \ + ./rrc_out/SRB-ToAddMod.h \ + ./rrc_out/DRB-ToAddModList.h \ + ./rrc_out/DRB-ToAddMod.h \ + ./rrc_out/DRB-ToReleaseList.h \ + ./rrc_out/SecurityConfig.h \ + ./rrc_out/RadioLinkMonitoringConfig.h \ + ./rrc_out/RadioLinkMonitoringRS.h \ + ./rrc_out/RadioLinkMonitoringRS-Id.h \ + ./rrc_out/RAN-AreaCode.h \ + ./rrc_out/RateMatchPattern.h \ + ./rrc_out/RateMatchPatternId.h \ + ./rrc_out/RateMatchPatternLTE-CRS.h \ + ./rrc_out/RejectWaitTime.h \ + ./rrc_out/ReportConfigId.h \ + ./rrc_out/ReportConfigInterRAT.h \ + ./rrc_out/ReportCGI-EUTRA.h \ + ./rrc_out/EventTriggerConfigInterRAT.h \ + ./rrc_out/PeriodicalReportConfigInterRAT.h \ + ./rrc_out/MeasTriggerQuantityEUTRA.h \ + ./rrc_out/RSRP-RangeEUTRA.h \ + ./rrc_out/RSRQ-RangeEUTRA.h \ + ./rrc_out/SINR-RangeEUTRA.h \ + ./rrc_out/ReportConfigNR.h \ + ./rrc_out/ReportCGI.h \ + ./rrc_out/EventTriggerConfig.h \ + ./rrc_out/PeriodicalReportConfig.h \ + ./rrc_out/NR-RS-Type.h \ + ./rrc_out/MeasTriggerQuantity.h \ + ./rrc_out/MeasTriggerQuantityOffset.h \ + ./rrc_out/MeasReportQuantity.h \ + ./rrc_out/ReportConfigToAddModList.h \ + ./rrc_out/ReportConfigToAddMod.h \ + ./rrc_out/ReportInterval.h \ + ./rrc_out/ReselectionThreshold.h \ + ./rrc_out/ReselectionThresholdQ.h \ + ./rrc_out/ResumeCause.h \ + ./rrc_out/RLC-BearerConfig.h \ + ./rrc_out/RLC-Config.h \ + ./rrc_out/UL-AM-RLC.h \ + ./rrc_out/DL-AM-RLC.h \ + ./rrc_out/UL-UM-RLC.h \ + ./rrc_out/DL-UM-RLC.h \ + ./rrc_out/T-PollRetransmit.h \ + ./rrc_out/PollPDU.h \ + ./rrc_out/PollByte.h \ + ./rrc_out/T-Reassembly.h \ + ./rrc_out/T-StatusProhibit.h \ + ./rrc_out/SN-FieldLengthUM.h \ + ./rrc_out/SN-FieldLengthAM.h \ + ./rrc_out/RLF-TimersAndConstants.h \ + ./rrc_out/RNTI-Value.h \ + ./rrc_out/RSRP-Range.h \ + ./rrc_out/RSRQ-Range.h \ + ./rrc_out/SCellIndex.h \ + ./rrc_out/SchedulingRequestConfig.h \ + ./rrc_out/SchedulingRequestToAddMod.h \ + ./rrc_out/SchedulingRequestId.h \ + ./rrc_out/SchedulingRequestResourceConfig.h \ + ./rrc_out/SchedulingRequestResourceId.h \ + ./rrc_out/ScramblingId.h \ + ./rrc_out/SCS-SpecificCarrier.h \ + ./rrc_out/SDAP-Config.h \ + ./rrc_out/QFI.h \ + ./rrc_out/PDU-SessionID.h \ + ./rrc_out/SearchSpace.h \ + ./rrc_out/SearchSpaceId.h \ + ./rrc_out/SearchSpaceZero.h \ + ./rrc_out/SecurityAlgorithmConfig.h \ + ./rrc_out/IntegrityProtAlgorithm.h \ + ./rrc_out/CipheringAlgorithm.h \ + ./rrc_out/ServCellIndex.h \ + ./rrc_out/ServingCellConfig.h \ + ./rrc_out/UplinkConfig.h \ + ./rrc_out/ServingCellConfigCommon.h \ + ./rrc_out/ServingCellConfigCommonSIB.h \ + ./rrc_out/ShortI-RNTI-Value.h \ + ./rrc_out/ShortMAC-I.h \ + ./rrc_out/SINR-Range.h \ + ./rrc_out/SI-SchedulingInfo.h \ + ./rrc_out/SchedulingInfo.h \ + ./rrc_out/SIB-Mapping.h \ + ./rrc_out/SIB-TypeInfo.h \ + ./rrc_out/SI-RequestConfig.h \ + ./rrc_out/SI-RequestResources.h \ + ./rrc_out/SlotFormatCombinationsPerCell.h \ + ./rrc_out/SlotFormatCombination.h \ + ./rrc_out/SlotFormatCombinationId.h \ + ./rrc_out/SlotFormatIndicator.h \ + ./rrc_out/S-NSSAI.h \ + ./rrc_out/SpeedStateScaleFactors.h \ + ./rrc_out/SS-RSSI-Measurement.h \ + ./rrc_out/SPS-Config.h \ + ./rrc_out/SRB-Identity.h \ + ./rrc_out/SRS-CarrierSwitching.h \ + ./rrc_out/SRS-TPC-PDCCH-Config.h \ + ./rrc_out/SRS-CC-SetIndex.h \ + ./rrc_out/SRS-Config.h \ + ./rrc_out/SRS-ResourceSet.h \ + ./rrc_out/SRS-ResourceSetId.h \ + ./rrc_out/SRS-Resource.h \ + ./rrc_out/SRS-SpatialRelationInfo.h \ + ./rrc_out/SRS-ResourceId.h \ + ./rrc_out/SRS-PeriodicityAndOffset.h \ + ./rrc_out/SRS-TPC-CommandConfig.h \ + ./rrc_out/SSB-Index.h \ + ./rrc_out/SSB-MTC.h \ + ./rrc_out/SSB-MTC2.h \ + ./rrc_out/SSB-ToMeasure.h \ + ./rrc_out/SubcarrierSpacing.h \ + ./rrc_out/TAG-Config.h \ + ./rrc_out/TAG.h \ + ./rrc_out/TAG-Id.h \ + ./rrc_out/TimeAlignmentTimer.h \ + ./rrc_out/TCI-State.h \ + ./rrc_out/QCL-Info.h \ + ./rrc_out/TCI-StateId.h \ + ./rrc_out/TDD-UL-DL-ConfigCommon.h \ + ./rrc_out/TDD-UL-DL-Pattern.h \ + ./rrc_out/TDD-UL-DL-ConfigDedicated.h \ + ./rrc_out/TDD-UL-DL-SlotConfig.h \ + ./rrc_out/TDD-UL-DL-SlotIndex.h \ + ./rrc_out/TrackingAreaCode.h \ + ./rrc_out/T-Reselection.h \ + ./rrc_out/TimeToTrigger.h \ + ./rrc_out/UAC-BarringInfoSetIndex.h \ + ./rrc_out/UAC-BarringInfoSetList.h \ + ./rrc_out/UAC-BarringInfoSet.h \ + ./rrc_out/UAC-BarringPerCatList.h \ + ./rrc_out/UAC-BarringPerCat.h \ + ./rrc_out/UAC-BarringPerPLMN-List.h \ + ./rrc_out/UAC-BarringPerPLMN.h \ + ./rrc_out/UE-TimersAndConstants.h \ + ./rrc_out/UplinkConfigCommon.h \ + ./rrc_out/UplinkConfigCommonSIB.h \ + ./rrc_out/UplinkTxDirectCurrentList.h \ + ./rrc_out/UplinkTxDirectCurrentCell.h \ + ./rrc_out/UplinkTxDirectCurrentBWP.h \ + ./rrc_out/ZP-CSI-RS-Resource.h \ + ./rrc_out/ZP-CSI-RS-ResourceId.h \ + ./rrc_out/ZP-CSI-RS-ResourceSet.h \ + ./rrc_out/ZP-CSI-RS-ResourceSetId.h \ + ./rrc_out/AccessStratumRelease.h \ + ./rrc_out/BandCombinationList.h \ + ./rrc_out/BandCombination.h \ + ./rrc_out/BandParameters.h \ + ./rrc_out/CA-BandwidthClassEUTRA.h \ + ./rrc_out/CA-BandwidthClassNR.h \ + ./rrc_out/CA-ParametersEUTRA.h \ + ./rrc_out/CA-ParametersNR.h \ + ./rrc_out/FeatureSetCombination.h \ + ./rrc_out/FeatureSetsPerBand.h \ + ./rrc_out/FeatureSet.h \ + ./rrc_out/FeatureSetCombinationId.h \ + ./rrc_out/FeatureSetDownlink.h \ + ./rrc_out/CSI-RS-IM-ReceptionForFeedback.h \ + ./rrc_out/TypeI-SinglePanelCodebook.h \ + ./rrc_out/TypeI-MultiPanelCodebook.h \ + ./rrc_out/TypeII-Codebook.h \ + ./rrc_out/TypeII-CodebookPortSelection.h \ + ./rrc_out/FeatureSetDownlinkId.h \ + ./rrc_out/FeatureSetDownlinkPerCC.h \ + ./rrc_out/FeatureSetDownlinkPerCC-Id.h \ + ./rrc_out/FeatureSetEUTRA-DownlinkId.h \ + ./rrc_out/FeatureSetEUTRA-UplinkId.h \ + ./rrc_out/FeatureSets.h \ + ./rrc_out/FeatureSetUplink.h \ + ./rrc_out/CSI-ReportFramework.h \ + ./rrc_out/SRS-Resources.h \ + ./rrc_out/FeatureSetUplinkId.h \ + ./rrc_out/FeatureSetUplinkPerCC.h \ + ./rrc_out/FeatureSetUplinkPerCC-Id.h \ + ./rrc_out/FreqBandIndicatorEUTRA.h \ + ./rrc_out/FreqBandList.h \ + ./rrc_out/FreqBandInformation.h \ + ./rrc_out/FreqBandInformationEUTRA.h \ + ./rrc_out/FreqBandInformationNR.h \ + ./rrc_out/AggregatedBandwidth.h \ + ./rrc_out/FreqSeparationClass.h \ + ./rrc_out/InterRAT-Parameters.h \ + ./rrc_out/EUTRA-Parameters.h \ + ./rrc_out/EUTRA-ParametersCommon.h \ + ./rrc_out/EUTRA-ParametersXDD-Diff.h \ + ./rrc_out/MAC-Parameters.h \ + ./rrc_out/MAC-ParametersCommon.h \ + ./rrc_out/MAC-ParametersXDD-Diff.h \ + ./rrc_out/MeasAndMobParameters.h \ + ./rrc_out/MeasAndMobParametersCommon.h \ + ./rrc_out/MeasAndMobParametersXDD-Diff.h \ + ./rrc_out/MeasAndMobParametersFRX-Diff.h \ + ./rrc_out/MeasAndMobParametersMRDC.h \ + ./rrc_out/MeasAndMobParametersMRDC-Common.h \ + ./rrc_out/MeasAndMobParametersMRDC-XDD-Diff.h \ + ./rrc_out/MeasAndMobParametersMRDC-FRX-Diff.h \ + ./rrc_out/MIMO-LayersDL.h \ + ./rrc_out/MIMO-LayersUL.h \ + ./rrc_out/MIMO-ParametersPerBand.h \ + ./rrc_out/BeamManagementSSB-CSI-RS.h \ + ./rrc_out/CSI-RS-ForTracking.h \ + ./rrc_out/PTRS-DensityRecommendationDL.h \ + ./rrc_out/PTRS-DensityRecommendationUL.h \ + ./rrc_out/SRS-TxSwitch.h \ + ./rrc_out/ModulationOrder.h \ + ./rrc_out/MRDC-Parameters.h \ + ./rrc_out/PDCP-Parameters.h \ + ./rrc_out/PDCP-ParametersMRDC.h \ + ./rrc_out/Phy-Parameters.h \ + ./rrc_out/Phy-ParametersCommon.h \ + ./rrc_out/Phy-ParametersXDD-Diff.h \ + ./rrc_out/Phy-ParametersFRX-Diff.h \ + ./rrc_out/Phy-ParametersFR1.h \ + ./rrc_out/Phy-ParametersFR2.h \ + ./rrc_out/Phy-ParametersMRDC.h \ + ./rrc_out/NAICS-Capability-Entry.h \ + ./rrc_out/RAT-Type.h \ + ./rrc_out/RF-Parameters.h \ + ./rrc_out/BandNR.h \ + ./rrc_out/RF-ParametersMRDC.h \ + ./rrc_out/RLC-Parameters.h \ + ./rrc_out/SupportedBandwidth.h \ + ./rrc_out/UE-CapabilityRAT-ContainerList.h \ + ./rrc_out/UE-CapabilityRAT-Container.h \ + ./rrc_out/UE-CapabilityRAT-RequestList.h \ + ./rrc_out/UE-CapabilityRAT-Request.h \ + ./rrc_out/UE-CapabilityRequestFilterNR.h \ + ./rrc_out/UE-MRDC-Capability.h \ + ./rrc_out/UE-MRDC-CapabilityAddXDD-Mode.h \ + ./rrc_out/UE-MRDC-CapabilityAddFRX-Mode.h \ + ./rrc_out/GeneralParametersMRDC-XDD-Diff.h \ + ./rrc_out/UE-NR-Capability.h \ + ./rrc_out/UE-NR-CapabilityAddXDD-Mode.h \ + ./rrc_out/UE-NR-CapabilityAddFRX-Mode.h \ + ./rrc_out/EUTRA-AllowedMeasBandwidth.h \ + ./rrc_out/EUTRA-MBSFN-SubframeConfigList.h \ + ./rrc_out/EUTRA-MBSFN-SubframeConfig.h \ + ./rrc_out/EUTRA-MultiBandInfoList.h \ + ./rrc_out/EUTRA-MultiBandInfo.h \ + ./rrc_out/EUTRA-NS-PmaxList.h \ + ./rrc_out/EUTRA-NS-PmaxValue.h \ + ./rrc_out/EUTRA-PhysCellId.h \ + ./rrc_out/EUTRA-PhysCellIdRange.h \ + ./rrc_out/EUTRA-PresenceAntennaPort1.h \ + ./rrc_out/EUTRA-Q-OffsetRange.h \ + ./rrc_out/OtherConfig.h \ + ./rrc_out/RRC-TransactionIdentifier.h \ + ./rrc_out/VarPendingRNA-Update.h \ + ./rrc_out/VarMeasConfig.h \ + ./rrc_out/VarMeasReportList.h \ + ./rrc_out/VarMeasReport.h \ + ./rrc_out/CellsTriggeredList.h \ + ./rrc_out/VarResumeMAC-Input.h \ + ./rrc_out/VarShortMAC-Input.h \ + ./rrc_out/HandoverCommand.h \ + ./rrc_out/HandoverCommand-IEs.h \ + ./rrc_out/HandoverPreparationInformation.h \ + ./rrc_out/HandoverPreparationInformation-IEs.h \ + ./rrc_out/AS-Config.h \ + ./rrc_out/AS-Context.h \ + ./rrc_out/ReestablishmentInfo.h \ + ./rrc_out/ReestabNCellInfoList.h \ + ./rrc_out/ReestabNCellInfo.h \ + ./rrc_out/RRM-Config.h \ + ./rrc_out/CG-Config.h \ + ./rrc_out/CG-Config-IEs.h \ + ./rrc_out/MeasConfigSN.h \ + ./rrc_out/NR-FreqInfo.h \ + ./rrc_out/ConfigRestrictModReqSCG.h \ + ./rrc_out/BandCombinationIndex.h \ + ./rrc_out/BandCombinationInfoSN.h \ + ./rrc_out/FR-InfoList.h \ + ./rrc_out/FR-Info.h \ + ./rrc_out/CandidateServingFreqListNR.h \ + ./rrc_out/CG-ConfigInfo.h \ + ./rrc_out/CG-ConfigInfo-IEs.h \ + ./rrc_out/ConfigRestrictInfoSCG.h \ + ./rrc_out/BandCombinationInfoList.h \ + ./rrc_out/BandCombinationInfo.h \ + ./rrc_out/FeatureSetEntryIndex.h \ + ./rrc_out/DRX-Info.h \ + ./rrc_out/MeasConfigMN.h \ + ./rrc_out/MRDC-AssistanceInfo.h \ + ./rrc_out/AffectedCarrierFreqCombInfoMRDC.h \ + ./rrc_out/VictimSystemType.h \ + ./rrc_out/AffectedCarrierFreqCombEUTRA.h \ + ./rrc_out/AffectedCarrierFreqCombNR.h \ + ./rrc_out/MeasurementTimingConfiguration.h \ + ./rrc_out/MeasurementTimingConfiguration-IEs.h \ + ./rrc_out/MeasTimingList.h \ + ./rrc_out/MeasTiming.h \ + ./rrc_out/UERadioPagingInformation.h \ + ./rrc_out/UERadioPagingInformation-IEs.h \ + ./rrc_out/UERadioAccessCapabilityInformation.h \ + ./rrc_out/UERadioAccessCapabilityInformation-IEs.h + +ASN_MODULE_HDRS+=./rrc_out/OPEN_TYPE.h +ASN_MODULE_SRCS+=./rrc_out/OPEN_TYPE.c +ASN_MODULE_HDRS+=./rrc_out/constr_CHOICE.h +ASN_MODULE_HDRS+=./rrc_out/BOOLEAN.h +ASN_MODULE_SRCS+=./rrc_out/BOOLEAN.c +ASN_MODULE_HDRS+=./rrc_out/INTEGER.h +ASN_MODULE_SRCS+=./rrc_out/INTEGER.c +ASN_MODULE_HDRS+=./rrc_out/NULL.h +ASN_MODULE_SRCS+=./rrc_out/NULL.c +ASN_MODULE_HDRS+=./rrc_out/NativeEnumerated.h +ASN_MODULE_SRCS+=./rrc_out/NativeEnumerated.c +ASN_MODULE_HDRS+=./rrc_out/NativeInteger.h +ASN_MODULE_SRCS+=./rrc_out/NativeInteger.c +ASN_MODULE_HDRS+=./rrc_out/asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./rrc_out/asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./rrc_out/asn_SET_OF.h +ASN_MODULE_SRCS+=./rrc_out/asn_SET_OF.c +ASN_MODULE_SRCS+=./rrc_out/constr_CHOICE.c +ASN_MODULE_HDRS+=./rrc_out/constr_SEQUENCE.h +ASN_MODULE_SRCS+=./rrc_out/constr_SEQUENCE.c +ASN_MODULE_HDRS+=./rrc_out/constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./rrc_out/constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./rrc_out/constr_SET_OF.h +ASN_MODULE_SRCS+=./rrc_out/constr_SET_OF.c +ASN_MODULE_HDRS+=./rrc_out/asn_application.h +ASN_MODULE_SRCS+=./rrc_out/asn_application.c +ASN_MODULE_HDRS+=./rrc_out/asn_ioc.h +ASN_MODULE_HDRS+=./rrc_out/asn_system.h +ASN_MODULE_HDRS+=./rrc_out/asn_codecs.h +ASN_MODULE_HDRS+=./rrc_out/asn_internal.h +ASN_MODULE_SRCS+=./rrc_out/asn_internal.c +ASN_MODULE_HDRS+=./rrc_out/asn_random_fill.h +ASN_MODULE_SRCS+=./rrc_out/asn_random_fill.c +ASN_MODULE_HDRS+=./rrc_out/asn_bit_data.h +ASN_MODULE_SRCS+=./rrc_out/asn_bit_data.c +ASN_MODULE_HDRS+=./rrc_out/OCTET_STRING.h +ASN_MODULE_SRCS+=./rrc_out/OCTET_STRING.c +ASN_MODULE_HDRS+=./rrc_out/BIT_STRING.h +ASN_MODULE_SRCS+=./rrc_out/BIT_STRING.c +ASN_MODULE_SRCS+=./rrc_out/asn_codecs_prim.c +ASN_MODULE_HDRS+=./rrc_out/asn_codecs_prim.h +ASN_MODULE_HDRS+=./rrc_out/ber_tlv_length.h +ASN_MODULE_SRCS+=./rrc_out/ber_tlv_length.c +ASN_MODULE_HDRS+=./rrc_out/ber_tlv_tag.h +ASN_MODULE_SRCS+=./rrc_out/ber_tlv_tag.c +ASN_MODULE_HDRS+=./rrc_out/ber_decoder.h +ASN_MODULE_SRCS+=./rrc_out/ber_decoder.c +ASN_MODULE_HDRS+=./rrc_out/der_encoder.h +ASN_MODULE_SRCS+=./rrc_out/der_encoder.c +ASN_MODULE_HDRS+=./rrc_out/constr_TYPE.h +ASN_MODULE_SRCS+=./rrc_out/constr_TYPE.c +ASN_MODULE_HDRS+=./rrc_out/constraints.h +ASN_MODULE_SRCS+=./rrc_out/constraints.c +ASN_MODULE_HDRS+=./rrc_out/xer_support.h +ASN_MODULE_SRCS+=./rrc_out/xer_support.c +ASN_MODULE_HDRS+=./rrc_out/xer_decoder.h +ASN_MODULE_SRCS+=./rrc_out/xer_decoder.c +ASN_MODULE_HDRS+=./rrc_out/xer_encoder.h +ASN_MODULE_SRCS+=./rrc_out/xer_encoder.c +ASN_MODULE_HDRS+=./rrc_out/per_support.h +ASN_MODULE_SRCS+=./rrc_out/per_support.c +ASN_MODULE_HDRS+=./rrc_out/per_decoder.h +ASN_MODULE_SRCS+=./rrc_out/per_decoder.c +ASN_MODULE_HDRS+=./rrc_out/per_encoder.h +ASN_MODULE_SRCS+=./rrc_out/per_encoder.c +ASN_MODULE_HDRS+=./rrc_out/per_opentype.h +ASN_MODULE_SRCS+=./rrc_out/per_opentype.c +ASN_MODULE_HDRS+=./rrc_out/oer_decoder.h +ASN_MODULE_HDRS+=./rrc_out/oer_encoder.h +ASN_MODULE_HDRS+=./rrc_out/oer_support.h +ASN_MODULE_SRCS+=./rrc_out/oer_decoder.c +ASN_MODULE_SRCS+=./rrc_out/oer_encoder.c +ASN_MODULE_SRCS+=./rrc_out/oer_support.c +ASN_MODULE_SRCS+=./rrc_out/OPEN_TYPE_oer.c +ASN_MODULE_SRCS+=./rrc_out/INTEGER_oer.c +ASN_MODULE_SRCS+=./rrc_out/BIT_STRING_oer.c +ASN_MODULE_SRCS+=./rrc_out/OCTET_STRING_oer.c +ASN_MODULE_SRCS+=./rrc_out/NativeInteger_oer.c +ASN_MODULE_SRCS+=./rrc_out/NativeEnumerated_oer.c +ASN_MODULE_SRCS+=./rrc_out/constr_CHOICE_oer.c +ASN_MODULE_SRCS+=./rrc_out/constr_SEQUENCE_oer.c +ASN_MODULE_SRCS+=./rrc_out/constr_SET_OF_oer.c + +ASN_MODULE_CFLAGS= + +lib_LTLIBRARIES+=libasncodec.la +libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) +libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./rrc_out/ +libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) +libasncodec_la_LDFLAGS=-lm diff --git a/src/codec_utils/RRC/MasterKeyUpdate.c b/src/codec_utils/RRC/MasterKeyUpdate.c new file mode 100644 index 000000000..b51090b03 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MasterKeyUpdate.h" + +asn_TYPE_member_t asn_MBR_MasterKeyUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 MasterKeyUpdate, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, + { ATF_POINTER, 1, offsetof(struct 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_MasterKeyUpdate_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MasterKeyUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MasterKeyUpdate_specs_1 = { + sizeof(struct MasterKeyUpdate), + offsetof(struct MasterKeyUpdate, _asn_ctx), + asn_MAP_MasterKeyUpdate_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MasterKeyUpdate_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MasterKeyUpdate = { + "MasterKeyUpdate", + "MasterKeyUpdate", + &asn_OP_SEQUENCE, + asn_DEF_MasterKeyUpdate_tags_1, + sizeof(asn_DEF_MasterKeyUpdate_tags_1) + /sizeof(asn_DEF_MasterKeyUpdate_tags_1[0]), /* 1 */ + asn_DEF_MasterKeyUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_MasterKeyUpdate_tags_1) + /sizeof(asn_DEF_MasterKeyUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MasterKeyUpdate_1, + 3, /* Elements count */ + &asn_SPC_MasterKeyUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MasterKeyUpdate.h b/src/codec_utils/RRC/MasterKeyUpdate.h new file mode 100644 index 000000000..5df8833ee --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MasterKeyUpdate_H_ +#define _MasterKeyUpdate_H_ + + +#include + +/* Including external dependencies */ +#include +#include "NextHopChainingCount.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MasterKeyUpdate */ +typedef struct MasterKeyUpdate { + BOOLEAN_t keySetChangeIndicator; + 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; +} MasterKeyUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MasterKeyUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_MasterKeyUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_MasterKeyUpdate_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MasterKeyUpdate_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParameters.c b/src/codec_utils/RRC/MeasAndMobParameters.c new file mode 100644 index 000000000..16f7abd23 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasAndMobParameters.h" + +#include "MeasAndMobParametersCommon.h" +#include "MeasAndMobParametersXDD-Diff.h" +#include "MeasAndMobParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_MeasAndMobParameters_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasAndMobParameters, measAndMobParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersCommon" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParameters, measAndMobParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersXDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParameters, measAndMobParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersFRX-Diff" + }, +}; +static const int asn_MAP_MeasAndMobParameters_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasAndMobParameters_specs_1 = { + sizeof(struct MeasAndMobParameters), + offsetof(struct MeasAndMobParameters, _asn_ctx), + asn_MAP_MeasAndMobParameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasAndMobParameters_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParameters = { + "MeasAndMobParameters", + "MeasAndMobParameters", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParameters_tags_1, + sizeof(asn_DEF_MeasAndMobParameters_tags_1) + /sizeof(asn_DEF_MeasAndMobParameters_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParameters_tags_1) + /sizeof(asn_DEF_MeasAndMobParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParameters_1, + 3, /* Elements count */ + &asn_SPC_MeasAndMobParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParameters.h b/src/codec_utils/RRC/MeasAndMobParameters.h new file mode 100644 index 000000000..f11750666 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParameters_H_ +#define _MeasAndMobParameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasAndMobParametersCommon; +struct MeasAndMobParametersXDD_Diff; +struct MeasAndMobParametersFRX_Diff; + +/* MeasAndMobParameters */ +typedef struct MeasAndMobParameters { + struct MeasAndMobParametersCommon *measAndMobParametersCommon; /* OPTIONAL */ + struct MeasAndMobParametersXDD_Diff *measAndMobParametersXDD_Diff; /* OPTIONAL */ + struct MeasAndMobParametersFRX_Diff *measAndMobParametersFRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParameters_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersCommon.c b/src/codec_utils/RRC/MeasAndMobParametersCommon.c new file mode 100644 index 000000000..71b788b28 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersCommon.c @@ -0,0 +1,478 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static int +memb_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_oer_constraints_t asn_OER_type_ssb_RLM_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ssb_AndCSI_RS_RLM_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eventB_MeasAndReport_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_handoverFDD_TDD_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eutra_CGI_Reporting_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nr_CGI_Reporting_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_supportedGapPattern_constr_2 CC_NOTUSED = { + { 0, 0 }, + 22 /* (SIZE(22..22)) */}; +static asn_per_constraints_t asn_PER_memb_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_ssb_RLM_value2enum_3[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ssb_RLM_enum2value_3[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ssb_RLM_specs_3 = { + asn_MAP_ssb_RLM_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_RLM_3 = { + "ssb-RLM", + "ssb-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_RLM_tags_3, + sizeof(asn_DEF_ssb_RLM_tags_3) + /sizeof(asn_DEF_ssb_RLM_tags_3[0]) - 1, /* 1 */ + asn_DEF_ssb_RLM_tags_3, /* Same as above */ + sizeof(asn_DEF_ssb_RLM_tags_3) + /sizeof(asn_DEF_ssb_RLM_tags_3[0]), /* 2 */ + { &asn_OER_type_ssb_RLM_constr_3, &asn_PER_type_ssb_RLM_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_RLM_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ssb_AndCSI_RS_RLM_value2enum_5[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ssb_AndCSI_RS_RLM_enum2value_5[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ssb_AndCSI_RS_RLM_specs_5 = { + asn_MAP_ssb_AndCSI_RS_RLM_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_AndCSI_RS_RLM_5 = { + "ssb-AndCSI-RS-RLM", + "ssb-AndCSI-RS-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_AndCSI_RS_RLM_tags_5, + sizeof(asn_DEF_ssb_AndCSI_RS_RLM_tags_5) + /sizeof(asn_DEF_ssb_AndCSI_RS_RLM_tags_5[0]) - 1, /* 1 */ + asn_DEF_ssb_AndCSI_RS_RLM_tags_5, /* Same as above */ + sizeof(asn_DEF_ssb_AndCSI_RS_RLM_tags_5) + /sizeof(asn_DEF_ssb_AndCSI_RS_RLM_tags_5[0]), /* 2 */ + { &asn_OER_type_ssb_AndCSI_RS_RLM_constr_5, &asn_PER_type_ssb_AndCSI_RS_RLM_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_AndCSI_RS_RLM_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_eventB_MeasAndReport_value2enum_9[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_eventB_MeasAndReport_enum2value_9[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_eventB_MeasAndReport_specs_9 = { + asn_MAP_eventB_MeasAndReport_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_eventB_MeasAndReport_9 = { + "eventB-MeasAndReport", + "eventB-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_eventB_MeasAndReport_tags_9, + sizeof(asn_DEF_eventB_MeasAndReport_tags_9) + /sizeof(asn_DEF_eventB_MeasAndReport_tags_9[0]) - 1, /* 1 */ + asn_DEF_eventB_MeasAndReport_tags_9, /* Same as above */ + sizeof(asn_DEF_eventB_MeasAndReport_tags_9) + /sizeof(asn_DEF_eventB_MeasAndReport_tags_9[0]), /* 2 */ + { &asn_OER_type_eventB_MeasAndReport_constr_9, &asn_PER_type_eventB_MeasAndReport_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_eventB_MeasAndReport_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handoverFDD_TDD_value2enum_11[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handoverFDD_TDD_enum2value_11[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handoverFDD_TDD_specs_11 = { + asn_MAP_handoverFDD_TDD_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_handoverFDD_TDD_11 = { + "handoverFDD-TDD", + "handoverFDD-TDD", + &asn_OP_NativeEnumerated, + asn_DEF_handoverFDD_TDD_tags_11, + sizeof(asn_DEF_handoverFDD_TDD_tags_11) + /sizeof(asn_DEF_handoverFDD_TDD_tags_11[0]) - 1, /* 1 */ + asn_DEF_handoverFDD_TDD_tags_11, /* Same as above */ + sizeof(asn_DEF_handoverFDD_TDD_tags_11) + /sizeof(asn_DEF_handoverFDD_TDD_tags_11[0]), /* 2 */ + { &asn_OER_type_handoverFDD_TDD_constr_11, &asn_PER_type_handoverFDD_TDD_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handoverFDD_TDD_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_eutra_CGI_Reporting_value2enum_13[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_eutra_CGI_Reporting_enum2value_13[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_eutra_CGI_Reporting_specs_13 = { + asn_MAP_eutra_CGI_Reporting_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_eutra_CGI_Reporting_13 = { + "eutra-CGI-Reporting", + "eutra-CGI-Reporting", + &asn_OP_NativeEnumerated, + asn_DEF_eutra_CGI_Reporting_tags_13, + sizeof(asn_DEF_eutra_CGI_Reporting_tags_13) + /sizeof(asn_DEF_eutra_CGI_Reporting_tags_13[0]) - 1, /* 1 */ + asn_DEF_eutra_CGI_Reporting_tags_13, /* Same as above */ + sizeof(asn_DEF_eutra_CGI_Reporting_tags_13) + /sizeof(asn_DEF_eutra_CGI_Reporting_tags_13[0]), /* 2 */ + { &asn_OER_type_eutra_CGI_Reporting_constr_13, &asn_PER_type_eutra_CGI_Reporting_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_eutra_CGI_Reporting_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nr_CGI_Reporting_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_nr_CGI_Reporting_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nr_CGI_Reporting_specs_15 = { + asn_MAP_nr_CGI_Reporting_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nr_CGI_Reporting_15 = { + "nr-CGI-Reporting", + "nr-CGI-Reporting", + &asn_OP_NativeEnumerated, + asn_DEF_nr_CGI_Reporting_tags_15, + sizeof(asn_DEF_nr_CGI_Reporting_tags_15) + /sizeof(asn_DEF_nr_CGI_Reporting_tags_15[0]) - 1, /* 1 */ + asn_DEF_nr_CGI_Reporting_tags_15, /* Same as above */ + sizeof(asn_DEF_nr_CGI_Reporting_tags_15) + /sizeof(asn_DEF_nr_CGI_Reporting_tags_15[0]), /* 2 */ + { &asn_OER_type_nr_CGI_Reporting_constr_15, &asn_PER_type_nr_CGI_Reporting_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nr_CGI_Reporting_specs_15 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_8[] = { + { ATF_POINTER, 4, offsetof(struct MeasAndMobParametersCommon__ext1, eventB_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_eventB_MeasAndReport_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventB-MeasAndReport" + }, + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersCommon__ext1, handoverFDD_TDD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handoverFDD_TDD_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverFDD-TDD" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersCommon__ext1, eutra_CGI_Reporting), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_eutra_CGI_Reporting_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-CGI-Reporting" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersCommon__ext1, nr_CGI_Reporting), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nr_CGI_Reporting_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-CGI-Reporting" + }, +}; +static const int asn_MAP_ext1_oms_8[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ext1_specs_8 = { + sizeof(struct MeasAndMobParametersCommon__ext1), + offsetof(struct MeasAndMobParametersCommon__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_8, + 4, /* Count of tags in the map */ + asn_MAP_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_ext1_8 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_8, + sizeof(asn_DEF_ext1_tags_8) + /sizeof(asn_DEF_ext1_tags_8[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_8, /* Same as above */ + sizeof(asn_DEF_ext1_tags_8) + /sizeof(asn_DEF_ext1_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_8, + 4, /* Elements count */ + &asn_SPC_ext1_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct MeasAndMobParametersCommon, supportedGapPattern), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_supportedGapPattern_constr_2, &asn_PER_memb_supportedGapPattern_constr_2, memb_supportedGapPattern_constraint_1 }, + 0, 0, /* No default value */ + "supportedGapPattern" + }, + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersCommon, ssb_RLM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_RLM_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RLM" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersCommon, ssb_AndCSI_RS_RLM), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_AndCSI_RS_RLM_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-AndCSI-RS-RLM" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasAndMobParametersCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersCommon_specs_1 = { + sizeof(struct MeasAndMobParametersCommon), + offsetof(struct MeasAndMobParametersCommon, _asn_ctx), + asn_MAP_MeasAndMobParametersCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersCommon_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersCommon = { + "MeasAndMobParametersCommon", + "MeasAndMobParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersCommon_tags_1, + sizeof(asn_DEF_MeasAndMobParametersCommon_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersCommon_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersCommon_1, + 4, /* Elements count */ + &asn_SPC_MeasAndMobParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersCommon.h b/src/codec_utils/RRC/MeasAndMobParametersCommon.h new file mode 100644 index 000000000..de5bc40e6 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersCommon.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersCommon_H_ +#define _MeasAndMobParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersCommon__ssb_RLM { + MeasAndMobParametersCommon__ssb_RLM_supported = 0 +} e_MeasAndMobParametersCommon__ssb_RLM; +typedef enum MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM { + MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM_supported = 0 +} e_MeasAndMobParametersCommon__ssb_AndCSI_RS_RLM; +typedef enum MeasAndMobParametersCommon__ext1__eventB_MeasAndReport { + MeasAndMobParametersCommon__ext1__eventB_MeasAndReport_supported = 0 +} e_MeasAndMobParametersCommon__ext1__eventB_MeasAndReport; +typedef enum MeasAndMobParametersCommon__ext1__handoverFDD_TDD { + MeasAndMobParametersCommon__ext1__handoverFDD_TDD_supported = 0 +} e_MeasAndMobParametersCommon__ext1__handoverFDD_TDD; +typedef enum MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting { + MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting_supported = 0 +} e_MeasAndMobParametersCommon__ext1__eutra_CGI_Reporting; +typedef enum MeasAndMobParametersCommon__ext1__nr_CGI_Reporting { + MeasAndMobParametersCommon__ext1__nr_CGI_Reporting_supported = 0 +} e_MeasAndMobParametersCommon__ext1__nr_CGI_Reporting; + +/* MeasAndMobParametersCommon */ +typedef struct 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 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; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_RLM_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_AndCSI_RS_RLM_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_eventB_MeasAndReport_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handoverFDD_TDD_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_eutra_CGI_Reporting_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nr_CGI_Reporting_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.c b/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.c new file mode 100644 index 000000000..041f49624 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.c @@ -0,0 +1,543 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_ss_SINR_Meas_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_RSRP_AndRSRQ_MeasWithSSB_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_RSRP_AndRSRQ_MeasWithoutSSB_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_SINR_Meas_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_RS_RLM_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_handoverInterF_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_handoverLTE_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_handoverLTE_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_oer_constraints_t asn_OER_type_handover_eLTE_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_handover_eLTE_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 const asn_INTEGER_enum_map_t asn_MAP_ss_SINR_Meas_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ss_SINR_Meas_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ss_SINR_Meas_specs_2 = { + asn_MAP_ss_SINR_Meas_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ss_SINR_Meas_2 = { + "ss-SINR-Meas", + "ss-SINR-Meas", + &asn_OP_NativeEnumerated, + asn_DEF_ss_SINR_Meas_tags_2, + sizeof(asn_DEF_ss_SINR_Meas_tags_2) + /sizeof(asn_DEF_ss_SINR_Meas_tags_2[0]) - 1, /* 1 */ + asn_DEF_ss_SINR_Meas_tags_2, /* Same as above */ + sizeof(asn_DEF_ss_SINR_Meas_tags_2) + /sizeof(asn_DEF_ss_SINR_Meas_tags_2[0]), /* 2 */ + { &asn_OER_type_ss_SINR_Meas_constr_2, &asn_PER_type_ss_SINR_Meas_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ss_SINR_Meas_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_RSRP_AndRSRQ_MeasWithSSB_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_RSRP_AndRSRQ_MeasWithSSB_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_RSRP_AndRSRQ_MeasWithSSB_specs_4 = { + asn_MAP_csi_RSRP_AndRSRQ_MeasWithSSB_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_RSRP_AndRSRQ_MeasWithSSB_4 = { + "csi-RSRP-AndRSRQ-MeasWithSSB", + "csi-RSRP-AndRSRQ-MeasWithSSB", + &asn_OP_NativeEnumerated, + asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4, + sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4) + /sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4[0]) - 1, /* 1 */ + asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4, /* Same as above */ + sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4) + /sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_tags_4[0]), /* 2 */ + { &asn_OER_type_csi_RSRP_AndRSRQ_MeasWithSSB_constr_4, &asn_PER_type_csi_RSRP_AndRSRQ_MeasWithSSB_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_RSRP_AndRSRQ_MeasWithSSB_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_RSRP_AndRSRQ_MeasWithoutSSB_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_RSRP_AndRSRQ_MeasWithoutSSB_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_RSRP_AndRSRQ_MeasWithoutSSB_specs_6 = { + asn_MAP_csi_RSRP_AndRSRQ_MeasWithoutSSB_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_RSRP_AndRSRQ_MeasWithoutSSB_6 = { + "csi-RSRP-AndRSRQ-MeasWithoutSSB", + "csi-RSRP-AndRSRQ-MeasWithoutSSB", + &asn_OP_NativeEnumerated, + asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6, + sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6) + /sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6[0]) - 1, /* 1 */ + asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6, /* Same as above */ + sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6) + /sizeof(asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_tags_6[0]), /* 2 */ + { &asn_OER_type_csi_RSRP_AndRSRQ_MeasWithoutSSB_constr_6, &asn_PER_type_csi_RSRP_AndRSRQ_MeasWithoutSSB_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_RSRP_AndRSRQ_MeasWithoutSSB_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_SINR_Meas_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_SINR_Meas_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_SINR_Meas_specs_8 = { + asn_MAP_csi_SINR_Meas_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_SINR_Meas_8 = { + "csi-SINR-Meas", + "csi-SINR-Meas", + &asn_OP_NativeEnumerated, + asn_DEF_csi_SINR_Meas_tags_8, + sizeof(asn_DEF_csi_SINR_Meas_tags_8) + /sizeof(asn_DEF_csi_SINR_Meas_tags_8[0]) - 1, /* 1 */ + asn_DEF_csi_SINR_Meas_tags_8, /* Same as above */ + sizeof(asn_DEF_csi_SINR_Meas_tags_8) + /sizeof(asn_DEF_csi_SINR_Meas_tags_8[0]), /* 2 */ + { &asn_OER_type_csi_SINR_Meas_constr_8, &asn_PER_type_csi_SINR_Meas_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_SINR_Meas_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_RS_RLM_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_RS_RLM_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_RS_RLM_specs_10 = { + asn_MAP_csi_RS_RLM_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_RS_RLM_10 = { + "csi-RS-RLM", + "csi-RS-RLM", + &asn_OP_NativeEnumerated, + asn_DEF_csi_RS_RLM_tags_10, + sizeof(asn_DEF_csi_RS_RLM_tags_10) + /sizeof(asn_DEF_csi_RS_RLM_tags_10[0]) - 1, /* 1 */ + asn_DEF_csi_RS_RLM_tags_10, /* Same as above */ + sizeof(asn_DEF_csi_RS_RLM_tags_10) + /sizeof(asn_DEF_csi_RS_RLM_tags_10[0]), /* 2 */ + { &asn_OER_type_csi_RS_RLM_constr_10, &asn_PER_type_csi_RS_RLM_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_RS_RLM_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handoverInterF_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handoverInterF_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handoverInterF_specs_14 = { + asn_MAP_handoverInterF_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_handoverInterF_14 = { + "handoverInterF", + "handoverInterF", + &asn_OP_NativeEnumerated, + asn_DEF_handoverInterF_tags_14, + sizeof(asn_DEF_handoverInterF_tags_14) + /sizeof(asn_DEF_handoverInterF_tags_14[0]) - 1, /* 1 */ + asn_DEF_handoverInterF_tags_14, /* Same as above */ + sizeof(asn_DEF_handoverInterF_tags_14) + /sizeof(asn_DEF_handoverInterF_tags_14[0]), /* 2 */ + { &asn_OER_type_handoverInterF_constr_14, &asn_PER_type_handoverInterF_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handoverInterF_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handoverLTE_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handoverLTE_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handoverLTE_specs_16 = { + asn_MAP_handoverLTE_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_handoverLTE_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_handoverLTE_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_handoverLTE_16 = { + "handoverLTE", + "handoverLTE", + &asn_OP_NativeEnumerated, + asn_DEF_handoverLTE_tags_16, + sizeof(asn_DEF_handoverLTE_tags_16) + /sizeof(asn_DEF_handoverLTE_tags_16[0]) - 1, /* 1 */ + asn_DEF_handoverLTE_tags_16, /* Same as above */ + sizeof(asn_DEF_handoverLTE_tags_16) + /sizeof(asn_DEF_handoverLTE_tags_16[0]), /* 2 */ + { &asn_OER_type_handoverLTE_constr_16, &asn_PER_type_handoverLTE_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handoverLTE_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handover_eLTE_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handover_eLTE_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handover_eLTE_specs_18 = { + asn_MAP_handover_eLTE_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_handover_eLTE_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_handover_eLTE_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_handover_eLTE_18 = { + "handover-eLTE", + "handover-eLTE", + &asn_OP_NativeEnumerated, + asn_DEF_handover_eLTE_tags_18, + sizeof(asn_DEF_handover_eLTE_tags_18) + /sizeof(asn_DEF_handover_eLTE_tags_18[0]) - 1, /* 1 */ + asn_DEF_handover_eLTE_tags_18, /* Same as above */ + sizeof(asn_DEF_handover_eLTE_tags_18) + /sizeof(asn_DEF_handover_eLTE_tags_18[0]), /* 2 */ + { &asn_OER_type_handover_eLTE_constr_18, &asn_PER_type_handover_eLTE_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handover_eLTE_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_13[] = { + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersFRX_Diff__ext1, handoverInterF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handoverInterF_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverInterF" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersFRX_Diff__ext1, handoverLTE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handoverLTE_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersFRX_Diff__ext1, handover_eLTE), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handover_eLTE_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handover-eLTE" + }, +}; +static const int asn_MAP_ext1_oms_13[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_13[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverInterF */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverLTE */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* handover-eLTE */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_13 = { + sizeof(struct MeasAndMobParametersFRX_Diff__ext1), + offsetof(struct MeasAndMobParametersFRX_Diff__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_13, + 3, /* Count of tags in the map */ + asn_MAP_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_ext1_13 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_13, + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_13, /* Same as above */ + sizeof(asn_DEF_ext1_tags_13) + /sizeof(asn_DEF_ext1_tags_13[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_13, + 3, /* Elements count */ + &asn_SPC_ext1_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersFRX_Diff_1[] = { + { ATF_POINTER, 6, offsetof(struct MeasAndMobParametersFRX_Diff, ss_SINR_Meas), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ss_SINR_Meas_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-SINR-Meas" + }, + { ATF_POINTER, 5, offsetof(struct MeasAndMobParametersFRX_Diff, csi_RSRP_AndRSRQ_MeasWithSSB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP-AndRSRQ-MeasWithSSB" + }, + { ATF_POINTER, 4, offsetof(struct MeasAndMobParametersFRX_Diff, csi_RSRP_AndRSRQ_MeasWithoutSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP-AndRSRQ-MeasWithoutSSB" + }, + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersFRX_Diff, csi_SINR_Meas), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_SINR_Meas_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-SINR-Meas" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersFRX_Diff, csi_RS_RLM), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_RS_RLM_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-RLM" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersFRX_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ext1_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasAndMobParametersFRX_Diff_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersFRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersFRX_Diff_specs_1 = { + sizeof(struct MeasAndMobParametersFRX_Diff), + offsetof(struct MeasAndMobParametersFRX_Diff, _asn_ctx), + asn_MAP_MeasAndMobParametersFRX_Diff_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersFRX_Diff_oms_1, /* Optional members */ + 5, 1, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersFRX_Diff = { + "MeasAndMobParametersFRX-Diff", + "MeasAndMobParametersFRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersFRX_Diff_tags_1, + sizeof(asn_DEF_MeasAndMobParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersFRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersFRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersFRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersFRX_Diff_1, + 6, /* Elements count */ + &asn_SPC_MeasAndMobParametersFRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.h b/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.h new file mode 100644 index 000000000..71cfb3be6 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersFRX-Diff.h @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersFRX_Diff_H_ +#define _MeasAndMobParametersFRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersFRX_Diff__ss_SINR_Meas { + MeasAndMobParametersFRX_Diff__ss_SINR_Meas_supported = 0 +} e_MeasAndMobParametersFRX_Diff__ss_SINR_Meas; +typedef enum MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB { + MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB_supported = 0 +} e_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithSSB; +typedef enum MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB { + MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB_supported = 0 +} e_MeasAndMobParametersFRX_Diff__csi_RSRP_AndRSRQ_MeasWithoutSSB; +typedef enum MeasAndMobParametersFRX_Diff__csi_SINR_Meas { + MeasAndMobParametersFRX_Diff__csi_SINR_Meas_supported = 0 +} e_MeasAndMobParametersFRX_Diff__csi_SINR_Meas; +typedef enum MeasAndMobParametersFRX_Diff__csi_RS_RLM { + MeasAndMobParametersFRX_Diff__csi_RS_RLM_supported = 0 +} e_MeasAndMobParametersFRX_Diff__csi_RS_RLM; +typedef enum MeasAndMobParametersFRX_Diff__ext1__handoverInterF { + MeasAndMobParametersFRX_Diff__ext1__handoverInterF_supported = 0 +} e_MeasAndMobParametersFRX_Diff__ext1__handoverInterF; +typedef enum MeasAndMobParametersFRX_Diff__ext1__handoverLTE { + MeasAndMobParametersFRX_Diff__ext1__handoverLTE_supported = 0 +} e_MeasAndMobParametersFRX_Diff__ext1__handoverLTE; +typedef enum MeasAndMobParametersFRX_Diff__ext1__handover_eLTE { + MeasAndMobParametersFRX_Diff__ext1__handover_eLTE_supported = 0 +} e_MeasAndMobParametersFRX_Diff__ext1__handover_eLTE; + +/* MeasAndMobParametersFRX-Diff */ +typedef struct 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 MeasAndMobParametersFRX_Diff__ext1 { + long *handoverInterF; /* OPTIONAL */ + long *handoverLTE; /* OPTIONAL */ + long *handover_eLTE; /* 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; +} MeasAndMobParametersFRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ss_SINR_Meas_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_RSRP_AndRSRQ_MeasWithSSB_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_RSRP_AndRSRQ_MeasWithoutSSB_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_SINR_Meas_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_RS_RLM_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handoverInterF_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handoverLTE_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handover_eLTE_18; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersFRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersFRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersFRX_Diff_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersFRX_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.c b/src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.c new file mode 100644 index 000000000..0d0b2dbc9 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasAndMobParametersMRDC-Common.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_independentGapConfig_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_independentGapConfig_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_independentGapConfig_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_independentGapConfig_specs_2 = { + asn_MAP_independentGapConfig_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_independentGapConfig_2 = { + "independentGapConfig", + "independentGapConfig", + &asn_OP_NativeEnumerated, + asn_DEF_independentGapConfig_tags_2, + sizeof(asn_DEF_independentGapConfig_tags_2) + /sizeof(asn_DEF_independentGapConfig_tags_2[0]) - 1, /* 1 */ + asn_DEF_independentGapConfig_tags_2, /* Same as above */ + sizeof(asn_DEF_independentGapConfig_tags_2) + /sizeof(asn_DEF_independentGapConfig_tags_2[0]), /* 2 */ + { &asn_OER_type_independentGapConfig_constr_2, &asn_PER_type_independentGapConfig_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_independentGapConfig_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_Common_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersMRDC_Common, independentGapConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_independentGapConfig_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "independentGapConfig" + }, +}; +static const int asn_MAP_MeasAndMobParametersMRDC_Common_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersMRDC_Common_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasAndMobParametersMRDC_Common_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* independentGapConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_Common_specs_1 = { + sizeof(struct MeasAndMobParametersMRDC_Common), + offsetof(struct MeasAndMobParametersMRDC_Common, _asn_ctx), + asn_MAP_MeasAndMobParametersMRDC_Common_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersMRDC_Common_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_Common = { + "MeasAndMobParametersMRDC-Common", + "MeasAndMobParametersMRDC-Common", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersMRDC_Common_tags_1, + sizeof(asn_DEF_MeasAndMobParametersMRDC_Common_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_Common_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersMRDC_Common_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersMRDC_Common_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_Common_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersMRDC_Common_1, + 1, /* Elements count */ + &asn_SPC_MeasAndMobParametersMRDC_Common_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.h b/src/codec_utils/RRC/MeasAndMobParametersMRDC-Common.h new file mode 100644 index 000000000..3f6fe054a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersMRDC_Common_H_ +#define _MeasAndMobParametersMRDC_Common_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersMRDC_Common__independentGapConfig { + MeasAndMobParametersMRDC_Common__independentGapConfig_supported = 0 +} e_MeasAndMobParametersMRDC_Common__independentGapConfig; + +/* MeasAndMobParametersMRDC-Common */ +typedef struct MeasAndMobParametersMRDC_Common { + long *independentGapConfig; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParametersMRDC_Common_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_independentGapConfig_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_Common; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_Common_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_Common_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersMRDC_Common_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.c b/src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.c new file mode 100644 index 000000000..9d7856091 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasAndMobParametersMRDC-FRX-Diff.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_simultaneousRxDataSSB_DiffNumerology_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_simultaneousRxDataSSB_DiffNumerology_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_simultaneousRxDataSSB_DiffNumerology_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousRxDataSSB_DiffNumerology_specs_2 = { + asn_MAP_simultaneousRxDataSSB_DiffNumerology_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousRxDataSSB_DiffNumerology_2 = { + "simultaneousRxDataSSB-DiffNumerology", + "simultaneousRxDataSSB-DiffNumerology", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2, + sizeof(asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2) + /sizeof(asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2[0]) - 1, /* 1 */ + asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2, /* Same as above */ + sizeof(asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2) + /sizeof(asn_DEF_simultaneousRxDataSSB_DiffNumerology_tags_2[0]), /* 2 */ + { &asn_OER_type_simultaneousRxDataSSB_DiffNumerology_constr_2, &asn_PER_type_simultaneousRxDataSSB_DiffNumerology_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousRxDataSSB_DiffNumerology_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_FRX_Diff_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersMRDC_FRX_Diff, simultaneousRxDataSSB_DiffNumerology), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousRxDataSSB_DiffNumerology_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousRxDataSSB-DiffNumerology" + }, +}; +static const int asn_MAP_MeasAndMobParametersMRDC_FRX_Diff_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasAndMobParametersMRDC_FRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* simultaneousRxDataSSB-DiffNumerology */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_FRX_Diff_specs_1 = { + sizeof(struct MeasAndMobParametersMRDC_FRX_Diff), + offsetof(struct MeasAndMobParametersMRDC_FRX_Diff, _asn_ctx), + asn_MAP_MeasAndMobParametersMRDC_FRX_Diff_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersMRDC_FRX_Diff_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_FRX_Diff = { + "MeasAndMobParametersMRDC-FRX-Diff", + "MeasAndMobParametersMRDC-FRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1, + sizeof(asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_FRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersMRDC_FRX_Diff_1, + 1, /* Elements count */ + &asn_SPC_MeasAndMobParametersMRDC_FRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.h b/src/codec_utils/RRC/MeasAndMobParametersMRDC-FRX-Diff.h new file mode 100644 index 000000000..2ace5e5b8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersMRDC_FRX_Diff_H_ +#define _MeasAndMobParametersMRDC_FRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology { + MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology_supported = 0 +} e_MeasAndMobParametersMRDC_FRX_Diff__simultaneousRxDataSSB_DiffNumerology; + +/* MeasAndMobParametersMRDC-FRX-Diff */ +typedef struct MeasAndMobParametersMRDC_FRX_Diff { + long *simultaneousRxDataSSB_DiffNumerology; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParametersMRDC_FRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousRxDataSSB_DiffNumerology_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_FRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_FRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_FRX_Diff_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersMRDC_FRX_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.c b/src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.c new file mode 100644 index 000000000..10bcca2fa --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_sftd_MeasPSCell_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sftd_MeasNR_Cell_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_sftd_MeasPSCell_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sftd_MeasPSCell_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sftd_MeasPSCell_specs_2 = { + asn_MAP_sftd_MeasPSCell_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sftd_MeasPSCell_2 = { + "sftd-MeasPSCell", + "sftd-MeasPSCell", + &asn_OP_NativeEnumerated, + asn_DEF_sftd_MeasPSCell_tags_2, + sizeof(asn_DEF_sftd_MeasPSCell_tags_2) + /sizeof(asn_DEF_sftd_MeasPSCell_tags_2[0]) - 1, /* 1 */ + asn_DEF_sftd_MeasPSCell_tags_2, /* Same as above */ + sizeof(asn_DEF_sftd_MeasPSCell_tags_2) + /sizeof(asn_DEF_sftd_MeasPSCell_tags_2[0]), /* 2 */ + { &asn_OER_type_sftd_MeasPSCell_constr_2, &asn_PER_type_sftd_MeasPSCell_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sftd_MeasPSCell_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sftd_MeasNR_Cell_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sftd_MeasNR_Cell_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sftd_MeasNR_Cell_specs_4 = { + asn_MAP_sftd_MeasNR_Cell_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sftd_MeasNR_Cell_4 = { + "sftd-MeasNR-Cell", + "sftd-MeasNR-Cell", + &asn_OP_NativeEnumerated, + asn_DEF_sftd_MeasNR_Cell_tags_4, + sizeof(asn_DEF_sftd_MeasNR_Cell_tags_4) + /sizeof(asn_DEF_sftd_MeasNR_Cell_tags_4[0]) - 1, /* 1 */ + asn_DEF_sftd_MeasNR_Cell_tags_4, /* Same as above */ + sizeof(asn_DEF_sftd_MeasNR_Cell_tags_4) + /sizeof(asn_DEF_sftd_MeasNR_Cell_tags_4[0]), /* 2 */ + { &asn_OER_type_sftd_MeasNR_Cell_constr_4, &asn_PER_type_sftd_MeasNR_Cell_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sftd_MeasNR_Cell_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_XDD_Diff_1[] = { + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersMRDC_XDD_Diff, sftd_MeasPSCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sftd_MeasPSCell_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sftd-MeasPSCell" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersMRDC_XDD_Diff, sftd_MeasNR_Cell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sftd_MeasNR_Cell_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sftd-MeasNR-Cell" + }, +}; +static const int asn_MAP_MeasAndMobParametersMRDC_XDD_Diff_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasAndMobParametersMRDC_XDD_Diff_specs_1 = { + sizeof(struct MeasAndMobParametersMRDC_XDD_Diff), + offsetof(struct MeasAndMobParametersMRDC_XDD_Diff, _asn_ctx), + asn_MAP_MeasAndMobParametersMRDC_XDD_Diff_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersMRDC_XDD_Diff_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_XDD_Diff = { + "MeasAndMobParametersMRDC-XDD-Diff", + "MeasAndMobParametersMRDC-XDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1, + sizeof(asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_XDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersMRDC_XDD_Diff_1, + 2, /* Elements count */ + &asn_SPC_MeasAndMobParametersMRDC_XDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.h b/src/codec_utils/RRC/MeasAndMobParametersMRDC-XDD-Diff.h new file mode 100644 index 000000000..0178b9042 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersMRDC_XDD_Diff_H_ +#define _MeasAndMobParametersMRDC_XDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell { + MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell_supported = 0 +} e_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasPSCell; +typedef enum MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell { + MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell_supported = 0 +} e_MeasAndMobParametersMRDC_XDD_Diff__sftd_MeasNR_Cell; + +/* MeasAndMobParametersMRDC-XDD-Diff */ +typedef struct MeasAndMobParametersMRDC_XDD_Diff { + long *sftd_MeasPSCell; /* OPTIONAL */ + long *sftd_MeasNR_Cell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParametersMRDC_XDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sftd_MeasPSCell_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sftd_MeasNR_Cell_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC_XDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_XDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_XDD_Diff_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersMRDC_XDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC.c b/src/codec_utils/RRC/MeasAndMobParametersMRDC.c new file mode 100644 index 000000000..a2428f982 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasAndMobParametersMRDC.h" + +#include "MeasAndMobParametersMRDC-Common.h" +#include "MeasAndMobParametersMRDC-XDD-Diff.h" +#include "MeasAndMobParametersMRDC-FRX-Diff.h" +asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersMRDC, measAndMobParametersMRDC_Common), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC_Common, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-Common" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersMRDC, measAndMobParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersMRDC, measAndMobParametersMRDC_FRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC_FRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-FRX-Diff" + }, +}; +static const int asn_MAP_MeasAndMobParametersMRDC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasAndMobParametersMRDC_specs_1 = { + sizeof(struct MeasAndMobParametersMRDC), + offsetof(struct MeasAndMobParametersMRDC, _asn_ctx), + asn_MAP_MeasAndMobParametersMRDC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersMRDC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC = { + "MeasAndMobParametersMRDC", + "MeasAndMobParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersMRDC_tags_1, + sizeof(asn_DEF_MeasAndMobParametersMRDC_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersMRDC_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersMRDC_1, + 3, /* Elements count */ + &asn_SPC_MeasAndMobParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersMRDC.h b/src/codec_utils/RRC/MeasAndMobParametersMRDC.h new file mode 100644 index 000000000..6f0be72e6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersMRDC_H_ +#define _MeasAndMobParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasAndMobParametersMRDC_Common; +struct MeasAndMobParametersMRDC_XDD_Diff; +struct MeasAndMobParametersMRDC_FRX_Diff; + +/* MeasAndMobParametersMRDC */ +typedef struct MeasAndMobParametersMRDC { + struct MeasAndMobParametersMRDC_Common *measAndMobParametersMRDC_Common; /* OPTIONAL */ + struct MeasAndMobParametersMRDC_XDD_Diff *measAndMobParametersMRDC_XDD_Diff; /* OPTIONAL */ + struct MeasAndMobParametersMRDC_FRX_Diff *measAndMobParametersMRDC_FRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasAndMobParametersMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersMRDC_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersMRDC_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.c b/src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.c new file mode 100644 index 000000000..a699817c6 --- /dev/null +++ b/src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.c @@ -0,0 +1,372 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_intraAndInterF_MeasAndReport_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eventA_MeasAndReport_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_handoverInterF_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_handoverLTE_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_handoverLTE_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_oer_constraints_t asn_OER_type_handover_eLTE_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_handover_eLTE_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_intraAndInterF_MeasAndReport_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_intraAndInterF_MeasAndReport_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_intraAndInterF_MeasAndReport_specs_2 = { + asn_MAP_intraAndInterF_MeasAndReport_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_intraAndInterF_MeasAndReport_2 = { + "intraAndInterF-MeasAndReport", + "intraAndInterF-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_intraAndInterF_MeasAndReport_tags_2, + sizeof(asn_DEF_intraAndInterF_MeasAndReport_tags_2) + /sizeof(asn_DEF_intraAndInterF_MeasAndReport_tags_2[0]) - 1, /* 1 */ + asn_DEF_intraAndInterF_MeasAndReport_tags_2, /* Same as above */ + sizeof(asn_DEF_intraAndInterF_MeasAndReport_tags_2) + /sizeof(asn_DEF_intraAndInterF_MeasAndReport_tags_2[0]), /* 2 */ + { &asn_OER_type_intraAndInterF_MeasAndReport_constr_2, &asn_PER_type_intraAndInterF_MeasAndReport_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_intraAndInterF_MeasAndReport_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_eventA_MeasAndReport_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_eventA_MeasAndReport_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_eventA_MeasAndReport_specs_4 = { + asn_MAP_eventA_MeasAndReport_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_eventA_MeasAndReport_4 = { + "eventA-MeasAndReport", + "eventA-MeasAndReport", + &asn_OP_NativeEnumerated, + asn_DEF_eventA_MeasAndReport_tags_4, + sizeof(asn_DEF_eventA_MeasAndReport_tags_4) + /sizeof(asn_DEF_eventA_MeasAndReport_tags_4[0]) - 1, /* 1 */ + asn_DEF_eventA_MeasAndReport_tags_4, /* Same as above */ + sizeof(asn_DEF_eventA_MeasAndReport_tags_4) + /sizeof(asn_DEF_eventA_MeasAndReport_tags_4[0]), /* 2 */ + { &asn_OER_type_eventA_MeasAndReport_constr_4, &asn_PER_type_eventA_MeasAndReport_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_eventA_MeasAndReport_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handoverInterF_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handoverInterF_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handoverInterF_specs_8 = { + asn_MAP_handoverInterF_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_handoverInterF_8 = { + "handoverInterF", + "handoverInterF", + &asn_OP_NativeEnumerated, + asn_DEF_handoverInterF_tags_8, + sizeof(asn_DEF_handoverInterF_tags_8) + /sizeof(asn_DEF_handoverInterF_tags_8[0]) - 1, /* 1 */ + asn_DEF_handoverInterF_tags_8, /* Same as above */ + sizeof(asn_DEF_handoverInterF_tags_8) + /sizeof(asn_DEF_handoverInterF_tags_8[0]), /* 2 */ + { &asn_OER_type_handoverInterF_constr_8, &asn_PER_type_handoverInterF_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handoverInterF_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handoverLTE_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handoverLTE_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handoverLTE_specs_10 = { + asn_MAP_handoverLTE_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_handoverLTE_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_handoverLTE_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_handoverLTE_10 = { + "handoverLTE", + "handoverLTE", + &asn_OP_NativeEnumerated, + asn_DEF_handoverLTE_tags_10, + sizeof(asn_DEF_handoverLTE_tags_10) + /sizeof(asn_DEF_handoverLTE_tags_10[0]) - 1, /* 1 */ + asn_DEF_handoverLTE_tags_10, /* Same as above */ + sizeof(asn_DEF_handoverLTE_tags_10) + /sizeof(asn_DEF_handoverLTE_tags_10[0]), /* 2 */ + { &asn_OER_type_handoverLTE_constr_10, &asn_PER_type_handoverLTE_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handoverLTE_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_handover_eLTE_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_handover_eLTE_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_handover_eLTE_specs_12 = { + asn_MAP_handover_eLTE_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_handover_eLTE_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_handover_eLTE_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_handover_eLTE_12 = { + "handover-eLTE", + "handover-eLTE", + &asn_OP_NativeEnumerated, + asn_DEF_handover_eLTE_tags_12, + sizeof(asn_DEF_handover_eLTE_tags_12) + /sizeof(asn_DEF_handover_eLTE_tags_12[0]) - 1, /* 1 */ + asn_DEF_handover_eLTE_tags_12, /* Same as above */ + sizeof(asn_DEF_handover_eLTE_tags_12) + /sizeof(asn_DEF_handover_eLTE_tags_12[0]), /* 2 */ + { &asn_OER_type_handover_eLTE_constr_12, &asn_PER_type_handover_eLTE_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_handover_eLTE_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_7[] = { + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersXDD_Diff__ext1, handoverInterF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handoverInterF_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverInterF" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersXDD_Diff__ext1, handoverLTE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handoverLTE_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handoverLTE" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersXDD_Diff__ext1, handover_eLTE), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_handover_eLTE_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "handover-eLTE" + }, +}; +static const int asn_MAP_ext1_oms_7[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_7[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* handoverInterF */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* handoverLTE */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* handover-eLTE */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_7 = { + sizeof(struct MeasAndMobParametersXDD_Diff__ext1), + offsetof(struct MeasAndMobParametersXDD_Diff__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_7, + 3, /* Count of tags in the map */ + asn_MAP_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_ext1_7 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_7, + sizeof(asn_DEF_ext1_tags_7) + /sizeof(asn_DEF_ext1_tags_7[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_7, /* Same as above */ + sizeof(asn_DEF_ext1_tags_7) + /sizeof(asn_DEF_ext1_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_7, + 3, /* Elements count */ + &asn_SPC_ext1_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasAndMobParametersXDD_Diff_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasAndMobParametersXDD_Diff, intraAndInterF_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_intraAndInterF_MeasAndReport_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraAndInterF-MeasAndReport" + }, + { ATF_POINTER, 2, offsetof(struct MeasAndMobParametersXDD_Diff, eventA_MeasAndReport), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_eventA_MeasAndReport_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventA-MeasAndReport" + }, + { ATF_POINTER, 1, offsetof(struct MeasAndMobParametersXDD_Diff, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasAndMobParametersXDD_Diff_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasAndMobParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasAndMobParametersXDD_Diff_specs_1 = { + sizeof(struct MeasAndMobParametersXDD_Diff), + offsetof(struct MeasAndMobParametersXDD_Diff, _asn_ctx), + asn_MAP_MeasAndMobParametersXDD_Diff_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasAndMobParametersXDD_Diff_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersXDD_Diff = { + "MeasAndMobParametersXDD-Diff", + "MeasAndMobParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_MeasAndMobParametersXDD_Diff_tags_1, + sizeof(asn_DEF_MeasAndMobParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_MeasAndMobParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasAndMobParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_MeasAndMobParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasAndMobParametersXDD_Diff_1, + 3, /* Elements count */ + &asn_SPC_MeasAndMobParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.h b/src/codec_utils/RRC/MeasAndMobParametersXDD-Diff.h new file mode 100644 index 000000000..a713e0357 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasAndMobParametersXDD_Diff_H_ +#define _MeasAndMobParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport { + MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport_supported = 0 +} e_MeasAndMobParametersXDD_Diff__intraAndInterF_MeasAndReport; +typedef enum MeasAndMobParametersXDD_Diff__eventA_MeasAndReport { + MeasAndMobParametersXDD_Diff__eventA_MeasAndReport_supported = 0 +} e_MeasAndMobParametersXDD_Diff__eventA_MeasAndReport; +typedef enum MeasAndMobParametersXDD_Diff__ext1__handoverInterF { + MeasAndMobParametersXDD_Diff__ext1__handoverInterF_supported = 0 +} e_MeasAndMobParametersXDD_Diff__ext1__handoverInterF; +typedef enum MeasAndMobParametersXDD_Diff__ext1__handoverLTE { + MeasAndMobParametersXDD_Diff__ext1__handoverLTE_supported = 0 +} e_MeasAndMobParametersXDD_Diff__ext1__handoverLTE; +typedef enum MeasAndMobParametersXDD_Diff__ext1__handover_eLTE { + MeasAndMobParametersXDD_Diff__ext1__handover_eLTE_supported = 0 +} e_MeasAndMobParametersXDD_Diff__ext1__handover_eLTE; + +/* MeasAndMobParametersXDD-Diff */ +typedef struct MeasAndMobParametersXDD_Diff { + long *intraAndInterF_MeasAndReport; /* OPTIONAL */ + long *eventA_MeasAndReport; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct MeasAndMobParametersXDD_Diff__ext1 { + long *handoverInterF; /* OPTIONAL */ + long *handoverLTE; /* OPTIONAL */ + long *handover_eLTE; /* 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; +} MeasAndMobParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_intraAndInterF_MeasAndReport_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_eventA_MeasAndReport_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handoverInterF_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handoverLTE_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_handover_eLTE_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasAndMobParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasAndMobParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasAndMobParametersXDD_Diff_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasAndMobParametersXDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasConfig.c b/src/codec_utils/RRC/MeasConfig.c new file mode 100644 index 000000000..b9e84ff6b --- /dev/null +++ b/src/codec_utils/RRC/MeasConfig.c @@ -0,0 +1,208 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasConfig.h" + +#include "MeasObjectToRemoveList.h" +#include "MeasObjectToAddModList.h" +#include "ReportConfigToRemoveList.h" +#include "ReportConfigToAddModList.h" +#include "MeasIdToRemoveList.h" +#include "MeasIdToAddModList.h" +#include "QuantityConfig.h" +#include "MeasGapConfig.h" +#include "MeasGapSharingConfig.h" +static asn_oer_constraints_t asn_OER_type_s_MeasureConfig_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_s_MeasureConfig_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasConfig__s_MeasureConfig, choice.ssb_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasConfig__s_MeasureConfig, choice.csi_RSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_s_MeasureConfig_specs_8 = { + sizeof(struct MeasConfig__s_MeasureConfig), + offsetof(struct MeasConfig__s_MeasureConfig, _asn_ctx), + offsetof(struct MeasConfig__s_MeasureConfig, present), + sizeof(((struct MeasConfig__s_MeasureConfig *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_s_MeasureConfig_constr_8, &asn_PER_type_s_MeasureConfig_constr_8, CHOICE_constraint }, + asn_MBR_s_MeasureConfig_8, + 2, /* Elements count */ + &asn_SPC_s_MeasureConfig_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasConfig_1[] = { + { ATF_POINTER, 10, offsetof(struct MeasConfig, measObjectToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectToRemoveList" + }, + { ATF_POINTER, 9, offsetof(struct MeasConfig, measObjectToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectToAddModList" + }, + { ATF_POINTER, 8, offsetof(struct MeasConfig, reportConfigToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigToRemoveList" + }, + { ATF_POINTER, 7, offsetof(struct MeasConfig, reportConfigToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct MeasConfig, measIdToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasIdToRemoveList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdToRemoveList" + }, + { ATF_POINTER, 5, offsetof(struct MeasConfig, measIdToAddModList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasIdToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct MeasConfig, s_MeasureConfig), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_s_MeasureConfig_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-MeasureConfig" + }, + { ATF_POINTER, 3, offsetof(struct MeasConfig, quantityConfig), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QuantityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfig" + }, + { ATF_POINTER, 2, offsetof(struct MeasConfig, measGapConfig), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfig" + }, + { ATF_POINTER, 1, offsetof(struct MeasConfig, measGapSharingConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapSharingConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapSharingConfig" + }, +}; +static const int asn_MAP_MeasConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_MeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasConfig_specs_1 = { + sizeof(struct MeasConfig), + offsetof(struct MeasConfig, _asn_ctx), + asn_MAP_MeasConfig_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_MeasConfig_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasConfig = { + "MeasConfig", + "MeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_MeasConfig_tags_1, + sizeof(asn_DEF_MeasConfig_tags_1) + /sizeof(asn_DEF_MeasConfig_tags_1[0]), /* 1 */ + asn_DEF_MeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasConfig_tags_1) + /sizeof(asn_DEF_MeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasConfig_1, + 10, /* Elements count */ + &asn_SPC_MeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasConfig.h b/src/codec_utils/RRC/MeasConfig.h new file mode 100644 index 000000000..a2b8385ea --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasConfig_H_ +#define _MeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasConfig__s_MeasureConfig_PR { + MeasConfig__s_MeasureConfig_PR_NOTHING, /* No components present */ + MeasConfig__s_MeasureConfig_PR_ssb_RSRP, + MeasConfig__s_MeasureConfig_PR_csi_RSRP +} MeasConfig__s_MeasureConfig_PR; + +/* Forward declarations */ +struct MeasObjectToRemoveList; +struct MeasObjectToAddModList; +struct ReportConfigToRemoveList; +struct ReportConfigToAddModList; +struct MeasIdToRemoveList; +struct MeasIdToAddModList; +struct QuantityConfig; +struct MeasGapConfig; +struct MeasGapSharingConfig; + +/* MeasConfig */ +typedef struct MeasConfig { + struct MeasObjectToRemoveList *measObjectToRemoveList; /* OPTIONAL */ + struct MeasObjectToAddModList *measObjectToAddModList; /* OPTIONAL */ + struct ReportConfigToRemoveList *reportConfigToRemoveList; /* OPTIONAL */ + struct ReportConfigToAddModList *reportConfigToAddModList; /* OPTIONAL */ + struct MeasIdToRemoveList *measIdToRemoveList; /* OPTIONAL */ + struct MeasIdToAddModList *measIdToAddModList; /* OPTIONAL */ + struct MeasConfig__s_MeasureConfig { + MeasConfig__s_MeasureConfig_PR present; + union MeasConfig__s_MeasureConfig_u { + RSRP_Range_t ssb_RSRP; + RSRP_Range_t csi_RSRP; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *s_MeasureConfig; + struct QuantityConfig *quantityConfig; /* OPTIONAL */ + struct MeasGapConfig *measGapConfig; /* OPTIONAL */ + struct MeasGapSharingConfig *measGapSharingConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasConfig_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasConfigMN.c b/src/codec_utils/RRC/MeasConfigMN.c new file mode 100644 index 000000000..97a95e11d --- /dev/null +++ b/src/codec_utils/RRC/MeasConfigMN.c @@ -0,0 +1,259 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasConfigMN.h" + +#include "NR-FreqInfo.h" +#include "GapConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_measuredFrequenciesMN_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_measGapConfig_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_measGapConfig_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_oer_constraints_t asn_OER_type_gapPurpose_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapPurpose_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_oer_constraints_t asn_OER_memb_measuredFrequenciesMN_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_measuredFrequenciesMN_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_FreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_measuredFrequenciesMN_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_measuredFrequenciesMN_specs_2 = { + sizeof(struct MeasConfigMN__measuredFrequenciesMN), + offsetof(struct MeasConfigMN__measuredFrequenciesMN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_measuredFrequenciesMN_2 = { + "measuredFrequenciesMN", + "measuredFrequenciesMN", + &asn_OP_SEQUENCE_OF, + asn_DEF_measuredFrequenciesMN_tags_2, + sizeof(asn_DEF_measuredFrequenciesMN_tags_2) + /sizeof(asn_DEF_measuredFrequenciesMN_tags_2[0]) - 1, /* 1 */ + asn_DEF_measuredFrequenciesMN_tags_2, /* Same as above */ + sizeof(asn_DEF_measuredFrequenciesMN_tags_2) + /sizeof(asn_DEF_measuredFrequenciesMN_tags_2[0]), /* 2 */ + { &asn_OER_type_measuredFrequenciesMN_constr_2, &asn_PER_type_measuredFrequenciesMN_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_measuredFrequenciesMN_2, + 1, /* Single element */ + &asn_SPC_measuredFrequenciesMN_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_measGapConfig_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasConfigMN__measGapConfig, 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 MeasConfigMN__measGapConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_measGapConfig_tag2el_4[] = { + { (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_measGapConfig_specs_4 = { + sizeof(struct MeasConfigMN__measGapConfig), + offsetof(struct MeasConfigMN__measGapConfig, _asn_ctx), + offsetof(struct MeasConfigMN__measGapConfig, present), + sizeof(((struct MeasConfigMN__measGapConfig *)0)->present), + asn_MAP_measGapConfig_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_measGapConfig_4 = { + "measGapConfig", + "measGapConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_measGapConfig_constr_4, &asn_PER_type_measGapConfig_constr_4, CHOICE_constraint }, + asn_MBR_measGapConfig_4, + 2, /* Elements count */ + &asn_SPC_measGapConfig_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_gapPurpose_value2enum_7[] = { + { 0, 5, "perUE" }, + { 1, 6, "perFR1" } +}; +static const unsigned int asn_MAP_gapPurpose_enum2value_7[] = { + 1, /* perFR1(1) */ + 0 /* perUE(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_gapPurpose_specs_7 = { + asn_MAP_gapPurpose_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_gapPurpose_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_gapPurpose_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_gapPurpose_7 = { + "gapPurpose", + "gapPurpose", + &asn_OP_NativeEnumerated, + asn_DEF_gapPurpose_tags_7, + sizeof(asn_DEF_gapPurpose_tags_7) + /sizeof(asn_DEF_gapPurpose_tags_7[0]) - 1, /* 1 */ + asn_DEF_gapPurpose_tags_7, /* Same as above */ + sizeof(asn_DEF_gapPurpose_tags_7) + /sizeof(asn_DEF_gapPurpose_tags_7[0]), /* 2 */ + { &asn_OER_type_gapPurpose_constr_7, &asn_PER_type_gapPurpose_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_gapPurpose_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasConfigMN_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasConfigMN, measuredFrequenciesMN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_measuredFrequenciesMN_2, + 0, + { &asn_OER_memb_measuredFrequenciesMN_constr_2, &asn_PER_memb_measuredFrequenciesMN_constr_2, memb_measuredFrequenciesMN_constraint_1 }, + 0, 0, /* No default value */ + "measuredFrequenciesMN" + }, + { ATF_POINTER, 2, offsetof(struct MeasConfigMN, measGapConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_measGapConfig_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measGapConfig" + }, + { ATF_POINTER, 1, offsetof(struct MeasConfigMN, gapPurpose), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_gapPurpose_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapPurpose" + }, +}; +static const int asn_MAP_MeasConfigMN_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasConfigMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_MeasConfigMN_specs_1 = { + sizeof(struct MeasConfigMN), + offsetof(struct MeasConfigMN, _asn_ctx), + asn_MAP_MeasConfigMN_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasConfigMN_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasConfigMN = { + "MeasConfigMN", + "MeasConfigMN", + &asn_OP_SEQUENCE, + asn_DEF_MeasConfigMN_tags_1, + sizeof(asn_DEF_MeasConfigMN_tags_1) + /sizeof(asn_DEF_MeasConfigMN_tags_1[0]), /* 1 */ + asn_DEF_MeasConfigMN_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasConfigMN_tags_1) + /sizeof(asn_DEF_MeasConfigMN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasConfigMN_1, + 3, /* Elements count */ + &asn_SPC_MeasConfigMN_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasConfigMN.h b/src/codec_utils/RRC/MeasConfigMN.h new file mode 100644 index 000000000..aefbe03b0 --- /dev/null +++ b/src/codec_utils/RRC/MeasConfigMN.h @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasConfigMN_H_ +#define _MeasConfigMN_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasConfigMN__measGapConfig_PR { + MeasConfigMN__measGapConfig_PR_NOTHING, /* No components present */ + MeasConfigMN__measGapConfig_PR_release, + MeasConfigMN__measGapConfig_PR_setup +} MeasConfigMN__measGapConfig_PR; +typedef enum MeasConfigMN__gapPurpose { + MeasConfigMN__gapPurpose_perUE = 0, + MeasConfigMN__gapPurpose_perFR1 = 1 +} e_MeasConfigMN__gapPurpose; + +/* Forward declarations */ +struct NR_FreqInfo; +struct GapConfig; + +/* MeasConfigMN */ +typedef struct MeasConfigMN { + struct MeasConfigMN__measuredFrequenciesMN { + A_SEQUENCE_OF(struct NR_FreqInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measuredFrequenciesMN; + struct MeasConfigMN__measGapConfig { + MeasConfigMN__measGapConfig_PR present; + union MeasConfigMN__measGapConfig_u { + NULL_t release; + struct GapConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measGapConfig; + long *gapPurpose; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasConfigMN_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_gapPurpose_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasConfigMN; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasConfigMN_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasConfigMN_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasConfigMN_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasConfigSN.c b/src/codec_utils/RRC/MeasConfigSN.c new file mode 100644 index 000000000..93c6f42c4 --- /dev/null +++ b/src/codec_utils/RRC/MeasConfigSN.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasConfigSN.h" + +#include "NR-FreqInfo.h" +static int +memb_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_oer_constraints_t asn_OER_type_measuredFrequenciesSN_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_measuredFrequenciesSN_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_measuredFrequenciesSN_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_FreqInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_measuredFrequenciesSN_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_measuredFrequenciesSN_specs_2 = { + sizeof(struct MeasConfigSN__measuredFrequenciesSN), + offsetof(struct MeasConfigSN__measuredFrequenciesSN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_measuredFrequenciesSN_2 = { + "measuredFrequenciesSN", + "measuredFrequenciesSN", + &asn_OP_SEQUENCE_OF, + asn_DEF_measuredFrequenciesSN_tags_2, + sizeof(asn_DEF_measuredFrequenciesSN_tags_2) + /sizeof(asn_DEF_measuredFrequenciesSN_tags_2[0]) - 1, /* 1 */ + asn_DEF_measuredFrequenciesSN_tags_2, /* Same as above */ + sizeof(asn_DEF_measuredFrequenciesSN_tags_2) + /sizeof(asn_DEF_measuredFrequenciesSN_tags_2[0]), /* 2 */ + { &asn_OER_type_measuredFrequenciesSN_constr_2, &asn_PER_type_measuredFrequenciesSN_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_measuredFrequenciesSN_2, + 1, /* Single element */ + &asn_SPC_measuredFrequenciesSN_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasConfigSN_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasConfigSN, measuredFrequenciesSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_measuredFrequenciesSN_2, + 0, + { &asn_OER_memb_measuredFrequenciesSN_constr_2, &asn_PER_memb_measuredFrequenciesSN_constr_2, memb_measuredFrequenciesSN_constraint_1 }, + 0, 0, /* No default value */ + "measuredFrequenciesSN" + }, +}; +static const int asn_MAP_MeasConfigSN_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MeasConfigSN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasConfigSN_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measuredFrequenciesSN */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasConfigSN_specs_1 = { + sizeof(struct MeasConfigSN), + offsetof(struct MeasConfigSN, _asn_ctx), + asn_MAP_MeasConfigSN_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MeasConfigSN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasConfigSN = { + "MeasConfigSN", + "MeasConfigSN", + &asn_OP_SEQUENCE, + asn_DEF_MeasConfigSN_tags_1, + sizeof(asn_DEF_MeasConfigSN_tags_1) + /sizeof(asn_DEF_MeasConfigSN_tags_1[0]), /* 1 */ + asn_DEF_MeasConfigSN_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasConfigSN_tags_1) + /sizeof(asn_DEF_MeasConfigSN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasConfigSN_1, + 1, /* Elements count */ + &asn_SPC_MeasConfigSN_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasConfigSN.h b/src/codec_utils/RRC/MeasConfigSN.h new file mode 100644 index 000000000..05fcf2cef --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasConfigSN_H_ +#define _MeasConfigSN_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NR_FreqInfo; + +/* MeasConfigSN */ +typedef struct MeasConfigSN { + struct MeasConfigSN__measuredFrequenciesSN { + A_SEQUENCE_OF(struct 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; +} MeasConfigSN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasConfigSN; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasConfigSN_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasConfigSN_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasConfigSN_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasGapConfig.c b/src/codec_utils/RRC/MeasGapConfig.c new file mode 100644 index 000000000..7b32eafbc --- /dev/null +++ b/src/codec_utils/RRC/MeasGapConfig.c @@ -0,0 +1,289 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasGapConfig.h" + +#include "GapConfig.h" +static asn_oer_constraints_t asn_OER_type_gapFR2_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapFR2_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_gapFR1_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapFR1_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_oer_constraints_t asn_OER_type_gapUE_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapUE_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_TYPE_member_t asn_MBR_gapFR2_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapConfig__gapFR2, 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 MeasGapConfig__gapFR2, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapFR2_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_gapFR2_specs_2 = { + sizeof(struct MeasGapConfig__gapFR2), + offsetof(struct MeasGapConfig__gapFR2, _asn_ctx), + offsetof(struct MeasGapConfig__gapFR2, present), + sizeof(((struct MeasGapConfig__gapFR2 *)0)->present), + asn_MAP_gapFR2_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_gapFR2_2 = { + "gapFR2", + "gapFR2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapFR2_constr_2, &asn_PER_type_gapFR2_constr_2, CHOICE_constraint }, + asn_MBR_gapFR2_2, + 2, /* Elements count */ + &asn_SPC_gapFR2_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_gapFR1_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapConfig__ext1__gapFR1, 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 MeasGapConfig__ext1__gapFR1, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapFR1_tag2el_7[] = { + { (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_gapFR1_specs_7 = { + sizeof(struct MeasGapConfig__ext1__gapFR1), + offsetof(struct MeasGapConfig__ext1__gapFR1, _asn_ctx), + offsetof(struct MeasGapConfig__ext1__gapFR1, present), + sizeof(((struct MeasGapConfig__ext1__gapFR1 *)0)->present), + asn_MAP_gapFR1_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_gapFR1_7 = { + "gapFR1", + "gapFR1", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapFR1_constr_7, &asn_PER_type_gapFR1_constr_7, CHOICE_constraint }, + asn_MBR_gapFR1_7, + 2, /* Elements count */ + &asn_SPC_gapFR1_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_gapUE_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapConfig__ext1__gapUE, 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 MeasGapConfig__ext1__gapUE, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GapConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapUE_tag2el_10[] = { + { (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_gapUE_specs_10 = { + sizeof(struct MeasGapConfig__ext1__gapUE), + offsetof(struct MeasGapConfig__ext1__gapUE, _asn_ctx), + offsetof(struct MeasGapConfig__ext1__gapUE, present), + sizeof(((struct MeasGapConfig__ext1__gapUE *)0)->present), + asn_MAP_gapUE_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_gapUE_10 = { + "gapUE", + "gapUE", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapUE_constr_10, &asn_PER_type_gapUE_constr_10, CHOICE_constraint }, + asn_MBR_gapUE_10, + 2, /* Elements count */ + &asn_SPC_gapUE_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_6[] = { + { ATF_POINTER, 2, offsetof(struct MeasGapConfig__ext1, gapFR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapFR1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapFR1" + }, + { ATF_POINTER, 1, offsetof(struct MeasGapConfig__ext1, gapUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapUE_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapUE" + }, +}; +static const int asn_MAP_ext1_oms_6[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { + { (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_ext1_specs_6 = { + sizeof(struct MeasGapConfig__ext1), + offsetof(struct MeasGapConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_ext1_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_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_6, + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_6, + 2, /* Elements count */ + &asn_SPC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasGapConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct MeasGapConfig, gapFR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapFR2_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapFR2" + }, + { ATF_POINTER, 1, offsetof(struct MeasGapConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasGapConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MeasGapConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasGapConfig_specs_1 = { + sizeof(struct MeasGapConfig), + offsetof(struct MeasGapConfig, _asn_ctx), + asn_MAP_MeasGapConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasGapConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasGapConfig = { + "MeasGapConfig", + "MeasGapConfig", + &asn_OP_SEQUENCE, + asn_DEF_MeasGapConfig_tags_1, + sizeof(asn_DEF_MeasGapConfig_tags_1) + /sizeof(asn_DEF_MeasGapConfig_tags_1[0]), /* 1 */ + asn_DEF_MeasGapConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasGapConfig_tags_1) + /sizeof(asn_DEF_MeasGapConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasGapConfig_1, + 2, /* Elements count */ + &asn_SPC_MeasGapConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasGapConfig.h b/src/codec_utils/RRC/MeasGapConfig.h new file mode 100644 index 000000000..7eaf74a4c --- /dev/null +++ b/src/codec_utils/RRC/MeasGapConfig.h @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasGapConfig_H_ +#define _MeasGapConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasGapConfig__gapFR2_PR { + MeasGapConfig__gapFR2_PR_NOTHING, /* No components present */ + MeasGapConfig__gapFR2_PR_release, + MeasGapConfig__gapFR2_PR_setup +} MeasGapConfig__gapFR2_PR; +typedef enum MeasGapConfig__ext1__gapFR1_PR { + MeasGapConfig__ext1__gapFR1_PR_NOTHING, /* No components present */ + MeasGapConfig__ext1__gapFR1_PR_release, + MeasGapConfig__ext1__gapFR1_PR_setup +} MeasGapConfig__ext1__gapFR1_PR; +typedef enum MeasGapConfig__ext1__gapUE_PR { + MeasGapConfig__ext1__gapUE_PR_NOTHING, /* No components present */ + MeasGapConfig__ext1__gapUE_PR_release, + MeasGapConfig__ext1__gapUE_PR_setup +} MeasGapConfig__ext1__gapUE_PR; + +/* Forward declarations */ +struct GapConfig; + +/* MeasGapConfig */ +typedef struct MeasGapConfig { + struct MeasGapConfig__gapFR2 { + MeasGapConfig__gapFR2_PR present; + union MeasGapConfig__gapFR2_u { + NULL_t release; + struct GapConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapFR2; + /* + * This type is extensible, + * possible extensions are below. + */ + struct MeasGapConfig__ext1 { + struct MeasGapConfig__ext1__gapFR1 { + MeasGapConfig__ext1__gapFR1_PR present; + union MeasGapConfig__ext1__gapFR1_u { + NULL_t release; + struct GapConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapFR1; + struct MeasGapConfig__ext1__gapUE { + MeasGapConfig__ext1__gapUE_PR present; + union MeasGapConfig__ext1__gapUE_u { + NULL_t release; + struct GapConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapUE; + + /* 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; +} MeasGapConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasGapConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasGapConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasGapConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasGapConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasGapSharingConfig.c b/src/codec_utils/RRC/MeasGapSharingConfig.c new file mode 100644 index 000000000..1b911c270 --- /dev/null +++ b/src/codec_utils/RRC/MeasGapSharingConfig.c @@ -0,0 +1,288 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasGapSharingConfig.h" + +static asn_oer_constraints_t asn_OER_type_gapSharingFR2_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapSharingFR2_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_gapSharingFR1_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapSharingFR1_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_oer_constraints_t asn_OER_type_gapSharingUE_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_gapSharingUE_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_TYPE_member_t asn_MBR_gapSharingFR2_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapSharingConfig__gapSharingFR2, 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 MeasGapSharingConfig__gapSharingFR2, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapSharingFR2_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_gapSharingFR2_specs_2 = { + sizeof(struct MeasGapSharingConfig__gapSharingFR2), + offsetof(struct MeasGapSharingConfig__gapSharingFR2, _asn_ctx), + offsetof(struct MeasGapSharingConfig__gapSharingFR2, present), + sizeof(((struct MeasGapSharingConfig__gapSharingFR2 *)0)->present), + asn_MAP_gapSharingFR2_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_gapSharingFR2_2 = { + "gapSharingFR2", + "gapSharingFR2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapSharingFR2_constr_2, &asn_PER_type_gapSharingFR2_constr_2, CHOICE_constraint }, + asn_MBR_gapSharingFR2_2, + 2, /* Elements count */ + &asn_SPC_gapSharingFR2_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_gapSharingFR1_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapSharingConfig__ext1__gapSharingFR1, 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 MeasGapSharingConfig__ext1__gapSharingFR1, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapSharingFR1_tag2el_7[] = { + { (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_gapSharingFR1_specs_7 = { + sizeof(struct MeasGapSharingConfig__ext1__gapSharingFR1), + offsetof(struct MeasGapSharingConfig__ext1__gapSharingFR1, _asn_ctx), + offsetof(struct MeasGapSharingConfig__ext1__gapSharingFR1, present), + sizeof(((struct MeasGapSharingConfig__ext1__gapSharingFR1 *)0)->present), + asn_MAP_gapSharingFR1_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_gapSharingFR1_7 = { + "gapSharingFR1", + "gapSharingFR1", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapSharingFR1_constr_7, &asn_PER_type_gapSharingFR1_constr_7, CHOICE_constraint }, + asn_MBR_gapSharingFR1_7, + 2, /* Elements count */ + &asn_SPC_gapSharingFR1_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_gapSharingUE_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasGapSharingConfig__ext1__gapSharingUE, 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 MeasGapSharingConfig__ext1__gapSharingUE, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasGapSharingScheme, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_gapSharingUE_tag2el_10[] = { + { (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_gapSharingUE_specs_10 = { + sizeof(struct MeasGapSharingConfig__ext1__gapSharingUE), + offsetof(struct MeasGapSharingConfig__ext1__gapSharingUE, _asn_ctx), + offsetof(struct MeasGapSharingConfig__ext1__gapSharingUE, present), + sizeof(((struct MeasGapSharingConfig__ext1__gapSharingUE *)0)->present), + asn_MAP_gapSharingUE_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_gapSharingUE_10 = { + "gapSharingUE", + "gapSharingUE", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_gapSharingUE_constr_10, &asn_PER_type_gapSharingUE_constr_10, CHOICE_constraint }, + asn_MBR_gapSharingUE_10, + 2, /* Elements count */ + &asn_SPC_gapSharingUE_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_6[] = { + { ATF_POINTER, 2, offsetof(struct MeasGapSharingConfig__ext1, gapSharingFR1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapSharingFR1_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingFR1" + }, + { ATF_POINTER, 1, offsetof(struct MeasGapSharingConfig__ext1, gapSharingUE), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapSharingUE_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingUE" + }, +}; +static const int asn_MAP_ext1_oms_6[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { + { (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_ext1_specs_6 = { + sizeof(struct MeasGapSharingConfig__ext1), + offsetof(struct MeasGapSharingConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_ext1_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_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_6, + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_6, + 2, /* Elements count */ + &asn_SPC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasGapSharingConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct MeasGapSharingConfig, gapSharingFR2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_gapSharingFR2_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gapSharingFR2" + }, + { ATF_POINTER, 1, offsetof(struct MeasGapSharingConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasGapSharingConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MeasGapSharingConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasGapSharingConfig_specs_1 = { + sizeof(struct MeasGapSharingConfig), + offsetof(struct MeasGapSharingConfig, _asn_ctx), + asn_MAP_MeasGapSharingConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasGapSharingConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasGapSharingConfig = { + "MeasGapSharingConfig", + "MeasGapSharingConfig", + &asn_OP_SEQUENCE, + asn_DEF_MeasGapSharingConfig_tags_1, + sizeof(asn_DEF_MeasGapSharingConfig_tags_1) + /sizeof(asn_DEF_MeasGapSharingConfig_tags_1[0]), /* 1 */ + asn_DEF_MeasGapSharingConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasGapSharingConfig_tags_1) + /sizeof(asn_DEF_MeasGapSharingConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasGapSharingConfig_1, + 2, /* Elements count */ + &asn_SPC_MeasGapSharingConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasGapSharingConfig.h b/src/codec_utils/RRC/MeasGapSharingConfig.h new file mode 100644 index 000000000..478af0129 --- /dev/null +++ b/src/codec_utils/RRC/MeasGapSharingConfig.h @@ -0,0 +1,97 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasGapSharingConfig_H_ +#define _MeasGapSharingConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "MeasGapSharingScheme.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasGapSharingConfig__gapSharingFR2_PR { + MeasGapSharingConfig__gapSharingFR2_PR_NOTHING, /* No components present */ + MeasGapSharingConfig__gapSharingFR2_PR_release, + MeasGapSharingConfig__gapSharingFR2_PR_setup +} MeasGapSharingConfig__gapSharingFR2_PR; +typedef enum MeasGapSharingConfig__ext1__gapSharingFR1_PR { + MeasGapSharingConfig__ext1__gapSharingFR1_PR_NOTHING, /* No components present */ + MeasGapSharingConfig__ext1__gapSharingFR1_PR_release, + MeasGapSharingConfig__ext1__gapSharingFR1_PR_setup +} MeasGapSharingConfig__ext1__gapSharingFR1_PR; +typedef enum MeasGapSharingConfig__ext1__gapSharingUE_PR { + MeasGapSharingConfig__ext1__gapSharingUE_PR_NOTHING, /* No components present */ + MeasGapSharingConfig__ext1__gapSharingUE_PR_release, + MeasGapSharingConfig__ext1__gapSharingUE_PR_setup +} MeasGapSharingConfig__ext1__gapSharingUE_PR; + +/* MeasGapSharingConfig */ +typedef struct MeasGapSharingConfig { + struct MeasGapSharingConfig__gapSharingFR2 { + MeasGapSharingConfig__gapSharingFR2_PR present; + union MeasGapSharingConfig__gapSharingFR2_u { + NULL_t release; + MeasGapSharingScheme_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapSharingFR2; + /* + * This type is extensible, + * possible extensions are below. + */ + struct MeasGapSharingConfig__ext1 { + struct MeasGapSharingConfig__ext1__gapSharingFR1 { + MeasGapSharingConfig__ext1__gapSharingFR1_PR present; + union MeasGapSharingConfig__ext1__gapSharingFR1_u { + NULL_t release; + MeasGapSharingScheme_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapSharingFR1; + struct MeasGapSharingConfig__ext1__gapSharingUE { + MeasGapSharingConfig__ext1__gapSharingUE_PR present; + union MeasGapSharingConfig__ext1__gapSharingUE_u { + NULL_t release; + MeasGapSharingScheme_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *gapSharingUE; + + /* 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; +} MeasGapSharingConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasGapSharingConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasGapSharingConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasGapSharingConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasGapSharingConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasGapSharingScheme.c b/src/codec_utils/RRC/MeasGapSharingScheme.c new file mode 100644 index 000000000..09f7131fd --- /dev/null +++ b/src/codec_utils/RRC/MeasGapSharingScheme.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasGapSharingScheme.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MeasGapSharingScheme_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasGapSharingScheme_value2enum_1[] = { + { 0, 8, "scheme00" }, + { 1, 8, "scheme01" }, + { 2, 8, "scheme10" }, + { 3, 8, "scheme11" } +}; +static const unsigned int asn_MAP_MeasGapSharingScheme_enum2value_1[] = { + 0, /* scheme00(0) */ + 1, /* scheme01(1) */ + 2, /* scheme10(2) */ + 3 /* scheme11(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_MeasGapSharingScheme_specs_1 = { + asn_MAP_MeasGapSharingScheme_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_MeasGapSharingScheme_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasGapSharingScheme = { + "MeasGapSharingScheme", + "MeasGapSharingScheme", + &asn_OP_NativeEnumerated, + asn_DEF_MeasGapSharingScheme_tags_1, + sizeof(asn_DEF_MeasGapSharingScheme_tags_1) + /sizeof(asn_DEF_MeasGapSharingScheme_tags_1[0]), /* 1 */ + asn_DEF_MeasGapSharingScheme_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasGapSharingScheme_tags_1) + /sizeof(asn_DEF_MeasGapSharingScheme_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasGapSharingScheme_constr_1, &asn_PER_type_MeasGapSharingScheme_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_MeasGapSharingScheme_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasGapSharingScheme.h b/src/codec_utils/RRC/MeasGapSharingScheme.h new file mode 100644 index 000000000..f0e473567 --- /dev/null +++ b/src/codec_utils/RRC/MeasGapSharingScheme.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasGapSharingScheme_H_ +#define _MeasGapSharingScheme_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasGapSharingScheme { + MeasGapSharingScheme_scheme00 = 0, + MeasGapSharingScheme_scheme01 = 1, + MeasGapSharingScheme_scheme10 = 2, + MeasGapSharingScheme_scheme11 = 3 +} e_MeasGapSharingScheme; + +/* MeasGapSharingScheme */ +typedef long MeasGapSharingScheme_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MeasGapSharingScheme_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MeasGapSharingScheme; +extern const asn_INTEGER_specifics_t asn_SPC_MeasGapSharingScheme_specs_1; +asn_struct_free_f MeasGapSharingScheme_free; +asn_struct_print_f MeasGapSharingScheme_print; +asn_constr_check_f MeasGapSharingScheme_constraint; +ber_type_decoder_f MeasGapSharingScheme_decode_ber; +der_type_encoder_f MeasGapSharingScheme_encode_der; +xer_type_decoder_f MeasGapSharingScheme_decode_xer; +xer_type_encoder_f MeasGapSharingScheme_encode_xer; +oer_type_decoder_f MeasGapSharingScheme_decode_oer; +oer_type_encoder_f MeasGapSharingScheme_encode_oer; +per_type_decoder_f MeasGapSharingScheme_decode_uper; +per_type_encoder_f MeasGapSharingScheme_encode_uper; +per_type_decoder_f MeasGapSharingScheme_decode_aper; +per_type_encoder_f MeasGapSharingScheme_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasGapSharingScheme_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasId.c b/src/codec_utils/RRC/MeasId.c new file mode 100644 index 000000000..7d23d680a --- /dev/null +++ b/src/codec_utils/RRC/MeasId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_MeasId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasId = { + "MeasId", + "MeasId", + &asn_OP_NativeInteger, + asn_DEF_MeasId_tags_1, + sizeof(asn_DEF_MeasId_tags_1) + /sizeof(asn_DEF_MeasId_tags_1[0]), /* 1 */ + asn_DEF_MeasId_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasId_tags_1) + /sizeof(asn_DEF_MeasId_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasId_constr_1, &asn_PER_type_MeasId_constr_1, MeasId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/MeasId.h b/src/codec_utils/RRC/MeasId.h new file mode 100644 index 000000000..dfa2136c9 --- /dev/null +++ b/src/codec_utils/RRC/MeasId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasId_H_ +#define _MeasId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasId */ +typedef long MeasId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MeasId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MeasId; +asn_struct_free_f MeasId_free; +asn_struct_print_f MeasId_print; +asn_constr_check_f MeasId_constraint; +ber_type_decoder_f MeasId_decode_ber; +der_type_encoder_f MeasId_encode_der; +xer_type_decoder_f MeasId_decode_xer; +xer_type_encoder_f MeasId_encode_xer; +oer_type_decoder_f MeasId_decode_oer; +oer_type_encoder_f MeasId_encode_oer; +per_type_decoder_f MeasId_decode_uper; +per_type_encoder_f MeasId_encode_uper; +per_type_decoder_f MeasId_decode_aper; +per_type_encoder_f MeasId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasId_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasIdToAddMod.c b/src/codec_utils/RRC/MeasIdToAddMod.c new file mode 100644 index 000000000..32b5af306 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasIdToAddMod.h" + +asn_TYPE_member_t asn_MBR_MeasIdToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasIdToAddMod, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasIdToAddMod, measObjectId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasIdToAddMod, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasIdToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasIdToAddMod_specs_1 = { + sizeof(struct MeasIdToAddMod), + offsetof(struct MeasIdToAddMod, _asn_ctx), + asn_MAP_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_MeasIdToAddMod = { + "MeasIdToAddMod", + "MeasIdToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_MeasIdToAddMod_tags_1, + sizeof(asn_DEF_MeasIdToAddMod_tags_1) + /sizeof(asn_DEF_MeasIdToAddMod_tags_1[0]), /* 1 */ + asn_DEF_MeasIdToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasIdToAddMod_tags_1) + /sizeof(asn_DEF_MeasIdToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasIdToAddMod_1, + 3, /* Elements count */ + &asn_SPC_MeasIdToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasIdToAddMod.h b/src/codec_utils/RRC/MeasIdToAddMod.h new file mode 100644 index 000000000..0ec4d4b41 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasIdToAddMod_H_ +#define _MeasIdToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "MeasId.h" +#include "MeasObjectId.h" +#include "ReportConfigId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasIdToAddMod */ +typedef struct MeasIdToAddMod { + MeasId_t measId; + MeasObjectId_t measObjectId; + ReportConfigId_t reportConfigId; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasIdToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasIdToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasIdToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasIdToAddMod_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasIdToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasIdToAddModList.c b/src/codec_utils/RRC/MeasIdToAddModList.c new file mode 100644 index 000000000..04a716c90 --- /dev/null +++ b/src/codec_utils/RRC/MeasIdToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasIdToAddModList.h" + +#include "MeasIdToAddMod.h" +static asn_oer_constraints_t asn_OER_type_MeasIdToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_MeasIdToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasIdToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasIdToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasIdToAddModList_specs_1 = { + sizeof(struct MeasIdToAddModList), + offsetof(struct MeasIdToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasIdToAddModList = { + "MeasIdToAddModList", + "MeasIdToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasIdToAddModList_tags_1, + sizeof(asn_DEF_MeasIdToAddModList_tags_1) + /sizeof(asn_DEF_MeasIdToAddModList_tags_1[0]), /* 1 */ + asn_DEF_MeasIdToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasIdToAddModList_tags_1) + /sizeof(asn_DEF_MeasIdToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasIdToAddModList_constr_1, &asn_PER_type_MeasIdToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasIdToAddModList_1, + 1, /* Single element */ + &asn_SPC_MeasIdToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasIdToAddModList.h b/src/codec_utils/RRC/MeasIdToAddModList.h new file mode 100644 index 000000000..79e2bb714 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasIdToAddModList_H_ +#define _MeasIdToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasIdToAddMod; + +/* MeasIdToAddModList */ +typedef struct MeasIdToAddModList { + A_SEQUENCE_OF(struct MeasIdToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasIdToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasIdToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_MeasIdToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasIdToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasIdToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasIdToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasIdToRemoveList.c b/src/codec_utils/RRC/MeasIdToRemoveList.c new file mode 100644 index 000000000..5c2f60d89 --- /dev/null +++ b/src/codec_utils/RRC/MeasIdToRemoveList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasIdToRemoveList.h" + +static asn_oer_constraints_t asn_OER_type_MeasIdToRemoveList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_MeasIdToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasIdToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasIdToRemoveList_specs_1 = { + sizeof(struct MeasIdToRemoveList), + offsetof(struct MeasIdToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasIdToRemoveList = { + "MeasIdToRemoveList", + "MeasIdToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasIdToRemoveList_tags_1, + sizeof(asn_DEF_MeasIdToRemoveList_tags_1) + /sizeof(asn_DEF_MeasIdToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_MeasIdToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasIdToRemoveList_tags_1) + /sizeof(asn_DEF_MeasIdToRemoveList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasIdToRemoveList_constr_1, &asn_PER_type_MeasIdToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasIdToRemoveList_1, + 1, /* Single element */ + &asn_SPC_MeasIdToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasIdToRemoveList.h b/src/codec_utils/RRC/MeasIdToRemoveList.h new file mode 100644 index 000000000..7e43b52f4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasIdToRemoveList_H_ +#define _MeasIdToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "MeasId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasIdToRemoveList */ +typedef struct MeasIdToRemoveList { + A_SEQUENCE_OF(MeasId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasIdToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasIdToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_MeasIdToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasIdToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasIdToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasIdToRemoveList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectEUTRA.c b/src/codec_utils/RRC/MeasObjectEUTRA.c new file mode 100644 index 000000000..57395a334 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectEUTRA.c @@ -0,0 +1,293 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectEUTRA.h" + +#include "EUTRA-CellIndexList.h" +#include "EUTRA-Cell.h" +#include "EUTRA-BlackCell.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_cellsToAddModListEUTRAN_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_blackCellsToAddModListEUTRAN_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_cellsToAddModListEUTRAN_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_blackCellsToAddModListEUTRAN_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_cellsToAddModListEUTRAN_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_Cell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_cellsToAddModListEUTRAN_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cellsToAddModListEUTRAN_specs_5 = { + sizeof(struct MeasObjectEUTRA__cellsToAddModListEUTRAN), + offsetof(struct MeasObjectEUTRA__cellsToAddModListEUTRAN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cellsToAddModListEUTRAN_5 = { + "cellsToAddModListEUTRAN", + "cellsToAddModListEUTRAN", + &asn_OP_SEQUENCE_OF, + asn_DEF_cellsToAddModListEUTRAN_tags_5, + sizeof(asn_DEF_cellsToAddModListEUTRAN_tags_5) + /sizeof(asn_DEF_cellsToAddModListEUTRAN_tags_5[0]) - 1, /* 1 */ + asn_DEF_cellsToAddModListEUTRAN_tags_5, /* Same as above */ + sizeof(asn_DEF_cellsToAddModListEUTRAN_tags_5) + /sizeof(asn_DEF_cellsToAddModListEUTRAN_tags_5[0]), /* 2 */ + { &asn_OER_type_cellsToAddModListEUTRAN_constr_5, &asn_PER_type_cellsToAddModListEUTRAN_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_cellsToAddModListEUTRAN_5, + 1, /* Single element */ + &asn_SPC_cellsToAddModListEUTRAN_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_blackCellsToAddModListEUTRAN_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_EUTRA_BlackCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_blackCellsToAddModListEUTRAN_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_blackCellsToAddModListEUTRAN_specs_8 = { + sizeof(struct MeasObjectEUTRA__blackCellsToAddModListEUTRAN), + offsetof(struct MeasObjectEUTRA__blackCellsToAddModListEUTRAN, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_blackCellsToAddModListEUTRAN_8 = { + "blackCellsToAddModListEUTRAN", + "blackCellsToAddModListEUTRAN", + &asn_OP_SEQUENCE_OF, + asn_DEF_blackCellsToAddModListEUTRAN_tags_8, + sizeof(asn_DEF_blackCellsToAddModListEUTRAN_tags_8) + /sizeof(asn_DEF_blackCellsToAddModListEUTRAN_tags_8[0]) - 1, /* 1 */ + asn_DEF_blackCellsToAddModListEUTRAN_tags_8, /* Same as above */ + sizeof(asn_DEF_blackCellsToAddModListEUTRAN_tags_8) + /sizeof(asn_DEF_blackCellsToAddModListEUTRAN_tags_8[0]), /* 2 */ + { &asn_OER_type_blackCellsToAddModListEUTRAN_constr_8, &asn_PER_type_blackCellsToAddModListEUTRAN_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_blackCellsToAddModListEUTRAN_8, + 1, /* Single element */ + &asn_SPC_blackCellsToAddModListEUTRAN_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasObjectEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectEUTRA, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectEUTRA, allowedMeasBandwidth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_AllowedMeasBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "allowedMeasBandwidth" + }, + { ATF_POINTER, 4, offsetof(struct MeasObjectEUTRA, cellsToRemoveListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CellIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToRemoveListEUTRAN" + }, + { ATF_POINTER, 3, offsetof(struct MeasObjectEUTRA, cellsToAddModListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_cellsToAddModListEUTRAN_5, + 0, + { &asn_OER_memb_cellsToAddModListEUTRAN_constr_5, &asn_PER_memb_cellsToAddModListEUTRAN_constr_5, memb_cellsToAddModListEUTRAN_constraint_1 }, + 0, 0, /* No default value */ + "cellsToAddModListEUTRAN" + }, + { ATF_POINTER, 2, offsetof(struct MeasObjectEUTRA, blackCellsToRemoveListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_CellIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "blackCellsToRemoveListEUTRAN" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectEUTRA, blackCellsToAddModListEUTRAN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_blackCellsToAddModListEUTRAN_8, + 0, + { &asn_OER_memb_blackCellsToAddModListEUTRAN_constr_8, &asn_PER_memb_blackCellsToAddModListEUTRAN_constr_8, memb_blackCellsToAddModListEUTRAN_constraint_1 }, + 0, 0, /* No default value */ + "blackCellsToAddModListEUTRAN" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectEUTRA, eutra_PresenceAntennaPort1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PresenceAntennaPort1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PresenceAntennaPort1" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectEUTRA, eutra_Q_OffsetRange), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_Q_OffsetRange, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-Q-OffsetRange" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_MeasObjectEUTRA_oms_1[] = { 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_MeasObjectEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasObjectEUTRA_specs_1 = { + sizeof(struct MeasObjectEUTRA), + offsetof(struct MeasObjectEUTRA, _asn_ctx), + asn_MAP_MeasObjectEUTRA_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_MeasObjectEUTRA_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasObjectEUTRA = { + "MeasObjectEUTRA", + "MeasObjectEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_MeasObjectEUTRA_tags_1, + sizeof(asn_DEF_MeasObjectEUTRA_tags_1) + /sizeof(asn_DEF_MeasObjectEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectEUTRA_tags_1) + /sizeof(asn_DEF_MeasObjectEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasObjectEUTRA_1, + 9, /* Elements count */ + &asn_SPC_MeasObjectEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectEUTRA.h b/src/codec_utils/RRC/MeasObjectEUTRA.h new file mode 100644 index 000000000..462a357c1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectEUTRA_H_ +#define _MeasObjectEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include "EUTRA-AllowedMeasBandwidth.h" +#include "EUTRA-PresenceAntennaPort1.h" +#include "EUTRA-Q-OffsetRange.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct EUTRA_CellIndexList; +struct EUTRA_Cell; +struct EUTRA_BlackCell; + +/* MeasObjectEUTRA */ +typedef struct MeasObjectEUTRA { + ARFCN_ValueEUTRA_t carrierFreq; + EUTRA_AllowedMeasBandwidth_t allowedMeasBandwidth; + struct EUTRA_CellIndexList *cellsToRemoveListEUTRAN; /* OPTIONAL */ + struct MeasObjectEUTRA__cellsToAddModListEUTRAN { + A_SEQUENCE_OF(struct EUTRA_Cell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cellsToAddModListEUTRAN; + struct EUTRA_CellIndexList *blackCellsToRemoveListEUTRAN; /* OPTIONAL */ + struct MeasObjectEUTRA__blackCellsToAddModListEUTRAN { + A_SEQUENCE_OF(struct EUTRA_BlackCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *blackCellsToAddModListEUTRAN; + EUTRA_PresenceAntennaPort1_t eutra_PresenceAntennaPort1; + 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; +} MeasObjectEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasObjectEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasObjectEUTRA_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectId.c b/src/codec_utils/RRC/MeasObjectId.c new file mode 100644 index 000000000..10f856d0d --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_MeasObjectId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasObjectId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MeasObjectId = { + "MeasObjectId", + "MeasObjectId", + &asn_OP_NativeInteger, + asn_DEF_MeasObjectId_tags_1, + sizeof(asn_DEF_MeasObjectId_tags_1) + /sizeof(asn_DEF_MeasObjectId_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectId_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectId_tags_1) + /sizeof(asn_DEF_MeasObjectId_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasObjectId_constr_1, &asn_PER_type_MeasObjectId_constr_1, MeasObjectId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectId.h b/src/codec_utils/RRC/MeasObjectId.h new file mode 100644 index 000000000..522588e13 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectId_H_ +#define _MeasObjectId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasObjectId */ +typedef long MeasObjectId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MeasObjectId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectId; +asn_struct_free_f MeasObjectId_free; +asn_struct_print_f MeasObjectId_print; +asn_constr_check_f MeasObjectId_constraint; +ber_type_decoder_f MeasObjectId_decode_ber; +der_type_encoder_f MeasObjectId_encode_der; +xer_type_decoder_f MeasObjectId_decode_xer; +xer_type_encoder_f MeasObjectId_encode_xer; +oer_type_decoder_f MeasObjectId_decode_oer; +oer_type_encoder_f MeasObjectId_encode_oer; +per_type_decoder_f MeasObjectId_decode_uper; +per_type_encoder_f MeasObjectId_encode_uper; +per_type_decoder_f MeasObjectId_decode_aper; +per_type_encoder_f MeasObjectId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectId_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectNR.c b/src/codec_utils/RRC/MeasObjectNR.c new file mode 100644 index 000000000..985cf95f4 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectNR.c @@ -0,0 +1,610 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectNR.h" + +#include "SSB-MTC.h" +#include "SSB-MTC2.h" +#include "ThresholdNR.h" +#include "PCI-List.h" +#include "CellsToAddModList.h" +#include "PCI-RangeIndexList.h" +#include "PCI-RangeElement.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_oer_constraints_t asn_OER_type_blackCellsToAddModList_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_whiteCellsToAddModList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_measCycleSCell_v1530_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofSS_BlocksToAverage_constr_10 CC_NOTUSED = { + { 1, 1 } /* (2..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofCSI_RS_ResourcesToAverage_constr_11 CC_NOTUSED = { + { 1, 1 } /* (2..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_quantityConfigIndex_constr_12 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_blackCellsToAddModList_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_whiteCellsToAddModList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_blackCellsToAddModList_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PCI_RangeElement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_blackCellsToAddModList_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_blackCellsToAddModList_specs_17 = { + sizeof(struct MeasObjectNR__blackCellsToAddModList), + offsetof(struct MeasObjectNR__blackCellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_blackCellsToAddModList_17 = { + "blackCellsToAddModList", + "blackCellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_blackCellsToAddModList_tags_17, + sizeof(asn_DEF_blackCellsToAddModList_tags_17) + /sizeof(asn_DEF_blackCellsToAddModList_tags_17[0]) - 1, /* 1 */ + asn_DEF_blackCellsToAddModList_tags_17, /* Same as above */ + sizeof(asn_DEF_blackCellsToAddModList_tags_17) + /sizeof(asn_DEF_blackCellsToAddModList_tags_17[0]), /* 2 */ + { &asn_OER_type_blackCellsToAddModList_constr_17, &asn_PER_type_blackCellsToAddModList_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_blackCellsToAddModList_17, + 1, /* Single element */ + &asn_SPC_blackCellsToAddModList_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_whiteCellsToAddModList_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PCI_RangeElement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_whiteCellsToAddModList_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_whiteCellsToAddModList_specs_20 = { + sizeof(struct MeasObjectNR__whiteCellsToAddModList), + offsetof(struct MeasObjectNR__whiteCellsToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_whiteCellsToAddModList_20 = { + "whiteCellsToAddModList", + "whiteCellsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_whiteCellsToAddModList_tags_20, + sizeof(asn_DEF_whiteCellsToAddModList_tags_20) + /sizeof(asn_DEF_whiteCellsToAddModList_tags_20[0]) - 1, /* 1 */ + asn_DEF_whiteCellsToAddModList_tags_20, /* Same as above */ + sizeof(asn_DEF_whiteCellsToAddModList_tags_20) + /sizeof(asn_DEF_whiteCellsToAddModList_tags_20[0]), /* 2 */ + { &asn_OER_type_whiteCellsToAddModList_constr_20, &asn_PER_type_whiteCellsToAddModList_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_whiteCellsToAddModList_20, + 1, /* Single element */ + &asn_SPC_whiteCellsToAddModList_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_measCycleSCell_v1530_specs_25 = { + asn_MAP_measCycleSCell_v1530_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_measCycleSCell_v1530_25 = { + "measCycleSCell-v1530", + "measCycleSCell-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_measCycleSCell_v1530_tags_25, + sizeof(asn_DEF_measCycleSCell_v1530_tags_25) + /sizeof(asn_DEF_measCycleSCell_v1530_tags_25[0]) - 1, /* 1 */ + asn_DEF_measCycleSCell_v1530_tags_25, /* Same as above */ + sizeof(asn_DEF_measCycleSCell_v1530_tags_25) + /sizeof(asn_DEF_measCycleSCell_v1530_tags_25[0]), /* 2 */ + { &asn_OER_type_measCycleSCell_v1530_constr_25, &asn_PER_type_measCycleSCell_v1530_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_measCycleSCell_v1530_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_23[] = { + { ATF_POINTER, 2, offsetof(struct MeasObjectNR__ext1, freqBandIndicatorNR_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorNR-v1530" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectNR__ext1, measCycleSCell_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_measCycleSCell_v1530_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measCycleSCell-v1530" + }, +}; +static const int asn_MAP_ext1_oms_23[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ext1_specs_23 = { + sizeof(struct MeasObjectNR__ext1), + offsetof(struct MeasObjectNR__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_23, + 2, /* Count of tags in the map */ + asn_MAP_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_ext1_23 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_23, + sizeof(asn_DEF_ext1_tags_23) + /sizeof(asn_DEF_ext1_tags_23[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_23, /* Same as above */ + sizeof(asn_DEF_ext1_tags_23) + /sizeof(asn_DEF_ext1_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_23, + 2, /* Elements count */ + &asn_SPC_ext1_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasObjectNR_1[] = { + { ATF_POINTER, 5, offsetof(struct MeasObjectNR, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_POINTER, 4, offsetof(struct MeasObjectNR, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 3, offsetof(struct MeasObjectNR, smtc1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc1" + }, + { ATF_POINTER, 2, offsetof(struct MeasObjectNR, smtc2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc2" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectNR, refFreqCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refFreqCSI-RS" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectNR, referenceSignalConfig), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReferenceSignalConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignalConfig" + }, + { ATF_POINTER, 4, offsetof(struct MeasObjectNR, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 3, offsetof(struct MeasObjectNR, absThreshCSI_RS_Consolidation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshCSI-RS-Consolidation" + }, + { ATF_POINTER, 2, offsetof(struct MeasObjectNR, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSS_BlocksToAverage_constr_10, &asn_PER_memb_nrofSS_BlocksToAverage_constr_10, memb_nrofSS_BlocksToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectNR, nrofCSI_RS_ResourcesToAverage), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofCSI_RS_ResourcesToAverage_constr_11, &asn_PER_memb_nrofCSI_RS_ResourcesToAverage_constr_11, memb_nrofCSI_RS_ResourcesToAverage_constraint_1 }, + 0, 0, /* No default value */ + "nrofCSI-RS-ResourcesToAverage" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectNR, quantityConfigIndex), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_quantityConfigIndex_constr_12, &asn_PER_memb_quantityConfigIndex_constr_12, memb_quantityConfigIndex_constraint_1 }, + 0, 0, /* No default value */ + "quantityConfigIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectNR, offsetMO), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_OffsetRangeList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "offsetMO" + }, + { ATF_POINTER, 7, offsetof(struct MeasObjectNR, cellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCI_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToRemoveList" + }, + { ATF_POINTER, 6, offsetof(struct MeasObjectNR, cellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellsToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct MeasObjectNR, blackCellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCI_RangeIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "blackCellsToRemoveList" + }, + { ATF_POINTER, 4, offsetof(struct MeasObjectNR, blackCellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + 0, + &asn_DEF_blackCellsToAddModList_17, + 0, + { &asn_OER_memb_blackCellsToAddModList_constr_17, &asn_PER_memb_blackCellsToAddModList_constr_17, memb_blackCellsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "blackCellsToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct MeasObjectNR, whiteCellsToRemoveList), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCI_RangeIndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "whiteCellsToRemoveList" + }, + { ATF_POINTER, 2, offsetof(struct MeasObjectNR, whiteCellsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_whiteCellsToAddModList_20, + 0, + { &asn_OER_memb_whiteCellsToAddModList_constr_20, &asn_PER_memb_whiteCellsToAddModList_constr_20, memb_whiteCellsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "whiteCellsToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct MeasObjectNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ext1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_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_MeasObjectNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasObjectNR_specs_1 = { + sizeof(struct MeasObjectNR), + offsetof(struct MeasObjectNR, _asn_ctx), + asn_MAP_MeasObjectNR_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_MeasObjectNR_oms_1, /* Optional members */ + 15, 1, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasObjectNR = { + "MeasObjectNR", + "MeasObjectNR", + &asn_OP_SEQUENCE, + asn_DEF_MeasObjectNR_tags_1, + sizeof(asn_DEF_MeasObjectNR_tags_1) + /sizeof(asn_DEF_MeasObjectNR_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectNR_tags_1) + /sizeof(asn_DEF_MeasObjectNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasObjectNR_1, + 19, /* Elements count */ + &asn_SPC_MeasObjectNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectNR.h b/src/codec_utils/RRC/MeasObjectNR.h new file mode 100644 index 000000000..16ecbeb27 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectNR_H_ +#define _MeasObjectNR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "SubcarrierSpacing.h" +#include "ReferenceSignalConfig.h" +#include +#include "Q-OffsetRangeList.h" +#include +#include +#include "FreqBandIndicatorNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasObjectNR__ext1__measCycleSCell_v1530 { + MeasObjectNR__ext1__measCycleSCell_v1530_sf160 = 0, + MeasObjectNR__ext1__measCycleSCell_v1530_sf256 = 1, + MeasObjectNR__ext1__measCycleSCell_v1530_sf320 = 2, + MeasObjectNR__ext1__measCycleSCell_v1530_sf512 = 3, + MeasObjectNR__ext1__measCycleSCell_v1530_sf640 = 4, + MeasObjectNR__ext1__measCycleSCell_v1530_sf1024 = 5, + MeasObjectNR__ext1__measCycleSCell_v1530_sf1280 = 6 +} e_MeasObjectNR__ext1__measCycleSCell_v1530; + +/* Forward declarations */ +struct SSB_MTC; +struct SSB_MTC2; +struct ThresholdNR; +struct PCI_List; +struct CellsToAddModList; +struct PCI_RangeIndexList; +struct PCI_RangeElement; + +/* MeasObjectNR */ +typedef struct MeasObjectNR { + ARFCN_ValueNR_t *ssbFrequency; /* OPTIONAL */ + SubcarrierSpacing_t *ssbSubcarrierSpacing; /* OPTIONAL */ + struct SSB_MTC *smtc1; /* OPTIONAL */ + struct SSB_MTC2 *smtc2; /* OPTIONAL */ + ARFCN_ValueNR_t *refFreqCSI_RS; /* OPTIONAL */ + ReferenceSignalConfig_t referenceSignalConfig; + struct ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + struct ThresholdNR *absThreshCSI_RS_Consolidation; /* OPTIONAL */ + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + long *nrofCSI_RS_ResourcesToAverage; /* OPTIONAL */ + long quantityConfigIndex; + Q_OffsetRangeList_t offsetMO; + struct PCI_List *cellsToRemoveList; /* OPTIONAL */ + struct CellsToAddModList *cellsToAddModList; /* OPTIONAL */ + struct PCI_RangeIndexList *blackCellsToRemoveList; /* OPTIONAL */ + struct MeasObjectNR__blackCellsToAddModList { + A_SEQUENCE_OF(struct PCI_RangeElement) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *blackCellsToAddModList; + struct PCI_RangeIndexList *whiteCellsToRemoveList; /* OPTIONAL */ + struct MeasObjectNR__whiteCellsToAddModList { + A_SEQUENCE_OF(struct 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 MeasObjectNR__ext1 { + 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; +} MeasObjectNR_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_measCycleSCell_v1530_25; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectNR; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasObjectNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasObjectNR_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectNR_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectToAddMod.c b/src/codec_utils/RRC/MeasObjectToAddMod.c new file mode 100644 index 000000000..ca6d69388 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectToAddMod.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectToAddMod.h" + +#include "MeasObjectNR.h" +#include "MeasObjectEUTRA.h" +static asn_oer_constraints_t asn_OER_type_measObject_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_measObject_3[] = { + { ATF_POINTER, 0, offsetof(struct MeasObjectToAddMod__measObject, choice.measObjectNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectNR" + }, + { ATF_POINTER, 0, offsetof(struct MeasObjectToAddMod__measObject, choice.measObjectEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_measObject_specs_3 = { + sizeof(struct MeasObjectToAddMod__measObject), + offsetof(struct MeasObjectToAddMod__measObject, _asn_ctx), + offsetof(struct MeasObjectToAddMod__measObject, present), + sizeof(((struct MeasObjectToAddMod__measObject *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_measObject_constr_3, &asn_PER_type_measObject_constr_3, CHOICE_constraint }, + asn_MBR_measObject_3, + 2, /* Elements count */ + &asn_SPC_measObject_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasObjectToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectToAddMod, measObjectId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasObjectToAddMod, measObject), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_measObject_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObject" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasObjectToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasObjectToAddMod_specs_1 = { + sizeof(struct MeasObjectToAddMod), + offsetof(struct MeasObjectToAddMod, _asn_ctx), + asn_MAP_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_MeasObjectToAddMod = { + "MeasObjectToAddMod", + "MeasObjectToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_MeasObjectToAddMod_tags_1, + sizeof(asn_DEF_MeasObjectToAddMod_tags_1) + /sizeof(asn_DEF_MeasObjectToAddMod_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectToAddMod_tags_1) + /sizeof(asn_DEF_MeasObjectToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasObjectToAddMod_1, + 2, /* Elements count */ + &asn_SPC_MeasObjectToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectToAddMod.h b/src/codec_utils/RRC/MeasObjectToAddMod.h new file mode 100644 index 000000000..e6f3e4560 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectToAddMod_H_ +#define _MeasObjectToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "MeasObjectId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasObjectToAddMod__measObject_PR { + MeasObjectToAddMod__measObject_PR_NOTHING, /* No components present */ + MeasObjectToAddMod__measObject_PR_measObjectNR, + /* Extensions may appear below */ + MeasObjectToAddMod__measObject_PR_measObjectEUTRA +} MeasObjectToAddMod__measObject_PR; + +/* Forward declarations */ +struct MeasObjectNR; +struct MeasObjectEUTRA; + +/* MeasObjectToAddMod */ +typedef struct MeasObjectToAddMod { + MeasObjectId_t measObjectId; + struct MeasObjectToAddMod__measObject { + MeasObjectToAddMod__measObject_PR present; + union MeasObjectToAddMod__measObject_u { + struct MeasObjectNR *measObjectNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} MeasObjectToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasObjectToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasObjectToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectToAddModList.c b/src/codec_utils/RRC/MeasObjectToAddModList.c new file mode 100644 index 000000000..503a63ce2 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectToAddModList.h" + +#include "MeasObjectToAddMod.h" +static asn_oer_constraints_t asn_OER_type_MeasObjectToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_MeasObjectToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasObjectToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasObjectToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasObjectToAddModList_specs_1 = { + sizeof(struct MeasObjectToAddModList), + offsetof(struct MeasObjectToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasObjectToAddModList = { + "MeasObjectToAddModList", + "MeasObjectToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasObjectToAddModList_tags_1, + sizeof(asn_DEF_MeasObjectToAddModList_tags_1) + /sizeof(asn_DEF_MeasObjectToAddModList_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectToAddModList_tags_1) + /sizeof(asn_DEF_MeasObjectToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasObjectToAddModList_constr_1, &asn_PER_type_MeasObjectToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasObjectToAddModList_1, + 1, /* Single element */ + &asn_SPC_MeasObjectToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectToAddModList.h b/src/codec_utils/RRC/MeasObjectToAddModList.h new file mode 100644 index 000000000..c2b71ca24 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectToAddModList_H_ +#define _MeasObjectToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasObjectToAddMod; + +/* MeasObjectToAddModList */ +typedef struct MeasObjectToAddModList { + A_SEQUENCE_OF(struct MeasObjectToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasObjectToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_MeasObjectToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasObjectToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasObjectToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasObjectToRemoveList.c b/src/codec_utils/RRC/MeasObjectToRemoveList.c new file mode 100644 index 000000000..0cfb4b134 --- /dev/null +++ b/src/codec_utils/RRC/MeasObjectToRemoveList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasObjectToRemoveList.h" + +static asn_oer_constraints_t asn_OER_type_MeasObjectToRemoveList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_MeasObjectToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasObjectToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasObjectToRemoveList_specs_1 = { + sizeof(struct MeasObjectToRemoveList), + offsetof(struct MeasObjectToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasObjectToRemoveList = { + "MeasObjectToRemoveList", + "MeasObjectToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasObjectToRemoveList_tags_1, + sizeof(asn_DEF_MeasObjectToRemoveList_tags_1) + /sizeof(asn_DEF_MeasObjectToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_MeasObjectToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasObjectToRemoveList_tags_1) + /sizeof(asn_DEF_MeasObjectToRemoveList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasObjectToRemoveList_constr_1, &asn_PER_type_MeasObjectToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasObjectToRemoveList_1, + 1, /* Single element */ + &asn_SPC_MeasObjectToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasObjectToRemoveList.h b/src/codec_utils/RRC/MeasObjectToRemoveList.h new file mode 100644 index 000000000..bbfc4ae64 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasObjectToRemoveList_H_ +#define _MeasObjectToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "MeasObjectId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasObjectToRemoveList */ +typedef struct MeasObjectToRemoveList { + A_SEQUENCE_OF(MeasObjectId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasObjectToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasObjectToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_MeasObjectToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasObjectToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasObjectToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasObjectToRemoveList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasQuantityResults.c b/src/codec_utils/RRC/MeasQuantityResults.c new file mode 100644 index 000000000..742a3f63a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasQuantityResults.h" + +asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasQuantityResults, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct MeasQuantityResults, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct MeasQuantityResults, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_MeasQuantityResults_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasQuantityResults_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasQuantityResults_specs_1 = { + sizeof(struct MeasQuantityResults), + offsetof(struct MeasQuantityResults, _asn_ctx), + asn_MAP_MeasQuantityResults_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasQuantityResults_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults = { + "MeasQuantityResults", + "MeasQuantityResults", + &asn_OP_SEQUENCE, + asn_DEF_MeasQuantityResults_tags_1, + sizeof(asn_DEF_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */ + asn_DEF_MeasQuantityResults_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasQuantityResults_tags_1) + /sizeof(asn_DEF_MeasQuantityResults_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasQuantityResults_1, + 3, /* Elements count */ + &asn_SPC_MeasQuantityResults_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasQuantityResults.h b/src/codec_utils/RRC/MeasQuantityResults.h new file mode 100644 index 000000000..3d1490823 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasQuantityResults_H_ +#define _MeasQuantityResults_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include "RSRQ-Range.h" +#include "SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasQuantityResults */ +typedef struct MeasQuantityResults { + RSRP_Range_t *rsrp; /* OPTIONAL */ + RSRQ_Range_t *rsrq; /* OPTIONAL */ + SINR_Range_t *sinr; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasQuantityResults_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResults; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResults_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasQuantityResults_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasQuantityResults_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasQuantityResultsEUTRA.c b/src/codec_utils/RRC/MeasQuantityResultsEUTRA.c new file mode 100644 index 000000000..157b408eb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasQuantityResultsEUTRA.h" + +asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[] = { + { ATF_POINTER, 3, offsetof(struct MeasQuantityResultsEUTRA, rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_POINTER, 2, offsetof(struct MeasQuantityResultsEUTRA, rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_POINTER, 1, offsetof(struct MeasQuantityResultsEUTRA, sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const int asn_MAP_MeasQuantityResultsEUTRA_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasQuantityResultsEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasQuantityResultsEUTRA_specs_1 = { + sizeof(struct MeasQuantityResultsEUTRA), + offsetof(struct MeasQuantityResultsEUTRA, _asn_ctx), + asn_MAP_MeasQuantityResultsEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasQuantityResultsEUTRA_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA = { + "MeasQuantityResultsEUTRA", + "MeasQuantityResultsEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_MeasQuantityResultsEUTRA_tags_1, + sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasQuantityResultsEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1) + /sizeof(asn_DEF_MeasQuantityResultsEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasQuantityResultsEUTRA_1, + 3, /* Elements count */ + &asn_SPC_MeasQuantityResultsEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasQuantityResultsEUTRA.h b/src/codec_utils/RRC/MeasQuantityResultsEUTRA.h new file mode 100644 index 000000000..504c5f1bc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasQuantityResultsEUTRA_H_ +#define _MeasQuantityResultsEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-RangeEUTRA.h" +#include "RSRQ-RangeEUTRA.h" +#include "SINR-RangeEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasQuantityResultsEUTRA */ +typedef struct MeasQuantityResultsEUTRA { + RSRP_RangeEUTRA_t *rsrp; /* OPTIONAL */ + RSRQ_RangeEUTRA_t *rsrq; /* OPTIONAL */ + SINR_RangeEUTRA_t *sinr; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasQuantityResultsEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasQuantityResultsEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasQuantityResultsEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasQuantityResultsEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasQuantityResultsEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasReportQuantity.c b/src/codec_utils/RRC/MeasReportQuantity.c new file mode 100644 index 000000000..a132e3dc3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasReportQuantity.h" + +asn_TYPE_member_t asn_MBR_MeasReportQuantity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_MeasReportQuantity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasReportQuantity_specs_1 = { + sizeof(struct MeasReportQuantity), + offsetof(struct MeasReportQuantity, _asn_ctx), + asn_MAP_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_MeasReportQuantity = { + "MeasReportQuantity", + "MeasReportQuantity", + &asn_OP_SEQUENCE, + asn_DEF_MeasReportQuantity_tags_1, + sizeof(asn_DEF_MeasReportQuantity_tags_1) + /sizeof(asn_DEF_MeasReportQuantity_tags_1[0]), /* 1 */ + asn_DEF_MeasReportQuantity_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasReportQuantity_tags_1) + /sizeof(asn_DEF_MeasReportQuantity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasReportQuantity_1, + 3, /* Elements count */ + &asn_SPC_MeasReportQuantity_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasReportQuantity.h b/src/codec_utils/RRC/MeasReportQuantity.h new file mode 100644 index 000000000..c1036053a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasReportQuantity_H_ +#define _MeasReportQuantity_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasReportQuantity */ +typedef struct MeasReportQuantity { + BOOLEAN_t rsrp; + BOOLEAN_t rsrq; + BOOLEAN_t sinr; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasReportQuantity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasReportQuantity; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasReportQuantity_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasReportQuantity_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasReportQuantity_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResult2NR.c b/src/codec_utils/RRC/MeasResult2NR.c new file mode 100644 index 000000000..e1802db44 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResult2NR.h" + +#include "MeasResultNR.h" +#include "MeasResultListNR.h" +asn_TYPE_member_t asn_MBR_MeasResult2NR_1[] = { + { ATF_POINTER, 4, offsetof(struct MeasResult2NR, ssbFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbFrequency" + }, + { ATF_POINTER, 3, offsetof(struct MeasResult2NR, refFreqCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "refFreqCSI-RS" + }, + { ATF_POINTER, 2, offsetof(struct MeasResult2NR, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct MeasResult2NR, measResultNeighCellListNR), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultNeighCellListNR" + }, +}; +static const int asn_MAP_MeasResult2NR_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_MeasResult2NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasResult2NR_specs_1 = { + sizeof(struct MeasResult2NR), + offsetof(struct MeasResult2NR, _asn_ctx), + asn_MAP_MeasResult2NR_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MeasResult2NR_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResult2NR = { + "MeasResult2NR", + "MeasResult2NR", + &asn_OP_SEQUENCE, + asn_DEF_MeasResult2NR_tags_1, + sizeof(asn_DEF_MeasResult2NR_tags_1) + /sizeof(asn_DEF_MeasResult2NR_tags_1[0]), /* 1 */ + asn_DEF_MeasResult2NR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResult2NR_tags_1) + /sizeof(asn_DEF_MeasResult2NR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResult2NR_1, + 4, /* Elements count */ + &asn_SPC_MeasResult2NR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResult2NR.h b/src/codec_utils/RRC/MeasResult2NR.h new file mode 100644 index 000000000..09f149813 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResult2NR_H_ +#define _MeasResult2NR_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultNR; +struct MeasResultListNR; + +/* MeasResult2NR */ +typedef struct MeasResult2NR { + ARFCN_ValueNR_t *ssbFrequency; /* OPTIONAL */ + ARFCN_ValueNR_t *refFreqCSI_RS; /* OPTIONAL */ + struct MeasResultNR *measResultServingCell; /* OPTIONAL */ + struct MeasResultListNR *measResultNeighCellListNR; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResult2NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResult2NR; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResult2NR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResult2NR_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResult2NR_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultCellListSFTD.c b/src/codec_utils/RRC/MeasResultCellListSFTD.c new file mode 100644 index 000000000..a591aa6dd --- /dev/null +++ b/src/codec_utils/RRC/MeasResultCellListSFTD.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultCellListSFTD.h" + +#include "MeasResultCellSFTD.h" +static asn_oer_constraints_t asn_OER_type_MeasResultCellListSFTD_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +asn_per_constraints_t asn_PER_type_MeasResultCellListSFTD_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_MeasResultCellListSFTD_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultCellSFTD, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultCellListSFTD_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultCellListSFTD_specs_1 = { + sizeof(struct MeasResultCellListSFTD), + offsetof(struct MeasResultCellListSFTD, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultCellListSFTD = { + "MeasResultCellListSFTD", + "MeasResultCellListSFTD", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultCellListSFTD_tags_1, + sizeof(asn_DEF_MeasResultCellListSFTD_tags_1) + /sizeof(asn_DEF_MeasResultCellListSFTD_tags_1[0]), /* 1 */ + asn_DEF_MeasResultCellListSFTD_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultCellListSFTD_tags_1) + /sizeof(asn_DEF_MeasResultCellListSFTD_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultCellListSFTD_constr_1, &asn_PER_type_MeasResultCellListSFTD_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultCellListSFTD_1, + 1, /* Single element */ + &asn_SPC_MeasResultCellListSFTD_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultCellListSFTD.h b/src/codec_utils/RRC/MeasResultCellListSFTD.h new file mode 100644 index 000000000..ae637f533 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultCellListSFTD.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultCellListSFTD_H_ +#define _MeasResultCellListSFTD_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultCellSFTD; + +/* MeasResultCellListSFTD */ +typedef struct MeasResultCellListSFTD { + A_SEQUENCE_OF(struct MeasResultCellSFTD) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultCellListSFTD_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultCellListSFTD; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultCellListSFTD_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultCellListSFTD_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultCellListSFTD_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultCellListSFTD_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultCellSFTD.c b/src/codec_utils/RRC/MeasResultCellSFTD.c new file mode 100644 index 000000000..279fa7444 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultCellSFTD.c @@ -0,0 +1,148 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultCellSFTD.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_sfn_OffsetResult_constr_3 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_frameBoundaryOffsetResult_constr_4 CC_NOTUSED = { + { 2, 0 } /* (-30720..30719) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_MeasResultCellSFTD_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultCellSFTD, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultCellSFTD, sfn_OffsetResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sfn_OffsetResult_constr_3, &asn_PER_memb_sfn_OffsetResult_constr_3, memb_sfn_OffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "sfn-OffsetResult" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultCellSFTD, frameBoundaryOffsetResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frameBoundaryOffsetResult_constr_4, &asn_PER_memb_frameBoundaryOffsetResult_constr_4, memb_frameBoundaryOffsetResult_constraint_1 }, + 0, 0, /* No default value */ + "frameBoundaryOffsetResult" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultCellSFTD, rsrp_Result), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-Result" + }, +}; +static const int asn_MAP_MeasResultCellSFTD_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_MeasResultCellSFTD_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultCellSFTD_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_MeasResultCellSFTD_specs_1 = { + sizeof(struct MeasResultCellSFTD), + offsetof(struct MeasResultCellSFTD, _asn_ctx), + asn_MAP_MeasResultCellSFTD_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_MeasResultCellSFTD_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultCellSFTD = { + "MeasResultCellSFTD", + "MeasResultCellSFTD", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultCellSFTD_tags_1, + sizeof(asn_DEF_MeasResultCellSFTD_tags_1) + /sizeof(asn_DEF_MeasResultCellSFTD_tags_1[0]), /* 1 */ + asn_DEF_MeasResultCellSFTD_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultCellSFTD_tags_1) + /sizeof(asn_DEF_MeasResultCellSFTD_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultCellSFTD_1, + 4, /* Elements count */ + &asn_SPC_MeasResultCellSFTD_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultCellSFTD.h b/src/codec_utils/RRC/MeasResultCellSFTD.h new file mode 100644 index 000000000..80c6967d2 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultCellSFTD.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultCellSFTD_H_ +#define _MeasResultCellSFTD_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include +#include "RSRP-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasResultCellSFTD */ +typedef struct MeasResultCellSFTD { + PhysCellId_t physCellId; + long sfn_OffsetResult; + long frameBoundaryOffsetResult; + RSRP_Range_t *rsrp_Result; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultCellSFTD_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultCellSFTD; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultCellSFTD_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultCellSFTD_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultCellSFTD_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultEUTRA.c b/src/codec_utils/RRC/MeasResultEUTRA.c new file mode 100644 index 000000000..48783c088 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultEUTRA.c @@ -0,0 +1,420 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultEUTRA.h" + +#include "MultiBandInfoListEUTRA.h" +#include "CellAccessRelatedInfo-EUTRA-EPC.h" +#include "CellAccessRelatedInfo-EUTRA-5GC.h" +static int +memb_cgi_info_EPC_list_constraint_5(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_cgi_info_5GC_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 <= 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_oer_constraints_t asn_OER_type_cgi_info_EPC_list_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_type_cgi_info_EPC_list_constr_7 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_oer_constraints_t asn_OER_memb_cgi_info_EPC_list_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_memb_cgi_info_EPC_list_constr_7 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_oer_constraints_t asn_OER_type_cgi_info_5GC_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_type_cgi_info_5GC_constr_9 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_oer_constraints_t asn_OER_type_freqBandIndicatorPriority_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_freqBandIndicatorPriority_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_oer_constraints_t asn_OER_memb_cgi_info_5GC_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_memb_cgi_info_5GC_constr_9 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_cgi_info_EPC_list_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CellAccessRelatedInfo_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_cgi_info_EPC_list_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cgi_info_EPC_list_specs_7 = { + sizeof(struct MeasResultEUTRA__cgi_Info__cgi_info_EPC__cgi_info_EPC_list), + offsetof(struct MeasResultEUTRA__cgi_Info__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_cgi_info_EPC_list_7 = { + "cgi-info-EPC-list", + "cgi-info-EPC-list", + &asn_OP_SEQUENCE_OF, + asn_DEF_cgi_info_EPC_list_tags_7, + sizeof(asn_DEF_cgi_info_EPC_list_tags_7) + /sizeof(asn_DEF_cgi_info_EPC_list_tags_7[0]) - 1, /* 1 */ + asn_DEF_cgi_info_EPC_list_tags_7, /* Same as above */ + sizeof(asn_DEF_cgi_info_EPC_list_tags_7) + /sizeof(asn_DEF_cgi_info_EPC_list_tags_7[0]), /* 2 */ + { &asn_OER_type_cgi_info_EPC_list_constr_7, &asn_PER_type_cgi_info_EPC_list_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_cgi_info_EPC_list_7, + 1, /* Single element */ + &asn_SPC_cgi_info_EPC_list_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cgi_info_EPC_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA__cgi_Info__cgi_info_EPC, cgi_info_EPC_legacy), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellAccessRelatedInfo_EUTRA_EPC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-info-EPC-legacy" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultEUTRA__cgi_Info__cgi_info_EPC, cgi_info_EPC_list), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_cgi_info_EPC_list_7, + 0, + { &asn_OER_memb_cgi_info_EPC_list_constr_7, &asn_PER_memb_cgi_info_EPC_list_constr_7, memb_cgi_info_EPC_list_constraint_5 }, + 0, 0, /* No default value */ + "cgi-info-EPC-list" + }, +}; +static const int asn_MAP_cgi_info_EPC_oms_5[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_cgi_info_EPC_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cgi_info_EPC_tag2el_5[] = { + { (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_cgi_info_EPC_specs_5 = { + sizeof(struct MeasResultEUTRA__cgi_Info__cgi_info_EPC), + offsetof(struct MeasResultEUTRA__cgi_Info__cgi_info_EPC, _asn_ctx), + asn_MAP_cgi_info_EPC_tag2el_5, + 2, /* Count of tags in the map */ + asn_MAP_cgi_info_EPC_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_cgi_info_EPC_5 = { + "cgi-info-EPC", + "cgi-info-EPC", + &asn_OP_SEQUENCE, + asn_DEF_cgi_info_EPC_tags_5, + sizeof(asn_DEF_cgi_info_EPC_tags_5) + /sizeof(asn_DEF_cgi_info_EPC_tags_5[0]) - 1, /* 1 */ + asn_DEF_cgi_info_EPC_tags_5, /* Same as above */ + sizeof(asn_DEF_cgi_info_EPC_tags_5) + /sizeof(asn_DEF_cgi_info_EPC_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cgi_info_EPC_5, + 2, /* Elements count */ + &asn_SPC_cgi_info_EPC_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cgi_info_5GC_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CellAccessRelatedInfo_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_cgi_info_5GC_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_cgi_info_5GC_specs_9 = { + sizeof(struct MeasResultEUTRA__cgi_Info__cgi_info_5GC), + offsetof(struct MeasResultEUTRA__cgi_Info__cgi_info_5GC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cgi_info_5GC_9 = { + "cgi-info-5GC", + "cgi-info-5GC", + &asn_OP_SEQUENCE_OF, + asn_DEF_cgi_info_5GC_tags_9, + sizeof(asn_DEF_cgi_info_5GC_tags_9) + /sizeof(asn_DEF_cgi_info_5GC_tags_9[0]) - 1, /* 1 */ + asn_DEF_cgi_info_5GC_tags_9, /* Same as above */ + sizeof(asn_DEF_cgi_info_5GC_tags_9) + /sizeof(asn_DEF_cgi_info_5GC_tags_9[0]), /* 2 */ + { &asn_OER_type_cgi_info_5GC_constr_9, &asn_PER_type_cgi_info_5GC_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_cgi_info_5GC_9, + 1, /* Single element */ + &asn_SPC_cgi_info_5GC_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_freqBandIndicatorPriority_value2enum_13[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_freqBandIndicatorPriority_enum2value_13[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_freqBandIndicatorPriority_specs_13 = { + asn_MAP_freqBandIndicatorPriority_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_freqBandIndicatorPriority_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_freqBandIndicatorPriority_tags_13[] = { + (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_freqBandIndicatorPriority_13 = { + "freqBandIndicatorPriority", + "freqBandIndicatorPriority", + &asn_OP_NativeEnumerated, + asn_DEF_freqBandIndicatorPriority_tags_13, + sizeof(asn_DEF_freqBandIndicatorPriority_tags_13) + /sizeof(asn_DEF_freqBandIndicatorPriority_tags_13[0]) - 1, /* 1 */ + asn_DEF_freqBandIndicatorPriority_tags_13, /* Same as above */ + sizeof(asn_DEF_freqBandIndicatorPriority_tags_13) + /sizeof(asn_DEF_freqBandIndicatorPriority_tags_13[0]), /* 2 */ + { &asn_OER_type_freqBandIndicatorPriority_constr_13, &asn_PER_type_freqBandIndicatorPriority_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_freqBandIndicatorPriority_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cgi_Info_4[] = { + { ATF_POINTER, 2, offsetof(struct MeasResultEUTRA__cgi_Info, cgi_info_EPC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cgi_info_EPC_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-info-EPC" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultEUTRA__cgi_Info, cgi_info_5GC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_cgi_info_5GC_9, + 0, + { &asn_OER_memb_cgi_info_5GC_constr_9, &asn_PER_memb_cgi_info_5GC_constr_9, memb_cgi_info_5GC_constraint_4 }, + 0, 0, /* No default value */ + "cgi-info-5GC" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA__cgi_Info, freqBandIndicator), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicator" + }, + { ATF_POINTER, 2, offsetof(struct MeasResultEUTRA__cgi_Info, multiBandInfoList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiBandInfoListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multiBandInfoList" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultEUTRA__cgi_Info, freqBandIndicatorPriority), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_freqBandIndicatorPriority_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorPriority" + }, +}; +static const int asn_MAP_cgi_Info_oms_4[] = { 0, 1, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cgi_Info_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_cgi_Info_tag2el_4[] = { + { (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 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_cgi_Info_specs_4 = { + sizeof(struct MeasResultEUTRA__cgi_Info), + offsetof(struct MeasResultEUTRA__cgi_Info, _asn_ctx), + asn_MAP_cgi_Info_tag2el_4, + 5, /* Count of tags in the map */ + asn_MAP_cgi_Info_oms_4, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_cgi_Info_4 = { + "cgi-Info", + "cgi-Info", + &asn_OP_SEQUENCE, + asn_DEF_cgi_Info_tags_4, + sizeof(asn_DEF_cgi_Info_tags_4) + /sizeof(asn_DEF_cgi_Info_tags_4[0]) - 1, /* 1 */ + asn_DEF_cgi_Info_tags_4, /* Same as above */ + sizeof(asn_DEF_cgi_Info_tags_4) + /sizeof(asn_DEF_cgi_Info_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cgi_Info_4, + 5, /* Elements count */ + &asn_SPC_cgi_Info_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, eutra_PhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-PhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultEUTRA, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResultsEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultEUTRA, cgi_Info), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_cgi_Info_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-Info" + }, +}; +static const int asn_MAP_MeasResultEUTRA_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MeasResultEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasResultEUTRA_specs_1 = { + sizeof(struct MeasResultEUTRA), + offsetof(struct MeasResultEUTRA, _asn_ctx), + asn_MAP_MeasResultEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasResultEUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultEUTRA = { + "MeasResultEUTRA", + "MeasResultEUTRA", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultEUTRA_tags_1, + sizeof(asn_DEF_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasResultEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultEUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultEUTRA_1, + 3, /* Elements count */ + &asn_SPC_MeasResultEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultEUTRA.h b/src/codec_utils/RRC/MeasResultEUTRA.h new file mode 100644 index 000000000..54e01537f --- /dev/null +++ b/src/codec_utils/RRC/MeasResultEUTRA.h @@ -0,0 +1,88 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultEUTRA_H_ +#define _MeasResultEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "MeasQuantityResultsEUTRA.h" +#include "FreqBandIndicatorEUTRA.h" +#include +#include "CellAccessRelatedInfo-EUTRA-EPC.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasResultEUTRA__cgi_Info__freqBandIndicatorPriority { + MeasResultEUTRA__cgi_Info__freqBandIndicatorPriority_true = 0 +} e_MeasResultEUTRA__cgi_Info__freqBandIndicatorPriority; + +/* Forward declarations */ +struct MultiBandInfoListEUTRA; +struct CellAccessRelatedInfo_EUTRA_EPC; +struct CellAccessRelatedInfo_EUTRA_5GC; + +/* MeasResultEUTRA */ +typedef struct MeasResultEUTRA { + PhysCellId_t eutra_PhysCellId; + MeasQuantityResultsEUTRA_t measResult; + struct MeasResultEUTRA__cgi_Info { + struct MeasResultEUTRA__cgi_Info__cgi_info_EPC { + CellAccessRelatedInfo_EUTRA_EPC_t cgi_info_EPC_legacy; + struct MeasResultEUTRA__cgi_Info__cgi_info_EPC__cgi_info_EPC_list { + A_SEQUENCE_OF(struct 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 MeasResultEUTRA__cgi_Info__cgi_info_5GC { + A_SEQUENCE_OF(struct CellAccessRelatedInfo_EUTRA_5GC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cgi_info_5GC; + FreqBandIndicatorEUTRA_t freqBandIndicator; + struct MultiBandInfoListEUTRA *multiBandInfoList; /* OPTIONAL */ + long *freqBandIndicatorPriority; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cgi_Info; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultEUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_freqBandIndicatorPriority_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultEUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultEUTRA_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultList2NR.c b/src/codec_utils/RRC/MeasResultList2NR.c new file mode 100644 index 000000000..0d8554bbd --- /dev/null +++ b/src/codec_utils/RRC/MeasResultList2NR.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultList2NR.h" + +#include "MeasResult2NR.h" +static asn_oer_constraints_t asn_OER_type_MeasResultList2NR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MeasResultList2NR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResult2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultList2NR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultList2NR_specs_1 = { + sizeof(struct MeasResultList2NR), + offsetof(struct MeasResultList2NR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultList2NR = { + "MeasResultList2NR", + "MeasResultList2NR", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultList2NR_tags_1, + sizeof(asn_DEF_MeasResultList2NR_tags_1) + /sizeof(asn_DEF_MeasResultList2NR_tags_1[0]), /* 1 */ + asn_DEF_MeasResultList2NR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultList2NR_tags_1) + /sizeof(asn_DEF_MeasResultList2NR_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultList2NR_constr_1, &asn_PER_type_MeasResultList2NR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultList2NR_1, + 1, /* Single element */ + &asn_SPC_MeasResultList2NR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultList2NR.h b/src/codec_utils/RRC/MeasResultList2NR.h new file mode 100644 index 000000000..9ad0cd1d6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultList2NR_H_ +#define _MeasResultList2NR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResult2NR; + +/* MeasResultList2NR */ +typedef struct MeasResultList2NR { + A_SEQUENCE_OF(struct MeasResult2NR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultList2NR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultList2NR; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultList2NR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultList2NR_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultList2NR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultList2NR_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultListEUTRA.c b/src/codec_utils/RRC/MeasResultListEUTRA.c new file mode 100644 index 000000000..921059b99 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultListEUTRA.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultListEUTRA.h" + +#include "MeasResultEUTRA.h" +static asn_oer_constraints_t asn_OER_type_MeasResultListEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MeasResultListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1 = { + sizeof(struct MeasResultListEUTRA), + offsetof(struct MeasResultListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA = { + "MeasResultListEUTRA", + "MeasResultListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultListEUTRA_tags_1, + sizeof(asn_DEF_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MeasResultListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultListEUTRA_tags_1) + /sizeof(asn_DEF_MeasResultListEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultListEUTRA_constr_1, &asn_PER_type_MeasResultListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultListEUTRA_1, + 1, /* Single element */ + &asn_SPC_MeasResultListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultListEUTRA.h b/src/codec_utils/RRC/MeasResultListEUTRA.h new file mode 100644 index 000000000..502970fa9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultListEUTRA_H_ +#define _MeasResultListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultEUTRA; + +/* MeasResultListEUTRA */ +typedef struct MeasResultListEUTRA { + A_SEQUENCE_OF(struct MeasResultEUTRA) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultListEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultListNR.c b/src/codec_utils/RRC/MeasResultListNR.c new file mode 100644 index 000000000..fcdf62ed8 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultListNR.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultListNR.h" + +#include "MeasResultNR.h" +static asn_oer_constraints_t asn_OER_type_MeasResultListNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MeasResultListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1 = { + sizeof(struct MeasResultListNR), + offsetof(struct MeasResultListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultListNR = { + "MeasResultListNR", + "MeasResultListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultListNR_tags_1, + sizeof(asn_DEF_MeasResultListNR_tags_1) + /sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */ + asn_DEF_MeasResultListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultListNR_tags_1) + /sizeof(asn_DEF_MeasResultListNR_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultListNR_constr_1, &asn_PER_type_MeasResultListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultListNR_1, + 1, /* Single element */ + &asn_SPC_MeasResultListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultListNR.h b/src/codec_utils/RRC/MeasResultListNR.h new file mode 100644 index 000000000..b3571a815 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultListNR_H_ +#define _MeasResultListNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultNR; + +/* MeasResultListNR */ +typedef struct MeasResultListNR { + A_SEQUENCE_OF(struct MeasResultNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultListNR; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultListNR_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultNR.c b/src/codec_utils/RRC/MeasResultNR.c new file mode 100644 index 000000000..9303d4614 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultNR.h" + +#include "MeasQuantityResults.h" +#include "ResultsPerSSB-IndexList.h" +#include "ResultsPerCSI-RS-IndexList.h" +#include "CGI-Info.h" +static asn_TYPE_member_t asn_MBR_cellResults_4[] = { + { ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__cellResults, resultsSSB_Cell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Cell" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__cellResults, resultsCSI_RS_Cell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Cell" + }, +}; +static const int asn_MAP_cellResults_oms_4[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_cellResults_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_cellResults_specs_4 = { + sizeof(struct MeasResultNR__measResult__cellResults), + offsetof(struct MeasResultNR__measResult__cellResults, _asn_ctx), + asn_MAP_cellResults_tag2el_4, + 2, /* Count of tags in the map */ + asn_MAP_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_cellResults_4 = { + "cellResults", + "cellResults", + &asn_OP_SEQUENCE, + asn_DEF_cellResults_tags_4, + sizeof(asn_DEF_cellResults_tags_4) + /sizeof(asn_DEF_cellResults_tags_4[0]) - 1, /* 1 */ + asn_DEF_cellResults_tags_4, /* Same as above */ + sizeof(asn_DEF_cellResults_tags_4) + /sizeof(asn_DEF_cellResults_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cellResults_4, + 2, /* Elements count */ + &asn_SPC_cellResults_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rsIndexResults_7[] = { + { ATF_POINTER, 2, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsSSB_Indexes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultsPerSSB_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsSSB-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult__rsIndexResults, resultsCSI_RS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResultsPerCSI_RS_IndexList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resultsCSI-RS-Indexes" + }, +}; +static const int asn_MAP_rsIndexResults_oms_7[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_rsIndexResults_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_rsIndexResults_specs_7 = { + sizeof(struct MeasResultNR__measResult__rsIndexResults), + offsetof(struct MeasResultNR__measResult__rsIndexResults, _asn_ctx), + asn_MAP_rsIndexResults_tag2el_7, + 2, /* Count of tags in the map */ + asn_MAP_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_rsIndexResults_7 = { + "rsIndexResults", + "rsIndexResults", + &asn_OP_SEQUENCE, + asn_DEF_rsIndexResults_tags_7, + sizeof(asn_DEF_rsIndexResults_tags_7) + /sizeof(asn_DEF_rsIndexResults_tags_7[0]) - 1, /* 1 */ + asn_DEF_rsIndexResults_tags_7, /* Same as above */ + sizeof(asn_DEF_rsIndexResults_tags_7) + /sizeof(asn_DEF_rsIndexResults_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_rsIndexResults_7, + 2, /* Elements count */ + &asn_SPC_rsIndexResults_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_measResult_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultNR__measResult, cellResults), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cellResults_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellResults" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR__measResult, rsIndexResults), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rsIndexResults_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsIndexResults" + }, +}; +static const int asn_MAP_measResult_oms_3[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_measResult_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_measResult_specs_3 = { + sizeof(struct MeasResultNR__measResult), + offsetof(struct MeasResultNR__measResult, _asn_ctx), + asn_MAP_measResult_tag2el_3, + 2, /* Count of tags in the map */ + asn_MAP_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_measResult_3 = { + "measResult", + "measResult", + &asn_OP_SEQUENCE, + asn_DEF_measResult_tags_3, + sizeof(asn_DEF_measResult_tags_3) + /sizeof(asn_DEF_measResult_tags_3[0]) - 1, /* 1 */ + asn_DEF_measResult_tags_3, /* Same as above */ + sizeof(asn_DEF_measResult_tags_3) + /sizeof(asn_DEF_measResult_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_measResult_3, + 2, /* Elements count */ + &asn_SPC_measResult_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_11[] = { + { ATF_POINTER, 1, offsetof(struct MeasResultNR__ext1, cgi_Info), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CGI_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cgi-Info" + }, +}; +static const int asn_MAP_ext1_oms_11[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cgi-Info */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_11 = { + sizeof(struct MeasResultNR__ext1), + offsetof(struct MeasResultNR__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_11, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_11, + sizeof(asn_DEF_ext1_tags_11) + /sizeof(asn_DEF_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ext1_tags_11) + /sizeof(asn_DEF_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_11, + 1, /* Elements count */ + &asn_SPC_ext1_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasResultNR_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasResultNR, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultNR, measResult), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_measResult_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResult" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultNR, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_MeasResultNR_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasResultNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasResultNR_specs_1 = { + sizeof(struct MeasResultNR), + offsetof(struct MeasResultNR, _asn_ctx), + asn_MAP_MeasResultNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasResultNR_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultNR = { + "MeasResultNR", + "MeasResultNR", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultNR_tags_1, + sizeof(asn_DEF_MeasResultNR_tags_1) + /sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */ + asn_DEF_MeasResultNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultNR_tags_1) + /sizeof(asn_DEF_MeasResultNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultNR_1, + 3, /* Elements count */ + &asn_SPC_MeasResultNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultNR.h b/src/codec_utils/RRC/MeasResultNR.h new file mode 100644 index 000000000..d7e9f2986 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultNR_H_ +#define _MeasResultNR_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; +struct ResultsPerSSB_IndexList; +struct ResultsPerCSI_RS_IndexList; +struct CGI_Info; + +/* MeasResultNR */ +typedef struct MeasResultNR { + PhysCellId_t *physCellId; /* OPTIONAL */ + struct MeasResultNR__measResult { + struct MeasResultNR__measResult__cellResults { + struct MeasQuantityResults *resultsSSB_Cell; /* OPTIONAL */ + struct MeasQuantityResults *resultsCSI_RS_Cell; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } cellResults; + struct MeasResultNR__measResult__rsIndexResults { + struct ResultsPerSSB_IndexList *resultsSSB_Indexes; /* OPTIONAL */ + struct 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 MeasResultNR__ext1 { + struct CGI_Info *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; +} MeasResultNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultNR; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultNR_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultSCG-Failure.c b/src/codec_utils/RRC/MeasResultSCG-Failure.c new file mode 100644 index 000000000..c42228c26 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultSCG-Failure.h" + +static asn_TYPE_member_t asn_MBR_MeasResultSCG_Failure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultSCG_Failure, measResultPerMOList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultPerMOList" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultSCG_Failure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasResultSCG_Failure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measResultPerMOList */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MeasResultSCG_Failure_specs_1 = { + sizeof(struct MeasResultSCG_Failure), + offsetof(struct MeasResultSCG_Failure, _asn_ctx), + asn_MAP_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_MeasResultSCG_Failure = { + "MeasResultSCG-Failure", + "MeasResultSCG-Failure", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultSCG_Failure_tags_1, + sizeof(asn_DEF_MeasResultSCG_Failure_tags_1) + /sizeof(asn_DEF_MeasResultSCG_Failure_tags_1[0]), /* 1 */ + asn_DEF_MeasResultSCG_Failure_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultSCG_Failure_tags_1) + /sizeof(asn_DEF_MeasResultSCG_Failure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultSCG_Failure_1, + 1, /* Elements count */ + &asn_SPC_MeasResultSCG_Failure_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultSCG-Failure.h b/src/codec_utils/RRC/MeasResultSCG-Failure.h new file mode 100644 index 000000000..af43e8b9c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultSCG_Failure_H_ +#define _MeasResultSCG_Failure_H_ + + +#include + +/* Including external dependencies */ +#include "MeasResultList2NR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasResultSCG-Failure */ +typedef struct MeasResultSCG_Failure { + MeasResultList2NR_t measResultPerMOList; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultSCG_Failure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultSCG_Failure; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultSCG_Failure_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultServMO.c b/src/codec_utils/RRC/MeasResultServMO.c new file mode 100644 index 000000000..8b7c79ea4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultServMO.h" + +#include "MeasResultNR.h" +asn_TYPE_member_t asn_MBR_MeasResultServMO_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, servCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResultServMO, measResultServingCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingCell" + }, + { ATF_POINTER, 1, offsetof(struct MeasResultServMO, measResultBestNeighCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultBestNeighCell" + }, +}; +static const int asn_MAP_MeasResultServMO_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MeasResultServMO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasResultServMO_specs_1 = { + sizeof(struct MeasResultServMO), + offsetof(struct MeasResultServMO, _asn_ctx), + asn_MAP_MeasResultServMO_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasResultServMO_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultServMO = { + "MeasResultServMO", + "MeasResultServMO", + &asn_OP_SEQUENCE, + asn_DEF_MeasResultServMO_tags_1, + sizeof(asn_DEF_MeasResultServMO_tags_1) + /sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */ + asn_DEF_MeasResultServMO_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultServMO_tags_1) + /sizeof(asn_DEF_MeasResultServMO_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResultServMO_1, + 3, /* Elements count */ + &asn_SPC_MeasResultServMO_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultServMO.h b/src/codec_utils/RRC/MeasResultServMO.h new file mode 100644 index 000000000..26dc59248 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultServMO_H_ +#define _MeasResultServMO_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include "MeasResultNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultNR; + +/* MeasResultServMO */ +typedef struct MeasResultServMO { + ServCellIndex_t servCellId; + MeasResultNR_t measResultServingCell; + struct MeasResultNR *measResultBestNeighCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultServMO_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMO; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResultServMO_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultServMO_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultServMO_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResultServMOList.c b/src/codec_utils/RRC/MeasResultServMOList.c new file mode 100644 index 000000000..974fd3103 --- /dev/null +++ b/src/codec_utils/RRC/MeasResultServMOList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResultServMOList.h" + +#include "MeasResultServMO.h" +static asn_oer_constraints_t asn_OER_type_MeasResultServMOList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_MeasResultServMOList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasResultServMO, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasResultServMOList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1 = { + sizeof(struct MeasResultServMOList), + offsetof(struct MeasResultServMOList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList = { + "MeasResultServMOList", + "MeasResultServMOList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasResultServMOList_tags_1, + sizeof(asn_DEF_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */ + asn_DEF_MeasResultServMOList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResultServMOList_tags_1) + /sizeof(asn_DEF_MeasResultServMOList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasResultServMOList_constr_1, &asn_PER_type_MeasResultServMOList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasResultServMOList_1, + 1, /* Single element */ + &asn_SPC_MeasResultServMOList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResultServMOList.h b/src/codec_utils/RRC/MeasResultServMOList.h new file mode 100644 index 000000000..44ba4c5db --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResultServMOList_H_ +#define _MeasResultServMOList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasResultServMO; + +/* MeasResultServMOList */ +typedef struct MeasResultServMOList { + A_SEQUENCE_OF(struct MeasResultServMO) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResultServMOList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResultServMOList; +extern asn_SET_OF_specifics_t asn_SPC_MeasResultServMOList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResultServMOList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasResultServMOList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResultServMOList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasResults.c b/src/codec_utils/RRC/MeasResults.c new file mode 100644 index 000000000..c4b4dccca --- /dev/null +++ b/src/codec_utils/RRC/MeasResults.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasResults.h" + +#include "MeasResultListNR.h" +#include "MeasResultListEUTRA.h" +static asn_oer_constraints_t asn_OER_type_measResultNeighCells_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_measResultNeighCells_4[] = { + { ATF_POINTER, 0, offsetof(struct MeasResults__measResultNeighCells, choice.measResultListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultListNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListNR" + }, + { ATF_POINTER, 0, offsetof(struct MeasResults__measResultNeighCells, choice.measResultListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultListEUTRA" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_measResultNeighCells_specs_4 = { + sizeof(struct MeasResults__measResultNeighCells), + offsetof(struct MeasResults__measResultNeighCells, _asn_ctx), + offsetof(struct MeasResults__measResultNeighCells, present), + sizeof(((struct MeasResults__measResultNeighCells *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_measResultNeighCells_constr_4, &asn_PER_type_measResultNeighCells_constr_4, CHOICE_constraint }, + asn_MBR_measResultNeighCells_4, + 2, /* Elements count */ + &asn_SPC_measResultNeighCells_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasResults_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasResults, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasResults, measResultServingMOList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultServMOList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultServingMOList" + }, + { ATF_POINTER, 1, offsetof(struct MeasResults, measResultNeighCells), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_measResultNeighCells_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResultNeighCells" + }, +}; +static const int asn_MAP_MeasResults_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_MeasResults_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_MeasResults_specs_1 = { + sizeof(struct MeasResults), + offsetof(struct MeasResults, _asn_ctx), + asn_MAP_MeasResults_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasResults_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasResults = { + "MeasResults", + "MeasResults", + &asn_OP_SEQUENCE, + asn_DEF_MeasResults_tags_1, + sizeof(asn_DEF_MeasResults_tags_1) + /sizeof(asn_DEF_MeasResults_tags_1[0]), /* 1 */ + asn_DEF_MeasResults_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasResults_tags_1) + /sizeof(asn_DEF_MeasResults_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasResults_1, + 3, /* Elements count */ + &asn_SPC_MeasResults_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasResults.h b/src/codec_utils/RRC/MeasResults.h new file mode 100644 index 000000000..ccbb7967b --- /dev/null +++ b/src/codec_utils/RRC/MeasResults.h @@ -0,0 +1,73 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasResults_H_ +#define _MeasResults_H_ + + +#include + +/* Including external dependencies */ +#include "MeasId.h" +#include "MeasResultServMOList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasResults__measResultNeighCells_PR { + MeasResults__measResultNeighCells_PR_NOTHING, /* No components present */ + MeasResults__measResultNeighCells_PR_measResultListNR, + /* Extensions may appear below */ + MeasResults__measResultNeighCells_PR_measResultListEUTRA +} MeasResults__measResultNeighCells_PR; + +/* Forward declarations */ +struct MeasResultListNR; +struct MeasResultListEUTRA; + +/* MeasResults */ +typedef struct MeasResults { + MeasId_t measId; + MeasResultServMOList_t measResultServingMOList; + struct MeasResults__measResultNeighCells { + MeasResults__measResultNeighCells_PR present; + union MeasResults__measResultNeighCells_u { + struct MeasResultListNR *measResultListNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct MeasResultListEUTRA *measResultListEUTRA; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *measResultNeighCells; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasResults_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasResults; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasResults_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasResults_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasResults_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasTiming.c b/src/codec_utils/RRC/MeasTiming.c new file mode 100644 index 000000000..9a1c099e2 --- /dev/null +++ b/src/codec_utils/RRC/MeasTiming.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasTiming.h" + +#include "SS-RSSI-Measurement.h" +static asn_TYPE_member_t asn_MBR_frequencyAndTiming_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasTiming__frequencyAndTiming, carrierFreq), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreq" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTiming__frequencyAndTiming, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTiming__frequencyAndTiming, ssb_MeasurementTimingConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-MeasurementTimingConfiguration" + }, + { ATF_POINTER, 1, offsetof(struct MeasTiming__frequencyAndTiming, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, +}; +static const int asn_MAP_frequencyAndTiming_oms_2[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_frequencyAndTiming_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_frequencyAndTiming_specs_2 = { + sizeof(struct MeasTiming__frequencyAndTiming), + offsetof(struct MeasTiming__frequencyAndTiming, _asn_ctx), + asn_MAP_frequencyAndTiming_tag2el_2, + 4, /* Count of tags in the map */ + asn_MAP_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_frequencyAndTiming_2 = { + "frequencyAndTiming", + "frequencyAndTiming", + &asn_OP_SEQUENCE, + asn_DEF_frequencyAndTiming_tags_2, + sizeof(asn_DEF_frequencyAndTiming_tags_2) + /sizeof(asn_DEF_frequencyAndTiming_tags_2[0]) - 1, /* 1 */ + asn_DEF_frequencyAndTiming_tags_2, /* Same as above */ + sizeof(asn_DEF_frequencyAndTiming_tags_2) + /sizeof(asn_DEF_frequencyAndTiming_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_frequencyAndTiming_2, + 4, /* Elements count */ + &asn_SPC_frequencyAndTiming_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasTiming_1[] = { + { ATF_POINTER, 1, offsetof(struct MeasTiming, frequencyAndTiming), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_frequencyAndTiming_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyAndTiming" + }, +}; +static const int asn_MAP_MeasTiming_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_MeasTiming_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasTiming_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* frequencyAndTiming */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasTiming_specs_1 = { + sizeof(struct MeasTiming), + offsetof(struct MeasTiming, _asn_ctx), + asn_MAP_MeasTiming_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_MeasTiming_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasTiming = { + "MeasTiming", + "MeasTiming", + &asn_OP_SEQUENCE, + asn_DEF_MeasTiming_tags_1, + sizeof(asn_DEF_MeasTiming_tags_1) + /sizeof(asn_DEF_MeasTiming_tags_1[0]), /* 1 */ + asn_DEF_MeasTiming_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasTiming_tags_1) + /sizeof(asn_DEF_MeasTiming_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasTiming_1, + 1, /* Elements count */ + &asn_SPC_MeasTiming_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasTiming.h b/src/codec_utils/RRC/MeasTiming.h new file mode 100644 index 000000000..6465f5949 --- /dev/null +++ b/src/codec_utils/RRC/MeasTiming.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasTiming_H_ +#define _MeasTiming_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include "SubcarrierSpacing.h" +#include "SSB-MTC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SS_RSSI_Measurement; + +/* MeasTiming */ +typedef struct MeasTiming { + struct MeasTiming__frequencyAndTiming { + ARFCN_ValueNR_t carrierFreq; + SubcarrierSpacing_t ssbSubcarrierSpacing; + SSB_MTC_t ssb_MeasurementTimingConfiguration; + struct 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. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasTiming_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasTiming; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasTiming_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasTiming_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasTiming_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasTimingList.c b/src/codec_utils/RRC/MeasTimingList.c new file mode 100644 index 000000000..c8e9ac5c4 --- /dev/null +++ b/src/codec_utils/RRC/MeasTimingList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasTimingList.h" + +#include "MeasTiming.h" +static asn_oer_constraints_t asn_OER_type_MeasTimingList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_MeasTimingList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_MeasTiming, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasTimingList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MeasTimingList_specs_1 = { + sizeof(struct MeasTimingList), + offsetof(struct MeasTimingList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasTimingList = { + "MeasTimingList", + "MeasTimingList", + &asn_OP_SEQUENCE_OF, + asn_DEF_MeasTimingList_tags_1, + sizeof(asn_DEF_MeasTimingList_tags_1) + /sizeof(asn_DEF_MeasTimingList_tags_1[0]), /* 1 */ + asn_DEF_MeasTimingList_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasTimingList_tags_1) + /sizeof(asn_DEF_MeasTimingList_tags_1[0]), /* 1 */ + { &asn_OER_type_MeasTimingList_constr_1, &asn_PER_type_MeasTimingList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MeasTimingList_1, + 1, /* Single element */ + &asn_SPC_MeasTimingList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasTimingList.h b/src/codec_utils/RRC/MeasTimingList.h new file mode 100644 index 000000000..c18c618ed --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasTimingList_H_ +#define _MeasTimingList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasTiming; + +/* MeasTimingList */ +typedef struct MeasTimingList { + A_SEQUENCE_OF(struct MeasTiming) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasTimingList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasTimingList; +extern asn_SET_OF_specifics_t asn_SPC_MeasTimingList_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasTimingList_1[1]; +extern asn_per_constraints_t asn_PER_type_MeasTimingList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasTimingList_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasTriggerQuantity.c b/src/codec_utils/RRC/MeasTriggerQuantity.c new file mode 100644 index 000000000..7e19ec727 --- /dev/null +++ b/src/codec_utils/RRC/MeasTriggerQuantity.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasTriggerQuantity.h" + +static asn_oer_constraints_t asn_OER_type_MeasTriggerQuantity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasTriggerQuantity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantity, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantity, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantity, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasTriggerQuantity_specs_1 = { + sizeof(struct MeasTriggerQuantity), + offsetof(struct MeasTriggerQuantity, _asn_ctx), + offsetof(struct MeasTriggerQuantity, present), + sizeof(((struct MeasTriggerQuantity *)0)->present), + asn_MAP_MeasTriggerQuantity_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantity = { + "MeasTriggerQuantity", + "MeasTriggerQuantity", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MeasTriggerQuantity_constr_1, &asn_PER_type_MeasTriggerQuantity_constr_1, CHOICE_constraint }, + asn_MBR_MeasTriggerQuantity_1, + 3, /* Elements count */ + &asn_SPC_MeasTriggerQuantity_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasTriggerQuantity.h b/src/codec_utils/RRC/MeasTriggerQuantity.h new file mode 100644 index 000000000..a6ca7de34 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasTriggerQuantity_H_ +#define _MeasTriggerQuantity_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include "RSRQ-Range.h" +#include "SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasTriggerQuantity_PR { + MeasTriggerQuantity_PR_NOTHING, /* No components present */ + MeasTriggerQuantity_PR_rsrp, + MeasTriggerQuantity_PR_rsrq, + MeasTriggerQuantity_PR_sinr +} MeasTriggerQuantity_PR; + +/* MeasTriggerQuantity */ +typedef struct MeasTriggerQuantity { + MeasTriggerQuantity_PR present; + union MeasTriggerQuantity_u { + RSRP_Range_t rsrp; + RSRQ_Range_t rsrq; + SINR_Range_t sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasTriggerQuantity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantity; +extern asn_CHOICE_specifics_t asn_SPC_MeasTriggerQuantity_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasTriggerQuantity_1[3]; +extern asn_per_constraints_t asn_PER_type_MeasTriggerQuantity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasTriggerQuantity_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasTriggerQuantityEUTRA.c b/src/codec_utils/RRC/MeasTriggerQuantityEUTRA.c new file mode 100644 index 000000000..c1b76b84a --- /dev/null +++ b/src/codec_utils/RRC/MeasTriggerQuantityEUTRA.c @@ -0,0 +1,75 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasTriggerQuantityEUTRA.h" + +static asn_oer_constraints_t asn_OER_type_MeasTriggerQuantityEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasTriggerQuantityEUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityEUTRA, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityEUTRA, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityEUTRA, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_RangeEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasTriggerQuantityEUTRA_specs_1 = { + sizeof(struct MeasTriggerQuantityEUTRA), + offsetof(struct MeasTriggerQuantityEUTRA, _asn_ctx), + offsetof(struct MeasTriggerQuantityEUTRA, present), + sizeof(((struct MeasTriggerQuantityEUTRA *)0)->present), + asn_MAP_MeasTriggerQuantityEUTRA_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantityEUTRA = { + "MeasTriggerQuantityEUTRA", + "MeasTriggerQuantityEUTRA", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MeasTriggerQuantityEUTRA_constr_1, &asn_PER_type_MeasTriggerQuantityEUTRA_constr_1, CHOICE_constraint }, + asn_MBR_MeasTriggerQuantityEUTRA_1, + 3, /* Elements count */ + &asn_SPC_MeasTriggerQuantityEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasTriggerQuantityEUTRA.h b/src/codec_utils/RRC/MeasTriggerQuantityEUTRA.h new file mode 100644 index 000000000..6b23eec09 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasTriggerQuantityEUTRA_H_ +#define _MeasTriggerQuantityEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-RangeEUTRA.h" +#include "RSRQ-RangeEUTRA.h" +#include "SINR-RangeEUTRA.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasTriggerQuantityEUTRA_PR { + MeasTriggerQuantityEUTRA_PR_NOTHING, /* No components present */ + MeasTriggerQuantityEUTRA_PR_rsrp, + MeasTriggerQuantityEUTRA_PR_rsrq, + MeasTriggerQuantityEUTRA_PR_sinr +} MeasTriggerQuantityEUTRA_PR; + +/* MeasTriggerQuantityEUTRA */ +typedef struct MeasTriggerQuantityEUTRA { + MeasTriggerQuantityEUTRA_PR present; + union MeasTriggerQuantityEUTRA_u { + RSRP_RangeEUTRA_t rsrp; + RSRQ_RangeEUTRA_t rsrq; + SINR_RangeEUTRA_t sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasTriggerQuantityEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantityEUTRA; +extern asn_CHOICE_specifics_t asn_SPC_MeasTriggerQuantityEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasTriggerQuantityEUTRA_1[3]; +extern asn_per_constraints_t asn_PER_type_MeasTriggerQuantityEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasTriggerQuantityEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasTriggerQuantityOffset.c b/src/codec_utils/RRC/MeasTriggerQuantityOffset.c new file mode 100644 index 000000000..5cdac2662 --- /dev/null +++ b/src/codec_utils/RRC/MeasTriggerQuantityOffset.c @@ -0,0 +1,174 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasTriggerQuantityOffset.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_rsrp_constr_2 CC_NOTUSED = { + { 1, 0 } /* (-30..30) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rsrq_constr_3 CC_NOTUSED = { + { 1, 0 } /* (-30..30) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sinr_constr_4 CC_NOTUSED = { + { 1, 0 } /* (-30..30) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_MeasTriggerQuantityOffset_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_MeasTriggerQuantityOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityOffset, choice.rsrp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_rsrp_constr_2, &asn_PER_memb_rsrp_constr_2, memb_rsrp_constraint_1 }, + 0, 0, /* No default value */ + "rsrp" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityOffset, choice.rsrq), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_rsrq_constr_3, &asn_PER_memb_rsrq_constr_3, memb_rsrq_constraint_1 }, + 0, 0, /* No default value */ + "rsrq" + }, + { ATF_NOFLAGS, 0, offsetof(struct MeasTriggerQuantityOffset, choice.sinr), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sinr_constr_4, &asn_PER_memb_sinr_constr_4, memb_sinr_constraint_1 }, + 0, 0, /* No default value */ + "sinr" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasTriggerQuantityOffset_specs_1 = { + sizeof(struct MeasTriggerQuantityOffset), + offsetof(struct MeasTriggerQuantityOffset, _asn_ctx), + offsetof(struct MeasTriggerQuantityOffset, present), + sizeof(((struct MeasTriggerQuantityOffset *)0)->present), + asn_MAP_MeasTriggerQuantityOffset_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantityOffset = { + "MeasTriggerQuantityOffset", + "MeasTriggerQuantityOffset", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_MeasTriggerQuantityOffset_constr_1, &asn_PER_type_MeasTriggerQuantityOffset_constr_1, CHOICE_constraint }, + asn_MBR_MeasTriggerQuantityOffset_1, + 3, /* Elements count */ + &asn_SPC_MeasTriggerQuantityOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasTriggerQuantityOffset.h b/src/codec_utils/RRC/MeasTriggerQuantityOffset.h new file mode 100644 index 000000000..01daf7056 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasTriggerQuantityOffset_H_ +#define _MeasTriggerQuantityOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasTriggerQuantityOffset_PR { + MeasTriggerQuantityOffset_PR_NOTHING, /* No components present */ + MeasTriggerQuantityOffset_PR_rsrp, + MeasTriggerQuantityOffset_PR_rsrq, + MeasTriggerQuantityOffset_PR_sinr +} MeasTriggerQuantityOffset_PR; + +/* MeasTriggerQuantityOffset */ +typedef struct MeasTriggerQuantityOffset { + MeasTriggerQuantityOffset_PR present; + union MeasTriggerQuantityOffset_u { + long rsrp; + long rsrq; + long sinr; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MeasTriggerQuantityOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasTriggerQuantityOffset; +extern asn_CHOICE_specifics_t asn_SPC_MeasTriggerQuantityOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasTriggerQuantityOffset_1[3]; +extern asn_per_constraints_t asn_PER_type_MeasTriggerQuantityOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasTriggerQuantityOffset_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasurementReport-IEs.c b/src/codec_utils/RRC/MeasurementReport-IEs.c new file mode 100644 index 000000000..d89393fcb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasurementReport-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct MeasurementReport_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementReport_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementReport_IEs, measResults), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measResults" + }, + { ATF_POINTER, 2, offsetof(struct 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 MeasurementReport_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_MeasurementReport_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_MeasurementReport_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasurementReport_IEs_specs_1 = { + sizeof(struct MeasurementReport_IEs), + offsetof(struct MeasurementReport_IEs, _asn_ctx), + asn_MAP_MeasurementReport_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_MeasurementReport_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementReport_IEs = { + "MeasurementReport-IEs", + "MeasurementReport-IEs", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementReport_IEs_tags_1, + sizeof(asn_DEF_MeasurementReport_IEs_tags_1) + /sizeof(asn_DEF_MeasurementReport_IEs_tags_1[0]), /* 1 */ + asn_DEF_MeasurementReport_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementReport_IEs_tags_1) + /sizeof(asn_DEF_MeasurementReport_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementReport_IEs_1, + 3, /* Elements count */ + &asn_SPC_MeasurementReport_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasurementReport-IEs.h b/src/codec_utils/RRC/MeasurementReport-IEs.h new file mode 100644 index 000000000..aa101cdce --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasurementReport_IEs_H_ +#define _MeasurementReport_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "MeasResults.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MeasurementReport-IEs */ +typedef struct MeasurementReport_IEs { + MeasResults_t measResults; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} MeasurementReport_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementReport_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementReport_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementReport_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementReport_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasurementReport.c b/src/codec_utils/RRC/MeasurementReport.c new file mode 100644 index 000000000..be2e75dfd --- /dev/null +++ b/src/codec_utils/RRC/MeasurementReport.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasurementReport.h" + +#include "MeasurementReport-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct MeasurementReport__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct MeasurementReport__criticalExtensions, choice.measurementReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementReport_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementReport" + }, + { ATF_POINTER, 0, offsetof(struct MeasurementReport__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct MeasurementReport__criticalExtensions), + offsetof(struct MeasurementReport__criticalExtensions, _asn_ctx), + offsetof(struct MeasurementReport__criticalExtensions, present), + sizeof(((struct MeasurementReport__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementReport, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementReport_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_MeasurementReport_specs_1 = { + sizeof(struct MeasurementReport), + offsetof(struct MeasurementReport, _asn_ctx), + asn_MAP_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_MeasurementReport = { + "MeasurementReport", + "MeasurementReport", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementReport_tags_1, + sizeof(asn_DEF_MeasurementReport_tags_1) + /sizeof(asn_DEF_MeasurementReport_tags_1[0]), /* 1 */ + asn_DEF_MeasurementReport_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementReport_tags_1) + /sizeof(asn_DEF_MeasurementReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementReport_1, + 1, /* Elements count */ + &asn_SPC_MeasurementReport_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasurementReport.h b/src/codec_utils/RRC/MeasurementReport.h new file mode 100644 index 000000000..ef04a1305 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasurementReport_H_ +#define _MeasurementReport_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementReport__criticalExtensions_PR { + MeasurementReport__criticalExtensions_PR_NOTHING, /* No components present */ + MeasurementReport__criticalExtensions_PR_measurementReport, + MeasurementReport__criticalExtensions_PR_criticalExtensionsFuture +} MeasurementReport__criticalExtensions_PR; + +/* Forward declarations */ +struct MeasurementReport_IEs; + +/* MeasurementReport */ +typedef struct MeasurementReport { + struct MeasurementReport__criticalExtensions { + MeasurementReport__criticalExtensions_PR present; + union MeasurementReport__criticalExtensions_u { + struct MeasurementReport_IEs *measurementReport; + struct 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; +} MeasurementReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementReport; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementReport_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementReport_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementReport_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.c b/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.c new file mode 100644 index 000000000..e0fec040b --- /dev/null +++ b/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasurementTimingConfiguration-IEs.h" + +#include "MeasTimingList.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct MeasurementTimingConfiguration_IEs__nonCriticalExtension), + offsetof(struct MeasurementTimingConfiguration_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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MeasurementTimingConfiguration_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct MeasurementTimingConfiguration_IEs, measTiming), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasTimingList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measTiming" + }, + { ATF_POINTER, 1, offsetof(struct MeasurementTimingConfiguration_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_MeasurementTimingConfiguration_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_MeasurementTimingConfiguration_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MeasurementTimingConfiguration_IEs_specs_1 = { + sizeof(struct MeasurementTimingConfiguration_IEs), + offsetof(struct MeasurementTimingConfiguration_IEs, _asn_ctx), + asn_MAP_MeasurementTimingConfiguration_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_MeasurementTimingConfiguration_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MeasurementTimingConfiguration_IEs = { + "MeasurementTimingConfiguration-IEs", + "MeasurementTimingConfiguration-IEs", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementTimingConfiguration_IEs_tags_1, + sizeof(asn_DEF_MeasurementTimingConfiguration_IEs_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_IEs_tags_1[0]), /* 1 */ + asn_DEF_MeasurementTimingConfiguration_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementTimingConfiguration_IEs_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementTimingConfiguration_IEs_1, + 2, /* Elements count */ + &asn_SPC_MeasurementTimingConfiguration_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.h b/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.h new file mode 100644 index 000000000..78b51fda6 --- /dev/null +++ b/src/codec_utils/RRC/MeasurementTimingConfiguration-IEs.h @@ -0,0 +1,47 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasurementTimingConfiguration_IEs_H_ +#define _MeasurementTimingConfiguration_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasTimingList; + +/* MeasurementTimingConfiguration-IEs */ +typedef struct MeasurementTimingConfiguration_IEs { + struct MeasTimingList *measTiming; /* OPTIONAL */ + struct MeasurementTimingConfiguration_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; +} MeasurementTimingConfiguration_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementTimingConfiguration_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementTimingConfiguration_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_MeasurementTimingConfiguration_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementTimingConfiguration_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/MeasurementTimingConfiguration.c b/src/codec_utils/RRC/MeasurementTimingConfiguration.c new file mode 100644 index 000000000..3a098bf21 --- /dev/null +++ b/src/codec_utils/RRC/MeasurementTimingConfiguration.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MeasurementTimingConfiguration.h" + +#include "MeasurementTimingConfiguration-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct MeasurementTimingConfiguration__criticalExtensions__c1, choice.measTimingConf), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementTimingConfiguration_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measTimingConf" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_3 = { + sizeof(struct MeasurementTimingConfiguration__criticalExtensions__c1), + offsetof(struct MeasurementTimingConfiguration__criticalExtensions__c1, _asn_ctx), + offsetof(struct MeasurementTimingConfiguration__criticalExtensions__c1, present), + sizeof(((struct MeasurementTimingConfiguration__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 4, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_8 = { + sizeof(struct MeasurementTimingConfiguration__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_8 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_8, + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_8, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_8) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct MeasurementTimingConfiguration__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct MeasurementTimingConfiguration__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct MeasurementTimingConfiguration__criticalExtensions), + offsetof(struct MeasurementTimingConfiguration__criticalExtensions, _asn_ctx), + offsetof(struct MeasurementTimingConfiguration__criticalExtensions, present), + sizeof(((struct MeasurementTimingConfiguration__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_MeasurementTimingConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MeasurementTimingConfiguration, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_MeasurementTimingConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_MeasurementTimingConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_MeasurementTimingConfiguration_specs_1 = { + sizeof(struct MeasurementTimingConfiguration), + offsetof(struct MeasurementTimingConfiguration, _asn_ctx), + asn_MAP_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_MeasurementTimingConfiguration = { + "MeasurementTimingConfiguration", + "MeasurementTimingConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_MeasurementTimingConfiguration_tags_1, + sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + asn_DEF_MeasurementTimingConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1) + /sizeof(asn_DEF_MeasurementTimingConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MeasurementTimingConfiguration_1, + 1, /* Elements count */ + &asn_SPC_MeasurementTimingConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MeasurementTimingConfiguration.h b/src/codec_utils/RRC/MeasurementTimingConfiguration.h new file mode 100644 index 000000000..f0435842d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MeasurementTimingConfiguration_H_ +#define _MeasurementTimingConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MeasurementTimingConfiguration__criticalExtensions_PR { + MeasurementTimingConfiguration__criticalExtensions_PR_NOTHING, /* No components present */ + MeasurementTimingConfiguration__criticalExtensions_PR_c1, + MeasurementTimingConfiguration__criticalExtensions_PR_criticalExtensionsFuture +} MeasurementTimingConfiguration__criticalExtensions_PR; +typedef enum MeasurementTimingConfiguration__criticalExtensions__c1_PR { + MeasurementTimingConfiguration__criticalExtensions__c1_PR_NOTHING, /* No components present */ + MeasurementTimingConfiguration__criticalExtensions__c1_PR_measTimingConf, + MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare3, + MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare2, + MeasurementTimingConfiguration__criticalExtensions__c1_PR_spare1 +} MeasurementTimingConfiguration__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct MeasurementTimingConfiguration_IEs; + +/* MeasurementTimingConfiguration */ +typedef struct MeasurementTimingConfiguration { + struct MeasurementTimingConfiguration__criticalExtensions { + MeasurementTimingConfiguration__criticalExtensions_PR present; + union MeasurementTimingConfiguration__criticalExtensions_u { + struct MeasurementTimingConfiguration__criticalExtensions__c1 { + MeasurementTimingConfiguration__criticalExtensions__c1_PR present; + union MeasurementTimingConfiguration__criticalExtensions__c1_u { + struct 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 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; +} MeasurementTimingConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MeasurementTimingConfiguration; + +#ifdef __cplusplus +} +#endif + +#endif /* _MeasurementTimingConfiguration_H_ */ +#include diff --git a/src/codec_utils/RRC/MobilityFromNRCommand-IEs.c b/src/codec_utils/RRC/MobilityFromNRCommand-IEs.c new file mode 100644 index 000000000..ad462fc19 --- /dev/null +++ b/src/codec_utils/RRC/MobilityFromNRCommand-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MobilityFromNRCommand-IEs.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_targetRAT_Type_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_targetRAT_Type_specs_2 = { + asn_MAP_targetRAT_Type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_targetRAT_Type_2 = { + "targetRAT-Type", + "targetRAT-Type", + &asn_OP_NativeEnumerated, + asn_DEF_targetRAT_Type_tags_2, + sizeof(asn_DEF_targetRAT_Type_tags_2) + /sizeof(asn_DEF_targetRAT_Type_tags_2[0]) - 1, /* 1 */ + asn_DEF_targetRAT_Type_tags_2, /* Same as above */ + sizeof(asn_DEF_targetRAT_Type_tags_2) + /sizeof(asn_DEF_targetRAT_Type_tags_2[0]), /* 2 */ + { &asn_OER_type_targetRAT_Type_constr_2, &asn_PER_type_targetRAT_Type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_targetRAT_Type_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_11 = { + sizeof(struct MobilityFromNRCommand_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_11 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_11, + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_11, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MobilityFromNRCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MobilityFromNRCommand_IEs, targetRAT_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_targetRAT_Type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetRAT-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 MobilityFromNRCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_nonCriticalExtension_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_MobilityFromNRCommand_IEs_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_MobilityFromNRCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MobilityFromNRCommand_IEs_specs_1 = { + sizeof(struct MobilityFromNRCommand_IEs), + offsetof(struct MobilityFromNRCommand_IEs, _asn_ctx), + asn_MAP_MobilityFromNRCommand_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_MobilityFromNRCommand_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_MobilityFromNRCommand_IEs = { + "MobilityFromNRCommand-IEs", + "MobilityFromNRCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_MobilityFromNRCommand_IEs_tags_1, + sizeof(asn_DEF_MobilityFromNRCommand_IEs_tags_1) + /sizeof(asn_DEF_MobilityFromNRCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_MobilityFromNRCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_MobilityFromNRCommand_IEs_tags_1) + /sizeof(asn_DEF_MobilityFromNRCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MobilityFromNRCommand_IEs_1, + 5, /* Elements count */ + &asn_SPC_MobilityFromNRCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MobilityFromNRCommand-IEs.h b/src/codec_utils/RRC/MobilityFromNRCommand-IEs.h new file mode 100644 index 000000000..982f326d7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MobilityFromNRCommand_IEs_H_ +#define _MobilityFromNRCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MobilityFromNRCommand_IEs__targetRAT_Type { + MobilityFromNRCommand_IEs__targetRAT_Type_eutra = 0, + MobilityFromNRCommand_IEs__targetRAT_Type_spare3 = 1, + MobilityFromNRCommand_IEs__targetRAT_Type_spare2 = 2, + MobilityFromNRCommand_IEs__targetRAT_Type_spare1 = 3 + /* + * Enumeration is extensible + */ +} e_MobilityFromNRCommand_IEs__targetRAT_Type; + +/* MobilityFromNRCommand-IEs */ +typedef struct MobilityFromNRCommand_IEs { + long targetRAT_Type; + OCTET_STRING_t targetRAT_MessageContainer; + OCTET_STRING_t *nas_SecurityParamFromNR; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} MobilityFromNRCommand_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_targetRAT_Type_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MobilityFromNRCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_MobilityFromNRCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_MobilityFromNRCommand_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MobilityFromNRCommand_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/MobilityFromNRCommand.c b/src/codec_utils/RRC/MobilityFromNRCommand.c new file mode 100644 index 000000000..75cc90999 --- /dev/null +++ b/src/codec_utils/RRC/MobilityFromNRCommand.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MobilityFromNRCommand.h" + +#include "MobilityFromNRCommand-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct MobilityFromNRCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct MobilityFromNRCommand__criticalExtensions, choice.mobilityFromNRCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MobilityFromNRCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityFromNRCommand" + }, + { ATF_POINTER, 0, offsetof(struct MobilityFromNRCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct MobilityFromNRCommand__criticalExtensions), + offsetof(struct MobilityFromNRCommand__criticalExtensions, _asn_ctx), + offsetof(struct MobilityFromNRCommand__criticalExtensions, present), + sizeof(((struct MobilityFromNRCommand__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MobilityFromNRCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MobilityFromNRCommand, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct MobilityFromNRCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_MobilityFromNRCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MobilityFromNRCommand_specs_1 = { + sizeof(struct MobilityFromNRCommand), + offsetof(struct MobilityFromNRCommand, _asn_ctx), + asn_MAP_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_MobilityFromNRCommand = { + "MobilityFromNRCommand", + "MobilityFromNRCommand", + &asn_OP_SEQUENCE, + asn_DEF_MobilityFromNRCommand_tags_1, + sizeof(asn_DEF_MobilityFromNRCommand_tags_1) + /sizeof(asn_DEF_MobilityFromNRCommand_tags_1[0]), /* 1 */ + asn_DEF_MobilityFromNRCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_MobilityFromNRCommand_tags_1) + /sizeof(asn_DEF_MobilityFromNRCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MobilityFromNRCommand_1, + 2, /* Elements count */ + &asn_SPC_MobilityFromNRCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MobilityFromNRCommand.h b/src/codec_utils/RRC/MobilityFromNRCommand.h new file mode 100644 index 000000000..ccf7a8fd6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MobilityFromNRCommand_H_ +#define _MobilityFromNRCommand_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MobilityFromNRCommand__criticalExtensions_PR { + MobilityFromNRCommand__criticalExtensions_PR_NOTHING, /* No components present */ + MobilityFromNRCommand__criticalExtensions_PR_mobilityFromNRCommand, + MobilityFromNRCommand__criticalExtensions_PR_criticalExtensionsFuture +} MobilityFromNRCommand__criticalExtensions_PR; + +/* Forward declarations */ +struct MobilityFromNRCommand_IEs; + +/* MobilityFromNRCommand */ +typedef struct MobilityFromNRCommand { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct MobilityFromNRCommand__criticalExtensions { + MobilityFromNRCommand__criticalExtensions_PR present; + union MobilityFromNRCommand__criticalExtensions_u { + struct MobilityFromNRCommand_IEs *mobilityFromNRCommand; + struct 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; +} MobilityFromNRCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MobilityFromNRCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_MobilityFromNRCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_MobilityFromNRCommand_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MobilityFromNRCommand_H_ */ +#include diff --git a/src/codec_utils/RRC/MobilityStateParameters.c b/src/codec_utils/RRC/MobilityStateParameters.c new file mode 100644 index 000000000..53a922492 --- /dev/null +++ b/src/codec_utils/RRC/MobilityStateParameters.c @@ -0,0 +1,268 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_t_Evaluation_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t_HystNormal_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_n_CellChangeMedium_constr_20 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n_CellChangeHigh_constr_21 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_t_Evaluation_specs_2 = { + asn_MAP_t_Evaluation_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t_Evaluation_2 = { + "t-Evaluation", + "t-Evaluation", + &asn_OP_NativeEnumerated, + asn_DEF_t_Evaluation_tags_2, + sizeof(asn_DEF_t_Evaluation_tags_2) + /sizeof(asn_DEF_t_Evaluation_tags_2[0]) - 1, /* 1 */ + asn_DEF_t_Evaluation_tags_2, /* Same as above */ + sizeof(asn_DEF_t_Evaluation_tags_2) + /sizeof(asn_DEF_t_Evaluation_tags_2[0]), /* 2 */ + { &asn_OER_type_t_Evaluation_constr_2, &asn_PER_type_t_Evaluation_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t_Evaluation_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t_HystNormal_specs_11 = { + asn_MAP_t_HystNormal_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t_HystNormal_11 = { + "t-HystNormal", + "t-HystNormal", + &asn_OP_NativeEnumerated, + asn_DEF_t_HystNormal_tags_11, + sizeof(asn_DEF_t_HystNormal_tags_11) + /sizeof(asn_DEF_t_HystNormal_tags_11[0]) - 1, /* 1 */ + asn_DEF_t_HystNormal_tags_11, /* Same as above */ + sizeof(asn_DEF_t_HystNormal_tags_11) + /sizeof(asn_DEF_t_HystNormal_tags_11[0]), /* 2 */ + { &asn_OER_type_t_HystNormal_constr_11, &asn_PER_type_t_HystNormal_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t_HystNormal_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_MobilityStateParameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct MobilityStateParameters, t_Evaluation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t_Evaluation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Evaluation" + }, + { ATF_NOFLAGS, 0, offsetof(struct MobilityStateParameters, t_HystNormal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t_HystNormal_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-HystNormal" + }, + { ATF_NOFLAGS, 0, offsetof(struct MobilityStateParameters, n_CellChangeMedium), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_n_CellChangeMedium_constr_20, &asn_PER_memb_n_CellChangeMedium_constr_20, memb_n_CellChangeMedium_constraint_1 }, + 0, 0, /* No default value */ + "n-CellChangeMedium" + }, + { ATF_NOFLAGS, 0, offsetof(struct MobilityStateParameters, n_CellChangeHigh), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_n_CellChangeHigh_constr_21, &asn_PER_memb_n_CellChangeHigh_constr_21, memb_n_CellChangeHigh_constraint_1 }, + 0, 0, /* No default value */ + "n-CellChangeHigh" + }, +}; +static const ber_tlv_tag_t asn_DEF_MobilityStateParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_MobilityStateParameters_specs_1 = { + sizeof(struct MobilityStateParameters), + offsetof(struct MobilityStateParameters, _asn_ctx), + asn_MAP_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_MobilityStateParameters = { + "MobilityStateParameters", + "MobilityStateParameters", + &asn_OP_SEQUENCE, + asn_DEF_MobilityStateParameters_tags_1, + sizeof(asn_DEF_MobilityStateParameters_tags_1) + /sizeof(asn_DEF_MobilityStateParameters_tags_1[0]), /* 1 */ + asn_DEF_MobilityStateParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_MobilityStateParameters_tags_1) + /sizeof(asn_DEF_MobilityStateParameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_MobilityStateParameters_1, + 4, /* Elements count */ + &asn_SPC_MobilityStateParameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MobilityStateParameters.h b/src/codec_utils/RRC/MobilityStateParameters.h new file mode 100644 index 000000000..0764ebb99 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MobilityStateParameters_H_ +#define _MobilityStateParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum MobilityStateParameters__t_Evaluation { + MobilityStateParameters__t_Evaluation_s30 = 0, + MobilityStateParameters__t_Evaluation_s60 = 1, + MobilityStateParameters__t_Evaluation_s120 = 2, + MobilityStateParameters__t_Evaluation_s180 = 3, + MobilityStateParameters__t_Evaluation_s240 = 4, + MobilityStateParameters__t_Evaluation_spare3 = 5, + MobilityStateParameters__t_Evaluation_spare2 = 6, + MobilityStateParameters__t_Evaluation_spare1 = 7 +} e_MobilityStateParameters__t_Evaluation; +typedef enum MobilityStateParameters__t_HystNormal { + MobilityStateParameters__t_HystNormal_s30 = 0, + MobilityStateParameters__t_HystNormal_s60 = 1, + MobilityStateParameters__t_HystNormal_s120 = 2, + MobilityStateParameters__t_HystNormal_s180 = 3, + MobilityStateParameters__t_HystNormal_s240 = 4, + MobilityStateParameters__t_HystNormal_spare3 = 5, + MobilityStateParameters__t_HystNormal_spare2 = 6, + MobilityStateParameters__t_HystNormal_spare1 = 7 +} e_MobilityStateParameters__t_HystNormal; + +/* MobilityStateParameters */ +typedef struct 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; +} MobilityStateParameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_t_Evaluation_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t_HystNormal_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_MobilityStateParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_MobilityStateParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_MobilityStateParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _MobilityStateParameters_H_ */ +#include diff --git a/src/codec_utils/RRC/ModulationOrder.c b/src/codec_utils/RRC/ModulationOrder.c new file mode 100644 index 000000000..2ddad1650 --- /dev/null +++ b/src/codec_utils/RRC/ModulationOrder.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ModulationOrder.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ModulationOrder_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_ModulationOrder_specs_1 = { + asn_MAP_ModulationOrder_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_ModulationOrder_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ModulationOrder = { + "ModulationOrder", + "ModulationOrder", + &asn_OP_NativeEnumerated, + asn_DEF_ModulationOrder_tags_1, + sizeof(asn_DEF_ModulationOrder_tags_1) + /sizeof(asn_DEF_ModulationOrder_tags_1[0]), /* 1 */ + asn_DEF_ModulationOrder_tags_1, /* Same as above */ + sizeof(asn_DEF_ModulationOrder_tags_1) + /sizeof(asn_DEF_ModulationOrder_tags_1[0]), /* 1 */ + { &asn_OER_type_ModulationOrder_constr_1, &asn_PER_type_ModulationOrder_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ModulationOrder_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ModulationOrder.h b/src/codec_utils/RRC/ModulationOrder.h new file mode 100644 index 000000000..c3dc5d37e --- /dev/null +++ b/src/codec_utils/RRC/ModulationOrder.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ModulationOrder_H_ +#define _ModulationOrder_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ModulationOrder { + ModulationOrder_bpsk_halfpi = 0, + ModulationOrder_bpsk = 1, + ModulationOrder_qpsk = 2, + ModulationOrder_qam16 = 3, + ModulationOrder_qam64 = 4, + ModulationOrder_qam256 = 5 +} e_ModulationOrder; + +/* ModulationOrder */ +typedef long ModulationOrder_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ModulationOrder_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ModulationOrder; +extern const asn_INTEGER_specifics_t asn_SPC_ModulationOrder_specs_1; +asn_struct_free_f ModulationOrder_free; +asn_struct_print_f ModulationOrder_print; +asn_constr_check_f ModulationOrder_constraint; +ber_type_decoder_f ModulationOrder_decode_ber; +der_type_encoder_f ModulationOrder_encode_der; +xer_type_decoder_f ModulationOrder_decode_xer; +xer_type_encoder_f ModulationOrder_encode_xer; +oer_type_decoder_f ModulationOrder_decode_oer; +oer_type_encoder_f ModulationOrder_encode_oer; +per_type_decoder_f ModulationOrder_decode_uper; +per_type_encoder_f ModulationOrder_encode_uper; +per_type_decoder_f ModulationOrder_decode_aper; +per_type_encoder_f ModulationOrder_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ModulationOrder_H_ */ +#include diff --git a/src/codec_utils/RRC/MultiBandInfoListEUTRA.c b/src/codec_utils/RRC/MultiBandInfoListEUTRA.c new file mode 100644 index 000000000..53afe6c0d --- /dev/null +++ b/src/codec_utils/RRC/MultiBandInfoListEUTRA.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MultiBandInfoListEUTRA.h" + +static asn_oer_constraints_t asn_OER_type_MultiBandInfoListEUTRA_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MultiBandInfoListEUTRA_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FreqBandIndicatorEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MultiBandInfoListEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MultiBandInfoListEUTRA_specs_1 = { + sizeof(struct MultiBandInfoListEUTRA), + offsetof(struct MultiBandInfoListEUTRA, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MultiBandInfoListEUTRA = { + "MultiBandInfoListEUTRA", + "MultiBandInfoListEUTRA", + &asn_OP_SEQUENCE_OF, + asn_DEF_MultiBandInfoListEUTRA_tags_1, + sizeof(asn_DEF_MultiBandInfoListEUTRA_tags_1) + /sizeof(asn_DEF_MultiBandInfoListEUTRA_tags_1[0]), /* 1 */ + asn_DEF_MultiBandInfoListEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_MultiBandInfoListEUTRA_tags_1) + /sizeof(asn_DEF_MultiBandInfoListEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_MultiBandInfoListEUTRA_constr_1, &asn_PER_type_MultiBandInfoListEUTRA_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MultiBandInfoListEUTRA_1, + 1, /* Single element */ + &asn_SPC_MultiBandInfoListEUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MultiBandInfoListEUTRA.h b/src/codec_utils/RRC/MultiBandInfoListEUTRA.h new file mode 100644 index 000000000..ecf5db336 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MultiBandInfoListEUTRA_H_ +#define _MultiBandInfoListEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MultiBandInfoListEUTRA */ +typedef struct MultiBandInfoListEUTRA { + A_SEQUENCE_OF(FreqBandIndicatorEUTRA_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MultiBandInfoListEUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MultiBandInfoListEUTRA; +extern asn_SET_OF_specifics_t asn_SPC_MultiBandInfoListEUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_MultiBandInfoListEUTRA_1[1]; +extern asn_per_constraints_t asn_PER_type_MultiBandInfoListEUTRA_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MultiBandInfoListEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.c b/src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.c new file mode 100644 index 000000000..0f4c56258 --- /dev/null +++ b/src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MultiFrequencyBandListNR-SIB.h" + +#include "NR-MultiBandInfo.h" +static asn_oer_constraints_t asn_OER_type_MultiFrequencyBandListNR_SIB_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MultiFrequencyBandListNR_SIB_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_MultiBandInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_SIB_specs_1 = { + sizeof(struct MultiFrequencyBandListNR_SIB), + offsetof(struct MultiFrequencyBandListNR_SIB, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR_SIB = { + "MultiFrequencyBandListNR-SIB", + "MultiFrequencyBandListNR-SIB", + &asn_OP_SEQUENCE_OF, + asn_DEF_MultiFrequencyBandListNR_SIB_tags_1, + sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1) + /sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ + asn_DEF_MultiFrequencyBandListNR_SIB_tags_1, /* Same as above */ + sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1) + /sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ + { &asn_OER_type_MultiFrequencyBandListNR_SIB_constr_1, &asn_PER_type_MultiFrequencyBandListNR_SIB_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MultiFrequencyBandListNR_SIB_1, + 1, /* Single element */ + &asn_SPC_MultiFrequencyBandListNR_SIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.h b/src/codec_utils/RRC/MultiFrequencyBandListNR-SIB.h new file mode 100644 index 000000000..1d10bcb5b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MultiFrequencyBandListNR_SIB_H_ +#define _MultiFrequencyBandListNR_SIB_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NR_MultiBandInfo; + +/* MultiFrequencyBandListNR-SIB */ +typedef struct MultiFrequencyBandListNR_SIB { + A_SEQUENCE_OF(struct NR_MultiBandInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MultiFrequencyBandListNR_SIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR_SIB; +extern asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_SIB_specs_1; +extern asn_TYPE_member_t asn_MBR_MultiFrequencyBandListNR_SIB_1[1]; +extern asn_per_constraints_t asn_PER_type_MultiFrequencyBandListNR_SIB_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MultiFrequencyBandListNR_SIB_H_ */ +#include diff --git a/src/codec_utils/RRC/MultiFrequencyBandListNR.c b/src/codec_utils/RRC/MultiFrequencyBandListNR.c new file mode 100644 index 000000000..fbf02969a --- /dev/null +++ b/src/codec_utils/RRC/MultiFrequencyBandListNR.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MultiFrequencyBandListNR.h" + +static asn_oer_constraints_t asn_OER_type_MultiFrequencyBandListNR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_MultiFrequencyBandListNR_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_MultiFrequencyBandListNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_specs_1 = { + sizeof(struct MultiFrequencyBandListNR), + offsetof(struct MultiFrequencyBandListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR = { + "MultiFrequencyBandListNR", + "MultiFrequencyBandListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_MultiFrequencyBandListNR_tags_1, + sizeof(asn_DEF_MultiFrequencyBandListNR_tags_1) + /sizeof(asn_DEF_MultiFrequencyBandListNR_tags_1[0]), /* 1 */ + asn_DEF_MultiFrequencyBandListNR_tags_1, /* Same as above */ + sizeof(asn_DEF_MultiFrequencyBandListNR_tags_1) + /sizeof(asn_DEF_MultiFrequencyBandListNR_tags_1[0]), /* 1 */ + { &asn_OER_type_MultiFrequencyBandListNR_constr_1, &asn_PER_type_MultiFrequencyBandListNR_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_MultiFrequencyBandListNR_1, + 1, /* Single element */ + &asn_SPC_MultiFrequencyBandListNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/MultiFrequencyBandListNR.h b/src/codec_utils/RRC/MultiFrequencyBandListNR.h new file mode 100644 index 000000000..b77cb1e0b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MultiFrequencyBandListNR_H_ +#define _MultiFrequencyBandListNR_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorNR.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MultiFrequencyBandListNR */ +typedef struct MultiFrequencyBandListNR { + A_SEQUENCE_OF(FreqBandIndicatorNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} MultiFrequencyBandListNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR; +extern asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_specs_1; +extern asn_TYPE_member_t asn_MBR_MultiFrequencyBandListNR_1[1]; +extern asn_per_constraints_t asn_PER_type_MultiFrequencyBandListNR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _MultiFrequencyBandListNR_H_ */ +#include diff --git a/src/codec_utils/RRC/NAICS-Capability-Entry.c b/src/codec_utils/RRC/NAICS-Capability-Entry.c new file mode 100644 index 000000000..9bc9dafb5 --- /dev/null +++ b/src/codec_utils/RRC/NAICS-Capability-Entry.c @@ -0,0 +1,170 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NAICS-Capability-Entry.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_numberOfAggregatedPRB_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_numberOfNAICS_CapableCC_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..5) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_numberOfAggregatedPRB_specs_3 = { + asn_MAP_numberOfAggregatedPRB_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_numberOfAggregatedPRB_3 = { + "numberOfAggregatedPRB", + "numberOfAggregatedPRB", + &asn_OP_NativeEnumerated, + asn_DEF_numberOfAggregatedPRB_tags_3, + sizeof(asn_DEF_numberOfAggregatedPRB_tags_3) + /sizeof(asn_DEF_numberOfAggregatedPRB_tags_3[0]) - 1, /* 1 */ + asn_DEF_numberOfAggregatedPRB_tags_3, /* Same as above */ + sizeof(asn_DEF_numberOfAggregatedPRB_tags_3) + /sizeof(asn_DEF_numberOfAggregatedPRB_tags_3[0]), /* 2 */ + { &asn_OER_type_numberOfAggregatedPRB_constr_3, &asn_PER_type_numberOfAggregatedPRB_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_numberOfAggregatedPRB_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NAICS_Capability_Entry_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NAICS_Capability_Entry, numberOfNAICS_CapableCC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_numberOfNAICS_CapableCC_constr_2, &asn_PER_memb_numberOfNAICS_CapableCC_constr_2, memb_numberOfNAICS_CapableCC_constraint_1 }, + 0, 0, /* No default value */ + "numberOfNAICS-CapableCC" + }, + { ATF_NOFLAGS, 0, offsetof(struct NAICS_Capability_Entry, numberOfAggregatedPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_numberOfAggregatedPRB_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "numberOfAggregatedPRB" + }, +}; +static const ber_tlv_tag_t asn_DEF_NAICS_Capability_Entry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_NAICS_Capability_Entry_specs_1 = { + sizeof(struct NAICS_Capability_Entry), + offsetof(struct NAICS_Capability_Entry, _asn_ctx), + asn_MAP_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_NAICS_Capability_Entry = { + "NAICS-Capability-Entry", + "NAICS-Capability-Entry", + &asn_OP_SEQUENCE, + asn_DEF_NAICS_Capability_Entry_tags_1, + sizeof(asn_DEF_NAICS_Capability_Entry_tags_1) + /sizeof(asn_DEF_NAICS_Capability_Entry_tags_1[0]), /* 1 */ + asn_DEF_NAICS_Capability_Entry_tags_1, /* Same as above */ + sizeof(asn_DEF_NAICS_Capability_Entry_tags_1) + /sizeof(asn_DEF_NAICS_Capability_Entry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NAICS_Capability_Entry_1, + 2, /* Elements count */ + &asn_SPC_NAICS_Capability_Entry_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NAICS-Capability-Entry.h b/src/codec_utils/RRC/NAICS-Capability-Entry.h new file mode 100644 index 000000000..a744d0bb1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NAICS_Capability_Entry_H_ +#define _NAICS_Capability_Entry_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NAICS_Capability_Entry__numberOfAggregatedPRB { + NAICS_Capability_Entry__numberOfAggregatedPRB_n50 = 0, + NAICS_Capability_Entry__numberOfAggregatedPRB_n75 = 1, + NAICS_Capability_Entry__numberOfAggregatedPRB_n100 = 2, + NAICS_Capability_Entry__numberOfAggregatedPRB_n125 = 3, + NAICS_Capability_Entry__numberOfAggregatedPRB_n150 = 4, + NAICS_Capability_Entry__numberOfAggregatedPRB_n175 = 5, + NAICS_Capability_Entry__numberOfAggregatedPRB_n200 = 6, + NAICS_Capability_Entry__numberOfAggregatedPRB_n225 = 7, + NAICS_Capability_Entry__numberOfAggregatedPRB_n250 = 8, + NAICS_Capability_Entry__numberOfAggregatedPRB_n275 = 9, + NAICS_Capability_Entry__numberOfAggregatedPRB_n300 = 10, + NAICS_Capability_Entry__numberOfAggregatedPRB_n350 = 11, + NAICS_Capability_Entry__numberOfAggregatedPRB_n400 = 12, + NAICS_Capability_Entry__numberOfAggregatedPRB_n450 = 13, + NAICS_Capability_Entry__numberOfAggregatedPRB_n500 = 14, + NAICS_Capability_Entry__numberOfAggregatedPRB_spare = 15 +} e_NAICS_Capability_Entry__numberOfAggregatedPRB; + +/* NAICS-Capability-Entry */ +typedef struct 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; +} NAICS_Capability_Entry_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_numberOfAggregatedPRB_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_NAICS_Capability_Entry; +extern asn_SEQUENCE_specifics_t asn_SPC_NAICS_Capability_Entry_specs_1; +extern asn_TYPE_member_t asn_MBR_NAICS_Capability_Entry_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NAICS_Capability_Entry_H_ */ +#include diff --git a/src/codec_utils/RRC/NG-5G-S-TMSI.c b/src/codec_utils/RRC/NG-5G-S-TMSI.c new file mode 100644 index 000000000..bd8e875b2 --- /dev/null +++ b/src/codec_utils/RRC/NG-5G-S-TMSI.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NG-5G-S-TMSI.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_NG_5G_S_TMSI_constr_1 CC_NOTUSED = { + { 0, 0 }, + 48 /* (SIZE(48..48)) */}; +asn_per_constraints_t asn_PER_type_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_NG_5G_S_TMSI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NG_5G_S_TMSI = { + "NG-5G-S-TMSI", + "NG-5G-S-TMSI", + &asn_OP_BIT_STRING, + asn_DEF_NG_5G_S_TMSI_tags_1, + sizeof(asn_DEF_NG_5G_S_TMSI_tags_1) + /sizeof(asn_DEF_NG_5G_S_TMSI_tags_1[0]), /* 1 */ + asn_DEF_NG_5G_S_TMSI_tags_1, /* Same as above */ + sizeof(asn_DEF_NG_5G_S_TMSI_tags_1) + /sizeof(asn_DEF_NG_5G_S_TMSI_tags_1[0]), /* 1 */ + { &asn_OER_type_NG_5G_S_TMSI_constr_1, &asn_PER_type_NG_5G_S_TMSI_constr_1, NG_5G_S_TMSI_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NG-5G-S-TMSI.h b/src/codec_utils/RRC/NG-5G-S-TMSI.h new file mode 100644 index 000000000..b98d612e8 --- /dev/null +++ b/src/codec_utils/RRC/NG-5G-S-TMSI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NG_5G_S_TMSI_H_ +#define _NG_5G_S_TMSI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NG-5G-S-TMSI */ +typedef BIT_STRING_t NG_5G_S_TMSI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NG_5G_S_TMSI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NG_5G_S_TMSI; +asn_struct_free_f NG_5G_S_TMSI_free; +asn_struct_print_f NG_5G_S_TMSI_print; +asn_constr_check_f NG_5G_S_TMSI_constraint; +ber_type_decoder_f NG_5G_S_TMSI_decode_ber; +der_type_encoder_f NG_5G_S_TMSI_encode_der; +xer_type_decoder_f NG_5G_S_TMSI_decode_xer; +xer_type_encoder_f NG_5G_S_TMSI_encode_xer; +oer_type_decoder_f NG_5G_S_TMSI_decode_oer; +oer_type_encoder_f NG_5G_S_TMSI_encode_oer; +per_type_decoder_f NG_5G_S_TMSI_decode_uper; +per_type_encoder_f NG_5G_S_TMSI_encode_uper; +per_type_decoder_f NG_5G_S_TMSI_decode_aper; +per_type_encoder_f NG_5G_S_TMSI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NG_5G_S_TMSI_H_ */ +#include diff --git a/src/codec_utils/RRC/NR-FreqInfo.c b/src/codec_utils/RRC/NR-FreqInfo.c new file mode 100644 index 000000000..8c6066a3c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-FreqInfo.h" + +asn_TYPE_member_t asn_MBR_NR_FreqInfo_1[] = { + { ATF_POINTER, 1, offsetof(struct NR_FreqInfo, measuredFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measuredFrequency" + }, +}; +static const int asn_MAP_NR_FreqInfo_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_NR_FreqInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_NR_FreqInfo_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measuredFrequency */ +}; +asn_SEQUENCE_specifics_t asn_SPC_NR_FreqInfo_specs_1 = { + sizeof(struct NR_FreqInfo), + offsetof(struct NR_FreqInfo, _asn_ctx), + asn_MAP_NR_FreqInfo_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_NR_FreqInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_FreqInfo = { + "NR-FreqInfo", + "NR-FreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_NR_FreqInfo_tags_1, + sizeof(asn_DEF_NR_FreqInfo_tags_1) + /sizeof(asn_DEF_NR_FreqInfo_tags_1[0]), /* 1 */ + asn_DEF_NR_FreqInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_FreqInfo_tags_1) + /sizeof(asn_DEF_NR_FreqInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_FreqInfo_1, + 1, /* Elements count */ + &asn_SPC_NR_FreqInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NR-FreqInfo.h b/src/codec_utils/RRC/NR-FreqInfo.h new file mode 100644 index 000000000..213babae7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_FreqInfo_H_ +#define _NR_FreqInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NR-FreqInfo */ +typedef struct NR_FreqInfo { + 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; +} NR_FreqInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_FreqInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_FreqInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_FreqInfo_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_FreqInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/NR-MultiBandInfo.c b/src/codec_utils/RRC/NR-MultiBandInfo.c new file mode 100644 index 000000000..b675f01de --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-MultiBandInfo.h" + +#include "NR-NS-PmaxList.h" +asn_TYPE_member_t asn_MBR_NR_MultiBandInfo_1[] = { + { ATF_POINTER, 2, offsetof(struct NR_MultiBandInfo, freqBandIndicatorNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqBandIndicatorNR" + }, + { ATF_POINTER, 1, offsetof(struct NR_MultiBandInfo, nr_NS_PmaxList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_NS_PmaxList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr-NS-PmaxList" + }, +}; +static const int asn_MAP_NR_MultiBandInfo_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_NR_MultiBandInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_NR_MultiBandInfo_specs_1 = { + sizeof(struct NR_MultiBandInfo), + offsetof(struct NR_MultiBandInfo, _asn_ctx), + asn_MAP_NR_MultiBandInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NR_MultiBandInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_MultiBandInfo = { + "NR-MultiBandInfo", + "NR-MultiBandInfo", + &asn_OP_SEQUENCE, + asn_DEF_NR_MultiBandInfo_tags_1, + sizeof(asn_DEF_NR_MultiBandInfo_tags_1) + /sizeof(asn_DEF_NR_MultiBandInfo_tags_1[0]), /* 1 */ + asn_DEF_NR_MultiBandInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_MultiBandInfo_tags_1) + /sizeof(asn_DEF_NR_MultiBandInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_MultiBandInfo_1, + 2, /* Elements count */ + &asn_SPC_NR_MultiBandInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NR-MultiBandInfo.h b/src/codec_utils/RRC/NR-MultiBandInfo.h new file mode 100644 index 000000000..9ed92f257 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_MultiBandInfo_H_ +#define _NR_MultiBandInfo_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorNR.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NR_NS_PmaxList; + +/* NR-MultiBandInfo */ +typedef struct NR_MultiBandInfo { + FreqBandIndicatorNR_t *freqBandIndicatorNR; /* OPTIONAL */ + struct NR_NS_PmaxList *nr_NS_PmaxList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_MultiBandInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_MultiBandInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_MultiBandInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_MultiBandInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_MultiBandInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/NR-NS-PmaxList.c b/src/codec_utils/RRC/NR-NS-PmaxList.c new file mode 100644 index 000000000..1d109f7c2 --- /dev/null +++ b/src/codec_utils/RRC/NR-NS-PmaxList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-NS-PmaxList.h" + +#include "NR-NS-PmaxValue.h" +static asn_oer_constraints_t asn_OER_type_NR_NS_PmaxList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_NR_NS_PmaxList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NR_NS_PmaxValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_NR_NS_PmaxList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_NR_NS_PmaxList_specs_1 = { + sizeof(struct NR_NS_PmaxList), + offsetof(struct NR_NS_PmaxList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxList = { + "NR-NS-PmaxList", + "NR-NS-PmaxList", + &asn_OP_SEQUENCE_OF, + asn_DEF_NR_NS_PmaxList_tags_1, + sizeof(asn_DEF_NR_NS_PmaxList_tags_1) + /sizeof(asn_DEF_NR_NS_PmaxList_tags_1[0]), /* 1 */ + asn_DEF_NR_NS_PmaxList_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_NS_PmaxList_tags_1) + /sizeof(asn_DEF_NR_NS_PmaxList_tags_1[0]), /* 1 */ + { &asn_OER_type_NR_NS_PmaxList_constr_1, &asn_PER_type_NR_NS_PmaxList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_NR_NS_PmaxList_1, + 1, /* Single element */ + &asn_SPC_NR_NS_PmaxList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NR-NS-PmaxList.h b/src/codec_utils/RRC/NR-NS-PmaxList.h new file mode 100644 index 000000000..aa9f7d881 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_NS_PmaxList_H_ +#define _NR_NS_PmaxList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NR_NS_PmaxValue; + +/* NR-NS-PmaxList */ +typedef struct NR_NS_PmaxList { + A_SEQUENCE_OF(struct NR_NS_PmaxValue) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_NS_PmaxList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxList; +extern asn_SET_OF_specifics_t asn_SPC_NR_NS_PmaxList_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_NS_PmaxList_1[1]; +extern asn_per_constraints_t asn_PER_type_NR_NS_PmaxList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_NS_PmaxList_H_ */ +#include diff --git a/src/codec_utils/RRC/NR-NS-PmaxValue.c b/src/codec_utils/RRC/NR-NS-PmaxValue.c new file mode 100644 index 000000000..317aabefa --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-NS-PmaxValue.h" + +asn_TYPE_member_t asn_MBR_NR_NS_PmaxValue_1[] = { + { ATF_POINTER, 1, offsetof(struct NR_NS_PmaxValue, additionalPmax), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalPmax" + }, + { ATF_NOFLAGS, 0, offsetof(struct NR_NS_PmaxValue, additionalSpectrumEmission), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AdditionalSpectrumEmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalSpectrumEmission" + }, +}; +static const int asn_MAP_NR_NS_PmaxValue_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_NR_NS_PmaxValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_NR_NS_PmaxValue_specs_1 = { + sizeof(struct NR_NS_PmaxValue), + offsetof(struct NR_NS_PmaxValue, _asn_ctx), + asn_MAP_NR_NS_PmaxValue_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_NR_NS_PmaxValue_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxValue = { + "NR-NS-PmaxValue", + "NR-NS-PmaxValue", + &asn_OP_SEQUENCE, + asn_DEF_NR_NS_PmaxValue_tags_1, + sizeof(asn_DEF_NR_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_NR_NS_PmaxValue_tags_1[0]), /* 1 */ + asn_DEF_NR_NS_PmaxValue_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_NS_PmaxValue_tags_1) + /sizeof(asn_DEF_NR_NS_PmaxValue_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NR_NS_PmaxValue_1, + 2, /* Elements count */ + &asn_SPC_NR_NS_PmaxValue_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NR-NS-PmaxValue.h b/src/codec_utils/RRC/NR-NS-PmaxValue.h new file mode 100644 index 000000000..123e4e3b1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_NS_PmaxValue_H_ +#define _NR_NS_PmaxValue_H_ + + +#include + +/* Including external dependencies */ +#include "P-Max.h" +#include "AdditionalSpectrumEmission.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NR-NS-PmaxValue */ +typedef struct NR_NS_PmaxValue { + P_Max_t *additionalPmax; /* OPTIONAL */ + AdditionalSpectrumEmission_t additionalSpectrumEmission; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} NR_NS_PmaxValue_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxValue; +extern asn_SEQUENCE_specifics_t asn_SPC_NR_NS_PmaxValue_specs_1; +extern asn_TYPE_member_t asn_MBR_NR_NS_PmaxValue_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_NS_PmaxValue_H_ */ +#include diff --git a/src/codec_utils/RRC/NR-RS-Type.c b/src/codec_utils/RRC/NR-RS-Type.c new file mode 100644 index 000000000..48af8b6c2 --- /dev/null +++ b/src/codec_utils/RRC/NR-RS-Type.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NR-RS-Type.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NR_RS_Type_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_NR_RS_Type_value2enum_1[] = { + { 0, 3, "ssb" }, + { 1, 6, "csi-rs" } +}; +static const unsigned int asn_MAP_NR_RS_Type_enum2value_1[] = { + 1, /* csi-rs(1) */ + 0 /* ssb(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_NR_RS_Type_specs_1 = { + asn_MAP_NR_RS_Type_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_NR_RS_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NR_RS_Type = { + "NR-RS-Type", + "NR-RS-Type", + &asn_OP_NativeEnumerated, + asn_DEF_NR_RS_Type_tags_1, + sizeof(asn_DEF_NR_RS_Type_tags_1) + /sizeof(asn_DEF_NR_RS_Type_tags_1[0]), /* 1 */ + asn_DEF_NR_RS_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_NR_RS_Type_tags_1) + /sizeof(asn_DEF_NR_RS_Type_tags_1[0]), /* 1 */ + { &asn_OER_type_NR_RS_Type_constr_1, &asn_PER_type_NR_RS_Type_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_NR_RS_Type_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NR-RS-Type.h b/src/codec_utils/RRC/NR-RS-Type.h new file mode 100644 index 000000000..5e05f5e04 --- /dev/null +++ b/src/codec_utils/RRC/NR-RS-Type.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NR_RS_Type_H_ +#define _NR_RS_Type_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NR_RS_Type { + NR_RS_Type_ssb = 0, + NR_RS_Type_csi_rs = 1 +} e_NR_RS_Type; + +/* NR-RS-Type */ +typedef long NR_RS_Type_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NR_RS_Type_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NR_RS_Type; +extern const asn_INTEGER_specifics_t asn_SPC_NR_RS_Type_specs_1; +asn_struct_free_f NR_RS_Type_free; +asn_struct_print_f NR_RS_Type_print; +asn_constr_check_f NR_RS_Type_constraint; +ber_type_decoder_f NR_RS_Type_decode_ber; +der_type_encoder_f NR_RS_Type_encode_der; +xer_type_decoder_f NR_RS_Type_decode_xer; +xer_type_encoder_f NR_RS_Type_encode_xer; +oer_type_decoder_f NR_RS_Type_decode_oer; +oer_type_encoder_f NR_RS_Type_encode_oer; +per_type_decoder_f NR_RS_Type_decode_uper; +per_type_encoder_f NR_RS_Type_encode_uper; +per_type_decoder_f NR_RS_Type_decode_aper; +per_type_encoder_f NR_RS_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NR_RS_Type_H_ */ +#include diff --git a/src/codec_utils/SYSINFO/NULL.c b/src/codec_utils/RRC/NULL.c similarity index 100% rename from src/codec_utils/SYSINFO/NULL.c rename to src/codec_utils/RRC/NULL.c diff --git a/src/codec_utils/SYSINFO/NULL.h b/src/codec_utils/RRC/NULL.h similarity index 100% rename from src/codec_utils/SYSINFO/NULL.h rename to src/codec_utils/RRC/NULL.h diff --git a/src/codec_utils/RRC/NZP-CSI-RS-Resource.c b/src/codec_utils/RRC/NZP-CSI-RS-Resource.c new file mode 100644 index 000000000..4111c215c --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-Resource.c @@ -0,0 +1,199 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NZP-CSI-RS-Resource.h" + +#include "CSI-ResourcePeriodicityAndOffset.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_powerControlOffsetSS_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_powerControlOffset_constr_4 CC_NOTUSED = { + { 1, 0 } /* (-8..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_powerControlOffsetSS_value2enum_5[] = { + { 0, 4, "db-3" }, + { 1, 3, "db0" }, + { 2, 3, "db3" }, + { 3, 3, "db6" } +}; +static const unsigned int asn_MAP_powerControlOffsetSS_enum2value_5[] = { + 0, /* db-3(0) */ + 1, /* db0(1) */ + 2, /* db3(2) */ + 3 /* db6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_powerControlOffsetSS_specs_5 = { + asn_MAP_powerControlOffsetSS_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_powerControlOffsetSS_5 = { + "powerControlOffsetSS", + "powerControlOffsetSS", + &asn_OP_NativeEnumerated, + asn_DEF_powerControlOffsetSS_tags_5, + sizeof(asn_DEF_powerControlOffsetSS_tags_5) + /sizeof(asn_DEF_powerControlOffsetSS_tags_5[0]) - 1, /* 1 */ + asn_DEF_powerControlOffsetSS_tags_5, /* Same as above */ + sizeof(asn_DEF_powerControlOffsetSS_tags_5) + /sizeof(asn_DEF_powerControlOffsetSS_tags_5[0]), /* 2 */ + { &asn_OER_type_powerControlOffsetSS_constr_5, &asn_PER_type_powerControlOffsetSS_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_powerControlOffsetSS_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NZP_CSI_RS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_Resource, nzp_CSI_RS_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_ResourceMapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_Resource, powerControlOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_powerControlOffset_constr_4, &asn_PER_memb_powerControlOffset_constr_4, memb_powerControlOffset_constraint_1 }, + 0, 0, /* No default value */ + "powerControlOffset" + }, + { ATF_POINTER, 1, offsetof(struct NZP_CSI_RS_Resource, powerControlOffsetSS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_powerControlOffsetSS_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerControlOffsetSS" + }, + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_Resource, scramblingID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ScramblingId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scramblingID" + }, + { ATF_POINTER, 2, offsetof(struct NZP_CSI_RS_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_POINTER, 1, offsetof(struct NZP_CSI_RS_Resource, qcl_InfoPeriodicCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-InfoPeriodicCSI-RS" + }, +}; +static const int asn_MAP_NZP_CSI_RS_Resource_oms_1[] = { 3, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_NZP_CSI_RS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_NZP_CSI_RS_Resource_specs_1 = { + sizeof(struct NZP_CSI_RS_Resource), + offsetof(struct NZP_CSI_RS_Resource, _asn_ctx), + asn_MAP_NZP_CSI_RS_Resource_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_NZP_CSI_RS_Resource_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_Resource = { + "NZP-CSI-RS-Resource", + "NZP-CSI-RS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_NZP_CSI_RS_Resource_tags_1, + sizeof(asn_DEF_NZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + asn_DEF_NZP_CSI_RS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_NZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NZP_CSI_RS_Resource_1, + 7, /* Elements count */ + &asn_SPC_NZP_CSI_RS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NZP-CSI-RS-Resource.h b/src/codec_utils/RRC/NZP-CSI-RS-Resource.h new file mode 100644 index 000000000..79ebf5598 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NZP_CSI_RS_Resource_H_ +#define _NZP_CSI_RS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "NZP-CSI-RS-ResourceId.h" +#include "CSI-RS-ResourceMapping.h" +#include +#include +#include "ScramblingId.h" +#include "TCI-StateId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NZP_CSI_RS_Resource__powerControlOffsetSS { + NZP_CSI_RS_Resource__powerControlOffsetSS_db_3 = 0, + NZP_CSI_RS_Resource__powerControlOffsetSS_db0 = 1, + NZP_CSI_RS_Resource__powerControlOffsetSS_db3 = 2, + NZP_CSI_RS_Resource__powerControlOffsetSS_db6 = 3 +} e_NZP_CSI_RS_Resource__powerControlOffsetSS; + +/* Forward declarations */ +struct CSI_ResourcePeriodicityAndOffset; + +/* NZP-CSI-RS-Resource */ +typedef struct NZP_CSI_RS_Resource { + NZP_CSI_RS_ResourceId_t nzp_CSI_RS_ResourceId; + CSI_RS_ResourceMapping_t resourceMapping; + long powerControlOffset; + long *powerControlOffsetSS; /* OPTIONAL */ + ScramblingId_t scramblingID; + struct CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + 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; +} NZP_CSI_RS_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_powerControlOffsetSS_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_NZP_CSI_RS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_NZP_CSI_RS_Resource_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NZP_CSI_RS_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.c b/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.c new file mode 100644 index 000000000..488238af5 --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NZP-CSI-RS-ResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_NZP_CSI_RS_ResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..191) */, + -1}; +asn_per_constraints_t asn_PER_type_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_NZP_CSI_RS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceId = { + "NZP-CSI-RS-ResourceId", + "NZP-CSI-RS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_NZP_CSI_RS_ResourceId_tags_1, + sizeof(asn_DEF_NZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_NZP_CSI_RS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_NZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_NZP_CSI_RS_ResourceId_constr_1, &asn_PER_type_NZP_CSI_RS_ResourceId_constr_1, NZP_CSI_RS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.h b/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.h new file mode 100644 index 000000000..47d545864 --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-ResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NZP_CSI_RS_ResourceId_H_ +#define _NZP_CSI_RS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NZP-CSI-RS-ResourceId */ +typedef long NZP_CSI_RS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NZP_CSI_RS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceId; +asn_struct_free_f NZP_CSI_RS_ResourceId_free; +asn_struct_print_f NZP_CSI_RS_ResourceId_print; +asn_constr_check_f NZP_CSI_RS_ResourceId_constraint; +ber_type_decoder_f NZP_CSI_RS_ResourceId_decode_ber; +der_type_encoder_f NZP_CSI_RS_ResourceId_encode_der; +xer_type_decoder_f NZP_CSI_RS_ResourceId_decode_xer; +xer_type_encoder_f NZP_CSI_RS_ResourceId_encode_xer; +oer_type_decoder_f NZP_CSI_RS_ResourceId_decode_oer; +oer_type_encoder_f NZP_CSI_RS_ResourceId_encode_oer; +per_type_decoder_f NZP_CSI_RS_ResourceId_decode_uper; +per_type_encoder_f NZP_CSI_RS_ResourceId_encode_uper; +per_type_decoder_f NZP_CSI_RS_ResourceId_decode_aper; +per_type_encoder_f NZP_CSI_RS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NZP_CSI_RS_ResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.c b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.c new file mode 100644 index 000000000..d9827dfc3 --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.c @@ -0,0 +1,300 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_Resources_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_repetition_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_trs_Info_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nzp_CSI_RS_Resources_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_aperiodicTriggeringOffset_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_nzp_CSI_RS_Resources_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_nzp_CSI_RS_Resources_specs_3 = { + sizeof(struct NZP_CSI_RS_ResourceSet__nzp_CSI_RS_Resources), + offsetof(struct 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_nzp_CSI_RS_Resources_3 = { + "nzp-CSI-RS-Resources", + "nzp-CSI-RS-Resources", + &asn_OP_SEQUENCE_OF, + asn_DEF_nzp_CSI_RS_Resources_tags_3, + sizeof(asn_DEF_nzp_CSI_RS_Resources_tags_3) + /sizeof(asn_DEF_nzp_CSI_RS_Resources_tags_3[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_Resources_tags_3, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_Resources_tags_3) + /sizeof(asn_DEF_nzp_CSI_RS_Resources_tags_3[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_Resources_constr_3, &asn_PER_type_nzp_CSI_RS_Resources_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_nzp_CSI_RS_Resources_3, + 1, /* Single element */ + &asn_SPC_nzp_CSI_RS_Resources_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_repetition_value2enum_5[] = { + { 0, 2, "on" }, + { 1, 3, "off" } +}; +static const unsigned int asn_MAP_repetition_enum2value_5[] = { + 1, /* off(1) */ + 0 /* on(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_repetition_specs_5 = { + asn_MAP_repetition_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_repetition_5 = { + "repetition", + "repetition", + &asn_OP_NativeEnumerated, + asn_DEF_repetition_tags_5, + sizeof(asn_DEF_repetition_tags_5) + /sizeof(asn_DEF_repetition_tags_5[0]) - 1, /* 1 */ + asn_DEF_repetition_tags_5, /* Same as above */ + sizeof(asn_DEF_repetition_tags_5) + /sizeof(asn_DEF_repetition_tags_5[0]), /* 2 */ + { &asn_OER_type_repetition_constr_5, &asn_PER_type_repetition_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_repetition_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_trs_Info_value2enum_9[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_trs_Info_enum2value_9[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_trs_Info_specs_9 = { + asn_MAP_trs_Info_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_trs_Info_9 = { + "trs-Info", + "trs-Info", + &asn_OP_NativeEnumerated, + asn_DEF_trs_Info_tags_9, + sizeof(asn_DEF_trs_Info_tags_9) + /sizeof(asn_DEF_trs_Info_tags_9[0]) - 1, /* 1 */ + asn_DEF_trs_Info_tags_9, /* Same as above */ + sizeof(asn_DEF_trs_Info_tags_9) + /sizeof(asn_DEF_trs_Info_tags_9[0]), /* 2 */ + { &asn_OER_type_trs_Info_constr_9, &asn_PER_type_trs_Info_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_trs_Info_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_NZP_CSI_RS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_ResourceSet, nzp_CSI_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct NZP_CSI_RS_ResourceSet, nzp_CSI_RS_Resources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nzp_CSI_RS_Resources_3, + 0, + { &asn_OER_memb_nzp_CSI_RS_Resources_constr_3, &asn_PER_memb_nzp_CSI_RS_Resources_constr_3, memb_nzp_CSI_RS_Resources_constraint_1 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-Resources" + }, + { ATF_POINTER, 3, offsetof(struct NZP_CSI_RS_ResourceSet, repetition), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_repetition_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repetition" + }, + { ATF_POINTER, 2, offsetof(struct NZP_CSI_RS_ResourceSet, aperiodicTriggeringOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_aperiodicTriggeringOffset_constr_8, &asn_PER_memb_aperiodicTriggeringOffset_constr_8, memb_aperiodicTriggeringOffset_constraint_1 }, + 0, 0, /* No default value */ + "aperiodicTriggeringOffset" + }, + { ATF_POINTER, 1, offsetof(struct NZP_CSI_RS_ResourceSet, trs_Info), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_trs_Info_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trs-Info" + }, +}; +static const int asn_MAP_NZP_CSI_RS_ResourceSet_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_NZP_CSI_RS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_NZP_CSI_RS_ResourceSet_specs_1 = { + sizeof(struct NZP_CSI_RS_ResourceSet), + offsetof(struct NZP_CSI_RS_ResourceSet, _asn_ctx), + asn_MAP_NZP_CSI_RS_ResourceSet_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_NZP_CSI_RS_ResourceSet_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceSet = { + "NZP-CSI-RS-ResourceSet", + "NZP-CSI-RS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_NZP_CSI_RS_ResourceSet_tags_1, + sizeof(asn_DEF_NZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_NZP_CSI_RS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_NZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_NZP_CSI_RS_ResourceSet_1, + 5, /* Elements count */ + &asn_SPC_NZP_CSI_RS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.h b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSet.h new file mode 100644 index 000000000..8449a5df7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NZP_CSI_RS_ResourceSet_H_ +#define _NZP_CSI_RS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "NZP-CSI-RS-ResourceSetId.h" +#include +#include +#include "NZP-CSI-RS-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum NZP_CSI_RS_ResourceSet__repetition { + NZP_CSI_RS_ResourceSet__repetition_on = 0, + NZP_CSI_RS_ResourceSet__repetition_off = 1 +} e_NZP_CSI_RS_ResourceSet__repetition; +typedef enum NZP_CSI_RS_ResourceSet__trs_Info { + NZP_CSI_RS_ResourceSet__trs_Info_true = 0 +} e_NZP_CSI_RS_ResourceSet__trs_Info; + +/* NZP-CSI-RS-ResourceSet */ +typedef struct NZP_CSI_RS_ResourceSet { + NZP_CSI_RS_ResourceSetId_t nzp_CSI_ResourceSetId; + struct NZP_CSI_RS_ResourceSet__nzp_CSI_RS_Resources { + A_SEQUENCE_OF(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; +} NZP_CSI_RS_ResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_repetition_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_trs_Info_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_NZP_CSI_RS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_NZP_CSI_RS_ResourceSet_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _NZP_CSI_RS_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.c b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.c new file mode 100644 index 000000000..5a1ec048c --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NZP-CSI-RS-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_NZP_CSI_RS_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_NZP_CSI_RS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceSetId = { + "NZP-CSI-RS-ResourceSetId", + "NZP-CSI-RS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1, + sizeof(asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_NZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_NZP_CSI_RS_ResourceSetId_constr_1, &asn_PER_type_NZP_CSI_RS_ResourceSetId_constr_1, NZP_CSI_RS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.h b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.h new file mode 100644 index 000000000..3e79dd710 --- /dev/null +++ b/src/codec_utils/RRC/NZP-CSI-RS-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NZP_CSI_RS_ResourceSetId_H_ +#define _NZP_CSI_RS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NZP-CSI-RS-ResourceSetId */ +typedef long NZP_CSI_RS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NZP_CSI_RS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NZP_CSI_RS_ResourceSetId; +asn_struct_free_f NZP_CSI_RS_ResourceSetId_free; +asn_struct_print_f NZP_CSI_RS_ResourceSetId_print; +asn_constr_check_f NZP_CSI_RS_ResourceSetId_constraint; +ber_type_decoder_f NZP_CSI_RS_ResourceSetId_decode_ber; +der_type_encoder_f NZP_CSI_RS_ResourceSetId_encode_der; +xer_type_decoder_f NZP_CSI_RS_ResourceSetId_decode_xer; +xer_type_encoder_f NZP_CSI_RS_ResourceSetId_encode_xer; +oer_type_decoder_f NZP_CSI_RS_ResourceSetId_decode_oer; +oer_type_encoder_f NZP_CSI_RS_ResourceSetId_encode_oer; +per_type_decoder_f NZP_CSI_RS_ResourceSetId_decode_uper; +per_type_encoder_f NZP_CSI_RS_ResourceSetId_encode_uper; +per_type_decoder_f NZP_CSI_RS_ResourceSetId_decode_aper; +per_type_encoder_f NZP_CSI_RS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NZP_CSI_RS_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/SYSINFO/NativeEnumerated.c b/src/codec_utils/RRC/NativeEnumerated.c similarity index 100% rename from src/codec_utils/SYSINFO/NativeEnumerated.c rename to src/codec_utils/RRC/NativeEnumerated.c diff --git a/src/codec_utils/SYSINFO/NativeEnumerated.h b/src/codec_utils/RRC/NativeEnumerated.h similarity index 100% rename from src/codec_utils/SYSINFO/NativeEnumerated.h rename to src/codec_utils/RRC/NativeEnumerated.h diff --git a/src/codec_utils/SYSINFO/NativeEnumerated_oer.c b/src/codec_utils/RRC/NativeEnumerated_oer.c similarity index 100% rename from src/codec_utils/SYSINFO/NativeEnumerated_oer.c rename to src/codec_utils/RRC/NativeEnumerated_oer.c diff --git a/src/codec_utils/SYSINFO/NativeInteger.c b/src/codec_utils/RRC/NativeInteger.c similarity index 100% rename from src/codec_utils/SYSINFO/NativeInteger.c rename to src/codec_utils/RRC/NativeInteger.c diff --git a/src/codec_utils/SYSINFO/NativeInteger.h b/src/codec_utils/RRC/NativeInteger.h similarity index 100% rename from src/codec_utils/SYSINFO/NativeInteger.h rename to src/codec_utils/RRC/NativeInteger.h diff --git a/src/codec_utils/SYSINFO/NativeInteger_oer.c b/src/codec_utils/RRC/NativeInteger_oer.c similarity index 100% rename from src/codec_utils/SYSINFO/NativeInteger_oer.c rename to src/codec_utils/RRC/NativeInteger_oer.c diff --git a/src/codec_utils/RRC/NextHopChainingCount.c b/src/codec_utils/RRC/NextHopChainingCount.c new file mode 100644 index 000000000..184cbff22 --- /dev/null +++ b/src/codec_utils/RRC/NextHopChainingCount.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "NextHopChainingCount.h" + +int +NextHopChainingCount_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 7)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_NextHopChainingCount_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 7 } /* (0..7) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_NextHopChainingCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount = { + "NextHopChainingCount", + "NextHopChainingCount", + &asn_OP_NativeInteger, + asn_DEF_NextHopChainingCount_tags_1, + sizeof(asn_DEF_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */ + asn_DEF_NextHopChainingCount_tags_1, /* Same as above */ + sizeof(asn_DEF_NextHopChainingCount_tags_1) + /sizeof(asn_DEF_NextHopChainingCount_tags_1[0]), /* 1 */ + { &asn_OER_type_NextHopChainingCount_constr_1, &asn_PER_type_NextHopChainingCount_constr_1, NextHopChainingCount_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/NextHopChainingCount.h b/src/codec_utils/RRC/NextHopChainingCount.h new file mode 100644 index 000000000..2846b643b --- /dev/null +++ b/src/codec_utils/RRC/NextHopChainingCount.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NextHopChainingCount_H_ +#define _NextHopChainingCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NextHopChainingCount */ +typedef long NextHopChainingCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NextHopChainingCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NextHopChainingCount; +asn_struct_free_f NextHopChainingCount_free; +asn_struct_print_f NextHopChainingCount_print; +asn_constr_check_f NextHopChainingCount_constraint; +ber_type_decoder_f NextHopChainingCount_decode_ber; +der_type_encoder_f NextHopChainingCount_encode_der; +xer_type_decoder_f NextHopChainingCount_decode_xer; +xer_type_encoder_f NextHopChainingCount_encode_xer; +oer_type_decoder_f NextHopChainingCount_decode_oer; +oer_type_encoder_f NextHopChainingCount_encode_oer; +per_type_decoder_f NextHopChainingCount_decode_uper; +per_type_encoder_f NextHopChainingCount_encode_uper; +per_type_decoder_f NextHopChainingCount_decode_aper; +per_type_encoder_f NextHopChainingCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NextHopChainingCount_H_ */ +#include diff --git a/src/codec_utils/RRC/OtherConfig.c b/src/codec_utils/RRC/OtherConfig.c new file mode 100644 index 000000000..c0ab8bf6e --- /dev/null +++ b/src/codec_utils/RRC/OtherConfig.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "OtherConfig.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_delayBudgetReportingProhibitTimer_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_delayBudgetReportingConfig_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_delayBudgetReportingProhibitTimer_specs_5 = { + asn_MAP_delayBudgetReportingProhibitTimer_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_delayBudgetReportingProhibitTimer_5 = { + "delayBudgetReportingProhibitTimer", + "delayBudgetReportingProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_delayBudgetReportingProhibitTimer_tags_5, + sizeof(asn_DEF_delayBudgetReportingProhibitTimer_tags_5) + /sizeof(asn_DEF_delayBudgetReportingProhibitTimer_tags_5[0]) - 1, /* 1 */ + asn_DEF_delayBudgetReportingProhibitTimer_tags_5, /* Same as above */ + sizeof(asn_DEF_delayBudgetReportingProhibitTimer_tags_5) + /sizeof(asn_DEF_delayBudgetReportingProhibitTimer_tags_5[0]), /* 2 */ + { &asn_OER_type_delayBudgetReportingProhibitTimer_constr_5, &asn_PER_type_delayBudgetReportingProhibitTimer_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_delayBudgetReportingProhibitTimer_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_setup_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct OtherConfig__delayBudgetReportingConfig__setup, delayBudgetReportingProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_delayBudgetReportingProhibitTimer_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReportingProhibitTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_setup_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_setup_tag2el_4[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* delayBudgetReportingProhibitTimer */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_setup_specs_4 = { + sizeof(struct OtherConfig__delayBudgetReportingConfig__setup), + offsetof(struct OtherConfig__delayBudgetReportingConfig__setup, _asn_ctx), + asn_MAP_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_setup_4 = { + "setup", + "setup", + &asn_OP_SEQUENCE, + asn_DEF_setup_tags_4, + sizeof(asn_DEF_setup_tags_4) + /sizeof(asn_DEF_setup_tags_4[0]) - 1, /* 1 */ + asn_DEF_setup_tags_4, /* Same as above */ + sizeof(asn_DEF_setup_tags_4) + /sizeof(asn_DEF_setup_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_setup_4, + 1, /* Elements count */ + &asn_SPC_setup_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_delayBudgetReportingConfig_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 OtherConfig__delayBudgetReportingConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_setup_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_delayBudgetReportingConfig_specs_2 = { + sizeof(struct OtherConfig__delayBudgetReportingConfig), + offsetof(struct OtherConfig__delayBudgetReportingConfig, _asn_ctx), + offsetof(struct OtherConfig__delayBudgetReportingConfig, present), + sizeof(((struct OtherConfig__delayBudgetReportingConfig *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_delayBudgetReportingConfig_constr_2, &asn_PER_type_delayBudgetReportingConfig_constr_2, CHOICE_constraint }, + asn_MBR_delayBudgetReportingConfig_2, + 2, /* Elements count */ + &asn_SPC_delayBudgetReportingConfig_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_OtherConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct OtherConfig, delayBudgetReportingConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_delayBudgetReportingConfig_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReportingConfig" + }, +}; +static const int asn_MAP_OtherConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_OtherConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_OtherConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* delayBudgetReportingConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_OtherConfig_specs_1 = { + sizeof(struct OtherConfig), + offsetof(struct OtherConfig, _asn_ctx), + asn_MAP_OtherConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_OtherConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OtherConfig = { + "OtherConfig", + "OtherConfig", + &asn_OP_SEQUENCE, + asn_DEF_OtherConfig_tags_1, + sizeof(asn_DEF_OtherConfig_tags_1) + /sizeof(asn_DEF_OtherConfig_tags_1[0]), /* 1 */ + asn_DEF_OtherConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_OtherConfig_tags_1) + /sizeof(asn_DEF_OtherConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_OtherConfig_1, + 1, /* Elements count */ + &asn_SPC_OtherConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/OtherConfig.h b/src/codec_utils/RRC/OtherConfig.h new file mode 100644 index 000000000..58813c5e5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _OtherConfig_H_ +#define _OtherConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum OtherConfig__delayBudgetReportingConfig_PR { + OtherConfig__delayBudgetReportingConfig_PR_NOTHING, /* No components present */ + OtherConfig__delayBudgetReportingConfig_PR_release, + OtherConfig__delayBudgetReportingConfig_PR_setup +} OtherConfig__delayBudgetReportingConfig_PR; +typedef enum OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer { + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0 = 0, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0dot4 = 1, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s0dot8 = 2, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s1dot6 = 3, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s3 = 4, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s6 = 5, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s12 = 6, + OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer_s30 = 7 +} e_OtherConfig__delayBudgetReportingConfig__setup__delayBudgetReportingProhibitTimer; + +/* OtherConfig */ +typedef struct OtherConfig { + struct OtherConfig__delayBudgetReportingConfig { + OtherConfig__delayBudgetReportingConfig_PR present; + union OtherConfig__delayBudgetReportingConfig_u { + NULL_t release; + struct 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; +} OtherConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_delayBudgetReportingProhibitTimer_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_OtherConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_OtherConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_OtherConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OtherConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/OverheatingAssistance.c b/src/codec_utils/RRC/OverheatingAssistance.c new file mode 100644 index 000000000..911fcc3c5 --- /dev/null +++ b/src/codec_utils/RRC/OverheatingAssistance.c @@ -0,0 +1,423 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "OverheatingAssistance.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_reducedCCsDL_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_reducedCCsUL_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_reducedMaxCCs_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxCCs, reducedCCsDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_reducedCCsDL_constr_3, &asn_PER_memb_reducedCCsDL_constr_3, memb_reducedCCsDL_constraint_2 }, + 0, 0, /* No default value */ + "reducedCCsDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxCCs, reducedCCsUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_reducedCCsUL_constr_4, &asn_PER_memb_reducedCCsUL_constr_4, memb_reducedCCsUL_constraint_2 }, + 0, 0, /* No default value */ + "reducedCCsUL" + }, +}; +static const ber_tlv_tag_t asn_DEF_reducedMaxCCs_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reducedMaxCCs_specs_2 = { + sizeof(struct OverheatingAssistance__reducedMaxCCs), + offsetof(struct OverheatingAssistance__reducedMaxCCs, _asn_ctx), + asn_MAP_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_reducedMaxCCs_2 = { + "reducedMaxCCs", + "reducedMaxCCs", + &asn_OP_SEQUENCE, + asn_DEF_reducedMaxCCs_tags_2, + sizeof(asn_DEF_reducedMaxCCs_tags_2) + /sizeof(asn_DEF_reducedMaxCCs_tags_2[0]) - 1, /* 1 */ + asn_DEF_reducedMaxCCs_tags_2, /* Same as above */ + sizeof(asn_DEF_reducedMaxCCs_tags_2) + /sizeof(asn_DEF_reducedMaxCCs_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reducedMaxCCs_2, + 2, /* Elements count */ + &asn_SPC_reducedMaxCCs_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reducedMaxBW_FR1_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR1-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, reducedBW_FR1_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR1-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_reducedMaxBW_FR1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reducedMaxBW_FR1_specs_5 = { + sizeof(struct OverheatingAssistance__reducedMaxBW_FR1), + offsetof(struct OverheatingAssistance__reducedMaxBW_FR1, _asn_ctx), + asn_MAP_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_reducedMaxBW_FR1_5 = { + "reducedMaxBW-FR1", + "reducedMaxBW-FR1", + &asn_OP_SEQUENCE, + asn_DEF_reducedMaxBW_FR1_tags_5, + sizeof(asn_DEF_reducedMaxBW_FR1_tags_5) + /sizeof(asn_DEF_reducedMaxBW_FR1_tags_5[0]) - 1, /* 1 */ + asn_DEF_reducedMaxBW_FR1_tags_5, /* Same as above */ + sizeof(asn_DEF_reducedMaxBW_FR1_tags_5) + /sizeof(asn_DEF_reducedMaxBW_FR1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reducedMaxBW_FR1_5, + 2, /* Elements count */ + &asn_SPC_reducedMaxBW_FR1_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reducedMaxBW_FR2_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR2-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, reducedBW_FR2_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReducedAggregatedBandwidth, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedBW-FR2-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_reducedMaxBW_FR2_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reducedMaxBW_FR2_specs_8 = { + sizeof(struct OverheatingAssistance__reducedMaxBW_FR2), + offsetof(struct OverheatingAssistance__reducedMaxBW_FR2, _asn_ctx), + asn_MAP_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_reducedMaxBW_FR2_8 = { + "reducedMaxBW-FR2", + "reducedMaxBW-FR2", + &asn_OP_SEQUENCE, + asn_DEF_reducedMaxBW_FR2_tags_8, + sizeof(asn_DEF_reducedMaxBW_FR2_tags_8) + /sizeof(asn_DEF_reducedMaxBW_FR2_tags_8[0]) - 1, /* 1 */ + asn_DEF_reducedMaxBW_FR2_tags_8, /* Same as above */ + sizeof(asn_DEF_reducedMaxBW_FR2_tags_8) + /sizeof(asn_DEF_reducedMaxBW_FR2_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reducedMaxBW_FR2_8, + 2, /* Elements count */ + &asn_SPC_reducedMaxBW_FR2_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reducedMaxMIMO_LayersFR1_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR1-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, reducedMIMO_LayersFR1_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR1-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reducedMaxMIMO_LayersFR1_specs_11 = { + sizeof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1), + offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR1, _asn_ctx), + asn_MAP_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_reducedMaxMIMO_LayersFR1_11 = { + "reducedMaxMIMO-LayersFR1", + "reducedMaxMIMO-LayersFR1", + &asn_OP_SEQUENCE, + asn_DEF_reducedMaxMIMO_LayersFR1_tags_11, + sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11) + /sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[0]) - 1, /* 1 */ + asn_DEF_reducedMaxMIMO_LayersFR1_tags_11, /* Same as above */ + sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11) + /sizeof(asn_DEF_reducedMaxMIMO_LayersFR1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reducedMaxMIMO_LayersFR1_11, + 2, /* Elements count */ + &asn_SPC_reducedMaxMIMO_LayersFR1_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_reducedMaxMIMO_LayersFR2_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_DL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersDL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR2-DL" + }, + { ATF_NOFLAGS, 0, offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, reducedMIMO_LayersFR2_UL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MIMO_LayersUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMIMO-LayersFR2-UL" + }, +}; +static const ber_tlv_tag_t asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reducedMaxMIMO_LayersFR2_specs_14 = { + sizeof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2), + offsetof(struct OverheatingAssistance__reducedMaxMIMO_LayersFR2, _asn_ctx), + asn_MAP_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_reducedMaxMIMO_LayersFR2_14 = { + "reducedMaxMIMO-LayersFR2", + "reducedMaxMIMO-LayersFR2", + &asn_OP_SEQUENCE, + asn_DEF_reducedMaxMIMO_LayersFR2_tags_14, + sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14) + /sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[0]) - 1, /* 1 */ + asn_DEF_reducedMaxMIMO_LayersFR2_tags_14, /* Same as above */ + sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14) + /sizeof(asn_DEF_reducedMaxMIMO_LayersFR2_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_reducedMaxMIMO_LayersFR2_14, + 2, /* Elements count */ + &asn_SPC_reducedMaxMIMO_LayersFR2_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_OverheatingAssistance_1[] = { + { ATF_POINTER, 5, offsetof(struct OverheatingAssistance, reducedMaxCCs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_reducedMaxCCs_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxCCs" + }, + { ATF_POINTER, 4, offsetof(struct OverheatingAssistance, reducedMaxBW_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_reducedMaxBW_FR1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxBW-FR1" + }, + { ATF_POINTER, 3, offsetof(struct OverheatingAssistance, reducedMaxBW_FR2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_reducedMaxBW_FR2_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxBW-FR2" + }, + { ATF_POINTER, 2, offsetof(struct OverheatingAssistance, reducedMaxMIMO_LayersFR1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_reducedMaxMIMO_LayersFR1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxMIMO-LayersFR1" + }, + { ATF_POINTER, 1, offsetof(struct OverheatingAssistance, reducedMaxMIMO_LayersFR2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_reducedMaxMIMO_LayersFR2_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reducedMaxMIMO-LayersFR2" + }, +}; +static const int asn_MAP_OverheatingAssistance_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_OverheatingAssistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_OverheatingAssistance_specs_1 = { + sizeof(struct OverheatingAssistance), + offsetof(struct OverheatingAssistance, _asn_ctx), + asn_MAP_OverheatingAssistance_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_OverheatingAssistance_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_OverheatingAssistance = { + "OverheatingAssistance", + "OverheatingAssistance", + &asn_OP_SEQUENCE, + asn_DEF_OverheatingAssistance_tags_1, + sizeof(asn_DEF_OverheatingAssistance_tags_1) + /sizeof(asn_DEF_OverheatingAssistance_tags_1[0]), /* 1 */ + asn_DEF_OverheatingAssistance_tags_1, /* Same as above */ + sizeof(asn_DEF_OverheatingAssistance_tags_1) + /sizeof(asn_DEF_OverheatingAssistance_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_OverheatingAssistance_1, + 5, /* Elements count */ + &asn_SPC_OverheatingAssistance_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/OverheatingAssistance.h b/src/codec_utils/RRC/OverheatingAssistance.h new file mode 100644 index 000000000..32fa8b755 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _OverheatingAssistance_H_ +#define _OverheatingAssistance_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ReducedAggregatedBandwidth.h" +#include "MIMO-LayersDL.h" +#include "MIMO-LayersUL.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* OverheatingAssistance */ +typedef struct OverheatingAssistance { + struct OverheatingAssistance__reducedMaxCCs { + long reducedCCsDL; + long reducedCCsUL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxCCs; + struct OverheatingAssistance__reducedMaxBW_FR1 { + ReducedAggregatedBandwidth_t reducedBW_FR1_DL; + ReducedAggregatedBandwidth_t reducedBW_FR1_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxBW_FR1; + struct OverheatingAssistance__reducedMaxBW_FR2 { + ReducedAggregatedBandwidth_t reducedBW_FR2_DL; + ReducedAggregatedBandwidth_t reducedBW_FR2_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxBW_FR2; + struct OverheatingAssistance__reducedMaxMIMO_LayersFR1 { + MIMO_LayersDL_t reducedMIMO_LayersFR1_DL; + MIMO_LayersUL_t reducedMIMO_LayersFR1_UL; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *reducedMaxMIMO_LayersFR1; + struct OverheatingAssistance__reducedMaxMIMO_LayersFR2 { + MIMO_LayersDL_t reducedMIMO_LayersFR2_DL; + 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; +} OverheatingAssistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_OverheatingAssistance; +extern asn_SEQUENCE_specifics_t asn_SPC_OverheatingAssistance_specs_1; +extern asn_TYPE_member_t asn_MBR_OverheatingAssistance_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _OverheatingAssistance_H_ */ +#include diff --git a/src/codec_utils/RRC/P-Max.c b/src/codec_utils/RRC/P-Max.c new file mode 100644 index 000000000..930668bc9 --- /dev/null +++ b/src/codec_utils/RRC/P-Max.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "P-Max.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_P_Max_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-30..33) */, + -1}; +asn_per_constraints_t asn_PER_type_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_P_Max_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_P_Max = { + "P-Max", + "P-Max", + &asn_OP_NativeInteger, + asn_DEF_P_Max_tags_1, + sizeof(asn_DEF_P_Max_tags_1) + /sizeof(asn_DEF_P_Max_tags_1[0]), /* 1 */ + asn_DEF_P_Max_tags_1, /* Same as above */ + sizeof(asn_DEF_P_Max_tags_1) + /sizeof(asn_DEF_P_Max_tags_1[0]), /* 1 */ + { &asn_OER_type_P_Max_constr_1, &asn_PER_type_P_Max_constr_1, P_Max_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/P-Max.h b/src/codec_utils/RRC/P-Max.h new file mode 100644 index 000000000..f11967963 --- /dev/null +++ b/src/codec_utils/RRC/P-Max.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _P_Max_H_ +#define _P_Max_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* P-Max */ +typedef long P_Max_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_P_Max_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_P_Max; +asn_struct_free_f P_Max_free; +asn_struct_print_f P_Max_print; +asn_constr_check_f P_Max_constraint; +ber_type_decoder_f P_Max_decode_ber; +der_type_encoder_f P_Max_encode_der; +xer_type_decoder_f P_Max_decode_xer; +xer_type_encoder_f P_Max_encode_xer; +oer_type_decoder_f P_Max_decode_oer; +oer_type_encoder_f P_Max_encode_oer; +per_type_decoder_f P_Max_decode_uper; +per_type_encoder_f P_Max_encode_uper; +per_type_decoder_f P_Max_decode_aper; +per_type_encoder_f P_Max_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _P_Max_H_ */ +#include diff --git a/src/codec_utils/RRC/P0-PUCCH-Id.c b/src/codec_utils/RRC/P0-PUCCH-Id.c new file mode 100644 index 000000000..1e0008c14 --- /dev/null +++ b/src/codec_utils/RRC/P0-PUCCH-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "P0-PUCCH-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_P0_PUCCH_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_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_P0_PUCCH_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_P0_PUCCH_Id = { + "P0-PUCCH-Id", + "P0-PUCCH-Id", + &asn_OP_NativeInteger, + asn_DEF_P0_PUCCH_Id_tags_1, + sizeof(asn_DEF_P0_PUCCH_Id_tags_1) + /sizeof(asn_DEF_P0_PUCCH_Id_tags_1[0]), /* 1 */ + asn_DEF_P0_PUCCH_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_P0_PUCCH_Id_tags_1) + /sizeof(asn_DEF_P0_PUCCH_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_P0_PUCCH_Id_constr_1, &asn_PER_type_P0_PUCCH_Id_constr_1, P0_PUCCH_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/P0-PUCCH-Id.h b/src/codec_utils/RRC/P0-PUCCH-Id.h new file mode 100644 index 000000000..c811f2976 --- /dev/null +++ b/src/codec_utils/RRC/P0-PUCCH-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _P0_PUCCH_Id_H_ +#define _P0_PUCCH_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* P0-PUCCH-Id */ +typedef long P0_PUCCH_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_P0_PUCCH_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_P0_PUCCH_Id; +asn_struct_free_f P0_PUCCH_Id_free; +asn_struct_print_f P0_PUCCH_Id_print; +asn_constr_check_f P0_PUCCH_Id_constraint; +ber_type_decoder_f P0_PUCCH_Id_decode_ber; +der_type_encoder_f P0_PUCCH_Id_encode_der; +xer_type_decoder_f P0_PUCCH_Id_decode_xer; +xer_type_encoder_f P0_PUCCH_Id_encode_xer; +oer_type_decoder_f P0_PUCCH_Id_decode_oer; +oer_type_encoder_f P0_PUCCH_Id_encode_oer; +per_type_decoder_f P0_PUCCH_Id_decode_uper; +per_type_encoder_f P0_PUCCH_Id_encode_uper; +per_type_decoder_f P0_PUCCH_Id_decode_aper; +per_type_encoder_f P0_PUCCH_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _P0_PUCCH_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/P0-PUCCH.c b/src/codec_utils/RRC/P0-PUCCH.c new file mode 100644 index 000000000..b37befc9e --- /dev/null +++ b/src/codec_utils/RRC/P0-PUCCH.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "P0-PUCCH.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_p0_PUCCH_Value_constr_3 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_P0_PUCCH_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct P0_PUCCH, p0_PUCCH_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUCCH_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUCCH-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct P0_PUCCH, p0_PUCCH_Value), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_PUCCH_Value_constr_3, &asn_PER_memb_p0_PUCCH_Value_constr_3, memb_p0_PUCCH_Value_constraint_1 }, + 0, 0, /* No default value */ + "p0-PUCCH-Value" + }, +}; +static const ber_tlv_tag_t asn_DEF_P0_PUCCH_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_P0_PUCCH_specs_1 = { + sizeof(struct P0_PUCCH), + offsetof(struct P0_PUCCH, _asn_ctx), + asn_MAP_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_P0_PUCCH = { + "P0-PUCCH", + "P0-PUCCH", + &asn_OP_SEQUENCE, + asn_DEF_P0_PUCCH_tags_1, + sizeof(asn_DEF_P0_PUCCH_tags_1) + /sizeof(asn_DEF_P0_PUCCH_tags_1[0]), /* 1 */ + asn_DEF_P0_PUCCH_tags_1, /* Same as above */ + sizeof(asn_DEF_P0_PUCCH_tags_1) + /sizeof(asn_DEF_P0_PUCCH_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_P0_PUCCH_1, + 2, /* Elements count */ + &asn_SPC_P0_PUCCH_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/P0-PUCCH.h b/src/codec_utils/RRC/P0-PUCCH.h new file mode 100644 index 000000000..38faf38a3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _P0_PUCCH_H_ +#define _P0_PUCCH_H_ + + +#include + +/* Including external dependencies */ +#include "P0-PUCCH-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* P0-PUCCH */ +typedef struct P0_PUCCH { + P0_PUCCH_Id_t p0_PUCCH_Id; + long p0_PUCCH_Value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} P0_PUCCH_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_P0_PUCCH; +extern asn_SEQUENCE_specifics_t asn_SPC_P0_PUCCH_specs_1; +extern asn_TYPE_member_t asn_MBR_P0_PUCCH_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _P0_PUCCH_H_ */ +#include diff --git a/src/codec_utils/RRC/P0-PUSCH-AlphaSet.c b/src/codec_utils/RRC/P0-PUSCH-AlphaSet.c new file mode 100644 index 000000000..8ac019dec --- /dev/null +++ b/src/codec_utils/RRC/P0-PUSCH-AlphaSet.c @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "P0-PUSCH-AlphaSet.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_p0_constr_3 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_P0_PUSCH_AlphaSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct P0_PUSCH_AlphaSet, p0_PUSCH_AlphaSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUSCH-AlphaSetId" + }, + { ATF_POINTER, 2, offsetof(struct P0_PUSCH_AlphaSet, p0), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_constr_3, &asn_PER_memb_p0_constr_3, memb_p0_constraint_1 }, + 0, 0, /* No default value */ + "p0" + }, + { ATF_POINTER, 1, offsetof(struct P0_PUSCH_AlphaSet, alpha), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alpha" + }, +}; +static const int asn_MAP_P0_PUSCH_AlphaSet_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_P0_PUSCH_AlphaSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_P0_PUSCH_AlphaSet_specs_1 = { + sizeof(struct P0_PUSCH_AlphaSet), + offsetof(struct P0_PUSCH_AlphaSet, _asn_ctx), + asn_MAP_P0_PUSCH_AlphaSet_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_P0_PUSCH_AlphaSet_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_P0_PUSCH_AlphaSet = { + "P0-PUSCH-AlphaSet", + "P0-PUSCH-AlphaSet", + &asn_OP_SEQUENCE, + asn_DEF_P0_PUSCH_AlphaSet_tags_1, + sizeof(asn_DEF_P0_PUSCH_AlphaSet_tags_1) + /sizeof(asn_DEF_P0_PUSCH_AlphaSet_tags_1[0]), /* 1 */ + asn_DEF_P0_PUSCH_AlphaSet_tags_1, /* Same as above */ + sizeof(asn_DEF_P0_PUSCH_AlphaSet_tags_1) + /sizeof(asn_DEF_P0_PUSCH_AlphaSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_P0_PUSCH_AlphaSet_1, + 3, /* Elements count */ + &asn_SPC_P0_PUSCH_AlphaSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/P0-PUSCH-AlphaSet.h b/src/codec_utils/RRC/P0-PUSCH-AlphaSet.h new file mode 100644 index 000000000..c81b832a3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _P0_PUSCH_AlphaSet_H_ +#define _P0_PUSCH_AlphaSet_H_ + + +#include + +/* Including external dependencies */ +#include "P0-PUSCH-AlphaSetId.h" +#include +#include "Alpha.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* P0-PUSCH-AlphaSet */ +typedef struct P0_PUSCH_AlphaSet { + P0_PUSCH_AlphaSetId_t p0_PUSCH_AlphaSetId; + long *p0; /* OPTIONAL */ + Alpha_t *alpha; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} P0_PUSCH_AlphaSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_P0_PUSCH_AlphaSet; +extern asn_SEQUENCE_specifics_t asn_SPC_P0_PUSCH_AlphaSet_specs_1; +extern asn_TYPE_member_t asn_MBR_P0_PUSCH_AlphaSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _P0_PUSCH_AlphaSet_H_ */ +#include diff --git a/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.c b/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.c new file mode 100644 index 000000000..151a9d8e6 --- /dev/null +++ b/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "P0-PUSCH-AlphaSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_P0_PUSCH_AlphaSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +asn_per_constraints_t asn_PER_type_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_P0_PUSCH_AlphaSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_P0_PUSCH_AlphaSetId = { + "P0-PUSCH-AlphaSetId", + "P0-PUSCH-AlphaSetId", + &asn_OP_NativeInteger, + asn_DEF_P0_PUSCH_AlphaSetId_tags_1, + sizeof(asn_DEF_P0_PUSCH_AlphaSetId_tags_1) + /sizeof(asn_DEF_P0_PUSCH_AlphaSetId_tags_1[0]), /* 1 */ + asn_DEF_P0_PUSCH_AlphaSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_P0_PUSCH_AlphaSetId_tags_1) + /sizeof(asn_DEF_P0_PUSCH_AlphaSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_P0_PUSCH_AlphaSetId_constr_1, &asn_PER_type_P0_PUSCH_AlphaSetId_constr_1, P0_PUSCH_AlphaSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.h b/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.h new file mode 100644 index 000000000..dfcd8160b --- /dev/null +++ b/src/codec_utils/RRC/P0-PUSCH-AlphaSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _P0_PUSCH_AlphaSetId_H_ +#define _P0_PUSCH_AlphaSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* P0-PUSCH-AlphaSetId */ +typedef long P0_PUSCH_AlphaSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_P0_PUSCH_AlphaSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_P0_PUSCH_AlphaSetId; +asn_struct_free_f P0_PUSCH_AlphaSetId_free; +asn_struct_print_f P0_PUSCH_AlphaSetId_print; +asn_constr_check_f P0_PUSCH_AlphaSetId_constraint; +ber_type_decoder_f P0_PUSCH_AlphaSetId_decode_ber; +der_type_encoder_f P0_PUSCH_AlphaSetId_encode_der; +xer_type_decoder_f P0_PUSCH_AlphaSetId_decode_xer; +xer_type_encoder_f P0_PUSCH_AlphaSetId_encode_xer; +oer_type_decoder_f P0_PUSCH_AlphaSetId_decode_oer; +oer_type_encoder_f P0_PUSCH_AlphaSetId_encode_oer; +per_type_decoder_f P0_PUSCH_AlphaSetId_decode_uper; +per_type_encoder_f P0_PUSCH_AlphaSetId_encode_uper; +per_type_decoder_f P0_PUSCH_AlphaSetId_decode_aper; +per_type_encoder_f P0_PUSCH_AlphaSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _P0_PUSCH_AlphaSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/PCCH-Config.c b/src/codec_utils/RRC/PCCH-Config.c new file mode 100644 index 000000000..dbd68ba70 --- /dev/null +++ b/src/codec_utils/RRC/PCCH-Config.c @@ -0,0 +1,1365 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCCH-Config.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_halfT_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_quarterT_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_oneEighthT_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_oneSixteenthT_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_nAndPagingFrameOffset_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ns_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_15 CC_NOTUSED = { + { 1, 1 } /* (0..139) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS15KHZoneT_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_17 CC_NOTUSED = { + { 2, 1 } /* (0..279) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_19 CC_NOTUSED = { + { 2, 1 } /* (0..559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_21 CC_NOTUSED = { + { 2, 1 } /* (0..1119) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_23 CC_NOTUSED = { + { 2, 1 } /* (0..2239) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_25 CC_NOTUSED = { + { 2, 1 } /* (0..4479) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_27 CC_NOTUSED = { + { 2, 1 } /* (0..8959) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_29 CC_NOTUSED = { + { 2, 1 } /* (0..17919) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_sCS15KHZoneT_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_nAndPagingFrameOffset_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 PCCH_Config__nAndPagingFrameOffset, choice.halfT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_halfT_constr_5, &asn_PER_memb_halfT_constr_5, memb_halfT_constraint_3 }, + 0, 0, /* No default value */ + "halfT" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.quarterT), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_quarterT_constr_6, &asn_PER_memb_quarterT_constr_6, memb_quarterT_constraint_3 }, + 0, 0, /* No default value */ + "quarterT" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.oneEighthT), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_oneEighthT_constr_7, &asn_PER_memb_oneEighthT_constr_7, memb_oneEighthT_constraint_3 }, + 0, 0, /* No default value */ + "oneEighthT" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.oneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_oneSixteenthT_constr_8, &asn_PER_memb_oneSixteenthT_constr_8, memb_oneSixteenthT_constraint_3 }, + 0, 0, /* No default value */ + "oneSixteenthT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nAndPagingFrameOffset_specs_3 = { + sizeof(struct PCCH_Config__nAndPagingFrameOffset), + offsetof(struct PCCH_Config__nAndPagingFrameOffset, _asn_ctx), + offsetof(struct PCCH_Config__nAndPagingFrameOffset, present), + sizeof(((struct PCCH_Config__nAndPagingFrameOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_nAndPagingFrameOffset_constr_3, &asn_PER_type_nAndPagingFrameOffset_constr_3, CHOICE_constraint }, + asn_MBR_nAndPagingFrameOffset_3, + 5, /* Elements count */ + &asn_SPC_nAndPagingFrameOffset_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ns_value2enum_9[] = { + { 0, 4, "four" }, + { 1, 3, "two" }, + { 2, 3, "one" } +}; +static const unsigned int asn_MAP_ns_enum2value_9[] = { + 0, /* four(0) */ + 2, /* one(2) */ + 1 /* two(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ns_specs_9 = { + asn_MAP_ns_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ns_9 = { + "ns", + "ns", + &asn_OP_NativeEnumerated, + asn_DEF_ns_tags_9, + sizeof(asn_DEF_ns_tags_9) + /sizeof(asn_DEF_ns_tags_9[0]) - 1, /* 1 */ + asn_DEF_ns_tags_9, /* Same as above */ + sizeof(asn_DEF_ns_tags_9) + /sizeof(asn_DEF_ns_tags_9[0]), /* 2 */ + { &asn_OER_type_ns_constr_9, &asn_PER_type_ns_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ns_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS15KHZoneT_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_15, &asn_PER_memb_Member_constr_15, memb_NativeInteger_constraint_14 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCS15KHZoneT_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCS15KHZoneT_specs_14 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT), + offsetof(struct 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_sCS15KHZoneT_14 = { + "sCS15KHZoneT", + "sCS15KHZoneT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS15KHZoneT_tags_14, + sizeof(asn_DEF_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]) - 1, /* 1 */ + asn_DEF_sCS15KHZoneT_tags_14, /* Same as above */ + sizeof(asn_DEF_sCS15KHZoneT_tags_14) + /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]), /* 2 */ + { &asn_OER_type_sCS15KHZoneT_constr_14, &asn_PER_type_sCS15KHZoneT_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_sCS15KHZoneT_14, + 1, /* Single element */ + &asn_SPC_sCS15KHZoneT_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_17, &asn_PER_memb_Member_constr_17, memb_NativeInteger_constraint_16 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT), + offsetof(struct 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_sCS30KHZoneT_SCS15KHZhalfT_16 = { + "sCS30KHZoneT-SCS15KHZhalfT", + "sCS30KHZoneT-SCS15KHZhalfT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, + sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]) - 1, /* 1 */ + asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, /* Same as above */ + sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) + /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]), /* 2 */ + { &asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16, + 1, /* Single element */ + &asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_19, &asn_PER_memb_Member_constr_19, memb_NativeInteger_constraint_18 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + offsetof(struct 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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18 = { + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, + sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]) - 1, /* 1 */ + asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, /* Same as above */ + sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) + /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]), /* 2 */ + { &asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 1, /* Single element */ + &asn_SPC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_21, &asn_PER_memb_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + offsetof(struct 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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20 = { + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, + sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]) - 1, /* 1 */ + asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, /* Same as above */ + sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) + /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]), /* 2 */ + { &asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 1, /* Single element */ + &asn_SPC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_23, &asn_PER_memb_Member_constr_23, memb_NativeInteger_constraint_22 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + offsetof(struct 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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22 = { + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, + sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]) - 1, /* 1 */ + asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, /* Same as above */ + sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) + /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]), /* 2 */ + { &asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 1, /* Single element */ + &asn_SPC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_25, &asn_PER_memb_Member_constr_25, memb_NativeInteger_constraint_24 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + offsetof(struct 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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24 = { + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, + sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]) - 1, /* 1 */ + asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, /* Same as above */ + sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) + /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]), /* 2 */ + { &asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 1, /* Single element */ + &asn_SPC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_27, &asn_PER_memb_Member_constr_27, memb_NativeInteger_constraint_26 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + offsetof(struct 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_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26 = { + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, + sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]) - 1, /* 1 */ + asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, /* Same as above */ + sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) + /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]), /* 2 */ + { &asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 1, /* Single element */ + &asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sCS120KHZoneSixteenthT_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_29, &asn_PER_memb_Member_constr_29, memb_NativeInteger_constraint_28 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sCS120KHZoneSixteenthT_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneSixteenthT_specs_28 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT), + offsetof(struct 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_sCS120KHZoneSixteenthT_28 = { + "sCS120KHZoneSixteenthT", + "sCS120KHZoneSixteenthT", + &asn_OP_SEQUENCE_OF, + asn_DEF_sCS120KHZoneSixteenthT_tags_28, + sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]) - 1, /* 1 */ + asn_DEF_sCS120KHZoneSixteenthT_tags_28, /* Same as above */ + sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) + /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]), /* 2 */ + { &asn_OER_type_sCS120KHZoneSixteenthT_constr_28, &asn_PER_type_sCS120KHZoneSixteenthT_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_sCS120KHZoneSixteenthT_28, + 1, /* Single element */ + &asn_SPC_sCS120KHZoneSixteenthT_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13[] = { + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS15KHZoneT), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_sCS15KHZoneT_14, + 0, + { &asn_OER_memb_sCS15KHZoneT_constr_14, &asn_PER_memb_sCS15KHZoneT_constr_14, memb_sCS15KHZoneT_constraint_13 }, + 0, 0, /* No default value */ + "sCS15KHZoneT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS30KHZoneT_SCS15KHZhalfT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_16, + 0, + { &asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, memb_sCS30KHZoneT_SCS15KHZhalfT_constraint_13 }, + 0, 0, /* No default value */ + "sCS30KHZoneT-SCS15KHZhalfT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, + 0, + { &asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13 }, + 0, 0, /* No default value */ + "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, + 0, + { &asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, + 0, + { &asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, + 0, + { &asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, + 0, + { &asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneSixteenthT), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_sCS120KHZoneSixteenthT_28, + 0, + { &asn_OER_memb_sCS120KHZoneSixteenthT_constr_28, &asn_PER_memb_sCS120KHZoneSixteenthT_constr_28, memb_sCS120KHZoneSixteenthT_constraint_13 }, + 0, 0, /* No default value */ + "sCS120KHZoneSixteenthT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_firstPDCCH_MonitoringOccasionOfPO_specs_13 = { + sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO), + offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, _asn_ctx), + offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, present), + sizeof(((struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, &asn_PER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, CHOICE_constraint }, + asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13, + 8, /* Elements count */ + &asn_SPC_firstPDCCH_MonitoringOccasionOfPO_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PCCH_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, defaultPagingCycle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PagingCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "defaultPagingCycle" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, nAndPagingFrameOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_nAndPagingFrameOffset_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nAndPagingFrameOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, ns), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ns_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ns" + }, + { ATF_POINTER, 1, offsetof(struct PCCH_Config, firstPDCCH_MonitoringOccasionOfPO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_firstPDCCH_MonitoringOccasionOfPO_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstPDCCH-MonitoringOccasionOfPO" + }, +}; +static const int asn_MAP_PCCH_Config_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_PCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PCCH_Config_specs_1 = { + sizeof(struct PCCH_Config), + offsetof(struct PCCH_Config, _asn_ctx), + asn_MAP_PCCH_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PCCH_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PCCH_Config = { + "PCCH-Config", + "PCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_PCCH_Config_tags_1, + sizeof(asn_DEF_PCCH_Config_tags_1) + /sizeof(asn_DEF_PCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_PCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PCCH_Config_tags_1) + /sizeof(asn_DEF_PCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PCCH_Config_1, + 4, /* Elements count */ + &asn_SPC_PCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCCH-Config.h b/src/codec_utils/RRC/PCCH-Config.h new file mode 100644 index 000000000..cc4d4eec6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCCH_Config_H_ +#define _PCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include "PagingCycle.h" +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PCCH_Config__nAndPagingFrameOffset_PR { + PCCH_Config__nAndPagingFrameOffset_PR_NOTHING, /* No components present */ + PCCH_Config__nAndPagingFrameOffset_PR_oneT, + PCCH_Config__nAndPagingFrameOffset_PR_halfT, + PCCH_Config__nAndPagingFrameOffset_PR_quarterT, + PCCH_Config__nAndPagingFrameOffset_PR_oneEighthT, + PCCH_Config__nAndPagingFrameOffset_PR_oneSixteenthT +} PCCH_Config__nAndPagingFrameOffset_PR; +typedef enum PCCH_Config__ns { + PCCH_Config__ns_four = 0, + PCCH_Config__ns_two = 1, + PCCH_Config__ns_one = 2 +} e_PCCH_Config__ns; +typedef enum PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR { + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING, /* No components present */ + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS15KHZoneT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneSixteenthT +} PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR; + +/* PCCH-Config */ +typedef struct PCCH_Config { + PagingCycle_t defaultPagingCycle; + struct PCCH_Config__nAndPagingFrameOffset { + PCCH_Config__nAndPagingFrameOffset_PR present; + union PCCH_Config__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 PCCH_Config__firstPDCCH_MonitoringOccasionOfPO { + PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR present; + union PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_u { + struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sCS15KHZoneT; + struct 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 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 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 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 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 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 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; +} PCCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ns_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PCCH_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PCCH-Message.c b/src/codec_utils/RRC/PCCH-Message.c new file mode 100644 index 000000000..f607202c2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_PCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_PCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_PCCH_Message_specs_1 = { + sizeof(struct PCCH_Message), + offsetof(struct PCCH_Message, _asn_ctx), + asn_MAP_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_PCCH_Message = { + "PCCH-Message", + "PCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_PCCH_Message_tags_1, + sizeof(asn_DEF_PCCH_Message_tags_1) + /sizeof(asn_DEF_PCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_PCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_PCCH_Message_tags_1) + /sizeof(asn_DEF_PCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_PCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCCH-Message.h b/src/codec_utils/RRC/PCCH-Message.h new file mode 100644 index 000000000..b4a03b8ca --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCCH_Message_H_ +#define _PCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "PCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PCCH-Message */ +typedef struct PCCH_Message { + PCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/PCCH-MessageType.c b/src/codec_utils/RRC/PCCH-MessageType.c new file mode 100644 index 000000000..1bbf607b9 --- /dev/null +++ b/src/codec_utils/RRC/PCCH-MessageType.c @@ -0,0 +1,151 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCCH-MessageType.h" + +#include "Paging.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_PCCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct PCCH_MessageType__c1, choice.paging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Paging, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "paging" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_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_c1_specs_2 = { + sizeof(struct PCCH_MessageType__c1), + offsetof(struct PCCH_MessageType__c1, _asn_ctx), + offsetof(struct PCCH_MessageType__c1, present), + sizeof(((struct PCCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 2, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_5 = { + sizeof(struct PCCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_5 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_5, + sizeof(asn_DEF_messageClassExtension_tags_5) + /sizeof(asn_DEF_messageClassExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_5) + /sizeof(asn_DEF_messageClassExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct PCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct PCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PCCH_MessageType_specs_1 = { + sizeof(struct PCCH_MessageType), + offsetof(struct PCCH_MessageType, _asn_ctx), + offsetof(struct PCCH_MessageType, present), + sizeof(((struct PCCH_MessageType *)0)->present), + asn_MAP_PCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_PCCH_MessageType_constr_1, &asn_PER_type_PCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_PCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_PCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCCH-MessageType.h b/src/codec_utils/RRC/PCCH-MessageType.h new file mode 100644 index 000000000..fe64403cf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCCH_MessageType_H_ +#define _PCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PCCH_MessageType_PR { + PCCH_MessageType_PR_NOTHING, /* No components present */ + PCCH_MessageType_PR_c1, + PCCH_MessageType_PR_messageClassExtension +} PCCH_MessageType_PR; +typedef enum PCCH_MessageType__c1_PR { + PCCH_MessageType__c1_PR_NOTHING, /* No components present */ + PCCH_MessageType__c1_PR_paging, + PCCH_MessageType__c1_PR_spare1 +} PCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct Paging; + +/* PCCH-MessageType */ +typedef struct PCCH_MessageType { + PCCH_MessageType_PR present; + union PCCH_MessageType_u { + struct PCCH_MessageType__c1 { + PCCH_MessageType__c1_PR present; + union PCCH_MessageType__c1_u { + struct Paging *paging; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct 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; +} PCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_PCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_PCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_PCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/PCI-List.c b/src/codec_utils/RRC/PCI-List.c new file mode 100644 index 000000000..117223665 --- /dev/null +++ b/src/codec_utils/RRC/PCI-List.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCI-List.h" + +static asn_oer_constraints_t asn_OER_type_PCI_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_PCI_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PCI_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PCI_List_specs_1 = { + sizeof(struct PCI_List), + offsetof(struct PCI_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PCI_List = { + "PCI-List", + "PCI-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_PCI_List_tags_1, + sizeof(asn_DEF_PCI_List_tags_1) + /sizeof(asn_DEF_PCI_List_tags_1[0]), /* 1 */ + asn_DEF_PCI_List_tags_1, /* Same as above */ + sizeof(asn_DEF_PCI_List_tags_1) + /sizeof(asn_DEF_PCI_List_tags_1[0]), /* 1 */ + { &asn_OER_type_PCI_List_constr_1, &asn_PER_type_PCI_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PCI_List_1, + 1, /* Single element */ + &asn_SPC_PCI_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCI-List.h b/src/codec_utils/RRC/PCI-List.h new file mode 100644 index 000000000..f28aa6a53 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCI_List_H_ +#define _PCI_List_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PCI-List */ +typedef struct PCI_List { + A_SEQUENCE_OF(PhysCellId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PCI_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PCI_List; +extern asn_SET_OF_specifics_t asn_SPC_PCI_List_specs_1; +extern asn_TYPE_member_t asn_MBR_PCI_List_1[1]; +extern asn_per_constraints_t asn_PER_type_PCI_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCI_List_H_ */ +#include diff --git a/src/codec_utils/RRC/PCI-Range.c b/src/codec_utils/RRC/PCI-Range.c new file mode 100644 index 000000000..13bb8212a --- /dev/null +++ b/src/codec_utils/RRC/PCI-Range.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCI-Range.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_range_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_range_specs_3 = { + asn_MAP_range_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_range_3 = { + "range", + "range", + &asn_OP_NativeEnumerated, + asn_DEF_range_tags_3, + sizeof(asn_DEF_range_tags_3) + /sizeof(asn_DEF_range_tags_3[0]) - 1, /* 1 */ + asn_DEF_range_tags_3, /* Same as above */ + sizeof(asn_DEF_range_tags_3) + /sizeof(asn_DEF_range_tags_3[0]), /* 2 */ + { &asn_OER_type_range_constr_3, &asn_PER_type_range_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_range_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PCI_Range_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PCI_Range, start), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "start" + }, + { ATF_POINTER, 1, offsetof(struct PCI_Range, range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_range_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "range" + }, +}; +static const int asn_MAP_PCI_Range_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PCI_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PCI_Range_specs_1 = { + sizeof(struct PCI_Range), + offsetof(struct PCI_Range, _asn_ctx), + asn_MAP_PCI_Range_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PCI_Range_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PCI_Range = { + "PCI-Range", + "PCI-Range", + &asn_OP_SEQUENCE, + asn_DEF_PCI_Range_tags_1, + sizeof(asn_DEF_PCI_Range_tags_1) + /sizeof(asn_DEF_PCI_Range_tags_1[0]), /* 1 */ + asn_DEF_PCI_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_PCI_Range_tags_1) + /sizeof(asn_DEF_PCI_Range_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PCI_Range_1, + 2, /* Elements count */ + &asn_SPC_PCI_Range_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCI-Range.h b/src/codec_utils/RRC/PCI-Range.h new file mode 100644 index 000000000..aa21c2da7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCI_Range_H_ +#define _PCI_Range_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PCI_Range__range { + PCI_Range__range_n4 = 0, + PCI_Range__range_n8 = 1, + PCI_Range__range_n12 = 2, + PCI_Range__range_n16 = 3, + PCI_Range__range_n24 = 4, + PCI_Range__range_n32 = 5, + PCI_Range__range_n48 = 6, + PCI_Range__range_n64 = 7, + PCI_Range__range_n84 = 8, + PCI_Range__range_n96 = 9, + PCI_Range__range_n128 = 10, + PCI_Range__range_n168 = 11, + PCI_Range__range_n252 = 12, + PCI_Range__range_n504 = 13, + PCI_Range__range_n1008 = 14, + PCI_Range__range_spare1 = 15 +} e_PCI_Range__range; + +/* PCI-Range */ +typedef struct PCI_Range { + PhysCellId_t start; + long *range; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PCI_Range_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_range_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PCI_Range; +extern asn_SEQUENCE_specifics_t asn_SPC_PCI_Range_specs_1; +extern asn_TYPE_member_t asn_MBR_PCI_Range_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCI_Range_H_ */ +#include diff --git a/src/codec_utils/RRC/PCI-RangeElement.c b/src/codec_utils/RRC/PCI-RangeElement.c new file mode 100644 index 000000000..244a77b04 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCI-RangeElement.h" + +asn_TYPE_member_t asn_MBR_PCI_RangeElement_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PCI_RangeElement, pci_RangeIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCI_RangeIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pci-RangeIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct PCI_RangeElement, pci_Range), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PCI_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pci-Range" + }, +}; +static const ber_tlv_tag_t asn_DEF_PCI_RangeElement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PCI_RangeElement_specs_1 = { + sizeof(struct PCI_RangeElement), + offsetof(struct PCI_RangeElement, _asn_ctx), + asn_MAP_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_PCI_RangeElement = { + "PCI-RangeElement", + "PCI-RangeElement", + &asn_OP_SEQUENCE, + asn_DEF_PCI_RangeElement_tags_1, + sizeof(asn_DEF_PCI_RangeElement_tags_1) + /sizeof(asn_DEF_PCI_RangeElement_tags_1[0]), /* 1 */ + asn_DEF_PCI_RangeElement_tags_1, /* Same as above */ + sizeof(asn_DEF_PCI_RangeElement_tags_1) + /sizeof(asn_DEF_PCI_RangeElement_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PCI_RangeElement_1, + 2, /* Elements count */ + &asn_SPC_PCI_RangeElement_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCI-RangeElement.h b/src/codec_utils/RRC/PCI-RangeElement.h new file mode 100644 index 000000000..7bddb34f0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCI_RangeElement_H_ +#define _PCI_RangeElement_H_ + + +#include + +/* Including external dependencies */ +#include "PCI-RangeIndex.h" +#include "PCI-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PCI-RangeElement */ +typedef struct PCI_RangeElement { + PCI_RangeIndex_t pci_RangeIndex; + PCI_Range_t pci_Range; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PCI_RangeElement_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PCI_RangeElement; +extern asn_SEQUENCE_specifics_t asn_SPC_PCI_RangeElement_specs_1; +extern asn_TYPE_member_t asn_MBR_PCI_RangeElement_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCI_RangeElement_H_ */ +#include diff --git a/src/codec_utils/RRC/PCI-RangeIndex.c b/src/codec_utils/RRC/PCI-RangeIndex.c new file mode 100644 index 000000000..f2e5cd483 --- /dev/null +++ b/src/codec_utils/RRC/PCI-RangeIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCI-RangeIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PCI_RangeIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PCI_RangeIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PCI_RangeIndex = { + "PCI-RangeIndex", + "PCI-RangeIndex", + &asn_OP_NativeInteger, + asn_DEF_PCI_RangeIndex_tags_1, + sizeof(asn_DEF_PCI_RangeIndex_tags_1) + /sizeof(asn_DEF_PCI_RangeIndex_tags_1[0]), /* 1 */ + asn_DEF_PCI_RangeIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_PCI_RangeIndex_tags_1) + /sizeof(asn_DEF_PCI_RangeIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_PCI_RangeIndex_constr_1, &asn_PER_type_PCI_RangeIndex_constr_1, PCI_RangeIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PCI-RangeIndex.h b/src/codec_utils/RRC/PCI-RangeIndex.h new file mode 100644 index 000000000..a95276fa9 --- /dev/null +++ b/src/codec_utils/RRC/PCI-RangeIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCI_RangeIndex_H_ +#define _PCI_RangeIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PCI-RangeIndex */ +typedef long PCI_RangeIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PCI_RangeIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PCI_RangeIndex; +asn_struct_free_f PCI_RangeIndex_free; +asn_struct_print_f PCI_RangeIndex_print; +asn_constr_check_f PCI_RangeIndex_constraint; +ber_type_decoder_f PCI_RangeIndex_decode_ber; +der_type_encoder_f PCI_RangeIndex_encode_der; +xer_type_decoder_f PCI_RangeIndex_decode_xer; +xer_type_encoder_f PCI_RangeIndex_encode_xer; +oer_type_decoder_f PCI_RangeIndex_decode_oer; +oer_type_encoder_f PCI_RangeIndex_encode_oer; +per_type_decoder_f PCI_RangeIndex_decode_uper; +per_type_encoder_f PCI_RangeIndex_encode_uper; +per_type_decoder_f PCI_RangeIndex_decode_aper; +per_type_encoder_f PCI_RangeIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCI_RangeIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/PCI-RangeIndexList.c b/src/codec_utils/RRC/PCI-RangeIndexList.c new file mode 100644 index 000000000..fdb634e69 --- /dev/null +++ b/src/codec_utils/RRC/PCI-RangeIndexList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PCI-RangeIndexList.h" + +static asn_oer_constraints_t asn_OER_type_PCI_RangeIndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_PCI_RangeIndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PCI_RangeIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PCI_RangeIndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PCI_RangeIndexList_specs_1 = { + sizeof(struct PCI_RangeIndexList), + offsetof(struct PCI_RangeIndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PCI_RangeIndexList = { + "PCI-RangeIndexList", + "PCI-RangeIndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PCI_RangeIndexList_tags_1, + sizeof(asn_DEF_PCI_RangeIndexList_tags_1) + /sizeof(asn_DEF_PCI_RangeIndexList_tags_1[0]), /* 1 */ + asn_DEF_PCI_RangeIndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_PCI_RangeIndexList_tags_1) + /sizeof(asn_DEF_PCI_RangeIndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_PCI_RangeIndexList_constr_1, &asn_PER_type_PCI_RangeIndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PCI_RangeIndexList_1, + 1, /* Single element */ + &asn_SPC_PCI_RangeIndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PCI-RangeIndexList.h b/src/codec_utils/RRC/PCI-RangeIndexList.h new file mode 100644 index 000000000..bc43a8e5b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PCI_RangeIndexList_H_ +#define _PCI_RangeIndexList_H_ + + +#include + +/* Including external dependencies */ +#include "PCI-RangeIndex.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PCI-RangeIndexList */ +typedef struct PCI_RangeIndexList { + A_SEQUENCE_OF(PCI_RangeIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PCI_RangeIndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PCI_RangeIndexList; +extern asn_SET_OF_specifics_t asn_SPC_PCI_RangeIndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_PCI_RangeIndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_PCI_RangeIndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PCI_RangeIndexList_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCCH-Config.c b/src/codec_utils/RRC/PDCCH-Config.c new file mode 100644 index 000000000..f14fa0586 --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-Config.c @@ -0,0 +1,672 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCCH-Config.h" + +#include "ControlResourceSet.h" +#include "SearchSpace.h" +#include "DownlinkPreemption.h" +#include "PUSCH-TPC-CommandConfig.h" +#include "PUCCH-TPC-CommandConfig.h" +#include "SRS-TPC-CommandConfig.h" +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_controlResourceSetToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_controlResourceSetToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpacesToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpacesToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_downlinkPreemption_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_downlinkPreemption_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_oer_constraints_t asn_OER_type_tpc_PUSCH_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_tpc_PUSCH_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_oer_constraints_t asn_OER_type_tpc_PUCCH_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_tpc_PUCCH_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_tpc_SRS_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_tpc_SRS_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_oer_constraints_t asn_OER_memb_controlResourceSetToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_controlResourceSetToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_searchSpacesToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_searchSpacesToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_controlResourceSetToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ControlResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_controlResourceSetToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_controlResourceSetToAddModList_specs_2 = { + sizeof(struct PDCCH_Config__controlResourceSetToAddModList), + offsetof(struct PDCCH_Config__controlResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_controlResourceSetToAddModList_2 = { + "controlResourceSetToAddModList", + "controlResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_controlResourceSetToAddModList_tags_2, + sizeof(asn_DEF_controlResourceSetToAddModList_tags_2) + /sizeof(asn_DEF_controlResourceSetToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_controlResourceSetToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_controlResourceSetToAddModList_tags_2) + /sizeof(asn_DEF_controlResourceSetToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_controlResourceSetToAddModList_constr_2, &asn_PER_type_controlResourceSetToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_controlResourceSetToAddModList_2, + 1, /* Single element */ + &asn_SPC_controlResourceSetToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_controlResourceSetToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_controlResourceSetToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_controlResourceSetToReleaseList_specs_4 = { + sizeof(struct PDCCH_Config__controlResourceSetToReleaseList), + offsetof(struct PDCCH_Config__controlResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_controlResourceSetToReleaseList_4 = { + "controlResourceSetToReleaseList", + "controlResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_controlResourceSetToReleaseList_tags_4, + sizeof(asn_DEF_controlResourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_controlResourceSetToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_controlResourceSetToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_controlResourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_controlResourceSetToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_controlResourceSetToReleaseList_constr_4, &asn_PER_type_controlResourceSetToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_controlResourceSetToReleaseList_4, + 1, /* Single element */ + &asn_SPC_controlResourceSetToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_searchSpacesToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SearchSpace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_searchSpacesToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_searchSpacesToAddModList_specs_6 = { + sizeof(struct PDCCH_Config__searchSpacesToAddModList), + offsetof(struct PDCCH_Config__searchSpacesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_searchSpacesToAddModList_6 = { + "searchSpacesToAddModList", + "searchSpacesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_searchSpacesToAddModList_tags_6, + sizeof(asn_DEF_searchSpacesToAddModList_tags_6) + /sizeof(asn_DEF_searchSpacesToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_searchSpacesToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_searchSpacesToAddModList_tags_6) + /sizeof(asn_DEF_searchSpacesToAddModList_tags_6[0]), /* 2 */ + { &asn_OER_type_searchSpacesToAddModList_constr_6, &asn_PER_type_searchSpacesToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_searchSpacesToAddModList_6, + 1, /* Single element */ + &asn_SPC_searchSpacesToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_searchSpacesToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_searchSpacesToReleaseList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_searchSpacesToReleaseList_specs_8 = { + sizeof(struct PDCCH_Config__searchSpacesToReleaseList), + offsetof(struct PDCCH_Config__searchSpacesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_searchSpacesToReleaseList_8 = { + "searchSpacesToReleaseList", + "searchSpacesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_searchSpacesToReleaseList_tags_8, + sizeof(asn_DEF_searchSpacesToReleaseList_tags_8) + /sizeof(asn_DEF_searchSpacesToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_searchSpacesToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_searchSpacesToReleaseList_tags_8) + /sizeof(asn_DEF_searchSpacesToReleaseList_tags_8[0]), /* 2 */ + { &asn_OER_type_searchSpacesToReleaseList_constr_8, &asn_PER_type_searchSpacesToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_searchSpacesToReleaseList_8, + 1, /* Single element */ + &asn_SPC_searchSpacesToReleaseList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_downlinkPreemption_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_Config__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 PDCCH_Config__downlinkPreemption, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DownlinkPreemption, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_downlinkPreemption_tag2el_10[] = { + { (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_downlinkPreemption_specs_10 = { + sizeof(struct PDCCH_Config__downlinkPreemption), + offsetof(struct PDCCH_Config__downlinkPreemption, _asn_ctx), + offsetof(struct PDCCH_Config__downlinkPreemption, present), + sizeof(((struct PDCCH_Config__downlinkPreemption *)0)->present), + asn_MAP_downlinkPreemption_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_downlinkPreemption_10 = { + "downlinkPreemption", + "downlinkPreemption", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_downlinkPreemption_constr_10, &asn_PER_type_downlinkPreemption_constr_10, CHOICE_constraint }, + asn_MBR_downlinkPreemption_10, + 2, /* Elements count */ + &asn_SPC_downlinkPreemption_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tpc_PUSCH_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_Config__tpc_PUSCH, 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 PDCCH_Config__tpc_PUSCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_tpc_PUSCH_tag2el_13[] = { + { (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_tpc_PUSCH_specs_13 = { + sizeof(struct PDCCH_Config__tpc_PUSCH), + offsetof(struct PDCCH_Config__tpc_PUSCH, _asn_ctx), + offsetof(struct PDCCH_Config__tpc_PUSCH, present), + sizeof(((struct PDCCH_Config__tpc_PUSCH *)0)->present), + asn_MAP_tpc_PUSCH_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_tpc_PUSCH_13 = { + "tpc-PUSCH", + "tpc-PUSCH", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_tpc_PUSCH_constr_13, &asn_PER_type_tpc_PUSCH_constr_13, CHOICE_constraint }, + asn_MBR_tpc_PUSCH_13, + 2, /* Elements count */ + &asn_SPC_tpc_PUSCH_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tpc_PUCCH_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_Config__tpc_PUCCH, 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 PDCCH_Config__tpc_PUCCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_tpc_PUCCH_tag2el_16[] = { + { (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_tpc_PUCCH_specs_16 = { + sizeof(struct PDCCH_Config__tpc_PUCCH), + offsetof(struct PDCCH_Config__tpc_PUCCH, _asn_ctx), + offsetof(struct PDCCH_Config__tpc_PUCCH, present), + sizeof(((struct PDCCH_Config__tpc_PUCCH *)0)->present), + asn_MAP_tpc_PUCCH_tag2el_16, + 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_tpc_PUCCH_16 = { + "tpc-PUCCH", + "tpc-PUCCH", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_tpc_PUCCH_constr_16, &asn_PER_type_tpc_PUCCH_constr_16, CHOICE_constraint }, + asn_MBR_tpc_PUCCH_16, + 2, /* Elements count */ + &asn_SPC_tpc_PUCCH_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tpc_SRS_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_Config__tpc_SRS, 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 PDCCH_Config__tpc_SRS, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_TPC_CommandConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_tpc_SRS_tag2el_19[] = { + { (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_tpc_SRS_specs_19 = { + sizeof(struct PDCCH_Config__tpc_SRS), + offsetof(struct PDCCH_Config__tpc_SRS, _asn_ctx), + offsetof(struct PDCCH_Config__tpc_SRS, present), + sizeof(((struct PDCCH_Config__tpc_SRS *)0)->present), + asn_MAP_tpc_SRS_tag2el_19, + 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_tpc_SRS_19 = { + "tpc-SRS", + "tpc-SRS", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_tpc_SRS_constr_19, &asn_PER_type_tpc_SRS_constr_19, CHOICE_constraint }, + asn_MBR_tpc_SRS_19, + 2, /* Elements count */ + &asn_SPC_tpc_SRS_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCCH_Config_1[] = { + { ATF_POINTER, 8, offsetof(struct PDCCH_Config, controlResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_controlResourceSetToAddModList_2, + 0, + { &asn_OER_memb_controlResourceSetToAddModList_constr_2, &asn_PER_memb_controlResourceSetToAddModList_constr_2, memb_controlResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "controlResourceSetToAddModList" + }, + { ATF_POINTER, 7, offsetof(struct PDCCH_Config, controlResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_controlResourceSetToReleaseList_4, + 0, + { &asn_OER_memb_controlResourceSetToReleaseList_constr_4, &asn_PER_memb_controlResourceSetToReleaseList_constr_4, memb_controlResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "controlResourceSetToReleaseList" + }, + { ATF_POINTER, 6, offsetof(struct PDCCH_Config, searchSpacesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_searchSpacesToAddModList_6, + 0, + { &asn_OER_memb_searchSpacesToAddModList_constr_6, &asn_PER_memb_searchSpacesToAddModList_constr_6, memb_searchSpacesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "searchSpacesToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct PDCCH_Config, searchSpacesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_searchSpacesToReleaseList_8, + 0, + { &asn_OER_memb_searchSpacesToReleaseList_constr_8, &asn_PER_memb_searchSpacesToReleaseList_constr_8, memb_searchSpacesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "searchSpacesToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct PDCCH_Config, downlinkPreemption), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_downlinkPreemption_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkPreemption" + }, + { ATF_POINTER, 3, offsetof(struct PDCCH_Config, tpc_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_tpc_PUSCH_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH" + }, + { ATF_POINTER, 2, offsetof(struct PDCCH_Config, tpc_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_tpc_PUCCH_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH" + }, + { ATF_POINTER, 1, offsetof(struct PDCCH_Config, tpc_SRS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_tpc_SRS_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS" + }, +}; +static const int asn_MAP_PDCCH_Config_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_PDCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDCCH_Config_specs_1 = { + sizeof(struct PDCCH_Config), + offsetof(struct PDCCH_Config, _asn_ctx), + asn_MAP_PDCCH_Config_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_PDCCH_Config_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCCH_Config = { + "PDCCH-Config", + "PDCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_PDCCH_Config_tags_1, + sizeof(asn_DEF_PDCCH_Config_tags_1) + /sizeof(asn_DEF_PDCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_PDCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCCH_Config_tags_1) + /sizeof(asn_DEF_PDCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCCH_Config_1, + 8, /* Elements count */ + &asn_SPC_PDCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCCH-Config.h b/src/codec_utils/RRC/PDCCH-Config.h new file mode 100644 index 000000000..18b0f50eb --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-Config.h @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCCH_Config_H_ +#define _PDCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "ControlResourceSetId.h" +#include "SearchSpaceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCCH_Config__downlinkPreemption_PR { + PDCCH_Config__downlinkPreemption_PR_NOTHING, /* No components present */ + PDCCH_Config__downlinkPreemption_PR_release, + PDCCH_Config__downlinkPreemption_PR_setup +} PDCCH_Config__downlinkPreemption_PR; +typedef enum PDCCH_Config__tpc_PUSCH_PR { + PDCCH_Config__tpc_PUSCH_PR_NOTHING, /* No components present */ + PDCCH_Config__tpc_PUSCH_PR_release, + PDCCH_Config__tpc_PUSCH_PR_setup +} PDCCH_Config__tpc_PUSCH_PR; +typedef enum PDCCH_Config__tpc_PUCCH_PR { + PDCCH_Config__tpc_PUCCH_PR_NOTHING, /* No components present */ + PDCCH_Config__tpc_PUCCH_PR_release, + PDCCH_Config__tpc_PUCCH_PR_setup +} PDCCH_Config__tpc_PUCCH_PR; +typedef enum PDCCH_Config__tpc_SRS_PR { + PDCCH_Config__tpc_SRS_PR_NOTHING, /* No components present */ + PDCCH_Config__tpc_SRS_PR_release, + PDCCH_Config__tpc_SRS_PR_setup +} PDCCH_Config__tpc_SRS_PR; + +/* Forward declarations */ +struct ControlResourceSet; +struct SearchSpace; +struct DownlinkPreemption; +struct PUSCH_TPC_CommandConfig; +struct PUCCH_TPC_CommandConfig; +struct SRS_TPC_CommandConfig; + +/* PDCCH-Config */ +typedef struct PDCCH_Config { + struct PDCCH_Config__controlResourceSetToAddModList { + A_SEQUENCE_OF(struct ControlResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *controlResourceSetToAddModList; + struct PDCCH_Config__controlResourceSetToReleaseList { + A_SEQUENCE_OF(ControlResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *controlResourceSetToReleaseList; + struct PDCCH_Config__searchSpacesToAddModList { + A_SEQUENCE_OF(struct SearchSpace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchSpacesToAddModList; + struct PDCCH_Config__searchSpacesToReleaseList { + A_SEQUENCE_OF(SearchSpaceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchSpacesToReleaseList; + struct PDCCH_Config__downlinkPreemption { + PDCCH_Config__downlinkPreemption_PR present; + union PDCCH_Config__downlinkPreemption_u { + NULL_t release; + struct DownlinkPreemption *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkPreemption; + struct PDCCH_Config__tpc_PUSCH { + PDCCH_Config__tpc_PUSCH_PR present; + union PDCCH_Config__tpc_PUSCH_u { + NULL_t release; + struct PUSCH_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tpc_PUSCH; + struct PDCCH_Config__tpc_PUCCH { + PDCCH_Config__tpc_PUCCH_PR present; + union PDCCH_Config__tpc_PUCCH_u { + NULL_t release; + struct PUCCH_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tpc_PUCCH; + struct PDCCH_Config__tpc_SRS { + PDCCH_Config__tpc_SRS_PR present; + union PDCCH_Config__tpc_SRS_u { + NULL_t release; + struct SRS_TPC_CommandConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tpc_SRS; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCCH_Config_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCCH-ConfigCommon.c b/src/codec_utils/RRC/PDCCH-ConfigCommon.c new file mode 100644 index 000000000..a8e6d479b --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-ConfigCommon.c @@ -0,0 +1,203 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCCH-ConfigCommon.h" + +#include "ControlResourceSet.h" +#include "SearchSpace.h" +static int +memb_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_oer_constraints_t asn_OER_type_commonSearchSpaceList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_commonSearchSpaceList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_commonSearchSpaceList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SearchSpace, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_commonSearchSpaceList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_commonSearchSpaceList_specs_5 = { + sizeof(struct PDCCH_ConfigCommon__commonSearchSpaceList), + offsetof(struct PDCCH_ConfigCommon__commonSearchSpaceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_commonSearchSpaceList_5 = { + "commonSearchSpaceList", + "commonSearchSpaceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_commonSearchSpaceList_tags_5, + sizeof(asn_DEF_commonSearchSpaceList_tags_5) + /sizeof(asn_DEF_commonSearchSpaceList_tags_5[0]) - 1, /* 1 */ + asn_DEF_commonSearchSpaceList_tags_5, /* Same as above */ + sizeof(asn_DEF_commonSearchSpaceList_tags_5) + /sizeof(asn_DEF_commonSearchSpaceList_tags_5[0]), /* 2 */ + { &asn_OER_type_commonSearchSpaceList_constr_5, &asn_PER_type_commonSearchSpaceList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_commonSearchSpaceList_5, + 1, /* Single element */ + &asn_SPC_commonSearchSpaceList_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCCH_ConfigCommon_1[] = { + { ATF_POINTER, 8, offsetof(struct PDCCH_ConfigCommon, controlResourceSetZero), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSetZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetZero" + }, + { ATF_POINTER, 7, offsetof(struct PDCCH_ConfigCommon, commonControlResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "commonControlResourceSet" + }, + { ATF_POINTER, 6, offsetof(struct PDCCH_ConfigCommon, searchSpaceZero), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceZero" + }, + { ATF_POINTER, 5, offsetof(struct PDCCH_ConfigCommon, commonSearchSpaceList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_commonSearchSpaceList_5, + 0, + { &asn_OER_memb_commonSearchSpaceList_constr_5, &asn_PER_memb_commonSearchSpaceList_constr_5, memb_commonSearchSpaceList_constraint_1 }, + 0, 0, /* No default value */ + "commonSearchSpaceList" + }, + { ATF_POINTER, 4, offsetof(struct PDCCH_ConfigCommon, searchSpaceSIB1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceSIB1" + }, + { ATF_POINTER, 3, offsetof(struct PDCCH_ConfigCommon, searchSpaceOtherSystemInformation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceOtherSystemInformation" + }, + { ATF_POINTER, 2, offsetof(struct PDCCH_ConfigCommon, pagingSearchSpace), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingSearchSpace" + }, + { ATF_POINTER, 1, offsetof(struct PDCCH_ConfigCommon, ra_SearchSpace), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-SearchSpace" + }, +}; +static const int asn_MAP_PDCCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_PDCCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_PDCCH_ConfigCommon_specs_1 = { + sizeof(struct PDCCH_ConfigCommon), + offsetof(struct PDCCH_ConfigCommon, _asn_ctx), + asn_MAP_PDCCH_ConfigCommon_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_PDCCH_ConfigCommon_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigCommon = { + "PDCCH-ConfigCommon", + "PDCCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_PDCCH_ConfigCommon_tags_1, + sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_PDCCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCCH_ConfigCommon_1, + 8, /* Elements count */ + &asn_SPC_PDCCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCCH-ConfigCommon.h b/src/codec_utils/RRC/PDCCH-ConfigCommon.h new file mode 100644 index 000000000..c3fd02db1 --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-ConfigCommon.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCCH_ConfigCommon_H_ +#define _PDCCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "ControlResourceSetZero.h" +#include "SearchSpaceZero.h" +#include "SearchSpaceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ControlResourceSet; +struct SearchSpace; + +/* PDCCH-ConfigCommon */ +typedef struct PDCCH_ConfigCommon { + ControlResourceSetZero_t *controlResourceSetZero; /* OPTIONAL */ + struct ControlResourceSet *commonControlResourceSet; /* OPTIONAL */ + SearchSpaceZero_t *searchSpaceZero; /* OPTIONAL */ + struct PDCCH_ConfigCommon__commonSearchSpaceList { + A_SEQUENCE_OF(struct SearchSpace) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *commonSearchSpaceList; + SearchSpaceId_t *searchSpaceSIB1; /* OPTIONAL */ + SearchSpaceId_t *searchSpaceOtherSystemInformation; /* OPTIONAL */ + SearchSpaceId_t *pagingSearchSpace; /* OPTIONAL */ + SearchSpaceId_t *ra_SearchSpace; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDCCH_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCCH_ConfigCommon_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCCH_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCCH-ConfigSIB1.c b/src/codec_utils/RRC/PDCCH-ConfigSIB1.c new file mode 100644 index 000000000..f79f4e50c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCCH-ConfigSIB1.h" + +asn_TYPE_member_t asn_MBR_PDCCH_ConfigSIB1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_ConfigSIB1, controlResourceSetZero), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSetZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetZero" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_ConfigSIB1, searchSpaceZero), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceZero, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceZero" + }, +}; +static const ber_tlv_tag_t asn_DEF_PDCCH_ConfigSIB1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDCCH_ConfigSIB1_specs_1 = { + sizeof(struct PDCCH_ConfigSIB1), + offsetof(struct PDCCH_ConfigSIB1, _asn_ctx), + asn_MAP_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_PDCCH_ConfigSIB1 = { + "PDCCH-ConfigSIB1", + "PDCCH-ConfigSIB1", + &asn_OP_SEQUENCE, + asn_DEF_PDCCH_ConfigSIB1_tags_1, + sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1) + /sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ + asn_DEF_PDCCH_ConfigSIB1_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1) + /sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCCH_ConfigSIB1_1, + 2, /* Elements count */ + &asn_SPC_PDCCH_ConfigSIB1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCCH-ConfigSIB1.h b/src/codec_utils/RRC/PDCCH-ConfigSIB1.h new file mode 100644 index 000000000..a92c2eee1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCCH_ConfigSIB1_H_ +#define _PDCCH_ConfigSIB1_H_ + + +#include + +/* Including external dependencies */ +#include "ControlResourceSetZero.h" +#include "SearchSpaceZero.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PDCCH-ConfigSIB1 */ +typedef struct PDCCH_ConfigSIB1 { + ControlResourceSetZero_t controlResourceSetZero; + SearchSpaceZero_t searchSpaceZero; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDCCH_ConfigSIB1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigSIB1; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ConfigSIB1_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCCH_ConfigSIB1_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCCH_ConfigSIB1_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCCH-ServingCellConfig.c b/src/codec_utils/RRC/PDCCH-ServingCellConfig.c new file mode 100644 index 000000000..c04a12fca --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-ServingCellConfig.c @@ -0,0 +1,110 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDCCH-ServingCellConfig.h" + +#include "SlotFormatIndicator.h" +static asn_oer_constraints_t asn_OER_type_slotFormatIndicator_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_slotFormatIndicator_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_slotFormatIndicator_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCCH_ServingCellConfig__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 PDCCH_ServingCellConfig__slotFormatIndicator, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SlotFormatIndicator, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_slotFormatIndicator_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_slotFormatIndicator_specs_2 = { + sizeof(struct PDCCH_ServingCellConfig__slotFormatIndicator), + offsetof(struct PDCCH_ServingCellConfig__slotFormatIndicator, _asn_ctx), + offsetof(struct PDCCH_ServingCellConfig__slotFormatIndicator, present), + sizeof(((struct PDCCH_ServingCellConfig__slotFormatIndicator *)0)->present), + asn_MAP_slotFormatIndicator_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_slotFormatIndicator_2 = { + "slotFormatIndicator", + "slotFormatIndicator", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_slotFormatIndicator_constr_2, &asn_PER_type_slotFormatIndicator_constr_2, CHOICE_constraint }, + asn_MBR_slotFormatIndicator_2, + 2, /* Elements count */ + &asn_SPC_slotFormatIndicator_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCCH_ServingCellConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct PDCCH_ServingCellConfig, slotFormatIndicator), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_slotFormatIndicator_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotFormatIndicator" + }, +}; +static const int asn_MAP_PDCCH_ServingCellConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PDCCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PDCCH_ServingCellConfig_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* slotFormatIndicator */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ServingCellConfig_specs_1 = { + sizeof(struct PDCCH_ServingCellConfig), + offsetof(struct PDCCH_ServingCellConfig, _asn_ctx), + asn_MAP_PDCCH_ServingCellConfig_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_PDCCH_ServingCellConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCCH_ServingCellConfig = { + "PDCCH-ServingCellConfig", + "PDCCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_PDCCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_PDCCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PDCCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_PDCCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PDCCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCCH_ServingCellConfig_1, + 1, /* Elements count */ + &asn_SPC_PDCCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCCH-ServingCellConfig.h b/src/codec_utils/RRC/PDCCH-ServingCellConfig.h new file mode 100644 index 000000000..c8ebdf409 --- /dev/null +++ b/src/codec_utils/RRC/PDCCH-ServingCellConfig.h @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCCH_ServingCellConfig_H_ +#define _PDCCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCCH_ServingCellConfig__slotFormatIndicator_PR { + PDCCH_ServingCellConfig__slotFormatIndicator_PR_NOTHING, /* No components present */ + PDCCH_ServingCellConfig__slotFormatIndicator_PR_release, + PDCCH_ServingCellConfig__slotFormatIndicator_PR_setup +} PDCCH_ServingCellConfig__slotFormatIndicator_PR; + +/* Forward declarations */ +struct SlotFormatIndicator; + +/* PDCCH-ServingCellConfig */ +typedef struct PDCCH_ServingCellConfig { + struct PDCCH_ServingCellConfig__slotFormatIndicator { + PDCCH_ServingCellConfig__slotFormatIndicator_PR present; + union PDCCH_ServingCellConfig__slotFormatIndicator_u { + NULL_t release; + struct SlotFormatIndicator *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotFormatIndicator; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDCCH_ServingCellConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDCCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCCH_ServingCellConfig_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCCH_ServingCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCP-Config.c b/src/codec_utils/RRC/PDCP-Config.c new file mode 100644 index 000000000..c4014f172 --- /dev/null +++ b/src/codec_utils/RRC/PDCP-Config.c @@ -0,0 +1,1457 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_discardTimer_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcp_SN_SizeUL_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcp_SN_SizeDL_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_drb_ContinueROHC_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxCID_constr_29 CC_NOTUSED = { + { 2, 1 } /* (1..16383) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_drb_ContinueROHC_constr_46 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxCID_constr_43 CC_NOTUSED = { + { 2, 1 } /* (1..16383) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_headerCompression_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_integrityProtection_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_statusReportRequired_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_outOfOrderDelivery_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t_Reordering_constr_61 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cipheringDisabled_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_discardTimer_specs_3 = { + asn_MAP_discardTimer_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_discardTimer_3 = { + "discardTimer", + "discardTimer", + &asn_OP_NativeEnumerated, + asn_DEF_discardTimer_tags_3, + sizeof(asn_DEF_discardTimer_tags_3) + /sizeof(asn_DEF_discardTimer_tags_3[0]) - 1, /* 1 */ + asn_DEF_discardTimer_tags_3, /* Same as above */ + sizeof(asn_DEF_discardTimer_tags_3) + /sizeof(asn_DEF_discardTimer_tags_3[0]), /* 2 */ + { &asn_OER_type_discardTimer_constr_3, &asn_PER_type_discardTimer_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_discardTimer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcp_SN_SizeUL_value2enum_20[] = { + { 0, 9, "len12bits" }, + { 1, 9, "len18bits" } +}; +static const unsigned int asn_MAP_pdcp_SN_SizeUL_enum2value_20[] = { + 0, /* len12bits(0) */ + 1 /* len18bits(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_SN_SizeUL_specs_20 = { + asn_MAP_pdcp_SN_SizeUL_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_SN_SizeUL_20 = { + "pdcp-SN-SizeUL", + "pdcp-SN-SizeUL", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_SN_SizeUL_tags_20, + sizeof(asn_DEF_pdcp_SN_SizeUL_tags_20) + /sizeof(asn_DEF_pdcp_SN_SizeUL_tags_20[0]) - 1, /* 1 */ + asn_DEF_pdcp_SN_SizeUL_tags_20, /* Same as above */ + sizeof(asn_DEF_pdcp_SN_SizeUL_tags_20) + /sizeof(asn_DEF_pdcp_SN_SizeUL_tags_20[0]), /* 2 */ + { &asn_OER_type_pdcp_SN_SizeUL_constr_20, &asn_PER_type_pdcp_SN_SizeUL_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcp_SN_SizeUL_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcp_SN_SizeDL_value2enum_23[] = { + { 0, 9, "len12bits" }, + { 1, 9, "len18bits" } +}; +static const unsigned int asn_MAP_pdcp_SN_SizeDL_enum2value_23[] = { + 0, /* len12bits(0) */ + 1 /* len18bits(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_SN_SizeDL_specs_23 = { + asn_MAP_pdcp_SN_SizeDL_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_SN_SizeDL_23 = { + "pdcp-SN-SizeDL", + "pdcp-SN-SizeDL", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_SN_SizeDL_tags_23, + sizeof(asn_DEF_pdcp_SN_SizeDL_tags_23) + /sizeof(asn_DEF_pdcp_SN_SizeDL_tags_23[0]) - 1, /* 1 */ + asn_DEF_pdcp_SN_SizeDL_tags_23, /* Same as above */ + sizeof(asn_DEF_pdcp_SN_SizeDL_tags_23) + /sizeof(asn_DEF_pdcp_SN_SizeDL_tags_23[0]), /* 2 */ + { &asn_OER_type_pdcp_SN_SizeDL_constr_23, &asn_PER_type_pdcp_SN_SizeDL_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_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_profiles_30[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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 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 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 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 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 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_profiles_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_profiles_specs_30 = { + sizeof(struct PDCP_Config__drb__headerCompression__rohc__profiles), + offsetof(struct PDCP_Config__drb__headerCompression__rohc__profiles, _asn_ctx), + asn_MAP_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_profiles_30 = { + "profiles", + "profiles", + &asn_OP_SEQUENCE, + asn_DEF_profiles_tags_30, + sizeof(asn_DEF_profiles_tags_30) + /sizeof(asn_DEF_profiles_tags_30[0]) - 1, /* 1 */ + asn_DEF_profiles_tags_30, /* Same as above */ + sizeof(asn_DEF_profiles_tags_30) + /sizeof(asn_DEF_profiles_tags_30[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_profiles_30, + 9, /* Elements count */ + &asn_SPC_profiles_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_drb_ContinueROHC_value2enum_40[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_drb_ContinueROHC_enum2value_40[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_drb_ContinueROHC_specs_40 = { + asn_MAP_drb_ContinueROHC_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drb_ContinueROHC_40 = { + "drb-ContinueROHC", + "drb-ContinueROHC", + &asn_OP_NativeEnumerated, + asn_DEF_drb_ContinueROHC_tags_40, + sizeof(asn_DEF_drb_ContinueROHC_tags_40) + /sizeof(asn_DEF_drb_ContinueROHC_tags_40[0]) - 1, /* 1 */ + asn_DEF_drb_ContinueROHC_tags_40, /* Same as above */ + sizeof(asn_DEF_drb_ContinueROHC_tags_40) + /sizeof(asn_DEF_drb_ContinueROHC_tags_40[0]), /* 2 */ + { &asn_OER_type_drb_ContinueROHC_constr_40, &asn_PER_type_drb_ContinueROHC_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drb_ContinueROHC_specs_40 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rohc_28[] = { + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb__headerCompression__rohc, maxCID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxCID_constr_29, &asn_PER_memb_maxCID_constr_29, memb_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 PDCP_Config__drb__headerCompression__rohc, profiles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_profiles_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profiles" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb__headerCompression__rohc, drb_ContinueROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drb_ContinueROHC_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ContinueROHC" + }, +}; +static const int asn_MAP_rohc_oms_28[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_rohc_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_rohc_specs_28 = { + sizeof(struct PDCP_Config__drb__headerCompression__rohc), + offsetof(struct PDCP_Config__drb__headerCompression__rohc, _asn_ctx), + asn_MAP_rohc_tag2el_28, + 3, /* Count of tags in the map */ + asn_MAP_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_rohc_28 = { + "rohc", + "rohc", + &asn_OP_SEQUENCE, + asn_DEF_rohc_tags_28, + sizeof(asn_DEF_rohc_tags_28) + /sizeof(asn_DEF_rohc_tags_28[0]) - 1, /* 1 */ + asn_DEF_rohc_tags_28, /* Same as above */ + sizeof(asn_DEF_rohc_tags_28) + /sizeof(asn_DEF_rohc_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_rohc_28, + 3, /* Elements count */ + &asn_SPC_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_profiles_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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_profiles_tags_44[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_profiles_tag2el_44[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* profile0x0006 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_profiles_specs_44 = { + sizeof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles), + offsetof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles, _asn_ctx), + asn_MAP_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_profiles_44 = { + "profiles", + "profiles", + &asn_OP_SEQUENCE, + asn_DEF_profiles_tags_44, + sizeof(asn_DEF_profiles_tags_44) + /sizeof(asn_DEF_profiles_tags_44[0]) - 1, /* 1 */ + asn_DEF_profiles_tags_44, /* Same as above */ + sizeof(asn_DEF_profiles_tags_44) + /sizeof(asn_DEF_profiles_tags_44[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_profiles_44, + 1, /* Elements count */ + &asn_SPC_profiles_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_drb_ContinueROHC_value2enum_46[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_drb_ContinueROHC_enum2value_46[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_drb_ContinueROHC_specs_46 = { + asn_MAP_drb_ContinueROHC_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_drb_ContinueROHC_46 = { + "drb-ContinueROHC", + "drb-ContinueROHC", + &asn_OP_NativeEnumerated, + asn_DEF_drb_ContinueROHC_tags_46, + sizeof(asn_DEF_drb_ContinueROHC_tags_46) + /sizeof(asn_DEF_drb_ContinueROHC_tags_46[0]) - 1, /* 1 */ + asn_DEF_drb_ContinueROHC_tags_46, /* Same as above */ + sizeof(asn_DEF_drb_ContinueROHC_tags_46) + /sizeof(asn_DEF_drb_ContinueROHC_tags_46[0]), /* 2 */ + { &asn_OER_type_drb_ContinueROHC_constr_46, &asn_PER_type_drb_ContinueROHC_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_drb_ContinueROHC_specs_46 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uplinkOnlyROHC_42[] = { + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC, maxCID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxCID_constr_43, &asn_PER_memb_maxCID_constr_43, memb_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 PDCP_Config__drb__headerCompression__uplinkOnlyROHC, profiles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_profiles_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "profiles" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC, drb_ContinueROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_drb_ContinueROHC_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ContinueROHC" + }, +}; +static const int asn_MAP_uplinkOnlyROHC_oms_42[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_uplinkOnlyROHC_tags_42[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_uplinkOnlyROHC_specs_42 = { + sizeof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC), + offsetof(struct PDCP_Config__drb__headerCompression__uplinkOnlyROHC, _asn_ctx), + asn_MAP_uplinkOnlyROHC_tag2el_42, + 3, /* Count of tags in the map */ + asn_MAP_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_uplinkOnlyROHC_42 = { + "uplinkOnlyROHC", + "uplinkOnlyROHC", + &asn_OP_SEQUENCE, + asn_DEF_uplinkOnlyROHC_tags_42, + sizeof(asn_DEF_uplinkOnlyROHC_tags_42) + /sizeof(asn_DEF_uplinkOnlyROHC_tags_42[0]) - 1, /* 1 */ + asn_DEF_uplinkOnlyROHC_tags_42, /* Same as above */ + sizeof(asn_DEF_uplinkOnlyROHC_tags_42) + /sizeof(asn_DEF_uplinkOnlyROHC_tags_42[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_uplinkOnlyROHC_42, + 3, /* Elements count */ + &asn_SPC_uplinkOnlyROHC_specs_42 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_headerCompression_26[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 PDCP_Config__drb__headerCompression, choice.rohc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rohc_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rohc" + }, + { ATF_POINTER, 0, offsetof(struct PDCP_Config__drb__headerCompression, choice.uplinkOnlyROHC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_uplinkOnlyROHC_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkOnlyROHC" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_headerCompression_specs_26 = { + sizeof(struct PDCP_Config__drb__headerCompression), + offsetof(struct PDCP_Config__drb__headerCompression, _asn_ctx), + offsetof(struct PDCP_Config__drb__headerCompression, present), + sizeof(((struct PDCP_Config__drb__headerCompression *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_headerCompression_constr_26, &asn_PER_type_headerCompression_constr_26, CHOICE_constraint }, + asn_MBR_headerCompression_26, + 3, /* Elements count */ + &asn_SPC_headerCompression_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_integrityProtection_value2enum_49[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_integrityProtection_enum2value_49[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_integrityProtection_specs_49 = { + asn_MAP_integrityProtection_value2enum_49, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_integrityProtection_49 = { + "integrityProtection", + "integrityProtection", + &asn_OP_NativeEnumerated, + asn_DEF_integrityProtection_tags_49, + sizeof(asn_DEF_integrityProtection_tags_49) + /sizeof(asn_DEF_integrityProtection_tags_49[0]) - 1, /* 1 */ + asn_DEF_integrityProtection_tags_49, /* Same as above */ + sizeof(asn_DEF_integrityProtection_tags_49) + /sizeof(asn_DEF_integrityProtection_tags_49[0]), /* 2 */ + { &asn_OER_type_integrityProtection_constr_49, &asn_PER_type_integrityProtection_constr_49, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_integrityProtection_specs_49 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_statusReportRequired_value2enum_51[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_statusReportRequired_enum2value_51[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_statusReportRequired_specs_51 = { + asn_MAP_statusReportRequired_value2enum_51, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_statusReportRequired_51 = { + "statusReportRequired", + "statusReportRequired", + &asn_OP_NativeEnumerated, + asn_DEF_statusReportRequired_tags_51, + sizeof(asn_DEF_statusReportRequired_tags_51) + /sizeof(asn_DEF_statusReportRequired_tags_51[0]) - 1, /* 1 */ + asn_DEF_statusReportRequired_tags_51, /* Same as above */ + sizeof(asn_DEF_statusReportRequired_tags_51) + /sizeof(asn_DEF_statusReportRequired_tags_51[0]), /* 2 */ + { &asn_OER_type_statusReportRequired_constr_51, &asn_PER_type_statusReportRequired_constr_51, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_statusReportRequired_specs_51 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_outOfOrderDelivery_value2enum_53[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_outOfOrderDelivery_enum2value_53[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_outOfOrderDelivery_specs_53 = { + asn_MAP_outOfOrderDelivery_value2enum_53, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_outOfOrderDelivery_53 = { + "outOfOrderDelivery", + "outOfOrderDelivery", + &asn_OP_NativeEnumerated, + asn_DEF_outOfOrderDelivery_tags_53, + sizeof(asn_DEF_outOfOrderDelivery_tags_53) + /sizeof(asn_DEF_outOfOrderDelivery_tags_53[0]) - 1, /* 1 */ + asn_DEF_outOfOrderDelivery_tags_53, /* Same as above */ + sizeof(asn_DEF_outOfOrderDelivery_tags_53) + /sizeof(asn_DEF_outOfOrderDelivery_tags_53[0]), /* 2 */ + { &asn_OER_type_outOfOrderDelivery_constr_53, &asn_PER_type_outOfOrderDelivery_constr_53, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_outOfOrderDelivery_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_drb_2[] = { + { ATF_POINTER, 3, offsetof(struct PDCP_Config__drb, discardTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_discardTimer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "discardTimer" + }, + { ATF_POINTER, 2, offsetof(struct PDCP_Config__drb, pdcp_SN_SizeUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_SN_SizeUL_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-SN-SizeUL" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb, pdcp_SN_SizeDL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_SN_SizeDL_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-SN-SizeDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDCP_Config__drb, headerCompression), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_headerCompression_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "headerCompression" + }, + { ATF_POINTER, 3, offsetof(struct PDCP_Config__drb, integrityProtection), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_integrityProtection_49, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtection" + }, + { ATF_POINTER, 2, offsetof(struct PDCP_Config__drb, statusReportRequired), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_statusReportRequired_51, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "statusReportRequired" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config__drb, outOfOrderDelivery), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_outOfOrderDelivery_53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outOfOrderDelivery" + }, +}; +static const int asn_MAP_drb_oms_2[] = { 0, 1, 2, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_drb_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_drb_specs_2 = { + sizeof(struct PDCP_Config__drb), + offsetof(struct PDCP_Config__drb, _asn_ctx), + asn_MAP_drb_tag2el_2, + 7, /* Count of tags in the map */ + asn_MAP_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_drb_2 = { + "drb", + "drb", + &asn_OP_SEQUENCE, + asn_DEF_drb_tags_2, + sizeof(asn_DEF_drb_tags_2) + /sizeof(asn_DEF_drb_tags_2[0]) - 1, /* 1 */ + asn_DEF_drb_tags_2, /* Same as above */ + sizeof(asn_DEF_drb_tags_2) + /sizeof(asn_DEF_drb_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_drb_2, + 7, /* Elements count */ + &asn_SPC_drb_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_primaryPath_56[] = { + { ATF_POINTER, 2, offsetof(struct PDCP_Config__moreThanOneRLC__primaryPath, cellGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellGroupId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellGroup" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config__moreThanOneRLC__primaryPath, logicalChannel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannel" + }, +}; +static const int asn_MAP_primaryPath_oms_56[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_primaryPath_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_primaryPath_specs_56 = { + sizeof(struct PDCP_Config__moreThanOneRLC__primaryPath), + offsetof(struct PDCP_Config__moreThanOneRLC__primaryPath, _asn_ctx), + asn_MAP_primaryPath_tag2el_56, + 2, /* Count of tags in the map */ + asn_MAP_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_primaryPath_56 = { + "primaryPath", + "primaryPath", + &asn_OP_SEQUENCE, + asn_DEF_primaryPath_tags_56, + sizeof(asn_DEF_primaryPath_tags_56) + /sizeof(asn_DEF_primaryPath_tags_56[0]) - 1, /* 1 */ + asn_DEF_primaryPath_tags_56, /* Same as above */ + sizeof(asn_DEF_primaryPath_tags_56) + /sizeof(asn_DEF_primaryPath_tags_56[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_primaryPath_56, + 2, /* Elements count */ + &asn_SPC_primaryPath_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_moreThanOneRLC_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCP_Config__moreThanOneRLC, primaryPath), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_primaryPath_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "primaryPath" + }, + { ATF_POINTER, 2, offsetof(struct PDCP_Config__moreThanOneRLC, ul_DataSplitThreshold), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UL_DataSplitThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-DataSplitThreshold" + }, + { ATF_POINTER, 1, offsetof(struct 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_moreThanOneRLC_oms_55[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_moreThanOneRLC_tags_55[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_moreThanOneRLC_specs_55 = { + sizeof(struct PDCP_Config__moreThanOneRLC), + offsetof(struct PDCP_Config__moreThanOneRLC, _asn_ctx), + asn_MAP_moreThanOneRLC_tag2el_55, + 3, /* Count of tags in the map */ + asn_MAP_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_moreThanOneRLC_55 = { + "moreThanOneRLC", + "moreThanOneRLC", + &asn_OP_SEQUENCE, + asn_DEF_moreThanOneRLC_tags_55, + sizeof(asn_DEF_moreThanOneRLC_tags_55) + /sizeof(asn_DEF_moreThanOneRLC_tags_55[0]) - 1, /* 1 */ + asn_DEF_moreThanOneRLC_tags_55, /* Same as above */ + sizeof(asn_DEF_moreThanOneRLC_tags_55) + /sizeof(asn_DEF_moreThanOneRLC_tags_55[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_moreThanOneRLC_55, + 3, /* Elements count */ + &asn_SPC_moreThanOneRLC_specs_55 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t_Reordering_specs_61 = { + asn_MAP_t_Reordering_value2enum_61, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t_Reordering_61 = { + "t-Reordering", + "t-Reordering", + &asn_OP_NativeEnumerated, + asn_DEF_t_Reordering_tags_61, + sizeof(asn_DEF_t_Reordering_tags_61) + /sizeof(asn_DEF_t_Reordering_tags_61[0]) - 1, /* 1 */ + asn_DEF_t_Reordering_tags_61, /* Same as above */ + sizeof(asn_DEF_t_Reordering_tags_61) + /sizeof(asn_DEF_t_Reordering_tags_61[0]), /* 2 */ + { &asn_OER_type_t_Reordering_constr_61, &asn_PER_type_t_Reordering_constr_61, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t_Reordering_specs_61 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cipheringDisabled_value2enum_128[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_cipheringDisabled_enum2value_128[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cipheringDisabled_specs_128 = { + asn_MAP_cipheringDisabled_value2enum_128, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cipheringDisabled_128 = { + "cipheringDisabled", + "cipheringDisabled", + &asn_OP_NativeEnumerated, + asn_DEF_cipheringDisabled_tags_128, + sizeof(asn_DEF_cipheringDisabled_tags_128) + /sizeof(asn_DEF_cipheringDisabled_tags_128[0]) - 1, /* 1 */ + asn_DEF_cipheringDisabled_tags_128, /* Same as above */ + sizeof(asn_DEF_cipheringDisabled_tags_128) + /sizeof(asn_DEF_cipheringDisabled_tags_128[0]), /* 2 */ + { &asn_OER_type_cipheringDisabled_constr_128, &asn_PER_type_cipheringDisabled_constr_128, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cipheringDisabled_specs_128 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_127[] = { + { ATF_POINTER, 1, offsetof(struct PDCP_Config__ext1, cipheringDisabled), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cipheringDisabled_128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cipheringDisabled" + }, +}; +static const int asn_MAP_ext1_oms_127[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_127[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_127[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cipheringDisabled */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_127 = { + sizeof(struct PDCP_Config__ext1), + offsetof(struct PDCP_Config__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_127, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_127 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_127, + sizeof(asn_DEF_ext1_tags_127) + /sizeof(asn_DEF_ext1_tags_127[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_127, /* Same as above */ + sizeof(asn_DEF_ext1_tags_127) + /sizeof(asn_DEF_ext1_tags_127[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_127, + 1, /* Elements count */ + &asn_SPC_ext1_specs_127 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCP_Config_1[] = { + { ATF_POINTER, 4, offsetof(struct PDCP_Config, drb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_drb_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb" + }, + { ATF_POINTER, 3, offsetof(struct PDCP_Config, moreThanOneRLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_moreThanOneRLC_55, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "moreThanOneRLC" + }, + { ATF_POINTER, 2, offsetof(struct PDCP_Config, t_Reordering), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t_Reordering_61, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-Reordering" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Config, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_127, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_PDCP_Config_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PDCP_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDCP_Config_specs_1 = { + sizeof(struct PDCP_Config), + offsetof(struct PDCP_Config, _asn_ctx), + asn_MAP_PDCP_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PDCP_Config_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCP_Config = { + "PDCP-Config", + "PDCP-Config", + &asn_OP_SEQUENCE, + asn_DEF_PDCP_Config_tags_1, + sizeof(asn_DEF_PDCP_Config_tags_1) + /sizeof(asn_DEF_PDCP_Config_tags_1[0]), /* 1 */ + asn_DEF_PDCP_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCP_Config_tags_1) + /sizeof(asn_DEF_PDCP_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCP_Config_1, + 4, /* Elements count */ + &asn_SPC_PDCP_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCP-Config.h b/src/codec_utils/RRC/PDCP-Config.h new file mode 100644 index 000000000..be793c692 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCP_Config_H_ +#define _PDCP_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include "UL-DataSplitThreshold.h" +#include "CellGroupId.h" +#include "LogicalChannelIdentity.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCP_Config__drb__discardTimer { + PDCP_Config__drb__discardTimer_ms10 = 0, + PDCP_Config__drb__discardTimer_ms20 = 1, + PDCP_Config__drb__discardTimer_ms30 = 2, + PDCP_Config__drb__discardTimer_ms40 = 3, + PDCP_Config__drb__discardTimer_ms50 = 4, + PDCP_Config__drb__discardTimer_ms60 = 5, + PDCP_Config__drb__discardTimer_ms75 = 6, + PDCP_Config__drb__discardTimer_ms100 = 7, + PDCP_Config__drb__discardTimer_ms150 = 8, + PDCP_Config__drb__discardTimer_ms200 = 9, + PDCP_Config__drb__discardTimer_ms250 = 10, + PDCP_Config__drb__discardTimer_ms300 = 11, + PDCP_Config__drb__discardTimer_ms500 = 12, + PDCP_Config__drb__discardTimer_ms750 = 13, + PDCP_Config__drb__discardTimer_ms1500 = 14, + PDCP_Config__drb__discardTimer_infinity = 15 +} e_PDCP_Config__drb__discardTimer; +typedef enum PDCP_Config__drb__pdcp_SN_SizeUL { + PDCP_Config__drb__pdcp_SN_SizeUL_len12bits = 0, + PDCP_Config__drb__pdcp_SN_SizeUL_len18bits = 1 +} e_PDCP_Config__drb__pdcp_SN_SizeUL; +typedef enum PDCP_Config__drb__pdcp_SN_SizeDL { + PDCP_Config__drb__pdcp_SN_SizeDL_len12bits = 0, + PDCP_Config__drb__pdcp_SN_SizeDL_len18bits = 1 +} e_PDCP_Config__drb__pdcp_SN_SizeDL; +typedef enum PDCP_Config__drb__headerCompression_PR { + PDCP_Config__drb__headerCompression_PR_NOTHING, /* No components present */ + PDCP_Config__drb__headerCompression_PR_notUsed, + PDCP_Config__drb__headerCompression_PR_rohc, + PDCP_Config__drb__headerCompression_PR_uplinkOnlyROHC + /* Extensions may appear below */ + +} PDCP_Config__drb__headerCompression_PR; +typedef enum PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC { + PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC_true = 0 +} e_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC; +typedef enum PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC { + PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC_true = 0 +} e_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC; +typedef enum PDCP_Config__drb__integrityProtection { + PDCP_Config__drb__integrityProtection_enabled = 0 +} e_PDCP_Config__drb__integrityProtection; +typedef enum PDCP_Config__drb__statusReportRequired { + PDCP_Config__drb__statusReportRequired_true = 0 +} e_PDCP_Config__drb__statusReportRequired; +typedef enum PDCP_Config__drb__outOfOrderDelivery { + PDCP_Config__drb__outOfOrderDelivery_true = 0 +} e_PDCP_Config__drb__outOfOrderDelivery; +typedef enum PDCP_Config__t_Reordering { + PDCP_Config__t_Reordering_ms0 = 0, + PDCP_Config__t_Reordering_ms1 = 1, + PDCP_Config__t_Reordering_ms2 = 2, + PDCP_Config__t_Reordering_ms4 = 3, + PDCP_Config__t_Reordering_ms5 = 4, + PDCP_Config__t_Reordering_ms8 = 5, + PDCP_Config__t_Reordering_ms10 = 6, + PDCP_Config__t_Reordering_ms15 = 7, + PDCP_Config__t_Reordering_ms20 = 8, + PDCP_Config__t_Reordering_ms30 = 9, + PDCP_Config__t_Reordering_ms40 = 10, + PDCP_Config__t_Reordering_ms50 = 11, + PDCP_Config__t_Reordering_ms60 = 12, + PDCP_Config__t_Reordering_ms80 = 13, + PDCP_Config__t_Reordering_ms100 = 14, + PDCP_Config__t_Reordering_ms120 = 15, + PDCP_Config__t_Reordering_ms140 = 16, + PDCP_Config__t_Reordering_ms160 = 17, + PDCP_Config__t_Reordering_ms180 = 18, + PDCP_Config__t_Reordering_ms200 = 19, + PDCP_Config__t_Reordering_ms220 = 20, + PDCP_Config__t_Reordering_ms240 = 21, + PDCP_Config__t_Reordering_ms260 = 22, + PDCP_Config__t_Reordering_ms280 = 23, + PDCP_Config__t_Reordering_ms300 = 24, + PDCP_Config__t_Reordering_ms500 = 25, + PDCP_Config__t_Reordering_ms750 = 26, + PDCP_Config__t_Reordering_ms1000 = 27, + PDCP_Config__t_Reordering_ms1250 = 28, + PDCP_Config__t_Reordering_ms1500 = 29, + PDCP_Config__t_Reordering_ms1750 = 30, + PDCP_Config__t_Reordering_ms2000 = 31, + PDCP_Config__t_Reordering_ms2250 = 32, + PDCP_Config__t_Reordering_ms2500 = 33, + PDCP_Config__t_Reordering_ms2750 = 34, + PDCP_Config__t_Reordering_ms3000 = 35, + PDCP_Config__t_Reordering_spare28 = 36, + PDCP_Config__t_Reordering_spare27 = 37, + PDCP_Config__t_Reordering_spare26 = 38, + PDCP_Config__t_Reordering_spare25 = 39, + PDCP_Config__t_Reordering_spare24 = 40, + PDCP_Config__t_Reordering_spare23 = 41, + PDCP_Config__t_Reordering_spare22 = 42, + PDCP_Config__t_Reordering_spare21 = 43, + PDCP_Config__t_Reordering_spare20 = 44, + PDCP_Config__t_Reordering_spare19 = 45, + PDCP_Config__t_Reordering_spare18 = 46, + PDCP_Config__t_Reordering_spare17 = 47, + PDCP_Config__t_Reordering_spare16 = 48, + PDCP_Config__t_Reordering_spare15 = 49, + PDCP_Config__t_Reordering_spare14 = 50, + PDCP_Config__t_Reordering_spare13 = 51, + PDCP_Config__t_Reordering_spare12 = 52, + PDCP_Config__t_Reordering_spare11 = 53, + PDCP_Config__t_Reordering_spare10 = 54, + PDCP_Config__t_Reordering_spare09 = 55, + PDCP_Config__t_Reordering_spare08 = 56, + PDCP_Config__t_Reordering_spare07 = 57, + PDCP_Config__t_Reordering_spare06 = 58, + PDCP_Config__t_Reordering_spare05 = 59, + PDCP_Config__t_Reordering_spare04 = 60, + PDCP_Config__t_Reordering_spare03 = 61, + PDCP_Config__t_Reordering_spare02 = 62, + PDCP_Config__t_Reordering_spare01 = 63 +} e_PDCP_Config__t_Reordering; +typedef enum PDCP_Config__ext1__cipheringDisabled { + PDCP_Config__ext1__cipheringDisabled_true = 0 +} e_PDCP_Config__ext1__cipheringDisabled; + +/* PDCP-Config */ +typedef struct PDCP_Config { + struct PDCP_Config__drb { + long *discardTimer; /* OPTIONAL */ + long *pdcp_SN_SizeUL; /* OPTIONAL */ + long *pdcp_SN_SizeDL; /* OPTIONAL */ + struct PDCP_Config__drb__headerCompression { + PDCP_Config__drb__headerCompression_PR present; + union PDCP_Config__drb__headerCompression_u { + NULL_t notUsed; + struct PDCP_Config__drb__headerCompression__rohc { + long *maxCID; /* DEFAULT 15 */ + struct 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 PDCP_Config__drb__headerCompression__uplinkOnlyROHC { + long *maxCID; /* DEFAULT 15 */ + struct 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 PDCP_Config__moreThanOneRLC { + struct PDCP_Config__moreThanOneRLC__primaryPath { + CellGroupId_t *cellGroup; /* OPTIONAL */ + LogicalChannelIdentity_t *logicalChannel; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } primaryPath; + 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 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; +} PDCP_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_discardTimer_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_SN_SizeUL_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_SN_SizeDL_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drb_ContinueROHC_40; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_drb_ContinueROHC_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_integrityProtection_49; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_statusReportRequired_51; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_outOfOrderDelivery_53; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t_Reordering_61; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cipheringDisabled_128; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDCP_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCP_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCP_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCP_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCP-Parameters.c b/src/codec_utils/RRC/PDCP-Parameters.c new file mode 100644 index 000000000..b002a9bf4 --- /dev/null +++ b/src/codec_utils/RRC/PDCP-Parameters.c @@ -0,0 +1,614 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_maxNumberROHC_ContextSessions_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_uplinkOnlyROHC_Profiles_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_continueROHC_Context_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_outOfOrderDelivery_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_shortSN_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcp_DuplicationSRB_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcp_DuplicationMCG_OrSCG_DRB_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_supportedROHC_Profiles_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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 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 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 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 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 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 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_supportedROHC_Profiles_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_supportedROHC_Profiles_specs_2 = { + sizeof(struct PDCP_Parameters__supportedROHC_Profiles), + offsetof(struct PDCP_Parameters__supportedROHC_Profiles, _asn_ctx), + asn_MAP_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_supportedROHC_Profiles_2 = { + "supportedROHC-Profiles", + "supportedROHC-Profiles", + &asn_OP_SEQUENCE, + asn_DEF_supportedROHC_Profiles_tags_2, + sizeof(asn_DEF_supportedROHC_Profiles_tags_2) + /sizeof(asn_DEF_supportedROHC_Profiles_tags_2[0]) - 1, /* 1 */ + asn_DEF_supportedROHC_Profiles_tags_2, /* Same as above */ + sizeof(asn_DEF_supportedROHC_Profiles_tags_2) + /sizeof(asn_DEF_supportedROHC_Profiles_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_supportedROHC_Profiles_2, + 10, /* Elements count */ + &asn_SPC_supportedROHC_Profiles_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxNumberROHC_ContextSessions_specs_13 = { + asn_MAP_maxNumberROHC_ContextSessions_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberROHC_ContextSessions_13 = { + "maxNumberROHC-ContextSessions", + "maxNumberROHC-ContextSessions", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberROHC_ContextSessions_tags_13, + sizeof(asn_DEF_maxNumberROHC_ContextSessions_tags_13) + /sizeof(asn_DEF_maxNumberROHC_ContextSessions_tags_13[0]) - 1, /* 1 */ + asn_DEF_maxNumberROHC_ContextSessions_tags_13, /* Same as above */ + sizeof(asn_DEF_maxNumberROHC_ContextSessions_tags_13) + /sizeof(asn_DEF_maxNumberROHC_ContextSessions_tags_13[0]), /* 2 */ + { &asn_OER_type_maxNumberROHC_ContextSessions_constr_13, &asn_PER_type_maxNumberROHC_ContextSessions_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberROHC_ContextSessions_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_uplinkOnlyROHC_Profiles_value2enum_30[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_uplinkOnlyROHC_Profiles_enum2value_30[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_uplinkOnlyROHC_Profiles_specs_30 = { + asn_MAP_uplinkOnlyROHC_Profiles_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_uplinkOnlyROHC_Profiles_30 = { + "uplinkOnlyROHC-Profiles", + "uplinkOnlyROHC-Profiles", + &asn_OP_NativeEnumerated, + asn_DEF_uplinkOnlyROHC_Profiles_tags_30, + sizeof(asn_DEF_uplinkOnlyROHC_Profiles_tags_30) + /sizeof(asn_DEF_uplinkOnlyROHC_Profiles_tags_30[0]) - 1, /* 1 */ + asn_DEF_uplinkOnlyROHC_Profiles_tags_30, /* Same as above */ + sizeof(asn_DEF_uplinkOnlyROHC_Profiles_tags_30) + /sizeof(asn_DEF_uplinkOnlyROHC_Profiles_tags_30[0]), /* 2 */ + { &asn_OER_type_uplinkOnlyROHC_Profiles_constr_30, &asn_PER_type_uplinkOnlyROHC_Profiles_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_uplinkOnlyROHC_Profiles_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_continueROHC_Context_value2enum_32[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_continueROHC_Context_enum2value_32[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_continueROHC_Context_specs_32 = { + asn_MAP_continueROHC_Context_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_continueROHC_Context_32 = { + "continueROHC-Context", + "continueROHC-Context", + &asn_OP_NativeEnumerated, + asn_DEF_continueROHC_Context_tags_32, + sizeof(asn_DEF_continueROHC_Context_tags_32) + /sizeof(asn_DEF_continueROHC_Context_tags_32[0]) - 1, /* 1 */ + asn_DEF_continueROHC_Context_tags_32, /* Same as above */ + sizeof(asn_DEF_continueROHC_Context_tags_32) + /sizeof(asn_DEF_continueROHC_Context_tags_32[0]), /* 2 */ + { &asn_OER_type_continueROHC_Context_constr_32, &asn_PER_type_continueROHC_Context_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_continueROHC_Context_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_outOfOrderDelivery_value2enum_34[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_outOfOrderDelivery_enum2value_34[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_outOfOrderDelivery_specs_34 = { + asn_MAP_outOfOrderDelivery_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_outOfOrderDelivery_34 = { + "outOfOrderDelivery", + "outOfOrderDelivery", + &asn_OP_NativeEnumerated, + asn_DEF_outOfOrderDelivery_tags_34, + sizeof(asn_DEF_outOfOrderDelivery_tags_34) + /sizeof(asn_DEF_outOfOrderDelivery_tags_34[0]) - 1, /* 1 */ + asn_DEF_outOfOrderDelivery_tags_34, /* Same as above */ + sizeof(asn_DEF_outOfOrderDelivery_tags_34) + /sizeof(asn_DEF_outOfOrderDelivery_tags_34[0]), /* 2 */ + { &asn_OER_type_outOfOrderDelivery_constr_34, &asn_PER_type_outOfOrderDelivery_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_outOfOrderDelivery_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_shortSN_value2enum_36[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_shortSN_enum2value_36[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_shortSN_specs_36 = { + asn_MAP_shortSN_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_shortSN_36 = { + "shortSN", + "shortSN", + &asn_OP_NativeEnumerated, + asn_DEF_shortSN_tags_36, + sizeof(asn_DEF_shortSN_tags_36) + /sizeof(asn_DEF_shortSN_tags_36[0]) - 1, /* 1 */ + asn_DEF_shortSN_tags_36, /* Same as above */ + sizeof(asn_DEF_shortSN_tags_36) + /sizeof(asn_DEF_shortSN_tags_36[0]), /* 2 */ + { &asn_OER_type_shortSN_constr_36, &asn_PER_type_shortSN_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_shortSN_specs_36 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcp_DuplicationSRB_value2enum_38[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcp_DuplicationSRB_enum2value_38[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_DuplicationSRB_specs_38 = { + asn_MAP_pdcp_DuplicationSRB_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_DuplicationSRB_38 = { + "pdcp-DuplicationSRB", + "pdcp-DuplicationSRB", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_DuplicationSRB_tags_38, + sizeof(asn_DEF_pdcp_DuplicationSRB_tags_38) + /sizeof(asn_DEF_pdcp_DuplicationSRB_tags_38[0]) - 1, /* 1 */ + asn_DEF_pdcp_DuplicationSRB_tags_38, /* Same as above */ + sizeof(asn_DEF_pdcp_DuplicationSRB_tags_38) + /sizeof(asn_DEF_pdcp_DuplicationSRB_tags_38[0]), /* 2 */ + { &asn_OER_type_pdcp_DuplicationSRB_constr_38, &asn_PER_type_pdcp_DuplicationSRB_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcp_DuplicationSRB_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcp_DuplicationMCG_OrSCG_DRB_value2enum_40[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcp_DuplicationMCG_OrSCG_DRB_enum2value_40[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_DuplicationMCG_OrSCG_DRB_specs_40 = { + asn_MAP_pdcp_DuplicationMCG_OrSCG_DRB_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_DuplicationMCG_OrSCG_DRB_40 = { + "pdcp-DuplicationMCG-OrSCG-DRB", + "pdcp-DuplicationMCG-OrSCG-DRB", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40, + sizeof(asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40) + /sizeof(asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40[0]) - 1, /* 1 */ + asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40, /* Same as above */ + sizeof(asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40) + /sizeof(asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_tags_40[0]), /* 2 */ + { &asn_OER_type_pdcp_DuplicationMCG_OrSCG_DRB_constr_40, &asn_PER_type_pdcp_DuplicationMCG_OrSCG_DRB_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcp_DuplicationMCG_OrSCG_DRB_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCP_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDCP_Parameters, supportedROHC_Profiles), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_supportedROHC_Profiles_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedROHC-Profiles" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDCP_Parameters, maxNumberROHC_ContextSessions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberROHC_ContextSessions_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberROHC-ContextSessions" + }, + { ATF_POINTER, 6, offsetof(struct PDCP_Parameters, uplinkOnlyROHC_Profiles), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_uplinkOnlyROHC_Profiles_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkOnlyROHC-Profiles" + }, + { ATF_POINTER, 5, offsetof(struct PDCP_Parameters, continueROHC_Context), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_continueROHC_Context_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "continueROHC-Context" + }, + { ATF_POINTER, 4, offsetof(struct PDCP_Parameters, outOfOrderDelivery), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_outOfOrderDelivery_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "outOfOrderDelivery" + }, + { ATF_POINTER, 3, offsetof(struct PDCP_Parameters, shortSN), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_shortSN_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortSN" + }, + { ATF_POINTER, 2, offsetof(struct PDCP_Parameters, pdcp_DuplicationSRB), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_DuplicationSRB_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSRB" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_Parameters, pdcp_DuplicationMCG_OrSCG_DRB), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationMCG-OrSCG-DRB" + }, +}; +static const int asn_MAP_PDCP_Parameters_oms_1[] = { 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_PDCP_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDCP_Parameters_specs_1 = { + sizeof(struct PDCP_Parameters), + offsetof(struct PDCP_Parameters, _asn_ctx), + asn_MAP_PDCP_Parameters_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_PDCP_Parameters_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCP_Parameters = { + "PDCP-Parameters", + "PDCP-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_PDCP_Parameters_tags_1, + sizeof(asn_DEF_PDCP_Parameters_tags_1) + /sizeof(asn_DEF_PDCP_Parameters_tags_1[0]), /* 1 */ + asn_DEF_PDCP_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCP_Parameters_tags_1) + /sizeof(asn_DEF_PDCP_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCP_Parameters_1, + 8, /* Elements count */ + &asn_SPC_PDCP_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCP-Parameters.h b/src/codec_utils/RRC/PDCP-Parameters.h new file mode 100644 index 000000000..764c82408 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCP_Parameters_H_ +#define _PDCP_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCP_Parameters__maxNumberROHC_ContextSessions { + PDCP_Parameters__maxNumberROHC_ContextSessions_cs2 = 0, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs4 = 1, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs8 = 2, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs12 = 3, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs16 = 4, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs24 = 5, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs32 = 6, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs48 = 7, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs64 = 8, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs128 = 9, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs256 = 10, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs512 = 11, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs1024 = 12, + PDCP_Parameters__maxNumberROHC_ContextSessions_cs16384 = 13, + PDCP_Parameters__maxNumberROHC_ContextSessions_spare2 = 14, + PDCP_Parameters__maxNumberROHC_ContextSessions_spare1 = 15 +} e_PDCP_Parameters__maxNumberROHC_ContextSessions; +typedef enum PDCP_Parameters__uplinkOnlyROHC_Profiles { + PDCP_Parameters__uplinkOnlyROHC_Profiles_supported = 0 +} e_PDCP_Parameters__uplinkOnlyROHC_Profiles; +typedef enum PDCP_Parameters__continueROHC_Context { + PDCP_Parameters__continueROHC_Context_supported = 0 +} e_PDCP_Parameters__continueROHC_Context; +typedef enum PDCP_Parameters__outOfOrderDelivery { + PDCP_Parameters__outOfOrderDelivery_supported = 0 +} e_PDCP_Parameters__outOfOrderDelivery; +typedef enum PDCP_Parameters__shortSN { + PDCP_Parameters__shortSN_supported = 0 +} e_PDCP_Parameters__shortSN; +typedef enum PDCP_Parameters__pdcp_DuplicationSRB { + PDCP_Parameters__pdcp_DuplicationSRB_supported = 0 +} e_PDCP_Parameters__pdcp_DuplicationSRB; +typedef enum PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB { + PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB_supported = 0 +} e_PDCP_Parameters__pdcp_DuplicationMCG_OrSCG_DRB; + +/* PDCP-Parameters */ +typedef struct PDCP_Parameters { + struct 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; +} PDCP_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberROHC_ContextSessions_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_uplinkOnlyROHC_Profiles_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_continueROHC_Context_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_outOfOrderDelivery_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_shortSN_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_DuplicationSRB_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_DuplicationMCG_OrSCG_DRB_40; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDCP_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCP_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCP_Parameters_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCP_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/PDCP-ParametersMRDC.c b/src/codec_utils/RRC/PDCP-ParametersMRDC.c new file mode 100644 index 000000000..3ac4668ea --- /dev/null +++ b/src/codec_utils/RRC/PDCP-ParametersMRDC.c @@ -0,0 +1,156 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_pdcp_DuplicationSplitSRB_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcp_DuplicationSplitDRB_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_pdcp_DuplicationSplitSRB_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcp_DuplicationSplitSRB_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_DuplicationSplitSRB_specs_2 = { + asn_MAP_pdcp_DuplicationSplitSRB_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_DuplicationSplitSRB_2 = { + "pdcp-DuplicationSplitSRB", + "pdcp-DuplicationSplitSRB", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_DuplicationSplitSRB_tags_2, + sizeof(asn_DEF_pdcp_DuplicationSplitSRB_tags_2) + /sizeof(asn_DEF_pdcp_DuplicationSplitSRB_tags_2[0]) - 1, /* 1 */ + asn_DEF_pdcp_DuplicationSplitSRB_tags_2, /* Same as above */ + sizeof(asn_DEF_pdcp_DuplicationSplitSRB_tags_2) + /sizeof(asn_DEF_pdcp_DuplicationSplitSRB_tags_2[0]), /* 2 */ + { &asn_OER_type_pdcp_DuplicationSplitSRB_constr_2, &asn_PER_type_pdcp_DuplicationSplitSRB_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcp_DuplicationSplitSRB_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdcp_DuplicationSplitDRB_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcp_DuplicationSplitDRB_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcp_DuplicationSplitDRB_specs_4 = { + asn_MAP_pdcp_DuplicationSplitDRB_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdcp_DuplicationSplitDRB_4 = { + "pdcp-DuplicationSplitDRB", + "pdcp-DuplicationSplitDRB", + &asn_OP_NativeEnumerated, + asn_DEF_pdcp_DuplicationSplitDRB_tags_4, + sizeof(asn_DEF_pdcp_DuplicationSplitDRB_tags_4) + /sizeof(asn_DEF_pdcp_DuplicationSplitDRB_tags_4[0]) - 1, /* 1 */ + asn_DEF_pdcp_DuplicationSplitDRB_tags_4, /* Same as above */ + sizeof(asn_DEF_pdcp_DuplicationSplitDRB_tags_4) + /sizeof(asn_DEF_pdcp_DuplicationSplitDRB_tags_4[0]), /* 2 */ + { &asn_OER_type_pdcp_DuplicationSplitDRB_constr_4, &asn_PER_type_pdcp_DuplicationSplitDRB_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcp_DuplicationSplitDRB_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDCP_ParametersMRDC_1[] = { + { ATF_POINTER, 2, offsetof(struct PDCP_ParametersMRDC, pdcp_DuplicationSplitSRB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_DuplicationSplitSRB_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSplitSRB" + }, + { ATF_POINTER, 1, offsetof(struct PDCP_ParametersMRDC, pdcp_DuplicationSplitDRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcp_DuplicationSplitDRB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-DuplicationSplitDRB" + }, +}; +static const int asn_MAP_PDCP_ParametersMRDC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PDCP_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDCP_ParametersMRDC_specs_1 = { + sizeof(struct PDCP_ParametersMRDC), + offsetof(struct PDCP_ParametersMRDC, _asn_ctx), + asn_MAP_PDCP_ParametersMRDC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PDCP_ParametersMRDC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDCP_ParametersMRDC = { + "PDCP-ParametersMRDC", + "PDCP-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_PDCP_ParametersMRDC_tags_1, + sizeof(asn_DEF_PDCP_ParametersMRDC_tags_1) + /sizeof(asn_DEF_PDCP_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_PDCP_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_PDCP_ParametersMRDC_tags_1) + /sizeof(asn_DEF_PDCP_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDCP_ParametersMRDC_1, + 2, /* Elements count */ + &asn_SPC_PDCP_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDCP-ParametersMRDC.h b/src/codec_utils/RRC/PDCP-ParametersMRDC.h new file mode 100644 index 000000000..ee092a1e4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDCP_ParametersMRDC_H_ +#define _PDCP_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB { + PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB_supported = 0 +} e_PDCP_ParametersMRDC__pdcp_DuplicationSplitSRB; +typedef enum PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB { + PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB_supported = 0 +} e_PDCP_ParametersMRDC__pdcp_DuplicationSplitDRB; + +/* PDCP-ParametersMRDC */ +typedef struct PDCP_ParametersMRDC { + long *pdcp_DuplicationSplitSRB; /* OPTIONAL */ + long *pdcp_DuplicationSplitDRB; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDCP_ParametersMRDC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_DuplicationSplitSRB_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcp_DuplicationSplitDRB_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDCP_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_PDCP_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_PDCP_ParametersMRDC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDCP_ParametersMRDC_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.c b/src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.c new file mode 100644 index 000000000..76260bc4c --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.c @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-CodeBlockGroupTransmission.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_maxCodeBlockGroupsPerTransportBlock_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_maxCodeBlockGroupsPerTransportBlock_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_maxCodeBlockGroupsPerTransportBlock_enum2value_2[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2, /* n6(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxCodeBlockGroupsPerTransportBlock_specs_2 = { + asn_MAP_maxCodeBlockGroupsPerTransportBlock_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxCodeBlockGroupsPerTransportBlock_2 = { + "maxCodeBlockGroupsPerTransportBlock", + "maxCodeBlockGroupsPerTransportBlock", + &asn_OP_NativeEnumerated, + asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2, + sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2, /* Same as above */ + sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2[0]), /* 2 */ + { &asn_OER_type_maxCodeBlockGroupsPerTransportBlock_constr_2, &asn_PER_type_maxCodeBlockGroupsPerTransportBlock_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxCodeBlockGroupsPerTransportBlock_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDSCH_CodeBlockGroupTransmission_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_CodeBlockGroupTransmission, maxCodeBlockGroupsPerTransportBlock), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxCodeBlockGroupsPerTransportBlock_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeBlockGroupsPerTransportBlock" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_PDSCH_CodeBlockGroupTransmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDSCH_CodeBlockGroupTransmission_specs_1 = { + sizeof(struct PDSCH_CodeBlockGroupTransmission), + offsetof(struct PDSCH_CodeBlockGroupTransmission, _asn_ctx), + asn_MAP_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_PDSCH_CodeBlockGroupTransmission = { + "PDSCH-CodeBlockGroupTransmission", + "PDSCH-CodeBlockGroupTransmission", + &asn_OP_SEQUENCE, + asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1, + sizeof(asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_PDSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDSCH_CodeBlockGroupTransmission_1, + 2, /* Elements count */ + &asn_SPC_PDSCH_CodeBlockGroupTransmission_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.h b/src/codec_utils/RRC/PDSCH-CodeBlockGroupTransmission.h new file mode 100644 index 000000000..5c49e07e6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_CodeBlockGroupTransmission_H_ +#define _PDSCH_CodeBlockGroupTransmission_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock { + PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n2 = 0, + PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n4 = 1, + PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n6 = 2, + PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n8 = 3 +} e_PDSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock; + +/* PDSCH-CodeBlockGroupTransmission */ +typedef struct 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; +} PDSCH_CodeBlockGroupTransmission_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxCodeBlockGroupsPerTransportBlock_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_CodeBlockGroupTransmission; +extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_CodeBlockGroupTransmission_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_CodeBlockGroupTransmission_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_CodeBlockGroupTransmission_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-Config.c b/src/codec_utils/RRC/PDSCH-Config.c new file mode 100644 index 000000000..4f441fcf2 --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-Config.c @@ -0,0 +1,1946 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-Config.h" + +#include "RateMatchPatternGroup.h" +#include "DMRS-DownlinkConfig.h" +#include "TCI-State.h" +#include "PDSCH-TimeDomainResourceAllocationList.h" +#include "RateMatchPattern.h" +#include "ZP-CSI-RS-Resource.h" +#include "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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_dmrs_DownlinkForPDSCH_MappingTypeA_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dmrs_DownlinkForPDSCH_MappingTypeA_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_oer_constraints_t asn_OER_type_dmrs_DownlinkForPDSCH_MappingTypeB_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dmrs_DownlinkForPDSCH_MappingTypeB_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_oer_constraints_t asn_OER_type_tci_StatesToAddModList_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_tci_StatesToAddModList_constr_9 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_oer_constraints_t asn_OER_type_tci_StatesToReleaseList_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_tci_StatesToReleaseList_constr_11 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_oer_constraints_t asn_OER_type_vrb_ToPRB_Interleaver_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_vrb_ToPRB_Interleaver_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_oer_constraints_t asn_OER_type_resourceAllocation_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_resourceAllocation_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 asn_oer_constraints_t asn_OER_type_pdsch_TimeDomainAllocationList_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_TimeDomainAllocationList_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_oer_constraints_t asn_OER_type_pdsch_AggregationFactor_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_AggregationFactor_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_rateMatchPatternToAddModList_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rateMatchPatternToReleaseList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rbg_Size_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rbg_Size_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_oer_constraints_t asn_OER_type_mcs_Table_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_mcs_Table_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_oer_constraints_t asn_OER_type_maxNrofCodeWordsScheduledByDCI_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_maxNrofCodeWordsScheduledByDCI_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_oer_constraints_t asn_OER_type_bundleSize_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_bundleSize_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_oer_constraints_t asn_OER_type_bundleSizeSet1_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_bundleSizeSet1_constr_48 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 3 } /* (0..3) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_bundleSizeSet2_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_bundleSizeSet2_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_prb_BundlingType_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_prb_BundlingType_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_zp_CSI_RS_ResourceToAddModList_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_zp_CSI_RS_ResourceToAddModList_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_zp_CSI_RS_ResourceToReleaseList_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_zp_CSI_RS_ResourceToReleaseList_constr_58 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_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_oer_constraints_t asn_OER_type_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62 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_oer_constraints_t asn_OER_type_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64 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_oer_constraints_t asn_OER_type_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66 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_oer_constraints_t asn_OER_type_p_ZP_CSI_RS_ResourceSet_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_p_ZP_CSI_RS_ResourceSet_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_oer_constraints_t asn_OER_memb_dataScramblingIdentityPDSCH_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tci_StatesToAddModList_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_tci_StatesToAddModList_constr_9 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_oer_constraints_t asn_OER_memb_tci_StatesToReleaseList_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_tci_StatesToReleaseList_constr_11 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_oer_constraints_t asn_OER_memb_rateMatchPatternToAddModList_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rateMatchPatternToReleaseList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_zp_CSI_RS_ResourceToAddModList_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_zp_CSI_RS_ResourceToAddModList_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_zp_CSI_RS_ResourceToReleaseList_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_zp_CSI_RS_ResourceToReleaseList_constr_58 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_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_oer_constraints_t asn_OER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62 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_oer_constraints_t asn_OER_memb_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64 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_oer_constraints_t asn_OER_memb_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66 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_dmrs_DownlinkForPDSCH_MappingTypeA_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA, 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 PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_dmrs_DownlinkForPDSCH_MappingTypeA_tag2el_3[] = { + { (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_dmrs_DownlinkForPDSCH_MappingTypeA_specs_3 = { + sizeof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA), + offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA, _asn_ctx), + offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA, present), + sizeof(((struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA *)0)->present), + asn_MAP_dmrs_DownlinkForPDSCH_MappingTypeA_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_dmrs_DownlinkForPDSCH_MappingTypeA_3 = { + "dmrs-DownlinkForPDSCH-MappingTypeA", + "dmrs-DownlinkForPDSCH-MappingTypeA", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_dmrs_DownlinkForPDSCH_MappingTypeA_constr_3, &asn_PER_type_dmrs_DownlinkForPDSCH_MappingTypeA_constr_3, CHOICE_constraint }, + asn_MBR_dmrs_DownlinkForPDSCH_MappingTypeA_3, + 2, /* Elements count */ + &asn_SPC_dmrs_DownlinkForPDSCH_MappingTypeA_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dmrs_DownlinkForPDSCH_MappingTypeB_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB, 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 PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMRS_DownlinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_dmrs_DownlinkForPDSCH_MappingTypeB_tag2el_6[] = { + { (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_dmrs_DownlinkForPDSCH_MappingTypeB_specs_6 = { + sizeof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB), + offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB, _asn_ctx), + offsetof(struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB, present), + sizeof(((struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB *)0)->present), + asn_MAP_dmrs_DownlinkForPDSCH_MappingTypeB_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_dmrs_DownlinkForPDSCH_MappingTypeB_6 = { + "dmrs-DownlinkForPDSCH-MappingTypeB", + "dmrs-DownlinkForPDSCH-MappingTypeB", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_dmrs_DownlinkForPDSCH_MappingTypeB_constr_6, &asn_PER_type_dmrs_DownlinkForPDSCH_MappingTypeB_constr_6, CHOICE_constraint }, + asn_MBR_dmrs_DownlinkForPDSCH_MappingTypeB_6, + 2, /* Elements count */ + &asn_SPC_dmrs_DownlinkForPDSCH_MappingTypeB_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tci_StatesToAddModList_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TCI_State, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_tci_StatesToAddModList_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_tci_StatesToAddModList_specs_9 = { + sizeof(struct PDSCH_Config__tci_StatesToAddModList), + offsetof(struct PDSCH_Config__tci_StatesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tci_StatesToAddModList_9 = { + "tci-StatesToAddModList", + "tci-StatesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tci_StatesToAddModList_tags_9, + sizeof(asn_DEF_tci_StatesToAddModList_tags_9) + /sizeof(asn_DEF_tci_StatesToAddModList_tags_9[0]) - 1, /* 1 */ + asn_DEF_tci_StatesToAddModList_tags_9, /* Same as above */ + sizeof(asn_DEF_tci_StatesToAddModList_tags_9) + /sizeof(asn_DEF_tci_StatesToAddModList_tags_9[0]), /* 2 */ + { &asn_OER_type_tci_StatesToAddModList_constr_9, &asn_PER_type_tci_StatesToAddModList_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_tci_StatesToAddModList_9, + 1, /* Single element */ + &asn_SPC_tci_StatesToAddModList_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tci_StatesToReleaseList_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_tci_StatesToReleaseList_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_tci_StatesToReleaseList_specs_11 = { + sizeof(struct PDSCH_Config__tci_StatesToReleaseList), + offsetof(struct PDSCH_Config__tci_StatesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tci_StatesToReleaseList_11 = { + "tci-StatesToReleaseList", + "tci-StatesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tci_StatesToReleaseList_tags_11, + sizeof(asn_DEF_tci_StatesToReleaseList_tags_11) + /sizeof(asn_DEF_tci_StatesToReleaseList_tags_11[0]) - 1, /* 1 */ + asn_DEF_tci_StatesToReleaseList_tags_11, /* Same as above */ + sizeof(asn_DEF_tci_StatesToReleaseList_tags_11) + /sizeof(asn_DEF_tci_StatesToReleaseList_tags_11[0]), /* 2 */ + { &asn_OER_type_tci_StatesToReleaseList_constr_11, &asn_PER_type_tci_StatesToReleaseList_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_tci_StatesToReleaseList_11, + 1, /* Single element */ + &asn_SPC_tci_StatesToReleaseList_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_vrb_ToPRB_Interleaver_value2enum_13[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_vrb_ToPRB_Interleaver_enum2value_13[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_vrb_ToPRB_Interleaver_specs_13 = { + asn_MAP_vrb_ToPRB_Interleaver_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_vrb_ToPRB_Interleaver_enum2value_13, /* 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_vrb_ToPRB_Interleaver_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_vrb_ToPRB_Interleaver_13 = { + "vrb-ToPRB-Interleaver", + "vrb-ToPRB-Interleaver", + &asn_OP_NativeEnumerated, + asn_DEF_vrb_ToPRB_Interleaver_tags_13, + sizeof(asn_DEF_vrb_ToPRB_Interleaver_tags_13) + /sizeof(asn_DEF_vrb_ToPRB_Interleaver_tags_13[0]) - 1, /* 1 */ + asn_DEF_vrb_ToPRB_Interleaver_tags_13, /* Same as above */ + sizeof(asn_DEF_vrb_ToPRB_Interleaver_tags_13) + /sizeof(asn_DEF_vrb_ToPRB_Interleaver_tags_13[0]), /* 2 */ + { &asn_OER_type_vrb_ToPRB_Interleaver_constr_13, &asn_PER_type_vrb_ToPRB_Interleaver_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_vrb_ToPRB_Interleaver_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceAllocation_value2enum_16[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_resourceAllocation_enum2value_16[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceAllocation_specs_16 = { + asn_MAP_resourceAllocation_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_resourceAllocation_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_resourceAllocation_tags_16[] = { + (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_resourceAllocation_16 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_resourceAllocation_tags_16, + sizeof(asn_DEF_resourceAllocation_tags_16) + /sizeof(asn_DEF_resourceAllocation_tags_16[0]) - 1, /* 1 */ + asn_DEF_resourceAllocation_tags_16, /* Same as above */ + sizeof(asn_DEF_resourceAllocation_tags_16) + /sizeof(asn_DEF_resourceAllocation_tags_16[0]), /* 2 */ + { &asn_OER_type_resourceAllocation_constr_16, &asn_PER_type_resourceAllocation_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceAllocation_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdsch_TimeDomainAllocationList_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config__pdsch_TimeDomainAllocationList, 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 PDSCH_Config__pdsch_TimeDomainAllocationList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdsch_TimeDomainAllocationList_tag2el_20[] = { + { (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_pdsch_TimeDomainAllocationList_specs_20 = { + sizeof(struct PDSCH_Config__pdsch_TimeDomainAllocationList), + offsetof(struct PDSCH_Config__pdsch_TimeDomainAllocationList, _asn_ctx), + offsetof(struct PDSCH_Config__pdsch_TimeDomainAllocationList, present), + sizeof(((struct PDSCH_Config__pdsch_TimeDomainAllocationList *)0)->present), + asn_MAP_pdsch_TimeDomainAllocationList_tag2el_20, + 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_pdsch_TimeDomainAllocationList_20 = { + "pdsch-TimeDomainAllocationList", + "pdsch-TimeDomainAllocationList", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdsch_TimeDomainAllocationList_constr_20, &asn_PER_type_pdsch_TimeDomainAllocationList_constr_20, CHOICE_constraint }, + asn_MBR_pdsch_TimeDomainAllocationList_20, + 2, /* Elements count */ + &asn_SPC_pdsch_TimeDomainAllocationList_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_AggregationFactor_value2enum_23[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_pdsch_AggregationFactor_enum2value_23[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_AggregationFactor_specs_23 = { + asn_MAP_pdsch_AggregationFactor_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_pdsch_AggregationFactor_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_pdsch_AggregationFactor_tags_23[] = { + (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_pdsch_AggregationFactor_23 = { + "pdsch-AggregationFactor", + "pdsch-AggregationFactor", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_AggregationFactor_tags_23, + sizeof(asn_DEF_pdsch_AggregationFactor_tags_23) + /sizeof(asn_DEF_pdsch_AggregationFactor_tags_23[0]) - 1, /* 1 */ + asn_DEF_pdsch_AggregationFactor_tags_23, /* Same as above */ + sizeof(asn_DEF_pdsch_AggregationFactor_tags_23) + /sizeof(asn_DEF_pdsch_AggregationFactor_tags_23[0]), /* 2 */ + { &asn_OER_type_pdsch_AggregationFactor_constr_23, &asn_PER_type_pdsch_AggregationFactor_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_AggregationFactor_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToAddModList_27[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToAddModList_tags_27[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToAddModList_specs_27 = { + sizeof(struct PDSCH_Config__rateMatchPatternToAddModList), + offsetof(struct PDSCH_Config__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToAddModList_27 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToAddModList_tags_27, + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_27) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_27[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToAddModList_tags_27, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_27) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_27[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToAddModList_constr_27, &asn_PER_type_rateMatchPatternToAddModList_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToAddModList_27, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToAddModList_specs_27 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToReleaseList_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToReleaseList_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToReleaseList_specs_29 = { + sizeof(struct PDSCH_Config__rateMatchPatternToReleaseList), + offsetof(struct PDSCH_Config__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToReleaseList_29 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToReleaseList_tags_29, + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_29) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_29[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToReleaseList_tags_29, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_29) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_29[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToReleaseList_constr_29, &asn_PER_type_rateMatchPatternToReleaseList_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToReleaseList_29, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToReleaseList_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rbg_Size_value2enum_33[] = { + { 0, 7, "config1" }, + { 1, 7, "config2" } +}; +static const unsigned int asn_MAP_rbg_Size_enum2value_33[] = { + 0, /* config1(0) */ + 1 /* config2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rbg_Size_specs_33 = { + asn_MAP_rbg_Size_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_rbg_Size_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_rbg_Size_tags_33[] = { + (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_rbg_Size_33 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_rbg_Size_tags_33, + sizeof(asn_DEF_rbg_Size_tags_33) + /sizeof(asn_DEF_rbg_Size_tags_33[0]) - 1, /* 1 */ + asn_DEF_rbg_Size_tags_33, /* Same as above */ + sizeof(asn_DEF_rbg_Size_tags_33) + /sizeof(asn_DEF_rbg_Size_tags_33[0]), /* 2 */ + { &asn_OER_type_rbg_Size_constr_33, &asn_PER_type_rbg_Size_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rbg_Size_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_Table_value2enum_36[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_Table_enum2value_36[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_Table_specs_36 = { + asn_MAP_mcs_Table_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_mcs_Table_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_mcs_Table_tags_36[] = { + (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_mcs_Table_36 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_Table_tags_36, + sizeof(asn_DEF_mcs_Table_tags_36) + /sizeof(asn_DEF_mcs_Table_tags_36[0]) - 1, /* 1 */ + asn_DEF_mcs_Table_tags_36, /* Same as above */ + sizeof(asn_DEF_mcs_Table_tags_36) + /sizeof(asn_DEF_mcs_Table_tags_36[0]), /* 2 */ + { &asn_OER_type_mcs_Table_constr_36, &asn_PER_type_mcs_Table_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_Table_specs_36 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNrofCodeWordsScheduledByDCI_value2enum_39[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_maxNrofCodeWordsScheduledByDCI_enum2value_39[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNrofCodeWordsScheduledByDCI_specs_39 = { + asn_MAP_maxNrofCodeWordsScheduledByDCI_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_maxNrofCodeWordsScheduledByDCI_enum2value_39, /* 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_maxNrofCodeWordsScheduledByDCI_tags_39[] = { + (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_maxNrofCodeWordsScheduledByDCI_39 = { + "maxNrofCodeWordsScheduledByDCI", + "maxNrofCodeWordsScheduledByDCI", + &asn_OP_NativeEnumerated, + asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39, + sizeof(asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39) + /sizeof(asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39[0]) - 1, /* 1 */ + asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39, /* Same as above */ + sizeof(asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39) + /sizeof(asn_DEF_maxNrofCodeWordsScheduledByDCI_tags_39[0]), /* 2 */ + { &asn_OER_type_maxNrofCodeWordsScheduledByDCI_constr_39, &asn_PER_type_maxNrofCodeWordsScheduledByDCI_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNrofCodeWordsScheduledByDCI_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bundleSize_value2enum_44[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" } +}; +static const unsigned int asn_MAP_bundleSize_enum2value_44[] = { + 0, /* n4(0) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bundleSize_specs_44 = { + asn_MAP_bundleSize_value2enum_44, /* "tag" => N; sorted by tag */ + asn_MAP_bundleSize_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_bundleSize_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_bundleSize_44 = { + "bundleSize", + "bundleSize", + &asn_OP_NativeEnumerated, + asn_DEF_bundleSize_tags_44, + sizeof(asn_DEF_bundleSize_tags_44) + /sizeof(asn_DEF_bundleSize_tags_44[0]) - 1, /* 1 */ + asn_DEF_bundleSize_tags_44, /* Same as above */ + sizeof(asn_DEF_bundleSize_tags_44) + /sizeof(asn_DEF_bundleSize_tags_44[0]), /* 2 */ + { &asn_OER_type_bundleSize_constr_44, &asn_PER_type_bundleSize_constr_44, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bundleSize_specs_44 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_staticBundling_43[] = { + { ATF_POINTER, 1, offsetof(struct PDSCH_Config__prb_BundlingType__staticBundling, bundleSize), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bundleSize_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSize" + }, +}; +static const int asn_MAP_staticBundling_oms_43[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_staticBundling_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_staticBundling_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* bundleSize */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_staticBundling_specs_43 = { + sizeof(struct PDSCH_Config__prb_BundlingType__staticBundling), + offsetof(struct PDSCH_Config__prb_BundlingType__staticBundling, _asn_ctx), + asn_MAP_staticBundling_tag2el_43, + 1, /* Count of tags in the map */ + asn_MAP_staticBundling_oms_43, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_staticBundling_43 = { + "staticBundling", + "staticBundling", + &asn_OP_SEQUENCE, + asn_DEF_staticBundling_tags_43, + sizeof(asn_DEF_staticBundling_tags_43) + /sizeof(asn_DEF_staticBundling_tags_43[0]) - 1, /* 1 */ + asn_DEF_staticBundling_tags_43, /* Same as above */ + sizeof(asn_DEF_staticBundling_tags_43) + /sizeof(asn_DEF_staticBundling_tags_43[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_staticBundling_43, + 1, /* Elements count */ + &asn_SPC_staticBundling_specs_43 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bundleSizeSet1_value2enum_48[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" }, + { 2, 11, "n2-wideband" }, + { 3, 11, "n4-wideband" } +}; +static const unsigned int asn_MAP_bundleSizeSet1_enum2value_48[] = { + 2, /* n2-wideband(2) */ + 0, /* n4(0) */ + 3, /* n4-wideband(3) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bundleSizeSet1_specs_48 = { + asn_MAP_bundleSizeSet1_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_bundleSizeSet1_enum2value_48, /* 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_bundleSizeSet1_tags_48[] = { + (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_bundleSizeSet1_48 = { + "bundleSizeSet1", + "bundleSizeSet1", + &asn_OP_NativeEnumerated, + asn_DEF_bundleSizeSet1_tags_48, + sizeof(asn_DEF_bundleSizeSet1_tags_48) + /sizeof(asn_DEF_bundleSizeSet1_tags_48[0]) - 1, /* 1 */ + asn_DEF_bundleSizeSet1_tags_48, /* Same as above */ + sizeof(asn_DEF_bundleSizeSet1_tags_48) + /sizeof(asn_DEF_bundleSizeSet1_tags_48[0]), /* 2 */ + { &asn_OER_type_bundleSizeSet1_constr_48, &asn_PER_type_bundleSizeSet1_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bundleSizeSet1_specs_48 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bundleSizeSet2_value2enum_53[] = { + { 0, 2, "n4" }, + { 1, 8, "wideband" } +}; +static const unsigned int asn_MAP_bundleSizeSet2_enum2value_53[] = { + 0, /* n4(0) */ + 1 /* wideband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bundleSizeSet2_specs_53 = { + asn_MAP_bundleSizeSet2_value2enum_53, /* "tag" => N; sorted by tag */ + asn_MAP_bundleSizeSet2_enum2value_53, /* 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_bundleSizeSet2_tags_53[] = { + (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_bundleSizeSet2_53 = { + "bundleSizeSet2", + "bundleSizeSet2", + &asn_OP_NativeEnumerated, + asn_DEF_bundleSizeSet2_tags_53, + sizeof(asn_DEF_bundleSizeSet2_tags_53) + /sizeof(asn_DEF_bundleSizeSet2_tags_53[0]) - 1, /* 1 */ + asn_DEF_bundleSizeSet2_tags_53, /* Same as above */ + sizeof(asn_DEF_bundleSizeSet2_tags_53) + /sizeof(asn_DEF_bundleSizeSet2_tags_53[0]), /* 2 */ + { &asn_OER_type_bundleSizeSet2_constr_53, &asn_PER_type_bundleSizeSet2_constr_53, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bundleSizeSet2_specs_53 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dynamicBundling_47[] = { + { ATF_POINTER, 2, offsetof(struct PDSCH_Config__prb_BundlingType__dynamicBundling, bundleSizeSet1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bundleSizeSet1_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSizeSet1" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_Config__prb_BundlingType__dynamicBundling, bundleSizeSet2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bundleSizeSet2_53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bundleSizeSet2" + }, +}; +static const int asn_MAP_dynamicBundling_oms_47[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_dynamicBundling_tags_47[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_dynamicBundling_tag2el_47[] = { + { (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_dynamicBundling_specs_47 = { + sizeof(struct PDSCH_Config__prb_BundlingType__dynamicBundling), + offsetof(struct PDSCH_Config__prb_BundlingType__dynamicBundling, _asn_ctx), + asn_MAP_dynamicBundling_tag2el_47, + 2, /* Count of tags in the map */ + asn_MAP_dynamicBundling_oms_47, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dynamicBundling_47 = { + "dynamicBundling", + "dynamicBundling", + &asn_OP_SEQUENCE, + asn_DEF_dynamicBundling_tags_47, + sizeof(asn_DEF_dynamicBundling_tags_47) + /sizeof(asn_DEF_dynamicBundling_tags_47[0]) - 1, /* 1 */ + asn_DEF_dynamicBundling_tags_47, /* Same as above */ + sizeof(asn_DEF_dynamicBundling_tags_47) + /sizeof(asn_DEF_dynamicBundling_tags_47[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_dynamicBundling_47, + 2, /* Elements count */ + &asn_SPC_dynamicBundling_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_prb_BundlingType_42[] = { + { ATF_POINTER, 0, offsetof(struct PDSCH_Config__prb_BundlingType, choice.staticBundling), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_staticBundling_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "staticBundling" + }, + { ATF_POINTER, 0, offsetof(struct PDSCH_Config__prb_BundlingType, choice.dynamicBundling), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_dynamicBundling_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicBundling" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_prb_BundlingType_tag2el_42[] = { + { (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_prb_BundlingType_specs_42 = { + sizeof(struct PDSCH_Config__prb_BundlingType), + offsetof(struct PDSCH_Config__prb_BundlingType, _asn_ctx), + offsetof(struct PDSCH_Config__prb_BundlingType, present), + sizeof(((struct PDSCH_Config__prb_BundlingType *)0)->present), + asn_MAP_prb_BundlingType_tag2el_42, + 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_prb_BundlingType_42 = { + "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) */ + { &asn_OER_type_prb_BundlingType_constr_42, &asn_PER_type_prb_BundlingType_constr_42, CHOICE_constraint }, + asn_MBR_prb_BundlingType_42, + 2, /* Elements count */ + &asn_SPC_prb_BundlingType_specs_42 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_zp_CSI_RS_ResourceToAddModList_56[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56[] = { + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_zp_CSI_RS_ResourceToAddModList_specs_56 = { + sizeof(struct PDSCH_Config__zp_CSI_RS_ResourceToAddModList), + offsetof(struct 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_zp_CSI_RS_ResourceToAddModList_56 = { + "zp-CSI-RS-ResourceToAddModList", + "zp-CSI-RS-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56, + sizeof(asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56) + /sizeof(asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56[0]) - 1, /* 1 */ + asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56, /* Same as above */ + sizeof(asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56) + /sizeof(asn_DEF_zp_CSI_RS_ResourceToAddModList_tags_56[0]), /* 2 */ + { &asn_OER_type_zp_CSI_RS_ResourceToAddModList_constr_56, &asn_PER_type_zp_CSI_RS_ResourceToAddModList_constr_56, SEQUENCE_OF_constraint }, + asn_MBR_zp_CSI_RS_ResourceToAddModList_56, + 1, /* Single element */ + &asn_SPC_zp_CSI_RS_ResourceToAddModList_specs_56 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_zp_CSI_RS_ResourceToReleaseList_58[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_zp_CSI_RS_ResourceToReleaseList_specs_58 = { + sizeof(struct PDSCH_Config__zp_CSI_RS_ResourceToReleaseList), + offsetof(struct 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_zp_CSI_RS_ResourceToReleaseList_58 = { + "zp-CSI-RS-ResourceToReleaseList", + "zp-CSI-RS-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58, + sizeof(asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58) + /sizeof(asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58[0]) - 1, /* 1 */ + asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58, /* Same as above */ + sizeof(asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58) + /sizeof(asn_DEF_zp_CSI_RS_ResourceToReleaseList_tags_58[0]), /* 2 */ + { &asn_OER_type_zp_CSI_RS_ResourceToReleaseList_constr_58, &asn_PER_type_zp_CSI_RS_ResourceToReleaseList_constr_58, SEQUENCE_OF_constraint }, + asn_MBR_zp_CSI_RS_ResourceToReleaseList_58, + 1, /* Single element */ + &asn_SPC_zp_CSI_RS_ResourceToReleaseList_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_60[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_specs_60 = { + sizeof(struct PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToAddModList), + offsetof(struct 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_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_60 = { + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList", + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60, + sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60) + /sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60[0]) - 1, /* 1 */ + asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60, /* Same as above */ + sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60) + /sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_tags_60[0]), /* 2 */ + { &asn_OER_type_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60, &asn_PER_type_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60, SEQUENCE_OF_constraint }, + asn_MBR_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_60, + 1, /* Single element */ + &asn_SPC_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_specs_60 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_62[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62[] = { + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_specs_62 = { + sizeof(struct PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList), + offsetof(struct 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_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_62 = { + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList", + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62, + sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62) + /sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62[0]) - 1, /* 1 */ + asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62, /* Same as above */ + sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62) + /sizeof(asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_tags_62[0]), /* 2 */ + { &asn_OER_type_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62, &asn_PER_type_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62, SEQUENCE_OF_constraint }, + asn_MBR_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_62, + 1, /* Single element */ + &asn_SPC_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_specs_62 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sp_ZP_CSI_RS_ResourceSetsToAddModList_64[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64[] = { + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sp_ZP_CSI_RS_ResourceSetsToAddModList_specs_64 = { + sizeof(struct PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToAddModList), + offsetof(struct 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_sp_ZP_CSI_RS_ResourceSetsToAddModList_64 = { + "sp-ZP-CSI-RS-ResourceSetsToAddModList", + "sp-ZP-CSI-RS-ResourceSetsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64, + sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64) + /sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64[0]) - 1, /* 1 */ + asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64, /* Same as above */ + sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64) + /sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_tags_64[0]), /* 2 */ + { &asn_OER_type_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64, &asn_PER_type_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64, SEQUENCE_OF_constraint }, + asn_MBR_sp_ZP_CSI_RS_ResourceSetsToAddModList_64, + 1, /* Single element */ + &asn_SPC_sp_ZP_CSI_RS_ResourceSetsToAddModList_specs_64 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sp_ZP_CSI_RS_ResourceSetsToReleaseList_66[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66[] = { + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_specs_66 = { + sizeof(struct PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToReleaseList), + offsetof(struct 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_sp_ZP_CSI_RS_ResourceSetsToReleaseList_66 = { + "sp-ZP-CSI-RS-ResourceSetsToReleaseList", + "sp-ZP-CSI-RS-ResourceSetsToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66, + sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66) + /sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66[0]) - 1, /* 1 */ + asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66, /* Same as above */ + sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66) + /sizeof(asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_tags_66[0]), /* 2 */ + { &asn_OER_type_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66, &asn_PER_type_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66, SEQUENCE_OF_constraint }, + asn_MBR_sp_ZP_CSI_RS_ResourceSetsToReleaseList_66, + 1, /* Single element */ + &asn_SPC_sp_ZP_CSI_RS_ResourceSetsToReleaseList_specs_66 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_p_ZP_CSI_RS_ResourceSet_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config__p_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 PDSCH_Config__p_ZP_CSI_RS_ResourceSet, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZP_CSI_RS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_p_ZP_CSI_RS_ResourceSet_tag2el_68[] = { + { (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_p_ZP_CSI_RS_ResourceSet_specs_68 = { + sizeof(struct PDSCH_Config__p_ZP_CSI_RS_ResourceSet), + offsetof(struct PDSCH_Config__p_ZP_CSI_RS_ResourceSet, _asn_ctx), + offsetof(struct PDSCH_Config__p_ZP_CSI_RS_ResourceSet, present), + sizeof(((struct PDSCH_Config__p_ZP_CSI_RS_ResourceSet *)0)->present), + asn_MAP_p_ZP_CSI_RS_ResourceSet_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_p_ZP_CSI_RS_ResourceSet_68 = { + "p-ZP-CSI-RS-ResourceSet", + "p-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) */ + { &asn_OER_type_p_ZP_CSI_RS_ResourceSet_constr_68, &asn_PER_type_p_ZP_CSI_RS_ResourceSet_constr_68, CHOICE_constraint }, + asn_MBR_p_ZP_CSI_RS_ResourceSet_68, + 2, /* Elements count */ + &asn_SPC_p_ZP_CSI_RS_ResourceSet_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDSCH_Config_1[] = { + { ATF_POINTER, 6, offsetof(struct PDSCH_Config, dataScramblingIdentityPDSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dataScramblingIdentityPDSCH_constr_2, &asn_PER_memb_dataScramblingIdentityPDSCH_constr_2, memb_dataScramblingIdentityPDSCH_constraint_1 }, + 0, 0, /* No default value */ + "dataScramblingIdentityPDSCH" + }, + { ATF_POINTER, 5, offsetof(struct PDSCH_Config, dmrs_DownlinkForPDSCH_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_dmrs_DownlinkForPDSCH_MappingTypeA_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-DownlinkForPDSCH-MappingTypeA" + }, + { ATF_POINTER, 4, offsetof(struct PDSCH_Config, dmrs_DownlinkForPDSCH_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_dmrs_DownlinkForPDSCH_MappingTypeB_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-DownlinkForPDSCH-MappingTypeB" + }, + { ATF_POINTER, 3, offsetof(struct PDSCH_Config, tci_StatesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_tci_StatesToAddModList_9, + 0, + { &asn_OER_memb_tci_StatesToAddModList_constr_9, &asn_PER_memb_tci_StatesToAddModList_constr_9, memb_tci_StatesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct PDSCH_Config, tci_StatesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_tci_StatesToReleaseList_11, + 0, + { &asn_OER_memb_tci_StatesToReleaseList_constr_11, &asn_PER_memb_tci_StatesToReleaseList_constr_11, memb_tci_StatesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tci-StatesToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_Config, vrb_ToPRB_Interleaver), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_vrb_ToPRB_Interleaver_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "vrb-ToPRB-Interleaver" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceAllocation_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 6, offsetof(struct PDSCH_Config, pdsch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdsch_TimeDomainAllocationList_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-TimeDomainAllocationList" + }, + { ATF_POINTER, 5, offsetof(struct PDSCH_Config, pdsch_AggregationFactor), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_AggregationFactor_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-AggregationFactor" + }, + { ATF_POINTER, 4, offsetof(struct PDSCH_Config, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_rateMatchPatternToAddModList_27, + 0, + { &asn_OER_memb_rateMatchPatternToAddModList_constr_27, &asn_PER_memb_rateMatchPatternToAddModList_constr_27, memb_rateMatchPatternToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct PDSCH_Config, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_rateMatchPatternToReleaseList_29, + 0, + { &asn_OER_memb_rateMatchPatternToReleaseList_constr_29, &asn_PER_memb_rateMatchPatternToReleaseList_constr_29, memb_rateMatchPatternToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct PDSCH_Config, rateMatchPatternGroup1), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternGroup1" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_Config, rateMatchPatternGroup2), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternGroup, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternGroup2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rbg_Size_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_POINTER, 2, offsetof(struct PDSCH_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_Table_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_Config, maxNrofCodeWordsScheduledByDCI), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNrofCodeWordsScheduledByDCI_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNrofCodeWordsScheduledByDCI" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_Config, prb_BundlingType), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_prb_BundlingType_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prb-BundlingType" + }, + { ATF_POINTER, 7, offsetof(struct PDSCH_Config, zp_CSI_RS_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + 0, + &asn_DEF_zp_CSI_RS_ResourceToAddModList_56, + 0, + { &asn_OER_memb_zp_CSI_RS_ResourceToAddModList_constr_56, &asn_PER_memb_zp_CSI_RS_ResourceToAddModList_constr_56, memb_zp_CSI_RS_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct PDSCH_Config, zp_CSI_RS_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_zp_CSI_RS_ResourceToReleaseList_58, + 0, + { &asn_OER_memb_zp_CSI_RS_ResourceToReleaseList_constr_58, &asn_PER_memb_zp_CSI_RS_ResourceToReleaseList_constr_58, memb_zp_CSI_RS_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct PDSCH_Config, aperiodic_ZP_CSI_RS_ResourceSetsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + 0, + &asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_60, + 0, + { &asn_OER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60, &asn_PER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constr_60, memb_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct PDSCH_Config, aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + 0, + &asn_DEF_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_62, + 0, + { &asn_OER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62, &asn_PER_memb_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constr_62, memb_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList" + }, + { ATF_POINTER, 3, offsetof(struct PDSCH_Config, sp_ZP_CSI_RS_ResourceSetsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + 0, + &asn_DEF_sp_ZP_CSI_RS_ResourceSetsToAddModList_64, + 0, + { &asn_OER_memb_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64, &asn_PER_memb_sp_ZP_CSI_RS_ResourceSetsToAddModList_constr_64, memb_sp_ZP_CSI_RS_ResourceSetsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sp-ZP-CSI-RS-ResourceSetsToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct PDSCH_Config, sp_ZP_CSI_RS_ResourceSetsToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + 0, + &asn_DEF_sp_ZP_CSI_RS_ResourceSetsToReleaseList_66, + 0, + { &asn_OER_memb_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66, &asn_PER_memb_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constr_66, memb_sp_ZP_CSI_RS_ResourceSetsToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sp-ZP-CSI-RS-ResourceSetsToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_Config, p_ZP_CSI_RS_ResourceSet), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_p_ZP_CSI_RS_ResourceSet_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-ZP-CSI-RS-ResourceSet" + }, +}; +static const int asn_MAP_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_PDSCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDSCH_Config_specs_1 = { + sizeof(struct PDSCH_Config), + offsetof(struct PDSCH_Config, _asn_ctx), + asn_MAP_PDSCH_Config_tag2el_1, + 24, /* Count of tags in the map */ + asn_MAP_PDSCH_Config_oms_1, /* Optional members */ + 21, 0, /* Root/Additions */ + 24, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDSCH_Config = { + "PDSCH-Config", + "PDSCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_PDSCH_Config_tags_1, + sizeof(asn_DEF_PDSCH_Config_tags_1) + /sizeof(asn_DEF_PDSCH_Config_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_Config_tags_1) + /sizeof(asn_DEF_PDSCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDSCH_Config_1, + 24, /* Elements count */ + &asn_SPC_PDSCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-Config.h b/src/codec_utils/RRC/PDSCH-Config.h new file mode 100644 index 000000000..485fd58d9 --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-Config.h @@ -0,0 +1,267 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_Config_H_ +#define _PDSCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include "TCI-StateId.h" +#include "RateMatchPatternId.h" +#include +#include "ZP-CSI-RS-ResourceId.h" +#include "ZP-CSI-RS-ResourceSetId.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR { + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR_NOTHING, /* No components present */ + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR_release, + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR_setup +} PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR; +typedef enum PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR { + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR_NOTHING, /* No components present */ + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR_release, + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR_setup +} PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR; +typedef enum PDSCH_Config__vrb_ToPRB_Interleaver { + PDSCH_Config__vrb_ToPRB_Interleaver_n2 = 0, + PDSCH_Config__vrb_ToPRB_Interleaver_n4 = 1 +} e_PDSCH_Config__vrb_ToPRB_Interleaver; +typedef enum PDSCH_Config__resourceAllocation { + PDSCH_Config__resourceAllocation_resourceAllocationType0 = 0, + PDSCH_Config__resourceAllocation_resourceAllocationType1 = 1, + PDSCH_Config__resourceAllocation_dynamicSwitch = 2 +} e_PDSCH_Config__resourceAllocation; +typedef enum PDSCH_Config__pdsch_TimeDomainAllocationList_PR { + PDSCH_Config__pdsch_TimeDomainAllocationList_PR_NOTHING, /* No components present */ + PDSCH_Config__pdsch_TimeDomainAllocationList_PR_release, + PDSCH_Config__pdsch_TimeDomainAllocationList_PR_setup +} PDSCH_Config__pdsch_TimeDomainAllocationList_PR; +typedef enum PDSCH_Config__pdsch_AggregationFactor { + PDSCH_Config__pdsch_AggregationFactor_n2 = 0, + PDSCH_Config__pdsch_AggregationFactor_n4 = 1, + PDSCH_Config__pdsch_AggregationFactor_n8 = 2 +} e_PDSCH_Config__pdsch_AggregationFactor; +typedef enum PDSCH_Config__rbg_Size { + PDSCH_Config__rbg_Size_config1 = 0, + PDSCH_Config__rbg_Size_config2 = 1 +} e_PDSCH_Config__rbg_Size; +typedef enum PDSCH_Config__mcs_Table { + PDSCH_Config__mcs_Table_qam256 = 0, + PDSCH_Config__mcs_Table_qam64LowSE = 1 +} e_PDSCH_Config__mcs_Table; +typedef enum PDSCH_Config__maxNrofCodeWordsScheduledByDCI { + PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1 = 0, + PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n2 = 1 +} e_PDSCH_Config__maxNrofCodeWordsScheduledByDCI; +typedef enum PDSCH_Config__prb_BundlingType_PR { + PDSCH_Config__prb_BundlingType_PR_NOTHING, /* No components present */ + PDSCH_Config__prb_BundlingType_PR_staticBundling, + PDSCH_Config__prb_BundlingType_PR_dynamicBundling +} PDSCH_Config__prb_BundlingType_PR; +typedef enum PDSCH_Config__prb_BundlingType__staticBundling__bundleSize { + PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_n4 = 0, + PDSCH_Config__prb_BundlingType__staticBundling__bundleSize_wideband = 1 +} e_PDSCH_Config__prb_BundlingType__staticBundling__bundleSize; +typedef enum PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1 { + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n4 = 0, + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_wideband = 1, + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n2_wideband = 2, + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1_n4_wideband = 3 +} e_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet1; +typedef enum PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2 { + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2_n4 = 0, + PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2_wideband = 1 +} e_PDSCH_Config__prb_BundlingType__dynamicBundling__bundleSizeSet2; +typedef enum PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR { + PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR_NOTHING, /* No components present */ + PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR_release, + PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR_setup +} PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR; + +/* Forward declarations */ +struct RateMatchPatternGroup; +struct DMRS_DownlinkConfig; +struct TCI_State; +struct PDSCH_TimeDomainResourceAllocationList; +struct RateMatchPattern; +struct ZP_CSI_RS_Resource; +struct ZP_CSI_RS_ResourceSet; + +/* PDSCH-Config */ +typedef struct PDSCH_Config { + long *dataScramblingIdentityPDSCH; /* OPTIONAL */ + struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA { + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_PR present; + union PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeA_u { + NULL_t release; + struct DMRS_DownlinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dmrs_DownlinkForPDSCH_MappingTypeA; + struct PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB { + PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_PR present; + union PDSCH_Config__dmrs_DownlinkForPDSCH_MappingTypeB_u { + NULL_t release; + struct DMRS_DownlinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dmrs_DownlinkForPDSCH_MappingTypeB; + struct PDSCH_Config__tci_StatesToAddModList { + A_SEQUENCE_OF(struct TCI_State) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tci_StatesToAddModList; + struct PDSCH_Config__tci_StatesToReleaseList { + A_SEQUENCE_OF(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 PDSCH_Config__pdsch_TimeDomainAllocationList { + PDSCH_Config__pdsch_TimeDomainAllocationList_PR present; + union PDSCH_Config__pdsch_TimeDomainAllocationList_u { + NULL_t release; + struct PDSCH_TimeDomainResourceAllocationList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_TimeDomainAllocationList; + long *pdsch_AggregationFactor; /* OPTIONAL */ + struct PDSCH_Config__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct PDSCH_Config__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + struct RateMatchPatternGroup *rateMatchPatternGroup1; /* OPTIONAL */ + struct RateMatchPatternGroup *rateMatchPatternGroup2; /* OPTIONAL */ + long rbg_Size; + long *mcs_Table; /* OPTIONAL */ + long *maxNrofCodeWordsScheduledByDCI; /* OPTIONAL */ + struct PDSCH_Config__prb_BundlingType { + PDSCH_Config__prb_BundlingType_PR present; + union PDSCH_Config__prb_BundlingType_u { + struct PDSCH_Config__prb_BundlingType__staticBundling { + long *bundleSize; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *staticBundling; + struct 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 PDSCH_Config__zp_CSI_RS_ResourceToAddModList { + A_SEQUENCE_OF(struct ZP_CSI_RS_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *zp_CSI_RS_ResourceToAddModList; + struct PDSCH_Config__zp_CSI_RS_ResourceToReleaseList { + A_SEQUENCE_OF(ZP_CSI_RS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *zp_CSI_RS_ResourceToReleaseList; + struct PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToAddModList { + A_SEQUENCE_OF(struct ZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic_ZP_CSI_RS_ResourceSetsToAddModList; + struct PDSCH_Config__aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList { + A_SEQUENCE_OF(ZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList; + struct PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToAddModList { + A_SEQUENCE_OF(struct ZP_CSI_RS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sp_ZP_CSI_RS_ResourceSetsToAddModList; + struct PDSCH_Config__sp_ZP_CSI_RS_ResourceSetsToReleaseList { + A_SEQUENCE_OF(ZP_CSI_RS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sp_ZP_CSI_RS_ResourceSetsToReleaseList; + struct PDSCH_Config__p_ZP_CSI_RS_ResourceSet { + PDSCH_Config__p_ZP_CSI_RS_ResourceSet_PR present; + union PDSCH_Config__p_ZP_CSI_RS_ResourceSet_u { + NULL_t release; + struct ZP_CSI_RS_ResourceSet *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *p_ZP_CSI_RS_ResourceSet; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDSCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_vrb_ToPRB_Interleaver_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceAllocation_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_AggregationFactor_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rbg_Size_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNrofCodeWordsScheduledByDCI_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bundleSize_44; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bundleSizeSet1_48; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bundleSizeSet2_53; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_Config_1[24]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-ConfigCommon.c b/src/codec_utils/RRC/PDSCH-ConfigCommon.c new file mode 100644 index 000000000..c762935fc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-ConfigCommon.h" + +#include "PDSCH-TimeDomainResourceAllocationList.h" +asn_TYPE_member_t asn_MBR_PDSCH_ConfigCommon_1[] = { + { ATF_POINTER, 1, offsetof(struct PDSCH_ConfigCommon, pdsch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-TimeDomainAllocationList" + }, +}; +static const int asn_MAP_PDSCH_ConfigCommon_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PDSCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PDSCH_ConfigCommon_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-TimeDomainAllocationList */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PDSCH_ConfigCommon_specs_1 = { + sizeof(struct PDSCH_ConfigCommon), + offsetof(struct PDSCH_ConfigCommon, _asn_ctx), + asn_MAP_PDSCH_ConfigCommon_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_PDSCH_ConfigCommon_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDSCH_ConfigCommon = { + "PDSCH-ConfigCommon", + "PDSCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_PDSCH_ConfigCommon_tags_1, + sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDSCH_ConfigCommon_1, + 1, /* Elements count */ + &asn_SPC_PDSCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-ConfigCommon.h b/src/codec_utils/RRC/PDSCH-ConfigCommon.h new file mode 100644 index 000000000..0fc08c813 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_ConfigCommon_H_ +#define _PDSCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PDSCH_TimeDomainResourceAllocationList; + +/* PDSCH-ConfigCommon */ +typedef struct PDSCH_ConfigCommon { + struct 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; +} PDSCH_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_ConfigCommon_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-ServingCellConfig.c b/src/codec_utils/RRC/PDSCH-ServingCellConfig.c new file mode 100644 index 000000000..011cc7710 --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-ServingCellConfig.c @@ -0,0 +1,346 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-ServingCellConfig.h" + +#include "PDSCH-CodeBlockGroupTransmission.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_maxMIMO_Layers_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 >= 1 && value <= 8)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_codeBlockGroupTransmission_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_codeBlockGroupTransmission_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_xOverhead_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofHARQ_ProcessesForPDSCH_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_nrofHARQ_ProcessesForPDSCH_constr_9 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maxMIMO_Layers_constr_19 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxMIMO_Layers_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 asn_TYPE_member_t asn_MBR_codeBlockGroupTransmission_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_ServingCellConfig__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 PDSCH_ServingCellConfig__codeBlockGroupTransmission, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_codeBlockGroupTransmission_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_codeBlockGroupTransmission_specs_2 = { + sizeof(struct PDSCH_ServingCellConfig__codeBlockGroupTransmission), + offsetof(struct PDSCH_ServingCellConfig__codeBlockGroupTransmission, _asn_ctx), + offsetof(struct PDSCH_ServingCellConfig__codeBlockGroupTransmission, present), + sizeof(((struct PDSCH_ServingCellConfig__codeBlockGroupTransmission *)0)->present), + asn_MAP_codeBlockGroupTransmission_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_codeBlockGroupTransmission_2 = { + "codeBlockGroupTransmission", + "codeBlockGroupTransmission", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_codeBlockGroupTransmission_constr_2, &asn_PER_type_codeBlockGroupTransmission_constr_2, CHOICE_constraint }, + asn_MBR_codeBlockGroupTransmission_2, + 2, /* Elements count */ + &asn_SPC_codeBlockGroupTransmission_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_xOverhead_value2enum_5[] = { + { 0, 4, "xOh6" }, + { 1, 5, "xOh12" }, + { 2, 5, "xOh18" } +}; +static const unsigned int asn_MAP_xOverhead_enum2value_5[] = { + 1, /* xOh12(1) */ + 2, /* xOh18(2) */ + 0 /* xOh6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_xOverhead_specs_5 = { + asn_MAP_xOverhead_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_xOverhead_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_xOverhead_5 = { + "xOverhead", + "xOverhead", + &asn_OP_NativeEnumerated, + asn_DEF_xOverhead_tags_5, + sizeof(asn_DEF_xOverhead_tags_5) + /sizeof(asn_DEF_xOverhead_tags_5[0]) - 1, /* 1 */ + asn_DEF_xOverhead_tags_5, /* Same as above */ + sizeof(asn_DEF_xOverhead_tags_5) + /sizeof(asn_DEF_xOverhead_tags_5[0]), /* 2 */ + { &asn_OER_type_xOverhead_constr_5, &asn_PER_type_xOverhead_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_xOverhead_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nrofHARQ_ProcessesForPDSCH_value2enum_9[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 3, "n10" }, + { 4, 3, "n12" }, + { 5, 3, "n16" } +}; +static const unsigned int asn_MAP_nrofHARQ_ProcessesForPDSCH_enum2value_9[] = { + 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_nrofHARQ_ProcessesForPDSCH_specs_9 = { + asn_MAP_nrofHARQ_ProcessesForPDSCH_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_nrofHARQ_ProcessesForPDSCH_enum2value_9, /* 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_nrofHARQ_ProcessesForPDSCH_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_nrofHARQ_ProcessesForPDSCH_9 = { + "nrofHARQ-ProcessesForPDSCH", + "nrofHARQ-ProcessesForPDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9, + sizeof(asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9) + /sizeof(asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9[0]) - 1, /* 1 */ + asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9, /* Same as above */ + sizeof(asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9) + /sizeof(asn_DEF_nrofHARQ_ProcessesForPDSCH_tags_9[0]), /* 2 */ + { &asn_OER_type_nrofHARQ_ProcessesForPDSCH_constr_9, &asn_PER_type_nrofHARQ_ProcessesForPDSCH_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofHARQ_ProcessesForPDSCH_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_18[] = { + { ATF_POINTER, 2, offsetof(struct PDSCH_ServingCellConfig__ext1, maxMIMO_Layers), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxMIMO_Layers_constr_19, &asn_PER_memb_maxMIMO_Layers_constr_19, memb_maxMIMO_Layers_constraint_18 }, + 0, 0, /* No default value */ + "maxMIMO-Layers" + }, + { ATF_POINTER, 1, offsetof(struct 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_ext1_oms_18[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_18[] = { + { (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_ext1_specs_18 = { + sizeof(struct PDSCH_ServingCellConfig__ext1), + offsetof(struct PDSCH_ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_18, + 2, /* Count of tags in the map */ + asn_MAP_ext1_oms_18, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_18 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_18, + sizeof(asn_DEF_ext1_tags_18) + /sizeof(asn_DEF_ext1_tags_18[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_18, /* Same as above */ + sizeof(asn_DEF_ext1_tags_18) + /sizeof(asn_DEF_ext1_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_18, + 2, /* Elements count */ + &asn_SPC_ext1_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDSCH_ServingCellConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct PDSCH_ServingCellConfig, codeBlockGroupTransmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_codeBlockGroupTransmission_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codeBlockGroupTransmission" + }, + { ATF_POINTER, 4, offsetof(struct PDSCH_ServingCellConfig, xOverhead), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_xOverhead_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xOverhead" + }, + { ATF_POINTER, 3, offsetof(struct PDSCH_ServingCellConfig, nrofHARQ_ProcessesForPDSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofHARQ_ProcessesForPDSCH_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofHARQ-ProcessesForPDSCH" + }, + { ATF_POINTER, 2, offsetof(struct PDSCH_ServingCellConfig, pucch_Cell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Cell" + }, + { ATF_POINTER, 1, offsetof(struct PDSCH_ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ext1_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_PDSCH_ServingCellConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_PDSCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDSCH_ServingCellConfig_specs_1 = { + sizeof(struct PDSCH_ServingCellConfig), + offsetof(struct PDSCH_ServingCellConfig, _asn_ctx), + asn_MAP_PDSCH_ServingCellConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_PDSCH_ServingCellConfig_oms_1, /* Optional members */ + 4, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDSCH_ServingCellConfig = { + "PDSCH-ServingCellConfig", + "PDSCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_PDSCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_PDSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PDSCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PDSCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDSCH_ServingCellConfig_1, + 5, /* Elements count */ + &asn_SPC_PDSCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-ServingCellConfig.h b/src/codec_utils/RRC/PDSCH-ServingCellConfig.h new file mode 100644 index 000000000..0157a271d --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-ServingCellConfig.h @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_ServingCellConfig_H_ +#define _PDSCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ServCellIndex.h" +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR { + PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR_NOTHING, /* No components present */ + PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR_release, + PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR_setup +} PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR; +typedef enum PDSCH_ServingCellConfig__xOverhead { + PDSCH_ServingCellConfig__xOverhead_xOh6 = 0, + PDSCH_ServingCellConfig__xOverhead_xOh12 = 1, + PDSCH_ServingCellConfig__xOverhead_xOh18 = 2 +} e_PDSCH_ServingCellConfig__xOverhead; +typedef enum PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH { + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n2 = 0, + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n4 = 1, + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n6 = 2, + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n10 = 3, + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n12 = 4, + PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH_n16 = 5 +} e_PDSCH_ServingCellConfig__nrofHARQ_ProcessesForPDSCH; + +/* Forward declarations */ +struct PDSCH_CodeBlockGroupTransmission; + +/* PDSCH-ServingCellConfig */ +typedef struct PDSCH_ServingCellConfig { + struct PDSCH_ServingCellConfig__codeBlockGroupTransmission { + PDSCH_ServingCellConfig__codeBlockGroupTransmission_PR present; + union PDSCH_ServingCellConfig__codeBlockGroupTransmission_u { + NULL_t release; + struct PDSCH_CodeBlockGroupTransmission *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *codeBlockGroupTransmission; + long *xOverhead; /* OPTIONAL */ + long *nrofHARQ_ProcessesForPDSCH; /* OPTIONAL */ + ServCellIndex_t *pucch_Cell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} PDSCH_ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_xOverhead_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofHARQ_ProcessesForPDSCH_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_ServingCellConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_ServingCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.c b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.c new file mode 100644 index 000000000..765e56b4a --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.c @@ -0,0 +1,187 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-TimeDomainResourceAllocation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_mappingType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_k0_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startSymbolAndLength_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_mappingType_value2enum_3[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" } +}; +static const unsigned int asn_MAP_mappingType_enum2value_3[] = { + 0, /* typeA(0) */ + 1 /* typeB(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mappingType_specs_3 = { + asn_MAP_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mappingType_3 = { + "mappingType", + "mappingType", + &asn_OP_NativeEnumerated, + asn_DEF_mappingType_tags_3, + sizeof(asn_DEF_mappingType_tags_3) + /sizeof(asn_DEF_mappingType_tags_3[0]) - 1, /* 1 */ + asn_DEF_mappingType_tags_3, /* Same as above */ + sizeof(asn_DEF_mappingType_tags_3) + /sizeof(asn_DEF_mappingType_tags_3[0]), /* 2 */ + { &asn_OER_type_mappingType_constr_3, &asn_PER_type_mappingType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mappingType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocation_1[] = { + { ATF_POINTER, 1, offsetof(struct PDSCH_TimeDomainResourceAllocation, k0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_k0_constr_2, &asn_PER_memb_k0_constr_2, memb_k0_constraint_1 }, + 0, 0, /* No default value */ + "k0" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_TimeDomainResourceAllocation, mappingType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mappingType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PDSCH_TimeDomainResourceAllocation, startSymbolAndLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startSymbolAndLength_constr_6, &asn_PER_memb_startSymbolAndLength_constr_6, memb_startSymbolAndLength_constraint_1 }, + 0, 0, /* No default value */ + "startSymbolAndLength" + }, +}; +static const int asn_MAP_PDSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PDSCH_TimeDomainResourceAllocation_specs_1 = { + sizeof(struct PDSCH_TimeDomainResourceAllocation), + offsetof(struct PDSCH_TimeDomainResourceAllocation, _asn_ctx), + asn_MAP_PDSCH_TimeDomainResourceAllocation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PDSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocation = { + "PDSCH-TimeDomainResourceAllocation", + "PDSCH-TimeDomainResourceAllocation", + &asn_OP_SEQUENCE, + asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1, + sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PDSCH_TimeDomainResourceAllocation_1, + 3, /* Elements count */ + &asn_SPC_PDSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.h b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocation.h new file mode 100644 index 000000000..1e22503bb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_TimeDomainResourceAllocation_H_ +#define _PDSCH_TimeDomainResourceAllocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PDSCH_TimeDomainResourceAllocation__mappingType { + PDSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, + PDSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 +} e_PDSCH_TimeDomainResourceAllocation__mappingType; + +/* PDSCH-TimeDomainResourceAllocation */ +typedef struct PDSCH_TimeDomainResourceAllocation { + long *k0; /* OPTIONAL */ + long mappingType; + long startSymbolAndLength; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDSCH_TimeDomainResourceAllocation_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_mappingType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocation; +extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocation_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_TimeDomainResourceAllocation_H_ */ +#include diff --git a/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.c b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.c new file mode 100644 index 000000000..eca495a14 --- /dev/null +++ b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDSCH-TimeDomainResourceAllocationList.h" + +#include "PDSCH-TimeDomainResourceAllocation.h" +static asn_oer_constraints_t asn_OER_type_PDSCH_TimeDomainResourceAllocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_PDSCH_TimeDomainResourceAllocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PDSCH_TimeDomainResourceAllocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1 = { + sizeof(struct PDSCH_TimeDomainResourceAllocationList), + offsetof(struct PDSCH_TimeDomainResourceAllocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocationList = { + "PDSCH-TimeDomainResourceAllocationList", + "PDSCH-TimeDomainResourceAllocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1, + sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_PDSCH_TimeDomainResourceAllocationList_constr_1, &asn_PER_type_PDSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PDSCH_TimeDomainResourceAllocationList_1, + 1, /* Single element */ + &asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.h b/src/codec_utils/RRC/PDSCH-TimeDomainResourceAllocationList.h new file mode 100644 index 000000000..afa5b883d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDSCH_TimeDomainResourceAllocationList_H_ +#define _PDSCH_TimeDomainResourceAllocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PDSCH_TimeDomainResourceAllocation; + +/* PDSCH-TimeDomainResourceAllocationList */ +typedef struct PDSCH_TimeDomainResourceAllocationList { + A_SEQUENCE_OF(struct PDSCH_TimeDomainResourceAllocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PDSCH_TimeDomainResourceAllocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocationList; +extern asn_SET_OF_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_PDSCH_TimeDomainResourceAllocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDSCH_TimeDomainResourceAllocationList_H_ */ +#include diff --git a/src/codec_utils/RRC/PDU-SessionID.c b/src/codec_utils/RRC/PDU-SessionID.c new file mode 100644 index 000000000..5ef3629d0 --- /dev/null +++ b/src/codec_utils/RRC/PDU-SessionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PDU-SessionID.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PDU_SessionID_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PDU_SessionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PDU_SessionID = { + "PDU-SessionID", + "PDU-SessionID", + &asn_OP_NativeInteger, + asn_DEF_PDU_SessionID_tags_1, + sizeof(asn_DEF_PDU_SessionID_tags_1) + /sizeof(asn_DEF_PDU_SessionID_tags_1[0]), /* 1 */ + asn_DEF_PDU_SessionID_tags_1, /* Same as above */ + sizeof(asn_DEF_PDU_SessionID_tags_1) + /sizeof(asn_DEF_PDU_SessionID_tags_1[0]), /* 1 */ + { &asn_OER_type_PDU_SessionID_constr_1, &asn_PER_type_PDU_SessionID_constr_1, PDU_SessionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PDU-SessionID.h b/src/codec_utils/RRC/PDU-SessionID.h new file mode 100644 index 000000000..bd3fa266b --- /dev/null +++ b/src/codec_utils/RRC/PDU-SessionID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PDU_SessionID_H_ +#define _PDU_SessionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PDU-SessionID */ +typedef long PDU_SessionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PDU_SessionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PDU_SessionID; +asn_struct_free_f PDU_SessionID_free; +asn_struct_print_f PDU_SessionID_print; +asn_constr_check_f PDU_SessionID_constraint; +ber_type_decoder_f PDU_SessionID_decode_ber; +der_type_encoder_f PDU_SessionID_encode_der; +xer_type_decoder_f PDU_SessionID_decode_xer; +xer_type_encoder_f PDU_SessionID_encode_xer; +oer_type_decoder_f PDU_SessionID_decode_oer; +oer_type_encoder_f PDU_SessionID_encode_oer; +per_type_decoder_f PDU_SessionID_decode_uper; +per_type_encoder_f PDU_SessionID_encode_uper; +per_type_decoder_f PDU_SessionID_decode_aper; +per_type_encoder_f PDU_SessionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PDU_SessionID_H_ */ +#include diff --git a/src/codec_utils/RRC/PHR-Config.c b/src/codec_utils/RRC/PHR-Config.c new file mode 100644 index 000000000..4cfd77968 --- /dev/null +++ b/src/codec_utils/RRC/PHR-Config.c @@ -0,0 +1,334 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_phr_PeriodicTimer_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phr_ProhibitTimer_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phr_Tx_PowerFactorChange_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_phr_ModeOtherCG_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_phr_PeriodicTimer_specs_2 = { + asn_MAP_phr_PeriodicTimer_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_phr_PeriodicTimer_2 = { + "phr-PeriodicTimer", + "phr-PeriodicTimer", + &asn_OP_NativeEnumerated, + asn_DEF_phr_PeriodicTimer_tags_2, + sizeof(asn_DEF_phr_PeriodicTimer_tags_2) + /sizeof(asn_DEF_phr_PeriodicTimer_tags_2[0]) - 1, /* 1 */ + asn_DEF_phr_PeriodicTimer_tags_2, /* Same as above */ + sizeof(asn_DEF_phr_PeriodicTimer_tags_2) + /sizeof(asn_DEF_phr_PeriodicTimer_tags_2[0]), /* 2 */ + { &asn_OER_type_phr_PeriodicTimer_constr_2, &asn_PER_type_phr_PeriodicTimer_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_phr_PeriodicTimer_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_phr_ProhibitTimer_specs_11 = { + asn_MAP_phr_ProhibitTimer_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_phr_ProhibitTimer_11 = { + "phr-ProhibitTimer", + "phr-ProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_phr_ProhibitTimer_tags_11, + sizeof(asn_DEF_phr_ProhibitTimer_tags_11) + /sizeof(asn_DEF_phr_ProhibitTimer_tags_11[0]) - 1, /* 1 */ + asn_DEF_phr_ProhibitTimer_tags_11, /* Same as above */ + sizeof(asn_DEF_phr_ProhibitTimer_tags_11) + /sizeof(asn_DEF_phr_ProhibitTimer_tags_11[0]), /* 2 */ + { &asn_OER_type_phr_ProhibitTimer_constr_11, &asn_PER_type_phr_ProhibitTimer_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_phr_ProhibitTimer_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_phr_Tx_PowerFactorChange_value2enum_20[] = { + { 0, 3, "dB1" }, + { 1, 3, "dB3" }, + { 2, 3, "dB6" }, + { 3, 8, "infinity" } +}; +static const unsigned int asn_MAP_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_phr_Tx_PowerFactorChange_specs_20 = { + asn_MAP_phr_Tx_PowerFactorChange_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_phr_Tx_PowerFactorChange_20 = { + "phr-Tx-PowerFactorChange", + "phr-Tx-PowerFactorChange", + &asn_OP_NativeEnumerated, + asn_DEF_phr_Tx_PowerFactorChange_tags_20, + sizeof(asn_DEF_phr_Tx_PowerFactorChange_tags_20) + /sizeof(asn_DEF_phr_Tx_PowerFactorChange_tags_20[0]) - 1, /* 1 */ + asn_DEF_phr_Tx_PowerFactorChange_tags_20, /* Same as above */ + sizeof(asn_DEF_phr_Tx_PowerFactorChange_tags_20) + /sizeof(asn_DEF_phr_Tx_PowerFactorChange_tags_20[0]), /* 2 */ + { &asn_OER_type_phr_Tx_PowerFactorChange_constr_20, &asn_PER_type_phr_Tx_PowerFactorChange_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_phr_Tx_PowerFactorChange_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_phr_ModeOtherCG_value2enum_28[] = { + { 0, 4, "real" }, + { 1, 7, "virtual" } +}; +static const unsigned int asn_MAP_phr_ModeOtherCG_enum2value_28[] = { + 0, /* real(0) */ + 1 /* virtual(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_phr_ModeOtherCG_specs_28 = { + asn_MAP_phr_ModeOtherCG_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_phr_ModeOtherCG_28 = { + "phr-ModeOtherCG", + "phr-ModeOtherCG", + &asn_OP_NativeEnumerated, + asn_DEF_phr_ModeOtherCG_tags_28, + sizeof(asn_DEF_phr_ModeOtherCG_tags_28) + /sizeof(asn_DEF_phr_ModeOtherCG_tags_28[0]) - 1, /* 1 */ + asn_DEF_phr_ModeOtherCG_tags_28, /* Same as above */ + sizeof(asn_DEF_phr_ModeOtherCG_tags_28) + /sizeof(asn_DEF_phr_ModeOtherCG_tags_28[0]), /* 2 */ + { &asn_OER_type_phr_ModeOtherCG_constr_28, &asn_PER_type_phr_ModeOtherCG_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_phr_ModeOtherCG_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PHR_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PHR_Config, phr_PeriodicTimer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_phr_PeriodicTimer_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-PeriodicTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct PHR_Config, phr_ProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_phr_ProhibitTimer_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-ProhibitTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct PHR_Config, phr_Tx_PowerFactorChange), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_phr_Tx_PowerFactorChange_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-Tx-PowerFactorChange" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 PHR_Config, phr_ModeOtherCG), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_phr_ModeOtherCG_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phr-ModeOtherCG" + }, +}; +static const ber_tlv_tag_t asn_DEF_PHR_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PHR_Config_specs_1 = { + sizeof(struct PHR_Config), + offsetof(struct PHR_Config, _asn_ctx), + asn_MAP_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_PHR_Config = { + "PHR-Config", + "PHR-Config", + &asn_OP_SEQUENCE, + asn_DEF_PHR_Config_tags_1, + sizeof(asn_DEF_PHR_Config_tags_1) + /sizeof(asn_DEF_PHR_Config_tags_1[0]), /* 1 */ + asn_DEF_PHR_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PHR_Config_tags_1) + /sizeof(asn_DEF_PHR_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PHR_Config_1, + 7, /* Elements count */ + &asn_SPC_PHR_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PHR-Config.h b/src/codec_utils/RRC/PHR-Config.h new file mode 100644 index 000000000..68dcec0c9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PHR_Config_H_ +#define _PHR_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PHR_Config__phr_PeriodicTimer { + PHR_Config__phr_PeriodicTimer_sf10 = 0, + PHR_Config__phr_PeriodicTimer_sf20 = 1, + PHR_Config__phr_PeriodicTimer_sf50 = 2, + PHR_Config__phr_PeriodicTimer_sf100 = 3, + PHR_Config__phr_PeriodicTimer_sf200 = 4, + PHR_Config__phr_PeriodicTimer_sf500 = 5, + PHR_Config__phr_PeriodicTimer_sf1000 = 6, + PHR_Config__phr_PeriodicTimer_infinity = 7 +} e_PHR_Config__phr_PeriodicTimer; +typedef enum PHR_Config__phr_ProhibitTimer { + PHR_Config__phr_ProhibitTimer_sf0 = 0, + PHR_Config__phr_ProhibitTimer_sf10 = 1, + PHR_Config__phr_ProhibitTimer_sf20 = 2, + PHR_Config__phr_ProhibitTimer_sf50 = 3, + PHR_Config__phr_ProhibitTimer_sf100 = 4, + PHR_Config__phr_ProhibitTimer_sf200 = 5, + PHR_Config__phr_ProhibitTimer_sf500 = 6, + PHR_Config__phr_ProhibitTimer_sf1000 = 7 +} e_PHR_Config__phr_ProhibitTimer; +typedef enum PHR_Config__phr_Tx_PowerFactorChange { + PHR_Config__phr_Tx_PowerFactorChange_dB1 = 0, + PHR_Config__phr_Tx_PowerFactorChange_dB3 = 1, + PHR_Config__phr_Tx_PowerFactorChange_dB6 = 2, + PHR_Config__phr_Tx_PowerFactorChange_infinity = 3 +} e_PHR_Config__phr_Tx_PowerFactorChange; +typedef enum PHR_Config__phr_ModeOtherCG { + PHR_Config__phr_ModeOtherCG_real = 0, + PHR_Config__phr_ModeOtherCG_virtual = 1 +} e_PHR_Config__phr_ModeOtherCG; + +/* PHR-Config */ +typedef struct 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; +} PHR_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_phr_PeriodicTimer_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_phr_ProhibitTimer_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_phr_Tx_PowerFactorChange_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_phr_ModeOtherCG_28; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PHR_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PHR_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PHR_Config_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PHR_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-IdentitY.c b/src/codec_utils/RRC/PLMN-IdentitY.c new file mode 100644 index 000000000..2121d8d04 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-IdentitY.h" + +#include "MCC.h" +asn_TYPE_member_t asn_MBR_PLMN_IdentitY_1[] = { + { ATF_POINTER, 1, offsetof(struct PLMN_IdentitY, mcc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MCC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcc" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentitY, mnc), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MNC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mnc" + }, +}; +static const int asn_MAP_PLMN_IdentitY_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PLMN_IdentitY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_IdentitY_specs_1 = { + sizeof(struct PLMN_IdentitY), + offsetof(struct PLMN_IdentitY, _asn_ctx), + asn_MAP_PLMN_IdentitY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PLMN_IdentitY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_IdentitY = { + "PLMN-IdentitY", + "PLMN-IdentitY", + &asn_OP_SEQUENCE, + asn_DEF_PLMN_IdentitY_tags_1, + sizeof(asn_DEF_PLMN_IdentitY_tags_1) + /sizeof(asn_DEF_PLMN_IdentitY_tags_1[0]), /* 1 */ + asn_DEF_PLMN_IdentitY_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_IdentitY_tags_1) + /sizeof(asn_DEF_PLMN_IdentitY_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PLMN_IdentitY_1, + 2, /* Elements count */ + &asn_SPC_PLMN_IdentitY_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-IdentitY.h b/src/codec_utils/RRC/PLMN-IdentitY.h new file mode 100644 index 000000000..405abc7b2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_IdentitY_H_ +#define _PLMN_IdentitY_H_ + + +#include + +/* Including external dependencies */ +#include "MNC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MCC; + +/* PLMN-IdentitY */ +typedef struct PLMN_IdentitY { + struct MCC *mcc; /* OPTIONAL */ + MNC_t mnc; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_IdentitY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentitY; +extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_IdentitY_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_IdentitY_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_IdentitY_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.c b/src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.c new file mode 100644 index 000000000..617b7c96d --- /dev/null +++ b/src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.c @@ -0,0 +1,99 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-Identity-EUTRA-5GC.h" + +#include "PLMN-IdentitY.h" +static int +memb_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_oer_constraints_t asn_OER_memb_plmn_index_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_PLMN_Identity_EUTRA_5GC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_PLMN_Identity_EUTRA_5GC_1[] = { + { ATF_POINTER, 0, offsetof(struct PLMN_Identity_EUTRA_5GC, choice.plmn_Identity_EUTRA_5GC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity-EUTRA-5GC" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_Identity_EUTRA_5GC, choice.plmn_index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_plmn_index_constr_3, &asn_PER_memb_plmn_index_constr_3, memb_plmn_index_constraint_1 }, + 0, 0, /* No default value */ + "plmn-index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_Identity_EUTRA_5GC_specs_1 = { + sizeof(struct PLMN_Identity_EUTRA_5GC), + offsetof(struct PLMN_Identity_EUTRA_5GC, _asn_ctx), + offsetof(struct PLMN_Identity_EUTRA_5GC, present), + sizeof(((struct PLMN_Identity_EUTRA_5GC *)0)->present), + asn_MAP_PLMN_Identity_EUTRA_5GC_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_PLMN_Identity_EUTRA_5GC_constr_1, &asn_PER_type_PLMN_Identity_EUTRA_5GC_constr_1, CHOICE_constraint }, + asn_MBR_PLMN_Identity_EUTRA_5GC_1, + 2, /* Elements count */ + &asn_SPC_PLMN_Identity_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.h b/src/codec_utils/RRC/PLMN-Identity-EUTRA-5GC.h new file mode 100644 index 000000000..76133f0ca --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_Identity_EUTRA_5GC_H_ +#define _PLMN_Identity_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PLMN_Identity_EUTRA_5GC_PR { + PLMN_Identity_EUTRA_5GC_PR_NOTHING, /* No components present */ + PLMN_Identity_EUTRA_5GC_PR_plmn_Identity_EUTRA_5GC, + PLMN_Identity_EUTRA_5GC_PR_plmn_index +} PLMN_Identity_EUTRA_5GC_PR; + +/* Forward declarations */ +struct PLMN_IdentitY; + +/* PLMN-Identity-EUTRA-5GC */ +typedef struct PLMN_Identity_EUTRA_5GC { + PLMN_Identity_EUTRA_5GC_PR present; + union PLMN_Identity_EUTRA_5GC_u { + struct PLMN_IdentitY *plmn_Identity_EUTRA_5GC; + long plmn_index; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_Identity_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity_EUTRA_5GC; +extern asn_CHOICE_specifics_t asn_SPC_PLMN_Identity_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_Identity_EUTRA_5GC_1[2]; +extern asn_per_constraints_t asn_PER_type_PLMN_Identity_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_Identity_EUTRA_5GC_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-IdentityInfo.c b/src/codec_utils/RRC/PLMN-IdentityInfo.c new file mode 100644 index 000000000..c665b6bf7 --- /dev/null +++ b/src/codec_utils/RRC/PLMN-IdentityInfo.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-IdentityInfo.h" + +#include "PLMN-IdentitY.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_plmn_IdentityList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cellReservedForOperatorUse_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_plmn_IdentityList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_plmn_IdentityList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_plmn_IdentityList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_plmn_IdentityList_specs_2 = { + sizeof(struct PLMN_IdentityInfo__plmn_IdentityList), + offsetof(struct PLMN_IdentityInfo__plmn_IdentityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_plmn_IdentityList_2 = { + "plmn-IdentityList", + "plmn-IdentityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_plmn_IdentityList_tags_2, + sizeof(asn_DEF_plmn_IdentityList_tags_2) + /sizeof(asn_DEF_plmn_IdentityList_tags_2[0]) - 1, /* 1 */ + asn_DEF_plmn_IdentityList_tags_2, /* Same as above */ + sizeof(asn_DEF_plmn_IdentityList_tags_2) + /sizeof(asn_DEF_plmn_IdentityList_tags_2[0]), /* 2 */ + { &asn_OER_type_plmn_IdentityList_constr_2, &asn_PER_type_plmn_IdentityList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_plmn_IdentityList_2, + 1, /* Single element */ + &asn_SPC_plmn_IdentityList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cellReservedForOperatorUse_value2enum_7[] = { + { 0, 8, "reserved" }, + { 1, 11, "notReserved" } +}; +static const unsigned int asn_MAP_cellReservedForOperatorUse_enum2value_7[] = { + 1, /* notReserved(1) */ + 0 /* reserved(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cellReservedForOperatorUse_specs_7 = { + asn_MAP_cellReservedForOperatorUse_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cellReservedForOperatorUse_7 = { + "cellReservedForOperatorUse", + "cellReservedForOperatorUse", + &asn_OP_NativeEnumerated, + asn_DEF_cellReservedForOperatorUse_tags_7, + sizeof(asn_DEF_cellReservedForOperatorUse_tags_7) + /sizeof(asn_DEF_cellReservedForOperatorUse_tags_7[0]) - 1, /* 1 */ + asn_DEF_cellReservedForOperatorUse_tags_7, /* Same as above */ + sizeof(asn_DEF_cellReservedForOperatorUse_tags_7) + /sizeof(asn_DEF_cellReservedForOperatorUse_tags_7[0]), /* 2 */ + { &asn_OER_type_cellReservedForOperatorUse_constr_7, &asn_PER_type_cellReservedForOperatorUse_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cellReservedForOperatorUse_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PLMN_IdentityInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, plmn_IdentityList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_plmn_IdentityList_2, + 0, + { &asn_OER_memb_plmn_IdentityList_constr_2, &asn_PER_memb_plmn_IdentityList_constr_2, memb_plmn_IdentityList_constraint_1 }, + 0, 0, /* No default value */ + "plmn-IdentityList" + }, + { ATF_POINTER, 2, offsetof(struct PLMN_IdentityInfo, trackingAreaCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode" + }, + { ATF_POINTER, 1, offsetof(struct PLMN_IdentityInfo, ranac), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranac" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, cellIdentity), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, cellReservedForOperatorUse), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cellReservedForOperatorUse_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReservedForOperatorUse" + }, +}; +static const int asn_MAP_PLMN_IdentityInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_PLMN_IdentityInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_IdentityInfo_specs_1 = { + sizeof(struct PLMN_IdentityInfo), + offsetof(struct PLMN_IdentityInfo, _asn_ctx), + asn_MAP_PLMN_IdentityInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_PLMN_IdentityInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfo = { + "PLMN-IdentityInfo", + "PLMN-IdentityInfo", + &asn_OP_SEQUENCE, + asn_DEF_PLMN_IdentityInfo_tags_1, + sizeof(asn_DEF_PLMN_IdentityInfo_tags_1) + /sizeof(asn_DEF_PLMN_IdentityInfo_tags_1[0]), /* 1 */ + asn_DEF_PLMN_IdentityInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_IdentityInfo_tags_1) + /sizeof(asn_DEF_PLMN_IdentityInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PLMN_IdentityInfo_1, + 5, /* Elements count */ + &asn_SPC_PLMN_IdentityInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-IdentityInfo.h b/src/codec_utils/RRC/PLMN-IdentityInfo.h new file mode 100644 index 000000000..25d8af4a5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_IdentityInfo_H_ +#define _PLMN_IdentityInfo_H_ + + +#include + +/* Including external dependencies */ +#include "TrackingAreaCode.h" +#include "RAN-AreaCode.h" +#include "CellIdentity.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PLMN_IdentityInfo__cellReservedForOperatorUse { + PLMN_IdentityInfo__cellReservedForOperatorUse_reserved = 0, + PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved = 1 +} e_PLMN_IdentityInfo__cellReservedForOperatorUse; + +/* Forward declarations */ +struct PLMN_IdentitY; + +/* PLMN-IdentityInfo */ +typedef struct PLMN_IdentityInfo { + struct PLMN_IdentityInfo__plmn_IdentityList { + A_SEQUENCE_OF(struct PLMN_IdentitY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } plmn_IdentityList; + TrackingAreaCode_t *trackingAreaCode; /* OPTIONAL */ + RAN_AreaCode_t *ranac; /* OPTIONAL */ + 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; +} PLMN_IdentityInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_cellReservedForOperatorUse_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_IdentityInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_IdentityInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_IdentityInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-IdentityInfoList.c b/src/codec_utils/RRC/PLMN-IdentityInfoList.c new file mode 100644 index 000000000..43c0cf97e --- /dev/null +++ b/src/codec_utils/RRC/PLMN-IdentityInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-IdentityInfoList.h" + +#include "PLMN-IdentityInfo.h" +static asn_oer_constraints_t asn_OER_type_PLMN_IdentityInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +asn_per_constraints_t asn_PER_type_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_PLMN_IdentityInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PLMN_IdentityInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PLMN_IdentityInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityInfoList_specs_1 = { + sizeof(struct PLMN_IdentityInfoList), + offsetof(struct PLMN_IdentityInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfoList = { + "PLMN-IdentityInfoList", + "PLMN-IdentityInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PLMN_IdentityInfoList_tags_1, + sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1) + /sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ + asn_DEF_PLMN_IdentityInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1) + /sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_IdentityInfoList_constr_1, &asn_PER_type_PLMN_IdentityInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PLMN_IdentityInfoList_1, + 1, /* Single element */ + &asn_SPC_PLMN_IdentityInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-IdentityInfoList.h b/src/codec_utils/RRC/PLMN-IdentityInfoList.h new file mode 100644 index 000000000..898719c1a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_IdentityInfoList_H_ +#define _PLMN_IdentityInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentityInfo; + +/* PLMN-IdentityInfoList */ +typedef struct PLMN_IdentityInfoList { + A_SEQUENCE_OF(struct PLMN_IdentityInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_IdentityInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfoList; +extern asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_IdentityInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_PLMN_IdentityInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_IdentityInfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.c b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.c new file mode 100644 index 000000000..48f6ca984 --- /dev/null +++ b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-IdentityList-EUTRA-5GC.h" + +#include "PLMN-Identity-EUTRA-5GC.h" +static asn_oer_constraints_t asn_OER_type_PLMN_IdentityList_EUTRA_5GC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +asn_per_constraints_t asn_PER_type_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_PLMN_IdentityList_EUTRA_5GC_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_PLMN_Identity_EUTRA_5GC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityList_EUTRA_5GC_specs_1 = { + sizeof(struct PLMN_IdentityList_EUTRA_5GC), + offsetof(struct PLMN_IdentityList_EUTRA_5GC, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityList_EUTRA_5GC = { + "PLMN-IdentityList-EUTRA-5GC", + "PLMN-IdentityList-EUTRA-5GC", + &asn_OP_SEQUENCE_OF, + asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1, + sizeof(asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1[0]), /* 1 */ + asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1) + /sizeof(asn_DEF_PLMN_IdentityList_EUTRA_5GC_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_IdentityList_EUTRA_5GC_constr_1, &asn_PER_type_PLMN_IdentityList_EUTRA_5GC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PLMN_IdentityList_EUTRA_5GC_1, + 1, /* Single element */ + &asn_SPC_PLMN_IdentityList_EUTRA_5GC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.h b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-5GC.h new file mode 100644 index 000000000..6ce590c8d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_IdentityList_EUTRA_5GC_H_ +#define _PLMN_IdentityList_EUTRA_5GC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_Identity_EUTRA_5GC; + +/* PLMN-IdentityList-EUTRA-5GC */ +typedef struct PLMN_IdentityList_EUTRA_5GC { + A_SEQUENCE_OF(struct PLMN_Identity_EUTRA_5GC) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_IdentityList_EUTRA_5GC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityList_EUTRA_5GC; +extern asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityList_EUTRA_5GC_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_IdentityList_EUTRA_5GC_1[1]; +extern asn_per_constraints_t asn_PER_type_PLMN_IdentityList_EUTRA_5GC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_IdentityList_EUTRA_5GC_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.c b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.c new file mode 100644 index 000000000..bed7079a4 --- /dev/null +++ b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-IdentityList-EUTRA-EPC.h" + +#include "PLMN-IdentitY.h" +static asn_oer_constraints_t asn_OER_type_PLMN_IdentityList_EUTRA_EPC_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +asn_per_constraints_t asn_PER_type_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_PLMN_IdentityList_EUTRA_EPC_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityList_EUTRA_EPC_specs_1 = { + sizeof(struct PLMN_IdentityList_EUTRA_EPC), + offsetof(struct PLMN_IdentityList_EUTRA_EPC, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityList_EUTRA_EPC = { + "PLMN-IdentityList-EUTRA-EPC", + "PLMN-IdentityList-EUTRA-EPC", + &asn_OP_SEQUENCE_OF, + asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1, + sizeof(asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1[0]), /* 1 */ + asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1) + /sizeof(asn_DEF_PLMN_IdentityList_EUTRA_EPC_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_IdentityList_EUTRA_EPC_constr_1, &asn_PER_type_PLMN_IdentityList_EUTRA_EPC_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PLMN_IdentityList_EUTRA_EPC_1, + 1, /* Single element */ + &asn_SPC_PLMN_IdentityList_EUTRA_EPC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.h b/src/codec_utils/RRC/PLMN-IdentityList-EUTRA-EPC.h new file mode 100644 index 000000000..4e98b40a0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_IdentityList_EUTRA_EPC_H_ +#define _PLMN_IdentityList_EUTRA_EPC_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentitY; + +/* PLMN-IdentityList-EUTRA-EPC */ +typedef struct PLMN_IdentityList_EUTRA_EPC { + A_SEQUENCE_OF(struct PLMN_IdentitY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_IdentityList_EUTRA_EPC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityList_EUTRA_EPC; +extern asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityList_EUTRA_EPC_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_IdentityList_EUTRA_EPC_1[1]; +extern asn_per_constraints_t asn_PER_type_PLMN_IdentityList_EUTRA_EPC_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_IdentityList_EUTRA_EPC_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaCell.c b/src/codec_utils/RRC/PLMN-RAN-AreaCell.c new file mode 100644 index 000000000..e2281661f --- /dev/null +++ b/src/codec_utils/RRC/PLMN-RAN-AreaCell.c @@ -0,0 +1,142 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-RAN-AreaCell.h" + +#include "PLMN-IdentitY.h" +static int +memb_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_oer_constraints_t asn_OER_type_ran_AreaCells_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ran_AreaCells_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_ran_AreaCells_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)), + 0, + &asn_DEF_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ran_AreaCells_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ran_AreaCells_specs_3 = { + sizeof(struct PLMN_RAN_AreaCell__ran_AreaCells), + offsetof(struct 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_ran_AreaCells_3 = { + "ran-AreaCells", + "ran-AreaCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_ran_AreaCells_tags_3, + sizeof(asn_DEF_ran_AreaCells_tags_3) + /sizeof(asn_DEF_ran_AreaCells_tags_3[0]) - 1, /* 1 */ + asn_DEF_ran_AreaCells_tags_3, /* Same as above */ + sizeof(asn_DEF_ran_AreaCells_tags_3) + /sizeof(asn_DEF_ran_AreaCells_tags_3[0]), /* 2 */ + { &asn_OER_type_ran_AreaCells_constr_3, &asn_PER_type_ran_AreaCells_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ran_AreaCells_3, + 1, /* Single element */ + &asn_SPC_ran_AreaCells_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaCell_1[] = { + { ATF_POINTER, 1, offsetof(struct PLMN_RAN_AreaCell, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_RAN_AreaCell, ran_AreaCells), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ran_AreaCells_3, + 0, + { &asn_OER_memb_ran_AreaCells_constr_3, &asn_PER_memb_ran_AreaCells_constr_3, memb_ran_AreaCells_constraint_1 }, + 0, 0, /* No default value */ + "ran-AreaCells" + }, +}; +static const int asn_MAP_PLMN_RAN_AreaCell_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PLMN_RAN_AreaCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_RAN_AreaCell_specs_1 = { + sizeof(struct PLMN_RAN_AreaCell), + offsetof(struct PLMN_RAN_AreaCell, _asn_ctx), + asn_MAP_PLMN_RAN_AreaCell_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PLMN_RAN_AreaCell_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaCell = { + "PLMN-RAN-AreaCell", + "PLMN-RAN-AreaCell", + &asn_OP_SEQUENCE, + asn_DEF_PLMN_RAN_AreaCell_tags_1, + sizeof(asn_DEF_PLMN_RAN_AreaCell_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaCell_tags_1[0]), /* 1 */ + asn_DEF_PLMN_RAN_AreaCell_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_RAN_AreaCell_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PLMN_RAN_AreaCell_1, + 2, /* Elements count */ + &asn_SPC_PLMN_RAN_AreaCell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaCell.h b/src/codec_utils/RRC/PLMN-RAN-AreaCell.h new file mode 100644 index 000000000..1a25a7a8c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_RAN_AreaCell_H_ +#define _PLMN_RAN_AreaCell_H_ + + +#include + +/* Including external dependencies */ +#include "CellIdentity.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentitY; + +/* PLMN-RAN-AreaCell */ +typedef struct PLMN_RAN_AreaCell { + struct PLMN_IdentitY *plmn_Identity; /* OPTIONAL */ + struct PLMN_RAN_AreaCell__ran_AreaCells { + A_SEQUENCE_OF(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; +} PLMN_RAN_AreaCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaCell; +extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_RAN_AreaCell_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_RAN_AreaCell_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaCellList.c b/src/codec_utils/RRC/PLMN-RAN-AreaCellList.c new file mode 100644 index 000000000..399ff02a0 --- /dev/null +++ b/src/codec_utils/RRC/PLMN-RAN-AreaCellList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-RAN-AreaCellList.h" + +#include "PLMN-RAN-AreaCell.h" +static asn_oer_constraints_t asn_OER_type_PLMN_RAN_AreaCellList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_PLMN_RAN_AreaCellList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PLMN_RAN_AreaCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PLMN_RAN_AreaCellList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PLMN_RAN_AreaCellList_specs_1 = { + sizeof(struct PLMN_RAN_AreaCellList), + offsetof(struct PLMN_RAN_AreaCellList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaCellList = { + "PLMN-RAN-AreaCellList", + "PLMN-RAN-AreaCellList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PLMN_RAN_AreaCellList_tags_1, + sizeof(asn_DEF_PLMN_RAN_AreaCellList_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaCellList_tags_1[0]), /* 1 */ + asn_DEF_PLMN_RAN_AreaCellList_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_RAN_AreaCellList_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaCellList_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_RAN_AreaCellList_constr_1, &asn_PER_type_PLMN_RAN_AreaCellList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PLMN_RAN_AreaCellList_1, + 1, /* Single element */ + &asn_SPC_PLMN_RAN_AreaCellList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaCellList.h b/src/codec_utils/RRC/PLMN-RAN-AreaCellList.h new file mode 100644 index 000000000..6bda0392c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_RAN_AreaCellList_H_ +#define _PLMN_RAN_AreaCellList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_RAN_AreaCell; + +/* PLMN-RAN-AreaCellList */ +typedef struct PLMN_RAN_AreaCellList { + A_SEQUENCE_OF(struct PLMN_RAN_AreaCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_RAN_AreaCellList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaCellList; +extern asn_SET_OF_specifics_t asn_SPC_PLMN_RAN_AreaCellList_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaCellList_1[1]; +extern asn_per_constraints_t asn_PER_type_PLMN_RAN_AreaCellList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_RAN_AreaCellList_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaConfig.c b/src/codec_utils/RRC/PLMN-RAN-AreaConfig.c new file mode 100644 index 000000000..d2e1351dc --- /dev/null +++ b/src/codec_utils/RRC/PLMN-RAN-AreaConfig.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-RAN-AreaConfig.h" + +#include "PLMN-IdentitY.h" +#include "RAN-AreaConfig.h" +static int +memb_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_oer_constraints_t asn_OER_type_ran_Area_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ran_Area_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_ran_Area_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RAN_AreaConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ran_Area_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ran_Area_specs_3 = { + sizeof(struct PLMN_RAN_AreaConfig__ran_Area), + offsetof(struct 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_ran_Area_3 = { + "ran-Area", + "ran-Area", + &asn_OP_SEQUENCE_OF, + asn_DEF_ran_Area_tags_3, + sizeof(asn_DEF_ran_Area_tags_3) + /sizeof(asn_DEF_ran_Area_tags_3[0]) - 1, /* 1 */ + asn_DEF_ran_Area_tags_3, /* Same as above */ + sizeof(asn_DEF_ran_Area_tags_3) + /sizeof(asn_DEF_ran_Area_tags_3[0]), /* 2 */ + { &asn_OER_type_ran_Area_constr_3, &asn_PER_type_ran_Area_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ran_Area_3, + 1, /* Single element */ + &asn_SPC_ran_Area_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaConfig_1[] = { + { ATF_POINTER, 1, offsetof(struct PLMN_RAN_AreaConfig, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PLMN_RAN_AreaConfig, ran_Area), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ran_Area_3, + 0, + { &asn_OER_memb_ran_Area_constr_3, &asn_PER_memb_ran_Area_constr_3, memb_ran_Area_constraint_1 }, + 0, 0, /* No default value */ + "ran-Area" + }, +}; +static const int asn_MAP_PLMN_RAN_AreaConfig_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PLMN_RAN_AreaConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_RAN_AreaConfig_specs_1 = { + sizeof(struct PLMN_RAN_AreaConfig), + offsetof(struct PLMN_RAN_AreaConfig, _asn_ctx), + asn_MAP_PLMN_RAN_AreaConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PLMN_RAN_AreaConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaConfig = { + "PLMN-RAN-AreaConfig", + "PLMN-RAN-AreaConfig", + &asn_OP_SEQUENCE, + asn_DEF_PLMN_RAN_AreaConfig_tags_1, + sizeof(asn_DEF_PLMN_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaConfig_tags_1[0]), /* 1 */ + asn_DEF_PLMN_RAN_AreaConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PLMN_RAN_AreaConfig_1, + 2, /* Elements count */ + &asn_SPC_PLMN_RAN_AreaConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaConfig.h b/src/codec_utils/RRC/PLMN-RAN-AreaConfig.h new file mode 100644 index 000000000..7f9f273a4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_RAN_AreaConfig_H_ +#define _PLMN_RAN_AreaConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentitY; +struct RAN_AreaConfig; + +/* PLMN-RAN-AreaConfig */ +typedef struct PLMN_RAN_AreaConfig { + struct PLMN_IdentitY *plmn_Identity; /* OPTIONAL */ + struct PLMN_RAN_AreaConfig__ran_Area { + A_SEQUENCE_OF(struct 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; +} PLMN_RAN_AreaConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_RAN_AreaConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_RAN_AreaConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaConfigList.c b/src/codec_utils/RRC/PLMN-RAN-AreaConfigList.c new file mode 100644 index 000000000..171db8c75 --- /dev/null +++ b/src/codec_utils/RRC/PLMN-RAN-AreaConfigList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PLMN-RAN-AreaConfigList.h" + +#include "PLMN-RAN-AreaConfig.h" +static asn_oer_constraints_t asn_OER_type_PLMN_RAN_AreaConfigList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_PLMN_RAN_AreaConfigList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PLMN_RAN_AreaConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PLMN_RAN_AreaConfigList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PLMN_RAN_AreaConfigList_specs_1 = { + sizeof(struct PLMN_RAN_AreaConfigList), + offsetof(struct PLMN_RAN_AreaConfigList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaConfigList = { + "PLMN-RAN-AreaConfigList", + "PLMN-RAN-AreaConfigList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PLMN_RAN_AreaConfigList_tags_1, + sizeof(asn_DEF_PLMN_RAN_AreaConfigList_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaConfigList_tags_1[0]), /* 1 */ + asn_DEF_PLMN_RAN_AreaConfigList_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_RAN_AreaConfigList_tags_1) + /sizeof(asn_DEF_PLMN_RAN_AreaConfigList_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_RAN_AreaConfigList_constr_1, &asn_PER_type_PLMN_RAN_AreaConfigList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PLMN_RAN_AreaConfigList_1, + 1, /* Single element */ + &asn_SPC_PLMN_RAN_AreaConfigList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PLMN-RAN-AreaConfigList.h b/src/codec_utils/RRC/PLMN-RAN-AreaConfigList.h new file mode 100644 index 000000000..0e254c894 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_RAN_AreaConfigList_H_ +#define _PLMN_RAN_AreaConfigList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_RAN_AreaConfig; + +/* PLMN-RAN-AreaConfigList */ +typedef struct PLMN_RAN_AreaConfigList { + A_SEQUENCE_OF(struct PLMN_RAN_AreaConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PLMN_RAN_AreaConfigList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PLMN_RAN_AreaConfigList; +extern asn_SET_OF_specifics_t asn_SPC_PLMN_RAN_AreaConfigList_specs_1; +extern asn_TYPE_member_t asn_MBR_PLMN_RAN_AreaConfigList_1[1]; +extern asn_per_constraints_t asn_PER_type_PLMN_RAN_AreaConfigList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_RAN_AreaConfigList_H_ */ +#include diff --git a/src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.c b/src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.c new file mode 100644 index 000000000..e3b69dd4f --- /dev/null +++ b/src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PRACH-ResourceDedicatedBFR.h" + +#include "BFR-SSB-Resource.h" +#include "BFR-CSIRS-Resource.h" +static asn_oer_constraints_t asn_OER_type_PRACH_ResourceDedicatedBFR_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_PRACH_ResourceDedicatedBFR_1[] = { + { ATF_POINTER, 0, offsetof(struct PRACH_ResourceDedicatedBFR, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BFR_SSB_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, + { ATF_POINTER, 0, offsetof(struct PRACH_ResourceDedicatedBFR, choice.csi_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BFR_CSIRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PRACH_ResourceDedicatedBFR_specs_1 = { + sizeof(struct PRACH_ResourceDedicatedBFR), + offsetof(struct PRACH_ResourceDedicatedBFR, _asn_ctx), + offsetof(struct PRACH_ResourceDedicatedBFR, present), + sizeof(((struct PRACH_ResourceDedicatedBFR *)0)->present), + asn_MAP_PRACH_ResourceDedicatedBFR_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_PRACH_ResourceDedicatedBFR_constr_1, &asn_PER_type_PRACH_ResourceDedicatedBFR_constr_1, CHOICE_constraint }, + asn_MBR_PRACH_ResourceDedicatedBFR_1, + 2, /* Elements count */ + &asn_SPC_PRACH_ResourceDedicatedBFR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.h b/src/codec_utils/RRC/PRACH-ResourceDedicatedBFR.h new file mode 100644 index 000000000..d42302d54 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PRACH_ResourceDedicatedBFR_H_ +#define _PRACH_ResourceDedicatedBFR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PRACH_ResourceDedicatedBFR_PR { + PRACH_ResourceDedicatedBFR_PR_NOTHING, /* No components present */ + PRACH_ResourceDedicatedBFR_PR_ssb, + PRACH_ResourceDedicatedBFR_PR_csi_RS +} PRACH_ResourceDedicatedBFR_PR; + +/* Forward declarations */ +struct BFR_SSB_Resource; +struct BFR_CSIRS_Resource; + +/* PRACH-ResourceDedicatedBFR */ +typedef struct PRACH_ResourceDedicatedBFR { + PRACH_ResourceDedicatedBFR_PR present; + union PRACH_ResourceDedicatedBFR_u { + struct BFR_SSB_Resource *ssb; + struct BFR_CSIRS_Resource *csi_RS; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PRACH_ResourceDedicatedBFR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PRACH_ResourceDedicatedBFR; +extern asn_CHOICE_specifics_t asn_SPC_PRACH_ResourceDedicatedBFR_specs_1; +extern asn_TYPE_member_t asn_MBR_PRACH_ResourceDedicatedBFR_1[2]; +extern asn_per_constraints_t asn_PER_type_PRACH_ResourceDedicatedBFR_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PRACH_ResourceDedicatedBFR_H_ */ +#include diff --git a/src/codec_utils/RRC/PRB-Id.c b/src/codec_utils/RRC/PRB-Id.c new file mode 100644 index 000000000..6b4d4fc13 --- /dev/null +++ b/src/codec_utils/RRC/PRB-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PRB-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PRB_Id_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..274) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PRB_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PRB_Id = { + "PRB-Id", + "PRB-Id", + &asn_OP_NativeInteger, + asn_DEF_PRB_Id_tags_1, + sizeof(asn_DEF_PRB_Id_tags_1) + /sizeof(asn_DEF_PRB_Id_tags_1[0]), /* 1 */ + asn_DEF_PRB_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_PRB_Id_tags_1) + /sizeof(asn_DEF_PRB_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_PRB_Id_constr_1, &asn_PER_type_PRB_Id_constr_1, PRB_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PRB-Id.h b/src/codec_utils/RRC/PRB-Id.h new file mode 100644 index 000000000..6d7484ef1 --- /dev/null +++ b/src/codec_utils/RRC/PRB-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PRB_Id_H_ +#define _PRB_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PRB-Id */ +typedef long PRB_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PRB_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PRB_Id; +asn_struct_free_f PRB_Id_free; +asn_struct_print_f PRB_Id_print; +asn_constr_check_f PRB_Id_constraint; +ber_type_decoder_f PRB_Id_decode_ber; +der_type_encoder_f PRB_Id_encode_der; +xer_type_decoder_f PRB_Id_decode_xer; +xer_type_encoder_f PRB_Id_encode_xer; +oer_type_decoder_f PRB_Id_decode_oer; +oer_type_encoder_f PRB_Id_encode_oer; +per_type_decoder_f PRB_Id_decode_uper; +per_type_encoder_f PRB_Id_encode_uper; +per_type_decoder_f PRB_Id_decode_aper; +per_type_encoder_f PRB_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PRB_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/PTRS-DensityRecommendationDL.c b/src/codec_utils/RRC/PTRS-DensityRecommendationDL.c new file mode 100644 index 000000000..9d14798a8 --- /dev/null +++ b/src/codec_utils/RRC/PTRS-DensityRecommendationDL.c @@ -0,0 +1,255 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PTRS-DensityRecommendationDL.h" + +static int +memb_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_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_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_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_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_oer_constraints_t asn_OER_memb_frequencyDensity1_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_frequencyDensity2_constr_3 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity1_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity2_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity3_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PTRS_DensityRecommendationDL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationDL, frequencyDensity1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frequencyDensity1_constr_2, &asn_PER_memb_frequencyDensity1_constr_2, memb_frequencyDensity1_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationDL, frequencyDensity2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frequencyDensity2_constr_3, &asn_PER_memb_frequencyDensity2_constr_3, memb_frequencyDensity2_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationDL, timeDensity1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity1_constr_4, &asn_PER_memb_timeDensity1_constr_4, memb_timeDensity1_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationDL, timeDensity2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity2_constr_5, &asn_PER_memb_timeDensity2_constr_5, memb_timeDensity2_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationDL, timeDensity3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity3_constr_6, &asn_PER_memb_timeDensity3_constr_6, memb_timeDensity3_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity3" + }, +}; +static const ber_tlv_tag_t asn_DEF_PTRS_DensityRecommendationDL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PTRS_DensityRecommendationDL_specs_1 = { + sizeof(struct PTRS_DensityRecommendationDL), + offsetof(struct PTRS_DensityRecommendationDL, _asn_ctx), + asn_MAP_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_PTRS_DensityRecommendationDL = { + "PTRS-DensityRecommendationDL", + "PTRS-DensityRecommendationDL", + &asn_OP_SEQUENCE, + asn_DEF_PTRS_DensityRecommendationDL_tags_1, + sizeof(asn_DEF_PTRS_DensityRecommendationDL_tags_1) + /sizeof(asn_DEF_PTRS_DensityRecommendationDL_tags_1[0]), /* 1 */ + asn_DEF_PTRS_DensityRecommendationDL_tags_1, /* Same as above */ + sizeof(asn_DEF_PTRS_DensityRecommendationDL_tags_1) + /sizeof(asn_DEF_PTRS_DensityRecommendationDL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PTRS_DensityRecommendationDL_1, + 5, /* Elements count */ + &asn_SPC_PTRS_DensityRecommendationDL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PTRS-DensityRecommendationDL.h b/src/codec_utils/RRC/PTRS-DensityRecommendationDL.h new file mode 100644 index 000000000..e92f3f234 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PTRS_DensityRecommendationDL_H_ +#define _PTRS_DensityRecommendationDL_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PTRS-DensityRecommendationDL */ +typedef struct PTRS_DensityRecommendationDL { + long frequencyDensity1; + long frequencyDensity2; + long timeDensity1; + long timeDensity2; + long timeDensity3; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PTRS_DensityRecommendationDL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PTRS_DensityRecommendationDL; +extern asn_SEQUENCE_specifics_t asn_SPC_PTRS_DensityRecommendationDL_specs_1; +extern asn_TYPE_member_t asn_MBR_PTRS_DensityRecommendationDL_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PTRS_DensityRecommendationDL_H_ */ +#include diff --git a/src/codec_utils/RRC/PTRS-DensityRecommendationUL.c b/src/codec_utils/RRC/PTRS-DensityRecommendationUL.c new file mode 100644 index 000000000..5745fa4f2 --- /dev/null +++ b/src/codec_utils/RRC/PTRS-DensityRecommendationUL.c @@ -0,0 +1,470 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PTRS-DensityRecommendationUL.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_frequencyDensity1_constr_2 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_frequencyDensity2_constr_3 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity1_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity2_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity3_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sampleDensity1_constr_7 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sampleDensity2_constr_8 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sampleDensity3_constr_9 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sampleDensity4_constr_10 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sampleDensity5_constr_11 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PTRS_DensityRecommendationUL_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, frequencyDensity1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frequencyDensity1_constr_2, &asn_PER_memb_frequencyDensity1_constr_2, memb_frequencyDensity1_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, frequencyDensity2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_frequencyDensity2_constr_3, &asn_PER_memb_frequencyDensity2_constr_3, memb_frequencyDensity2_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, timeDensity1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity1_constr_4, &asn_PER_memb_timeDensity1_constr_4, memb_timeDensity1_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, timeDensity2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity2_constr_5, &asn_PER_memb_timeDensity2_constr_5, memb_timeDensity2_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, timeDensity3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDensity3_constr_6, &asn_PER_memb_timeDensity3_constr_6, memb_timeDensity3_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity3" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, sampleDensity1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sampleDensity1_constr_7, &asn_PER_memb_sampleDensity1_constr_7, memb_sampleDensity1_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, sampleDensity2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sampleDensity2_constr_8, &asn_PER_memb_sampleDensity2_constr_8, memb_sampleDensity2_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, sampleDensity3), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sampleDensity3_constr_9, &asn_PER_memb_sampleDensity3_constr_9, memb_sampleDensity3_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity3" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, sampleDensity4), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sampleDensity4_constr_10, &asn_PER_memb_sampleDensity4_constr_10, memb_sampleDensity4_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity4" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_DensityRecommendationUL, sampleDensity5), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sampleDensity5_constr_11, &asn_PER_memb_sampleDensity5_constr_11, memb_sampleDensity5_constraint_1 }, + 0, 0, /* No default value */ + "sampleDensity5" + }, +}; +static const ber_tlv_tag_t asn_DEF_PTRS_DensityRecommendationUL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PTRS_DensityRecommendationUL_specs_1 = { + sizeof(struct PTRS_DensityRecommendationUL), + offsetof(struct PTRS_DensityRecommendationUL, _asn_ctx), + asn_MAP_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_PTRS_DensityRecommendationUL = { + "PTRS-DensityRecommendationUL", + "PTRS-DensityRecommendationUL", + &asn_OP_SEQUENCE, + asn_DEF_PTRS_DensityRecommendationUL_tags_1, + sizeof(asn_DEF_PTRS_DensityRecommendationUL_tags_1) + /sizeof(asn_DEF_PTRS_DensityRecommendationUL_tags_1[0]), /* 1 */ + asn_DEF_PTRS_DensityRecommendationUL_tags_1, /* Same as above */ + sizeof(asn_DEF_PTRS_DensityRecommendationUL_tags_1) + /sizeof(asn_DEF_PTRS_DensityRecommendationUL_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PTRS_DensityRecommendationUL_1, + 10, /* Elements count */ + &asn_SPC_PTRS_DensityRecommendationUL_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PTRS-DensityRecommendationUL.h b/src/codec_utils/RRC/PTRS-DensityRecommendationUL.h new file mode 100644 index 000000000..2686d7662 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PTRS_DensityRecommendationUL_H_ +#define _PTRS_DensityRecommendationUL_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PTRS-DensityRecommendationUL */ +typedef struct 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; +} PTRS_DensityRecommendationUL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PTRS_DensityRecommendationUL; +extern asn_SEQUENCE_specifics_t asn_SPC_PTRS_DensityRecommendationUL_specs_1; +extern asn_TYPE_member_t asn_MBR_PTRS_DensityRecommendationUL_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PTRS_DensityRecommendationUL_H_ */ +#include diff --git a/src/codec_utils/RRC/PTRS-DownlinkConfig.c b/src/codec_utils/RRC/PTRS-DownlinkConfig.c new file mode 100644 index 000000000..5cfe1e3eb --- /dev/null +++ b/src/codec_utils/RRC/PTRS-DownlinkConfig.c @@ -0,0 +1,390 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_oer_constraints_t asn_OER_memb_Member_constr_3 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_frequencyDensity_constr_2 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_timeDensity_constr_4 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceElementOffset_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_frequencyDensity_constr_2 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity_constr_4 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_epre_Ratio_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_frequencyDensity_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_3, &asn_PER_memb_Member_constr_3, memb_NativeInteger_constraint_2 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_frequencyDensity_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_frequencyDensity_specs_2 = { + sizeof(struct PTRS_DownlinkConfig__frequencyDensity), + offsetof(struct PTRS_DownlinkConfig__frequencyDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_frequencyDensity_2 = { + "frequencyDensity", + "frequencyDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_frequencyDensity_tags_2, + sizeof(asn_DEF_frequencyDensity_tags_2) + /sizeof(asn_DEF_frequencyDensity_tags_2[0]) - 1, /* 1 */ + asn_DEF_frequencyDensity_tags_2, /* Same as above */ + sizeof(asn_DEF_frequencyDensity_tags_2) + /sizeof(asn_DEF_frequencyDensity_tags_2[0]), /* 2 */ + { &asn_OER_type_frequencyDensity_constr_2, &asn_PER_type_frequencyDensity_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_frequencyDensity_2, + 1, /* Single element */ + &asn_SPC_frequencyDensity_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_timeDensity_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_5, &asn_PER_memb_Member_constr_5, memb_NativeInteger_constraint_4 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_timeDensity_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_timeDensity_specs_4 = { + sizeof(struct PTRS_DownlinkConfig__timeDensity), + offsetof(struct PTRS_DownlinkConfig__timeDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_timeDensity_4 = { + "timeDensity", + "timeDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_timeDensity_tags_4, + sizeof(asn_DEF_timeDensity_tags_4) + /sizeof(asn_DEF_timeDensity_tags_4[0]) - 1, /* 1 */ + asn_DEF_timeDensity_tags_4, /* Same as above */ + sizeof(asn_DEF_timeDensity_tags_4) + /sizeof(asn_DEF_timeDensity_tags_4[0]), /* 2 */ + { &asn_OER_type_timeDensity_constr_4, &asn_PER_type_timeDensity_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_timeDensity_4, + 1, /* Single element */ + &asn_SPC_timeDensity_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceElementOffset_value2enum_7[] = { + { 0, 8, "offset01" }, + { 1, 8, "offset10" }, + { 2, 8, "offset11" } +}; +static const unsigned int asn_MAP_resourceElementOffset_enum2value_7[] = { + 0, /* offset01(0) */ + 1, /* offset10(1) */ + 2 /* offset11(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceElementOffset_specs_7 = { + asn_MAP_resourceElementOffset_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_resourceElementOffset_7 = { + "resourceElementOffset", + "resourceElementOffset", + &asn_OP_NativeEnumerated, + asn_DEF_resourceElementOffset_tags_7, + sizeof(asn_DEF_resourceElementOffset_tags_7) + /sizeof(asn_DEF_resourceElementOffset_tags_7[0]) - 1, /* 1 */ + asn_DEF_resourceElementOffset_tags_7, /* Same as above */ + sizeof(asn_DEF_resourceElementOffset_tags_7) + /sizeof(asn_DEF_resourceElementOffset_tags_7[0]), /* 2 */ + { &asn_OER_type_resourceElementOffset_constr_7, &asn_PER_type_resourceElementOffset_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceElementOffset_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PTRS_DownlinkConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct PTRS_DownlinkConfig, frequencyDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_frequencyDensity_2, + 0, + { &asn_OER_memb_frequencyDensity_constr_2, &asn_PER_memb_frequencyDensity_constr_2, memb_frequencyDensity_constraint_1 }, + 0, 0, /* No default value */ + "frequencyDensity" + }, + { ATF_POINTER, 3, offsetof(struct PTRS_DownlinkConfig, timeDensity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_timeDensity_4, + 0, + { &asn_OER_memb_timeDensity_constr_4, &asn_PER_memb_timeDensity_constr_4, memb_timeDensity_constraint_1 }, + 0, 0, /* No default value */ + "timeDensity" + }, + { ATF_POINTER, 2, offsetof(struct PTRS_DownlinkConfig, epre_Ratio), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_epre_Ratio_constr_6, &asn_PER_memb_epre_Ratio_constr_6, memb_epre_Ratio_constraint_1 }, + 0, 0, /* No default value */ + "epre-Ratio" + }, + { ATF_POINTER, 1, offsetof(struct PTRS_DownlinkConfig, resourceElementOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceElementOffset_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceElementOffset" + }, +}; +static const int asn_MAP_PTRS_DownlinkConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PTRS_DownlinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PTRS_DownlinkConfig_specs_1 = { + sizeof(struct PTRS_DownlinkConfig), + offsetof(struct PTRS_DownlinkConfig, _asn_ctx), + asn_MAP_PTRS_DownlinkConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PTRS_DownlinkConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PTRS_DownlinkConfig = { + "PTRS-DownlinkConfig", + "PTRS-DownlinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_PTRS_DownlinkConfig_tags_1, + sizeof(asn_DEF_PTRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_PTRS_DownlinkConfig_tags_1[0]), /* 1 */ + asn_DEF_PTRS_DownlinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PTRS_DownlinkConfig_tags_1) + /sizeof(asn_DEF_PTRS_DownlinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PTRS_DownlinkConfig_1, + 4, /* Elements count */ + &asn_SPC_PTRS_DownlinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PTRS-DownlinkConfig.h b/src/codec_utils/RRC/PTRS-DownlinkConfig.h new file mode 100644 index 000000000..1a15e99f5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PTRS_DownlinkConfig_H_ +#define _PTRS_DownlinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PTRS_DownlinkConfig__resourceElementOffset { + PTRS_DownlinkConfig__resourceElementOffset_offset01 = 0, + PTRS_DownlinkConfig__resourceElementOffset_offset10 = 1, + PTRS_DownlinkConfig__resourceElementOffset_offset11 = 2 +} e_PTRS_DownlinkConfig__resourceElementOffset; + +/* PTRS-DownlinkConfig */ +typedef struct PTRS_DownlinkConfig { + struct PTRS_DownlinkConfig__frequencyDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyDensity; + struct 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; +} PTRS_DownlinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceElementOffset_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PTRS_DownlinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PTRS_DownlinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PTRS_DownlinkConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PTRS_DownlinkConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PTRS-UplinkConfig.c b/src/codec_utils/RRC/PTRS-UplinkConfig.c new file mode 100644 index 000000000..e29a36009 --- /dev/null +++ b/src/codec_utils/RRC/PTRS-UplinkConfig.c @@ -0,0 +1,738 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_oer_constraints_t asn_OER_memb_Member_constr_4 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_frequencyDensity_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..29) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_timeDensity_constr_5 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNrofPorts_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceElementOffset_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ptrs_Power_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_frequencyDensity_constr_3 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDensity_constr_5 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_Member_constr_21 CC_NOTUSED = { + { 2, 1 } /* (1..276) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sampleDensity_constr_20 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_timeDensityTransformPrecoding_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_sampleDensity_constr_20 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_frequencyDensity_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_4, &asn_PER_memb_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_frequencyDensity_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_frequencyDensity_specs_3 = { + sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity), + offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_frequencyDensity_3 = { + "frequencyDensity", + "frequencyDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_frequencyDensity_tags_3, + sizeof(asn_DEF_frequencyDensity_tags_3) + /sizeof(asn_DEF_frequencyDensity_tags_3[0]) - 1, /* 1 */ + asn_DEF_frequencyDensity_tags_3, /* Same as above */ + sizeof(asn_DEF_frequencyDensity_tags_3) + /sizeof(asn_DEF_frequencyDensity_tags_3[0]), /* 2 */ + { &asn_OER_type_frequencyDensity_constr_3, &asn_PER_type_frequencyDensity_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_frequencyDensity_3, + 1, /* Single element */ + &asn_SPC_frequencyDensity_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_timeDensity_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_6, &asn_PER_memb_Member_constr_6, memb_NativeInteger_constraint_5 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_timeDensity_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_timeDensity_specs_5 = { + sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity), + offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_timeDensity_5 = { + "timeDensity", + "timeDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_timeDensity_tags_5, + sizeof(asn_DEF_timeDensity_tags_5) + /sizeof(asn_DEF_timeDensity_tags_5[0]) - 1, /* 1 */ + asn_DEF_timeDensity_tags_5, /* Same as above */ + sizeof(asn_DEF_timeDensity_tags_5) + /sizeof(asn_DEF_timeDensity_tags_5[0]), /* 2 */ + { &asn_OER_type_timeDensity_constr_5, &asn_PER_type_timeDensity_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_timeDensity_5, + 1, /* Single element */ + &asn_SPC_timeDensity_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNrofPorts_value2enum_7[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_maxNrofPorts_enum2value_7[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNrofPorts_specs_7 = { + asn_MAP_maxNrofPorts_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNrofPorts_7 = { + "maxNrofPorts", + "maxNrofPorts", + &asn_OP_NativeEnumerated, + asn_DEF_maxNrofPorts_tags_7, + sizeof(asn_DEF_maxNrofPorts_tags_7) + /sizeof(asn_DEF_maxNrofPorts_tags_7[0]) - 1, /* 1 */ + asn_DEF_maxNrofPorts_tags_7, /* Same as above */ + sizeof(asn_DEF_maxNrofPorts_tags_7) + /sizeof(asn_DEF_maxNrofPorts_tags_7[0]), /* 2 */ + { &asn_OER_type_maxNrofPorts_constr_7, &asn_PER_type_maxNrofPorts_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNrofPorts_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceElementOffset_value2enum_10[] = { + { 0, 8, "offset01" }, + { 1, 8, "offset10" }, + { 2, 8, "offset11" } +}; +static const unsigned int asn_MAP_resourceElementOffset_enum2value_10[] = { + 0, /* offset01(0) */ + 1, /* offset10(1) */ + 2 /* offset11(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceElementOffset_specs_10 = { + asn_MAP_resourceElementOffset_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_resourceElementOffset_10 = { + "resourceElementOffset", + "resourceElementOffset", + &asn_OP_NativeEnumerated, + asn_DEF_resourceElementOffset_tags_10, + sizeof(asn_DEF_resourceElementOffset_tags_10) + /sizeof(asn_DEF_resourceElementOffset_tags_10[0]) - 1, /* 1 */ + asn_DEF_resourceElementOffset_tags_10, /* Same as above */ + sizeof(asn_DEF_resourceElementOffset_tags_10) + /sizeof(asn_DEF_resourceElementOffset_tags_10[0]), /* 2 */ + { &asn_OER_type_resourceElementOffset_constr_10, &asn_PER_type_resourceElementOffset_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceElementOffset_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ptrs_Power_value2enum_14[] = { + { 0, 3, "p00" }, + { 1, 3, "p01" }, + { 2, 3, "p10" }, + { 3, 3, "p11" } +}; +static const unsigned int asn_MAP_ptrs_Power_enum2value_14[] = { + 0, /* p00(0) */ + 1, /* p01(1) */ + 2, /* p10(2) */ + 3 /* p11(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ptrs_Power_specs_14 = { + asn_MAP_ptrs_Power_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ptrs_Power_14 = { + "ptrs-Power", + "ptrs-Power", + &asn_OP_NativeEnumerated, + asn_DEF_ptrs_Power_tags_14, + sizeof(asn_DEF_ptrs_Power_tags_14) + /sizeof(asn_DEF_ptrs_Power_tags_14[0]) - 1, /* 1 */ + asn_DEF_ptrs_Power_tags_14, /* Same as above */ + sizeof(asn_DEF_ptrs_Power_tags_14) + /sizeof(asn_DEF_ptrs_Power_tags_14[0]), /* 2 */ + { &asn_OER_type_ptrs_Power_constr_14, &asn_PER_type_ptrs_Power_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ptrs_Power_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_transformPrecoderDisabled_2[] = { + { ATF_POINTER, 2, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, frequencyDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_frequencyDensity_3, + 0, + { &asn_OER_memb_frequencyDensity_constr_3, &asn_PER_memb_frequencyDensity_constr_3, memb_frequencyDensity_constraint_2 }, + 0, 0, /* No default value */ + "frequencyDensity" + }, + { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, timeDensity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_timeDensity_5, + 0, + { &asn_OER_memb_timeDensity_constr_5, &asn_PER_memb_timeDensity_constr_5, memb_timeDensity_constraint_2 }, + 0, 0, /* No default value */ + "timeDensity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, maxNrofPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNrofPorts_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNrofPorts" + }, + { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, resourceElementOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceElementOffset_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceElementOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, ptrs_Power), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ptrs_Power_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-Power" + }, +}; +static const int asn_MAP_transformPrecoderDisabled_oms_2[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_transformPrecoderDisabled_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_transformPrecoderDisabled_specs_2 = { + sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled), + offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, _asn_ctx), + asn_MAP_transformPrecoderDisabled_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_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_transformPrecoderDisabled_2 = { + "transformPrecoderDisabled", + "transformPrecoderDisabled", + &asn_OP_SEQUENCE, + asn_DEF_transformPrecoderDisabled_tags_2, + sizeof(asn_DEF_transformPrecoderDisabled_tags_2) + /sizeof(asn_DEF_transformPrecoderDisabled_tags_2[0]) - 1, /* 1 */ + asn_DEF_transformPrecoderDisabled_tags_2, /* Same as above */ + sizeof(asn_DEF_transformPrecoderDisabled_tags_2) + /sizeof(asn_DEF_transformPrecoderDisabled_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_transformPrecoderDisabled_2, + 5, /* Elements count */ + &asn_SPC_transformPrecoderDisabled_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sampleDensity_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_21, &asn_PER_memb_Member_constr_21, memb_NativeInteger_constraint_20 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sampleDensity_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sampleDensity_specs_20 = { + sizeof(struct PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity), + offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sampleDensity_20 = { + "sampleDensity", + "sampleDensity", + &asn_OP_SEQUENCE_OF, + asn_DEF_sampleDensity_tags_20, + sizeof(asn_DEF_sampleDensity_tags_20) + /sizeof(asn_DEF_sampleDensity_tags_20[0]) - 1, /* 1 */ + asn_DEF_sampleDensity_tags_20, /* Same as above */ + sizeof(asn_DEF_sampleDensity_tags_20) + /sizeof(asn_DEF_sampleDensity_tags_20[0]), /* 2 */ + { &asn_OER_type_sampleDensity_constr_20, &asn_PER_type_sampleDensity_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_sampleDensity_20, + 1, /* Single element */ + &asn_SPC_sampleDensity_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_timeDensityTransformPrecoding_value2enum_22[] = { + { 0, 2, "d2" } +}; +static const unsigned int asn_MAP_timeDensityTransformPrecoding_enum2value_22[] = { + 0 /* d2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_timeDensityTransformPrecoding_specs_22 = { + asn_MAP_timeDensityTransformPrecoding_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_timeDensityTransformPrecoding_22 = { + "timeDensityTransformPrecoding", + "timeDensityTransformPrecoding", + &asn_OP_NativeEnumerated, + asn_DEF_timeDensityTransformPrecoding_tags_22, + sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22) + /sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22[0]) - 1, /* 1 */ + asn_DEF_timeDensityTransformPrecoding_tags_22, /* Same as above */ + sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22) + /sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22[0]), /* 2 */ + { &asn_OER_type_timeDensityTransformPrecoding_constr_22, &asn_PER_type_timeDensityTransformPrecoding_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_timeDensityTransformPrecoding_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_transformPrecoderEnabled_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, sampleDensity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_sampleDensity_20, + 0, + { &asn_OER_memb_sampleDensity_constr_20, &asn_PER_memb_sampleDensity_constr_20, memb_sampleDensity_constraint_19 }, + 0, 0, /* No default value */ + "sampleDensity" + }, + { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, timeDensityTransformPrecoding), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_timeDensityTransformPrecoding_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeDensityTransformPrecoding" + }, +}; +static const int asn_MAP_transformPrecoderEnabled_oms_19[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_transformPrecoderEnabled_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_transformPrecoderEnabled_specs_19 = { + sizeof(struct PTRS_UplinkConfig__transformPrecoderEnabled), + offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, _asn_ctx), + asn_MAP_transformPrecoderEnabled_tag2el_19, + 2, /* Count of tags in the map */ + asn_MAP_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_transformPrecoderEnabled_19 = { + "transformPrecoderEnabled", + "transformPrecoderEnabled", + &asn_OP_SEQUENCE, + asn_DEF_transformPrecoderEnabled_tags_19, + sizeof(asn_DEF_transformPrecoderEnabled_tags_19) + /sizeof(asn_DEF_transformPrecoderEnabled_tags_19[0]) - 1, /* 1 */ + asn_DEF_transformPrecoderEnabled_tags_19, /* Same as above */ + sizeof(asn_DEF_transformPrecoderEnabled_tags_19) + /sizeof(asn_DEF_transformPrecoderEnabled_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_transformPrecoderEnabled_19, + 2, /* Elements count */ + &asn_SPC_transformPrecoderEnabled_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PTRS_UplinkConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct PTRS_UplinkConfig, transformPrecoderDisabled), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_transformPrecoderDisabled_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoderDisabled" + }, + { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig, transformPrecoderEnabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_transformPrecoderEnabled_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoderEnabled" + }, +}; +static const int asn_MAP_PTRS_UplinkConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PTRS_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PTRS_UplinkConfig_specs_1 = { + sizeof(struct PTRS_UplinkConfig), + offsetof(struct PTRS_UplinkConfig, _asn_ctx), + asn_MAP_PTRS_UplinkConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PTRS_UplinkConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PTRS_UplinkConfig = { + "PTRS-UplinkConfig", + "PTRS-UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_PTRS_UplinkConfig_tags_1, + sizeof(asn_DEF_PTRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_PTRS_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_PTRS_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PTRS_UplinkConfig_tags_1) + /sizeof(asn_DEF_PTRS_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PTRS_UplinkConfig_1, + 2, /* Elements count */ + &asn_SPC_PTRS_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PTRS-UplinkConfig.h b/src/codec_utils/RRC/PTRS-UplinkConfig.h new file mode 100644 index 000000000..b25c5079d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PTRS_UplinkConfig_H_ +#define _PTRS_UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts { + PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts_n1 = 0, + PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts_n2 = 1 +} e_PTRS_UplinkConfig__transformPrecoderDisabled__maxNrofPorts; +typedef enum PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset { + PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset01 = 0, + PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset10 = 1, + PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset_offset11 = 2 +} e_PTRS_UplinkConfig__transformPrecoderDisabled__resourceElementOffset; +typedef enum PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power { + PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p00 = 0, + PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p01 = 1, + PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p10 = 2, + PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power_p11 = 3 +} e_PTRS_UplinkConfig__transformPrecoderDisabled__ptrs_Power; +typedef enum PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding { + PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding_d2 = 0 +} e_PTRS_UplinkConfig__transformPrecoderEnabled__timeDensityTransformPrecoding; + +/* PTRS-UplinkConfig */ +typedef struct PTRS_UplinkConfig { + struct PTRS_UplinkConfig__transformPrecoderDisabled { + struct PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyDensity; + struct 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 PTRS_UplinkConfig__transformPrecoderEnabled { + struct 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; +} PTRS_UplinkConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNrofPorts_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceElementOffset_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ptrs_Power_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_timeDensityTransformPrecoding_22; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PTRS_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PTRS_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PTRS_UplinkConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PTRS_UplinkConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-CSI-Resource.c b/src/codec_utils/RRC/PUCCH-CSI-Resource.c new file mode 100644 index 000000000..fa365ba30 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-CSI-Resource.h" + +asn_TYPE_member_t asn_MBR_PUCCH_CSI_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_CSI_Resource, uplinkBandwidthPartId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBandwidthPartId" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_CSI_Resource, pucch_Resource), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Resource" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_CSI_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_CSI_Resource_specs_1 = { + sizeof(struct PUCCH_CSI_Resource), + offsetof(struct PUCCH_CSI_Resource, _asn_ctx), + asn_MAP_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_PUCCH_CSI_Resource = { + "PUCCH-CSI-Resource", + "PUCCH-CSI-Resource", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_CSI_Resource_tags_1, + sizeof(asn_DEF_PUCCH_CSI_Resource_tags_1) + /sizeof(asn_DEF_PUCCH_CSI_Resource_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_CSI_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_CSI_Resource_tags_1) + /sizeof(asn_DEF_PUCCH_CSI_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_CSI_Resource_1, + 2, /* Elements count */ + &asn_SPC_PUCCH_CSI_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-CSI-Resource.h b/src/codec_utils/RRC/PUCCH-CSI-Resource.h new file mode 100644 index 000000000..def1233be --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_CSI_Resource_H_ +#define _PUCCH_CSI_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include "PUCCH-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-CSI-Resource */ +typedef struct PUCCH_CSI_Resource { + BWP_Id_t uplinkBandwidthPartId; + PUCCH_ResourceId_t pucch_Resource; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_CSI_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_CSI_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_CSI_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_CSI_Resource_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_CSI_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-Config.c b/src/codec_utils/RRC/PUCCH-Config.c new file mode 100644 index 000000000..a1821b14b --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-Config.c @@ -0,0 +1,1249 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-Config.h" + +#include "PUCCH-PowerControl.h" +#include "PUCCH-ResourceSet.h" +#include "PUCCH-Resource.h" +#include "PUCCH-FormatConfig.h" +#include "SchedulingRequestResourceConfig.h" +#include "PUCCH-SpatialRelationInfo.h" +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 <= 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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_resourceSetToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceSetToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_format1_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_format1_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_oer_constraints_t asn_OER_type_format2_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_format2_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_oer_constraints_t asn_OER_type_format3_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_format3_constr_16 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_format4_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_format4_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_oer_constraints_t asn_OER_type_schedulingRequestResourceToAddModList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_schedulingRequestResourceToAddModList_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_oer_constraints_t asn_OER_type_schedulingRequestResourceToReleaseList_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_schedulingRequestResourceToReleaseList_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_oer_constraints_t asn_OER_type_multi_CSI_PUCCH_ResourceList_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_type_multi_CSI_PUCCH_ResourceList_constr_26 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_oer_constraints_t asn_OER_memb_Member_constr_29 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_29 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_dl_DataToUL_ACK_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_dl_DataToUL_ACK_constr_28 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_oer_constraints_t asn_OER_type_spatialRelationInfoToAddModList_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_spatialRelationInfoToAddModList_constr_30 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_oer_constraints_t asn_OER_type_spatialRelationInfoToReleaseList_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_spatialRelationInfoToReleaseList_constr_32 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_oer_constraints_t asn_OER_memb_resourceSetToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_resourceSetToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_resourceToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_resourceToReleaseList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..128)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_schedulingRequestResourceToAddModList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_schedulingRequestResourceToAddModList_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_oer_constraints_t asn_OER_memb_schedulingRequestResourceToReleaseList_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_schedulingRequestResourceToReleaseList_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_oer_constraints_t asn_OER_memb_multi_CSI_PUCCH_ResourceList_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_memb_multi_CSI_PUCCH_ResourceList_constr_26 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_oer_constraints_t asn_OER_memb_dl_DataToUL_ACK_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_dl_DataToUL_ACK_constr_28 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_oer_constraints_t asn_OER_memb_spatialRelationInfoToAddModList_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_spatialRelationInfoToAddModList_constr_30 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_oer_constraints_t asn_OER_memb_spatialRelationInfoToReleaseList_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_spatialRelationInfoToReleaseList_constr_32 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_resourceSetToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceSetToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_resourceSetToAddModList_specs_2 = { + sizeof(struct PUCCH_Config__resourceSetToAddModList), + offsetof(struct PUCCH_Config__resourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_resourceSetToAddModList_2 = { + "resourceSetToAddModList", + "resourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_resourceSetToAddModList_tags_2, + sizeof(asn_DEF_resourceSetToAddModList_tags_2) + /sizeof(asn_DEF_resourceSetToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_resourceSetToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_resourceSetToAddModList_tags_2) + /sizeof(asn_DEF_resourceSetToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_resourceSetToAddModList_constr_2, &asn_PER_type_resourceSetToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_resourceSetToAddModList_2, + 1, /* Single element */ + &asn_SPC_resourceSetToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceSetToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUCCH_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceSetToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_resourceSetToReleaseList_specs_4 = { + sizeof(struct PUCCH_Config__resourceSetToReleaseList), + offsetof(struct PUCCH_Config__resourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_resourceSetToReleaseList_4 = { + "resourceSetToReleaseList", + "resourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_resourceSetToReleaseList_tags_4, + sizeof(asn_DEF_resourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_resourceSetToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_resourceSetToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_resourceSetToReleaseList_tags_4) + /sizeof(asn_DEF_resourceSetToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_resourceSetToReleaseList_constr_4, &asn_PER_type_resourceSetToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_resourceSetToReleaseList_4, + 1, /* Single element */ + &asn_SPC_resourceSetToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_resourceToAddModList_specs_6 = { + sizeof(struct PUCCH_Config__resourceToAddModList), + offsetof(struct PUCCH_Config__resourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_resourceToAddModList_6 = { + "resourceToAddModList", + "resourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_resourceToAddModList_tags_6, + sizeof(asn_DEF_resourceToAddModList_tags_6) + /sizeof(asn_DEF_resourceToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_resourceToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_resourceToAddModList_tags_6) + /sizeof(asn_DEF_resourceToAddModList_tags_6[0]), /* 2 */ + { &asn_OER_type_resourceToAddModList_constr_6, &asn_PER_type_resourceToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_resourceToAddModList_6, + 1, /* Single element */ + &asn_SPC_resourceToAddModList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceToReleaseList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceToReleaseList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_resourceToReleaseList_specs_8 = { + sizeof(struct PUCCH_Config__resourceToReleaseList), + offsetof(struct PUCCH_Config__resourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_resourceToReleaseList_8 = { + "resourceToReleaseList", + "resourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_resourceToReleaseList_tags_8, + sizeof(asn_DEF_resourceToReleaseList_tags_8) + /sizeof(asn_DEF_resourceToReleaseList_tags_8[0]) - 1, /* 1 */ + asn_DEF_resourceToReleaseList_tags_8, /* Same as above */ + sizeof(asn_DEF_resourceToReleaseList_tags_8) + /sizeof(asn_DEF_resourceToReleaseList_tags_8[0]), /* 2 */ + { &asn_OER_type_resourceToReleaseList_constr_8, &asn_PER_type_resourceToReleaseList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_resourceToReleaseList_8, + 1, /* Single element */ + &asn_SPC_resourceToReleaseList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_format1_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Config__format1, 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 PUCCH_Config__format1, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_format1_tag2el_10[] = { + { (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_format1_specs_10 = { + sizeof(struct PUCCH_Config__format1), + offsetof(struct PUCCH_Config__format1, _asn_ctx), + offsetof(struct PUCCH_Config__format1, present), + sizeof(((struct PUCCH_Config__format1 *)0)->present), + asn_MAP_format1_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_format1_10 = { + "format1", + "format1", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_format1_constr_10, &asn_PER_type_format1_constr_10, CHOICE_constraint }, + asn_MBR_format1_10, + 2, /* Elements count */ + &asn_SPC_format1_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_format2_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Config__format2, 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 PUCCH_Config__format2, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_format2_tag2el_13[] = { + { (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_format2_specs_13 = { + sizeof(struct PUCCH_Config__format2), + offsetof(struct PUCCH_Config__format2, _asn_ctx), + offsetof(struct PUCCH_Config__format2, present), + sizeof(((struct PUCCH_Config__format2 *)0)->present), + asn_MAP_format2_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_format2_13 = { + "format2", + "format2", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_format2_constr_13, &asn_PER_type_format2_constr_13, CHOICE_constraint }, + asn_MBR_format2_13, + 2, /* Elements count */ + &asn_SPC_format2_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_format3_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Config__format3, 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 PUCCH_Config__format3, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_format3_tag2el_16[] = { + { (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_format3_specs_16 = { + sizeof(struct PUCCH_Config__format3), + offsetof(struct PUCCH_Config__format3, _asn_ctx), + offsetof(struct PUCCH_Config__format3, present), + sizeof(((struct PUCCH_Config__format3 *)0)->present), + asn_MAP_format3_tag2el_16, + 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_format3_16 = { + "format3", + "format3", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_format3_constr_16, &asn_PER_type_format3_constr_16, CHOICE_constraint }, + asn_MBR_format3_16, + 2, /* Elements count */ + &asn_SPC_format3_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_format4_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Config__format4, 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 PUCCH_Config__format4, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_FormatConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_format4_tag2el_19[] = { + { (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_format4_specs_19 = { + sizeof(struct PUCCH_Config__format4), + offsetof(struct PUCCH_Config__format4, _asn_ctx), + offsetof(struct PUCCH_Config__format4, present), + sizeof(((struct PUCCH_Config__format4 *)0)->present), + asn_MAP_format4_tag2el_19, + 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_format4_19 = { + "format4", + "format4", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_format4_constr_19, &asn_PER_type_format4_constr_19, CHOICE_constraint }, + asn_MBR_format4_19, + 2, /* Elements count */ + &asn_SPC_format4_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_schedulingRequestResourceToAddModList_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SchedulingRequestResourceConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_schedulingRequestResourceToAddModList_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_schedulingRequestResourceToAddModList_specs_22 = { + sizeof(struct PUCCH_Config__schedulingRequestResourceToAddModList), + offsetof(struct PUCCH_Config__schedulingRequestResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_schedulingRequestResourceToAddModList_22 = { + "schedulingRequestResourceToAddModList", + "schedulingRequestResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_schedulingRequestResourceToAddModList_tags_22, + sizeof(asn_DEF_schedulingRequestResourceToAddModList_tags_22) + /sizeof(asn_DEF_schedulingRequestResourceToAddModList_tags_22[0]) - 1, /* 1 */ + asn_DEF_schedulingRequestResourceToAddModList_tags_22, /* Same as above */ + sizeof(asn_DEF_schedulingRequestResourceToAddModList_tags_22) + /sizeof(asn_DEF_schedulingRequestResourceToAddModList_tags_22[0]), /* 2 */ + { &asn_OER_type_schedulingRequestResourceToAddModList_constr_22, &asn_PER_type_schedulingRequestResourceToAddModList_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_schedulingRequestResourceToAddModList_22, + 1, /* Single element */ + &asn_SPC_schedulingRequestResourceToAddModList_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_schedulingRequestResourceToReleaseList_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SchedulingRequestResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_schedulingRequestResourceToReleaseList_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_schedulingRequestResourceToReleaseList_specs_24 = { + sizeof(struct PUCCH_Config__schedulingRequestResourceToReleaseList), + offsetof(struct PUCCH_Config__schedulingRequestResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_schedulingRequestResourceToReleaseList_24 = { + "schedulingRequestResourceToReleaseList", + "schedulingRequestResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_schedulingRequestResourceToReleaseList_tags_24, + sizeof(asn_DEF_schedulingRequestResourceToReleaseList_tags_24) + /sizeof(asn_DEF_schedulingRequestResourceToReleaseList_tags_24[0]) - 1, /* 1 */ + asn_DEF_schedulingRequestResourceToReleaseList_tags_24, /* Same as above */ + sizeof(asn_DEF_schedulingRequestResourceToReleaseList_tags_24) + /sizeof(asn_DEF_schedulingRequestResourceToReleaseList_tags_24[0]), /* 2 */ + { &asn_OER_type_schedulingRequestResourceToReleaseList_constr_24, &asn_PER_type_schedulingRequestResourceToReleaseList_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_schedulingRequestResourceToReleaseList_24, + 1, /* Single element */ + &asn_SPC_schedulingRequestResourceToReleaseList_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_multi_CSI_PUCCH_ResourceList_26[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_multi_CSI_PUCCH_ResourceList_specs_26 = { + sizeof(struct PUCCH_Config__multi_CSI_PUCCH_ResourceList), + offsetof(struct 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_multi_CSI_PUCCH_ResourceList_26 = { + "multi-CSI-PUCCH-ResourceList", + "multi-CSI-PUCCH-ResourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26, + sizeof(asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26) + /sizeof(asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26[0]) - 1, /* 1 */ + asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26, /* Same as above */ + sizeof(asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26) + /sizeof(asn_DEF_multi_CSI_PUCCH_ResourceList_tags_26[0]), /* 2 */ + { &asn_OER_type_multi_CSI_PUCCH_ResourceList_constr_26, &asn_PER_type_multi_CSI_PUCCH_ResourceList_constr_26, SEQUENCE_OF_constraint }, + asn_MBR_multi_CSI_PUCCH_ResourceList_26, + 1, /* Single element */ + &asn_SPC_multi_CSI_PUCCH_ResourceList_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dl_DataToUL_ACK_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_29, &asn_PER_memb_Member_constr_29, memb_NativeInteger_constraint_28 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_dl_DataToUL_ACK_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_dl_DataToUL_ACK_specs_28 = { + sizeof(struct PUCCH_Config__dl_DataToUL_ACK), + offsetof(struct 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_dl_DataToUL_ACK_28 = { + "dl-DataToUL-ACK", + "dl-DataToUL-ACK", + &asn_OP_SEQUENCE_OF, + asn_DEF_dl_DataToUL_ACK_tags_28, + sizeof(asn_DEF_dl_DataToUL_ACK_tags_28) + /sizeof(asn_DEF_dl_DataToUL_ACK_tags_28[0]) - 1, /* 1 */ + asn_DEF_dl_DataToUL_ACK_tags_28, /* Same as above */ + sizeof(asn_DEF_dl_DataToUL_ACK_tags_28) + /sizeof(asn_DEF_dl_DataToUL_ACK_tags_28[0]), /* 2 */ + { &asn_OER_type_dl_DataToUL_ACK_constr_28, &asn_PER_type_dl_DataToUL_ACK_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_dl_DataToUL_ACK_28, + 1, /* Single element */ + &asn_SPC_dl_DataToUL_ACK_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatialRelationInfoToAddModList_30[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_SpatialRelationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatialRelationInfoToAddModList_tags_30[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatialRelationInfoToAddModList_specs_30 = { + sizeof(struct PUCCH_Config__spatialRelationInfoToAddModList), + offsetof(struct PUCCH_Config__spatialRelationInfoToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatialRelationInfoToAddModList_30 = { + "spatialRelationInfoToAddModList", + "spatialRelationInfoToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatialRelationInfoToAddModList_tags_30, + sizeof(asn_DEF_spatialRelationInfoToAddModList_tags_30) + /sizeof(asn_DEF_spatialRelationInfoToAddModList_tags_30[0]) - 1, /* 1 */ + asn_DEF_spatialRelationInfoToAddModList_tags_30, /* Same as above */ + sizeof(asn_DEF_spatialRelationInfoToAddModList_tags_30) + /sizeof(asn_DEF_spatialRelationInfoToAddModList_tags_30[0]), /* 2 */ + { &asn_OER_type_spatialRelationInfoToAddModList_constr_30, &asn_PER_type_spatialRelationInfoToAddModList_constr_30, SEQUENCE_OF_constraint }, + asn_MBR_spatialRelationInfoToAddModList_30, + 1, /* Single element */ + &asn_SPC_spatialRelationInfoToAddModList_specs_30 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatialRelationInfoToReleaseList_32[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUCCH_SpatialRelationInfoId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatialRelationInfoToReleaseList_tags_32[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatialRelationInfoToReleaseList_specs_32 = { + sizeof(struct PUCCH_Config__spatialRelationInfoToReleaseList), + offsetof(struct PUCCH_Config__spatialRelationInfoToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatialRelationInfoToReleaseList_32 = { + "spatialRelationInfoToReleaseList", + "spatialRelationInfoToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatialRelationInfoToReleaseList_tags_32, + sizeof(asn_DEF_spatialRelationInfoToReleaseList_tags_32) + /sizeof(asn_DEF_spatialRelationInfoToReleaseList_tags_32[0]) - 1, /* 1 */ + asn_DEF_spatialRelationInfoToReleaseList_tags_32, /* Same as above */ + sizeof(asn_DEF_spatialRelationInfoToReleaseList_tags_32) + /sizeof(asn_DEF_spatialRelationInfoToReleaseList_tags_32[0]), /* 2 */ + { &asn_OER_type_spatialRelationInfoToReleaseList_constr_32, &asn_PER_type_spatialRelationInfoToReleaseList_constr_32, SEQUENCE_OF_constraint }, + asn_MBR_spatialRelationInfoToReleaseList_32, + 1, /* Single element */ + &asn_SPC_spatialRelationInfoToReleaseList_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_Config_1[] = { + { ATF_POINTER, 15, offsetof(struct PUCCH_Config, resourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_resourceSetToAddModList_2, + 0, + { &asn_OER_memb_resourceSetToAddModList_constr_2, &asn_PER_memb_resourceSetToAddModList_constr_2, memb_resourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "resourceSetToAddModList" + }, + { ATF_POINTER, 14, offsetof(struct PUCCH_Config, resourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_resourceSetToReleaseList_4, + 0, + { &asn_OER_memb_resourceSetToReleaseList_constr_4, &asn_PER_memb_resourceSetToReleaseList_constr_4, memb_resourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "resourceSetToReleaseList" + }, + { ATF_POINTER, 13, offsetof(struct PUCCH_Config, resourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_resourceToAddModList_6, + 0, + { &asn_OER_memb_resourceToAddModList_constr_6, &asn_PER_memb_resourceToAddModList_constr_6, memb_resourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "resourceToAddModList" + }, + { ATF_POINTER, 12, offsetof(struct PUCCH_Config, resourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_resourceToReleaseList_8, + 0, + { &asn_OER_memb_resourceToReleaseList_constr_8, &asn_PER_memb_resourceToReleaseList_constr_8, memb_resourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "resourceToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct PUCCH_Config, format1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_format1_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format1" + }, + { ATF_POINTER, 10, offsetof(struct PUCCH_Config, format2), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_format2_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format2" + }, + { ATF_POINTER, 9, offsetof(struct PUCCH_Config, format3), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_format3_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format3" + }, + { ATF_POINTER, 8, offsetof(struct PUCCH_Config, format4), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_format4_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format4" + }, + { ATF_POINTER, 7, offsetof(struct PUCCH_Config, schedulingRequestResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_schedulingRequestResourceToAddModList_22, + 0, + { &asn_OER_memb_schedulingRequestResourceToAddModList_constr_22, &asn_PER_memb_schedulingRequestResourceToAddModList_constr_22, memb_schedulingRequestResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestResourceToAddModList" + }, + { ATF_POINTER, 6, offsetof(struct PUCCH_Config, schedulingRequestResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_schedulingRequestResourceToReleaseList_24, + 0, + { &asn_OER_memb_schedulingRequestResourceToReleaseList_constr_24, &asn_PER_memb_schedulingRequestResourceToReleaseList_constr_24, memb_schedulingRequestResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestResourceToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct PUCCH_Config, multi_CSI_PUCCH_ResourceList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_multi_CSI_PUCCH_ResourceList_26, + 0, + { &asn_OER_memb_multi_CSI_PUCCH_ResourceList_constr_26, &asn_PER_memb_multi_CSI_PUCCH_ResourceList_constr_26, memb_multi_CSI_PUCCH_ResourceList_constraint_1 }, + 0, 0, /* No default value */ + "multi-CSI-PUCCH-ResourceList" + }, + { ATF_POINTER, 4, offsetof(struct PUCCH_Config, dl_DataToUL_ACK), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_dl_DataToUL_ACK_28, + 0, + { &asn_OER_memb_dl_DataToUL_ACK_constr_28, &asn_PER_memb_dl_DataToUL_ACK_constr_28, memb_dl_DataToUL_ACK_constraint_1 }, + 0, 0, /* No default value */ + "dl-DataToUL-ACK" + }, + { ATF_POINTER, 3, offsetof(struct PUCCH_Config, spatialRelationInfoToAddModList), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_spatialRelationInfoToAddModList_30, + 0, + { &asn_OER_memb_spatialRelationInfoToAddModList_constr_30, &asn_PER_memb_spatialRelationInfoToAddModList_constr_30, memb_spatialRelationInfoToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "spatialRelationInfoToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct PUCCH_Config, spatialRelationInfoToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_spatialRelationInfoToReleaseList_32, + 0, + { &asn_OER_memb_spatialRelationInfoToReleaseList_constr_32, &asn_PER_memb_spatialRelationInfoToReleaseList_constr_32, memb_spatialRelationInfoToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "spatialRelationInfoToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_Config, pucch_PowerControl), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PowerControl" + }, +}; +static const int asn_MAP_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_PUCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_Config_specs_1 = { + sizeof(struct PUCCH_Config), + offsetof(struct PUCCH_Config, _asn_ctx), + asn_MAP_PUCCH_Config_tag2el_1, + 15, /* Count of tags in the map */ + asn_MAP_PUCCH_Config_oms_1, /* Optional members */ + 15, 0, /* Root/Additions */ + 15, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_Config = { + "PUCCH-Config", + "PUCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_Config_tags_1, + sizeof(asn_DEF_PUCCH_Config_tags_1) + /sizeof(asn_DEF_PUCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_Config_tags_1) + /sizeof(asn_DEF_PUCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_Config_1, + 15, /* Elements count */ + &asn_SPC_PUCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-Config.h b/src/codec_utils/RRC/PUCCH-Config.h new file mode 100644 index 000000000..30976fdbc --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-Config.h @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_Config_H_ +#define _PUCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "PUCCH-ResourceSetId.h" +#include "PUCCH-ResourceId.h" +#include +#include +#include "SchedulingRequestResourceId.h" +#include +#include "PUCCH-SpatialRelationInfoId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_Config__format1_PR { + PUCCH_Config__format1_PR_NOTHING, /* No components present */ + PUCCH_Config__format1_PR_release, + PUCCH_Config__format1_PR_setup +} PUCCH_Config__format1_PR; +typedef enum PUCCH_Config__format2_PR { + PUCCH_Config__format2_PR_NOTHING, /* No components present */ + PUCCH_Config__format2_PR_release, + PUCCH_Config__format2_PR_setup +} PUCCH_Config__format2_PR; +typedef enum PUCCH_Config__format3_PR { + PUCCH_Config__format3_PR_NOTHING, /* No components present */ + PUCCH_Config__format3_PR_release, + PUCCH_Config__format3_PR_setup +} PUCCH_Config__format3_PR; +typedef enum PUCCH_Config__format4_PR { + PUCCH_Config__format4_PR_NOTHING, /* No components present */ + PUCCH_Config__format4_PR_release, + PUCCH_Config__format4_PR_setup +} PUCCH_Config__format4_PR; + +/* Forward declarations */ +struct PUCCH_PowerControl; +struct PUCCH_ResourceSet; +struct PUCCH_Resource; +struct PUCCH_FormatConfig; +struct SchedulingRequestResourceConfig; +struct PUCCH_SpatialRelationInfo; + +/* PUCCH-Config */ +typedef struct PUCCH_Config { + struct PUCCH_Config__resourceSetToAddModList { + A_SEQUENCE_OF(struct PUCCH_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceSetToAddModList; + struct PUCCH_Config__resourceSetToReleaseList { + A_SEQUENCE_OF(PUCCH_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceSetToReleaseList; + struct PUCCH_Config__resourceToAddModList { + A_SEQUENCE_OF(struct PUCCH_Resource) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceToAddModList; + struct PUCCH_Config__resourceToReleaseList { + A_SEQUENCE_OF(PUCCH_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *resourceToReleaseList; + struct PUCCH_Config__format1 { + PUCCH_Config__format1_PR present; + union PUCCH_Config__format1_u { + NULL_t release; + struct PUCCH_FormatConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *format1; + struct PUCCH_Config__format2 { + PUCCH_Config__format2_PR present; + union PUCCH_Config__format2_u { + NULL_t release; + struct PUCCH_FormatConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *format2; + struct PUCCH_Config__format3 { + PUCCH_Config__format3_PR present; + union PUCCH_Config__format3_u { + NULL_t release; + struct PUCCH_FormatConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *format3; + struct PUCCH_Config__format4 { + PUCCH_Config__format4_PR present; + union PUCCH_Config__format4_u { + NULL_t release; + struct PUCCH_FormatConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *format4; + struct PUCCH_Config__schedulingRequestResourceToAddModList { + A_SEQUENCE_OF(struct SchedulingRequestResourceConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestResourceToAddModList; + struct PUCCH_Config__schedulingRequestResourceToReleaseList { + A_SEQUENCE_OF(SchedulingRequestResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestResourceToReleaseList; + struct PUCCH_Config__multi_CSI_PUCCH_ResourceList { + A_SEQUENCE_OF(PUCCH_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *multi_CSI_PUCCH_ResourceList; + struct 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 PUCCH_Config__spatialRelationInfoToAddModList { + A_SEQUENCE_OF(struct PUCCH_SpatialRelationInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *spatialRelationInfoToAddModList; + struct PUCCH_Config__spatialRelationInfoToReleaseList { + A_SEQUENCE_OF(PUCCH_SpatialRelationInfoId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *spatialRelationInfoToReleaseList; + struct 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; +} PUCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_Config_1[15]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-ConfigCommon.c b/src/codec_utils/RRC/PUCCH-ConfigCommon.c new file mode 100644 index 000000000..5e646c5bc --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ConfigCommon.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-ConfigCommon.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_oer_constraints_t asn_OER_type_pucch_GroupHopping_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_pucch_ResourceCommon_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_hoppingId_constr_7 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_nominal_constr_8 CC_NOTUSED = { + { 2, 0 } /* (-202..24) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_pucch_GroupHopping_value2enum_3[] = { + { 0, 7, "neither" }, + { 1, 6, "enable" }, + { 2, 7, "disable" } +}; +static const unsigned int asn_MAP_pucch_GroupHopping_enum2value_3[] = { + 2, /* disable(2) */ + 1, /* enable(1) */ + 0 /* neither(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_GroupHopping_specs_3 = { + asn_MAP_pucch_GroupHopping_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_GroupHopping_3 = { + "pucch-GroupHopping", + "pucch-GroupHopping", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_GroupHopping_tags_3, + sizeof(asn_DEF_pucch_GroupHopping_tags_3) + /sizeof(asn_DEF_pucch_GroupHopping_tags_3[0]) - 1, /* 1 */ + asn_DEF_pucch_GroupHopping_tags_3, /* Same as above */ + sizeof(asn_DEF_pucch_GroupHopping_tags_3) + /sizeof(asn_DEF_pucch_GroupHopping_tags_3[0]), /* 2 */ + { &asn_OER_type_pucch_GroupHopping_constr_3, &asn_PER_type_pucch_GroupHopping_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_GroupHopping_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_ConfigCommon_1[] = { + { ATF_POINTER, 1, offsetof(struct PUCCH_ConfigCommon, pucch_ResourceCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_pucch_ResourceCommon_constr_2, &asn_PER_memb_pucch_ResourceCommon_constr_2, memb_pucch_ResourceCommon_constraint_1 }, + 0, 0, /* No default value */ + "pucch-ResourceCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_ConfigCommon, pucch_GroupHopping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_GroupHopping_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-GroupHopping" + }, + { ATF_POINTER, 2, offsetof(struct PUCCH_ConfigCommon, hoppingId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_hoppingId_constr_7, &asn_PER_memb_hoppingId_constr_7, memb_hoppingId_constraint_1 }, + 0, 0, /* No default value */ + "hoppingId" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_ConfigCommon, p0_nominal), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_nominal_constr_8, &asn_PER_memb_p0_nominal_constr_8, memb_p0_nominal_constraint_1 }, + 0, 0, /* No default value */ + "p0-nominal" + }, +}; +static const int asn_MAP_PUCCH_ConfigCommon_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_ConfigCommon_specs_1 = { + sizeof(struct PUCCH_ConfigCommon), + offsetof(struct PUCCH_ConfigCommon, _asn_ctx), + asn_MAP_PUCCH_ConfigCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PUCCH_ConfigCommon_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_ConfigCommon = { + "PUCCH-ConfigCommon", + "PUCCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_ConfigCommon_tags_1, + sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_ConfigCommon_1, + 4, /* Elements count */ + &asn_SPC_PUCCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-ConfigCommon.h b/src/codec_utils/RRC/PUCCH-ConfigCommon.h new file mode 100644 index 000000000..0fc4a7b7e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_ConfigCommon_H_ +#define _PUCCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_ConfigCommon__pucch_GroupHopping { + PUCCH_ConfigCommon__pucch_GroupHopping_neither = 0, + PUCCH_ConfigCommon__pucch_GroupHopping_enable = 1, + PUCCH_ConfigCommon__pucch_GroupHopping_disable = 2 +} e_PUCCH_ConfigCommon__pucch_GroupHopping; + +/* PUCCH-ConfigCommon */ +typedef struct 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; +} PUCCH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_GroupHopping_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_ConfigCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-FormatConfig.c b/src/codec_utils/RRC/PUCCH-FormatConfig.c new file mode 100644 index 000000000..bd6652771 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-FormatConfig.c @@ -0,0 +1,341 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_interslotFrequencyHopping_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_additionalDMRS_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofSlots_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pi2BPSK_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_simultaneousHARQ_ACK_CSI_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_interslotFrequencyHopping_value2enum_2[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_interslotFrequencyHopping_enum2value_2[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_interslotFrequencyHopping_specs_2 = { + asn_MAP_interslotFrequencyHopping_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_interslotFrequencyHopping_2 = { + "interslotFrequencyHopping", + "interslotFrequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_interslotFrequencyHopping_tags_2, + sizeof(asn_DEF_interslotFrequencyHopping_tags_2) + /sizeof(asn_DEF_interslotFrequencyHopping_tags_2[0]) - 1, /* 1 */ + asn_DEF_interslotFrequencyHopping_tags_2, /* Same as above */ + sizeof(asn_DEF_interslotFrequencyHopping_tags_2) + /sizeof(asn_DEF_interslotFrequencyHopping_tags_2[0]), /* 2 */ + { &asn_OER_type_interslotFrequencyHopping_constr_2, &asn_PER_type_interslotFrequencyHopping_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_interslotFrequencyHopping_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_additionalDMRS_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_additionalDMRS_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_additionalDMRS_specs_4 = { + asn_MAP_additionalDMRS_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_additionalDMRS_4 = { + "additionalDMRS", + "additionalDMRS", + &asn_OP_NativeEnumerated, + asn_DEF_additionalDMRS_tags_4, + sizeof(asn_DEF_additionalDMRS_tags_4) + /sizeof(asn_DEF_additionalDMRS_tags_4[0]) - 1, /* 1 */ + asn_DEF_additionalDMRS_tags_4, /* Same as above */ + sizeof(asn_DEF_additionalDMRS_tags_4) + /sizeof(asn_DEF_additionalDMRS_tags_4[0]), /* 2 */ + { &asn_OER_type_additionalDMRS_constr_4, &asn_PER_type_additionalDMRS_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_additionalDMRS_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nrofSlots_value2enum_7[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_nrofSlots_enum2value_7[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nrofSlots_specs_7 = { + asn_MAP_nrofSlots_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofSlots_7 = { + "nrofSlots", + "nrofSlots", + &asn_OP_NativeEnumerated, + asn_DEF_nrofSlots_tags_7, + sizeof(asn_DEF_nrofSlots_tags_7) + /sizeof(asn_DEF_nrofSlots_tags_7[0]) - 1, /* 1 */ + asn_DEF_nrofSlots_tags_7, /* Same as above */ + sizeof(asn_DEF_nrofSlots_tags_7) + /sizeof(asn_DEF_nrofSlots_tags_7[0]), /* 2 */ + { &asn_OER_type_nrofSlots_constr_7, &asn_PER_type_nrofSlots_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofSlots_specs_7 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pi2BPSK_value2enum_11[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_pi2BPSK_enum2value_11[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pi2BPSK_specs_11 = { + asn_MAP_pi2BPSK_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pi2BPSK_11 = { + "pi2BPSK", + "pi2BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_pi2BPSK_tags_11, + sizeof(asn_DEF_pi2BPSK_tags_11) + /sizeof(asn_DEF_pi2BPSK_tags_11[0]) - 1, /* 1 */ + asn_DEF_pi2BPSK_tags_11, /* Same as above */ + sizeof(asn_DEF_pi2BPSK_tags_11) + /sizeof(asn_DEF_pi2BPSK_tags_11[0]), /* 2 */ + { &asn_OER_type_pi2BPSK_constr_11, &asn_PER_type_pi2BPSK_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pi2BPSK_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_simultaneousHARQ_ACK_CSI_value2enum_13[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_simultaneousHARQ_ACK_CSI_enum2value_13[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_simultaneousHARQ_ACK_CSI_specs_13 = { + asn_MAP_simultaneousHARQ_ACK_CSI_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_simultaneousHARQ_ACK_CSI_13 = { + "simultaneousHARQ-ACK-CSI", + "simultaneousHARQ-ACK-CSI", + &asn_OP_NativeEnumerated, + asn_DEF_simultaneousHARQ_ACK_CSI_tags_13, + sizeof(asn_DEF_simultaneousHARQ_ACK_CSI_tags_13) + /sizeof(asn_DEF_simultaneousHARQ_ACK_CSI_tags_13[0]) - 1, /* 1 */ + asn_DEF_simultaneousHARQ_ACK_CSI_tags_13, /* Same as above */ + sizeof(asn_DEF_simultaneousHARQ_ACK_CSI_tags_13) + /sizeof(asn_DEF_simultaneousHARQ_ACK_CSI_tags_13[0]), /* 2 */ + { &asn_OER_type_simultaneousHARQ_ACK_CSI_constr_13, &asn_PER_type_simultaneousHARQ_ACK_CSI_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_simultaneousHARQ_ACK_CSI_specs_13 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_FormatConfig_1[] = { + { ATF_POINTER, 6, offsetof(struct PUCCH_FormatConfig, interslotFrequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_interslotFrequencyHopping_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interslotFrequencyHopping" + }, + { ATF_POINTER, 5, offsetof(struct PUCCH_FormatConfig, additionalDMRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_additionalDMRS_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalDMRS" + }, + { ATF_POINTER, 4, offsetof(struct PUCCH_FormatConfig, maxCodeRate), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_MaxCodeRate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeRate" + }, + { ATF_POINTER, 3, offsetof(struct PUCCH_FormatConfig, nrofSlots), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofSlots_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSlots" + }, + { ATF_POINTER, 2, offsetof(struct PUCCH_FormatConfig, pi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pi2BPSK_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pi2BPSK" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_FormatConfig, simultaneousHARQ_ACK_CSI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_simultaneousHARQ_ACK_CSI_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "simultaneousHARQ-ACK-CSI" + }, +}; +static const int asn_MAP_PUCCH_FormatConfig_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_FormatConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_FormatConfig_specs_1 = { + sizeof(struct PUCCH_FormatConfig), + offsetof(struct PUCCH_FormatConfig, _asn_ctx), + asn_MAP_PUCCH_FormatConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_PUCCH_FormatConfig_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_FormatConfig = { + "PUCCH-FormatConfig", + "PUCCH-FormatConfig", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_FormatConfig_tags_1, + sizeof(asn_DEF_PUCCH_FormatConfig_tags_1) + /sizeof(asn_DEF_PUCCH_FormatConfig_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_FormatConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_FormatConfig_tags_1) + /sizeof(asn_DEF_PUCCH_FormatConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_FormatConfig_1, + 6, /* Elements count */ + &asn_SPC_PUCCH_FormatConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-FormatConfig.h b/src/codec_utils/RRC/PUCCH-FormatConfig.h new file mode 100644 index 000000000..c55d9f43a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_FormatConfig_H_ +#define _PUCCH_FormatConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PUCCH-MaxCodeRate.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_FormatConfig__interslotFrequencyHopping { + PUCCH_FormatConfig__interslotFrequencyHopping_enabled = 0 +} e_PUCCH_FormatConfig__interslotFrequencyHopping; +typedef enum PUCCH_FormatConfig__additionalDMRS { + PUCCH_FormatConfig__additionalDMRS_true = 0 +} e_PUCCH_FormatConfig__additionalDMRS; +typedef enum PUCCH_FormatConfig__nrofSlots { + PUCCH_FormatConfig__nrofSlots_n2 = 0, + PUCCH_FormatConfig__nrofSlots_n4 = 1, + PUCCH_FormatConfig__nrofSlots_n8 = 2 +} e_PUCCH_FormatConfig__nrofSlots; +typedef enum PUCCH_FormatConfig__pi2BPSK { + PUCCH_FormatConfig__pi2BPSK_enabled = 0 +} e_PUCCH_FormatConfig__pi2BPSK; +typedef enum PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI { + PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI_true = 0 +} e_PUCCH_FormatConfig__simultaneousHARQ_ACK_CSI; + +/* PUCCH-FormatConfig */ +typedef struct PUCCH_FormatConfig { + long *interslotFrequencyHopping; /* OPTIONAL */ + long *additionalDMRS; /* OPTIONAL */ + 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; +} PUCCH_FormatConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_interslotFrequencyHopping_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_additionalDMRS_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofSlots_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pi2BPSK_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_simultaneousHARQ_ACK_CSI_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_FormatConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_FormatConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_FormatConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_FormatConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-MaxCodeRate.c b/src/codec_utils/RRC/PUCCH-MaxCodeRate.c new file mode 100644 index 000000000..f9c12d9a2 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-MaxCodeRate.c @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-MaxCodeRate.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PUCCH_MaxCodeRate_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_PUCCH_MaxCodeRate_specs_1 = { + asn_MAP_PUCCH_MaxCodeRate_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_PUCCH_MaxCodeRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_MaxCodeRate = { + "PUCCH-MaxCodeRate", + "PUCCH-MaxCodeRate", + &asn_OP_NativeEnumerated, + asn_DEF_PUCCH_MaxCodeRate_tags_1, + sizeof(asn_DEF_PUCCH_MaxCodeRate_tags_1) + /sizeof(asn_DEF_PUCCH_MaxCodeRate_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_MaxCodeRate_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_MaxCodeRate_tags_1) + /sizeof(asn_DEF_PUCCH_MaxCodeRate_tags_1[0]), /* 1 */ + { &asn_OER_type_PUCCH_MaxCodeRate_constr_1, &asn_PER_type_PUCCH_MaxCodeRate_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PUCCH_MaxCodeRate_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-MaxCodeRate.h b/src/codec_utils/RRC/PUCCH-MaxCodeRate.h new file mode 100644 index 000000000..307e4c70c --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-MaxCodeRate.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_MaxCodeRate_H_ +#define _PUCCH_MaxCodeRate_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_MaxCodeRate { + PUCCH_MaxCodeRate_zeroDot08 = 0, + PUCCH_MaxCodeRate_zeroDot15 = 1, + PUCCH_MaxCodeRate_zeroDot25 = 2, + PUCCH_MaxCodeRate_zeroDot35 = 3, + PUCCH_MaxCodeRate_zeroDot45 = 4, + PUCCH_MaxCodeRate_zeroDot60 = 5, + PUCCH_MaxCodeRate_zeroDot80 = 6 +} e_PUCCH_MaxCodeRate; + +/* PUCCH-MaxCodeRate */ +typedef long PUCCH_MaxCodeRate_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUCCH_MaxCodeRate_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_MaxCodeRate; +extern const asn_INTEGER_specifics_t asn_SPC_PUCCH_MaxCodeRate_specs_1; +asn_struct_free_f PUCCH_MaxCodeRate_free; +asn_struct_print_f PUCCH_MaxCodeRate_print; +asn_constr_check_f PUCCH_MaxCodeRate_constraint; +ber_type_decoder_f PUCCH_MaxCodeRate_decode_ber; +der_type_encoder_f PUCCH_MaxCodeRate_encode_der; +xer_type_decoder_f PUCCH_MaxCodeRate_decode_xer; +xer_type_encoder_f PUCCH_MaxCodeRate_encode_xer; +oer_type_decoder_f PUCCH_MaxCodeRate_decode_oer; +oer_type_encoder_f PUCCH_MaxCodeRate_encode_oer; +per_type_decoder_f PUCCH_MaxCodeRate_decode_uper; +per_type_encoder_f PUCCH_MaxCodeRate_encode_uper; +per_type_decoder_f PUCCH_MaxCodeRate_decode_aper; +per_type_encoder_f PUCCH_MaxCodeRate_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_MaxCodeRate_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.c b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.c new file mode 100644 index 000000000..b63d80514 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-PathlossReferenceRS-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PUCCH_PathlossReferenceRS_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PUCCH_PathlossReferenceRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_PathlossReferenceRS_Id = { + "PUCCH-PathlossReferenceRS-Id", + "PUCCH-PathlossReferenceRS-Id", + &asn_OP_NativeInteger, + asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1, + sizeof(asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_PUCCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_PUCCH_PathlossReferenceRS_Id_constr_1, &asn_PER_type_PUCCH_PathlossReferenceRS_Id_constr_1, PUCCH_PathlossReferenceRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.h b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.h new file mode 100644 index 000000000..e8055d530 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_PathlossReferenceRS_Id_H_ +#define _PUCCH_PathlossReferenceRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-PathlossReferenceRS-Id */ +typedef long PUCCH_PathlossReferenceRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUCCH_PathlossReferenceRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_PathlossReferenceRS_Id; +asn_struct_free_f PUCCH_PathlossReferenceRS_Id_free; +asn_struct_print_f PUCCH_PathlossReferenceRS_Id_print; +asn_constr_check_f PUCCH_PathlossReferenceRS_Id_constraint; +ber_type_decoder_f PUCCH_PathlossReferenceRS_Id_decode_ber; +der_type_encoder_f PUCCH_PathlossReferenceRS_Id_encode_der; +xer_type_decoder_f PUCCH_PathlossReferenceRS_Id_decode_xer; +xer_type_encoder_f PUCCH_PathlossReferenceRS_Id_encode_xer; +oer_type_decoder_f PUCCH_PathlossReferenceRS_Id_decode_oer; +oer_type_encoder_f PUCCH_PathlossReferenceRS_Id_encode_oer; +per_type_decoder_f PUCCH_PathlossReferenceRS_Id_decode_uper; +per_type_encoder_f PUCCH_PathlossReferenceRS_Id_encode_uper; +per_type_decoder_f PUCCH_PathlossReferenceRS_Id_decode_aper; +per_type_encoder_f PUCCH_PathlossReferenceRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_PathlossReferenceRS_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-PathlossReferenceRS.c b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS.c new file mode 100644 index 000000000..4b920b4b3 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS.c @@ -0,0 +1,117 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-PathlossReferenceRS.h" + +static asn_oer_constraints_t asn_OER_type_referenceSignal_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_PathlossReferenceRS__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_PathlossReferenceRS__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_referenceSignal_specs_3 = { + sizeof(struct PUCCH_PathlossReferenceRS__referenceSignal), + offsetof(struct PUCCH_PathlossReferenceRS__referenceSignal, _asn_ctx), + offsetof(struct PUCCH_PathlossReferenceRS__referenceSignal, present), + sizeof(((struct PUCCH_PathlossReferenceRS__referenceSignal *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_referenceSignal_constr_3, &asn_PER_type_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_referenceSignal_3, + 2, /* Elements count */ + &asn_SPC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_PathlossReferenceRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_PathlossReferenceRS, pucch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_PathlossReferenceRS, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_PathlossReferenceRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_PathlossReferenceRS_specs_1 = { + sizeof(struct PUCCH_PathlossReferenceRS), + offsetof(struct PUCCH_PathlossReferenceRS, _asn_ctx), + asn_MAP_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_PUCCH_PathlossReferenceRS = { + "PUCCH-PathlossReferenceRS", + "PUCCH-PathlossReferenceRS", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_PathlossReferenceRS_tags_1, + sizeof(asn_DEF_PUCCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_PUCCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_PathlossReferenceRS_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_PUCCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_PathlossReferenceRS_1, + 2, /* Elements count */ + &asn_SPC_PUCCH_PathlossReferenceRS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-PathlossReferenceRS.h b/src/codec_utils/RRC/PUCCH-PathlossReferenceRS.h new file mode 100644 index 000000000..235617592 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_PathlossReferenceRS_H_ +#define _PUCCH_PathlossReferenceRS_H_ + + +#include + +/* Including external dependencies */ +#include "PUCCH-PathlossReferenceRS-Id.h" +#include "SSB-Index.h" +#include "NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_PathlossReferenceRS__referenceSignal_PR { + PUCCH_PathlossReferenceRS__referenceSignal_PR_NOTHING, /* No components present */ + PUCCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index, + PUCCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index +} PUCCH_PathlossReferenceRS__referenceSignal_PR; + +/* PUCCH-PathlossReferenceRS */ +typedef struct PUCCH_PathlossReferenceRS { + PUCCH_PathlossReferenceRS_Id_t pucch_PathlossReferenceRS_Id; + struct PUCCH_PathlossReferenceRS__referenceSignal { + PUCCH_PathlossReferenceRS__referenceSignal_PR present; + union PUCCH_PathlossReferenceRS__referenceSignal_u { + SSB_Index_t ssb_Index; + 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; +} PUCCH_PathlossReferenceRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_PathlossReferenceRS; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_PathlossReferenceRS_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_PathlossReferenceRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_PathlossReferenceRS_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-PowerControl.c b/src/codec_utils/RRC/PUCCH-PowerControl.c new file mode 100644 index 000000000..d2fc51319 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-PowerControl.c @@ -0,0 +1,494 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-PowerControl.h" + +#include "P0-PUCCH.h" +#include "PUCCH-PathlossReferenceRS.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_p0_Set_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pathlossReferenceRSs_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUCCH_PC_AdjustmentStates_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f0_constr_2 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f1_constr_3 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f2_constr_4 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f3_constr_5 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_deltaF_PUCCH_f4_constr_6 CC_NOTUSED = { + { 1, 0 } /* (-16..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_Set_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pathlossReferenceRSs_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_p0_Set_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_P0_PUCCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_p0_Set_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_p0_Set_specs_7 = { + sizeof(struct PUCCH_PowerControl__p0_Set), + offsetof(struct PUCCH_PowerControl__p0_Set, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_p0_Set_7 = { + "p0-Set", + "p0-Set", + &asn_OP_SEQUENCE_OF, + asn_DEF_p0_Set_tags_7, + sizeof(asn_DEF_p0_Set_tags_7) + /sizeof(asn_DEF_p0_Set_tags_7[0]) - 1, /* 1 */ + asn_DEF_p0_Set_tags_7, /* Same as above */ + sizeof(asn_DEF_p0_Set_tags_7) + /sizeof(asn_DEF_p0_Set_tags_7[0]), /* 2 */ + { &asn_OER_type_p0_Set_constr_7, &asn_PER_type_p0_Set_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_p0_Set_7, + 1, /* Single element */ + &asn_SPC_p0_Set_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pathlossReferenceRSs_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUCCH_PathlossReferenceRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_pathlossReferenceRSs_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_pathlossReferenceRSs_specs_9 = { + sizeof(struct PUCCH_PowerControl__pathlossReferenceRSs), + offsetof(struct PUCCH_PowerControl__pathlossReferenceRSs, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pathlossReferenceRSs_9 = { + "pathlossReferenceRSs", + "pathlossReferenceRSs", + &asn_OP_SEQUENCE_OF, + asn_DEF_pathlossReferenceRSs_tags_9, + sizeof(asn_DEF_pathlossReferenceRSs_tags_9) + /sizeof(asn_DEF_pathlossReferenceRSs_tags_9[0]) - 1, /* 1 */ + asn_DEF_pathlossReferenceRSs_tags_9, /* Same as above */ + sizeof(asn_DEF_pathlossReferenceRSs_tags_9) + /sizeof(asn_DEF_pathlossReferenceRSs_tags_9[0]), /* 2 */ + { &asn_OER_type_pathlossReferenceRSs_constr_9, &asn_PER_type_pathlossReferenceRSs_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_pathlossReferenceRSs_9, + 1, /* Single element */ + &asn_SPC_pathlossReferenceRSs_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_PC_AdjustmentStates_value2enum_11[] = { + { 0, 9, "twoStates" } +}; +static const unsigned int asn_MAP_twoPUCCH_PC_AdjustmentStates_enum2value_11[] = { + 0 /* twoStates(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_PC_AdjustmentStates_specs_11 = { + asn_MAP_twoPUCCH_PC_AdjustmentStates_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUCCH_PC_AdjustmentStates_11 = { + "twoPUCCH-PC-AdjustmentStates", + "twoPUCCH-PC-AdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11, + sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11) + /sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11[0]) - 1, /* 1 */ + asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11, /* Same as above */ + sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11) + /sizeof(asn_DEF_twoPUCCH_PC_AdjustmentStates_tags_11[0]), /* 2 */ + { &asn_OER_type_twoPUCCH_PC_AdjustmentStates_constr_11, &asn_PER_type_twoPUCCH_PC_AdjustmentStates_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUCCH_PC_AdjustmentStates_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_PowerControl_1[] = { + { ATF_POINTER, 8, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_deltaF_PUCCH_f0_constr_2, &asn_PER_memb_deltaF_PUCCH_f0_constr_2, memb_deltaF_PUCCH_f0_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f0" + }, + { ATF_POINTER, 7, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_deltaF_PUCCH_f1_constr_3, &asn_PER_memb_deltaF_PUCCH_f1_constr_3, memb_deltaF_PUCCH_f1_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f1" + }, + { ATF_POINTER, 6, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_deltaF_PUCCH_f2_constr_4, &asn_PER_memb_deltaF_PUCCH_f2_constr_4, memb_deltaF_PUCCH_f2_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f2" + }, + { ATF_POINTER, 5, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_deltaF_PUCCH_f3_constr_5, &asn_PER_memb_deltaF_PUCCH_f3_constr_5, memb_deltaF_PUCCH_f3_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f3" + }, + { ATF_POINTER, 4, offsetof(struct PUCCH_PowerControl, deltaF_PUCCH_f4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_deltaF_PUCCH_f4_constr_6, &asn_PER_memb_deltaF_PUCCH_f4_constr_6, memb_deltaF_PUCCH_f4_constraint_1 }, + 0, 0, /* No default value */ + "deltaF-PUCCH-f4" + }, + { ATF_POINTER, 3, offsetof(struct PUCCH_PowerControl, p0_Set), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_p0_Set_7, + 0, + { &asn_OER_memb_p0_Set_constr_7, &asn_PER_memb_p0_Set_constr_7, memb_p0_Set_constraint_1 }, + 0, 0, /* No default value */ + "p0-Set" + }, + { ATF_POINTER, 2, offsetof(struct PUCCH_PowerControl, pathlossReferenceRSs), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_pathlossReferenceRSs_9, + 0, + { &asn_OER_memb_pathlossReferenceRSs_constr_9, &asn_PER_memb_pathlossReferenceRSs_constr_9, memb_pathlossReferenceRSs_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSs" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_PowerControl, twoPUCCH_PC_AdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUCCH_PC_AdjustmentStates_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-PC-AdjustmentStates" + }, +}; +static const int asn_MAP_PUCCH_PowerControl_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_PowerControl_specs_1 = { + sizeof(struct PUCCH_PowerControl), + offsetof(struct PUCCH_PowerControl, _asn_ctx), + asn_MAP_PUCCH_PowerControl_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_PUCCH_PowerControl_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_PowerControl = { + "PUCCH-PowerControl", + "PUCCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_PowerControl_tags_1, + sizeof(asn_DEF_PUCCH_PowerControl_tags_1) + /sizeof(asn_DEF_PUCCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_PowerControl_tags_1) + /sizeof(asn_DEF_PUCCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_PowerControl_1, + 8, /* Elements count */ + &asn_SPC_PUCCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-PowerControl.h b/src/codec_utils/RRC/PUCCH-PowerControl.h new file mode 100644 index 000000000..4efbef386 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_PowerControl_H_ +#define _PUCCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates { + PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates_twoStates = 0 +} e_PUCCH_PowerControl__twoPUCCH_PC_AdjustmentStates; + +/* Forward declarations */ +struct P0_PUCCH; +struct PUCCH_PathlossReferenceRS; + +/* PUCCH-PowerControl */ +typedef struct 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 PUCCH_PowerControl__p0_Set { + A_SEQUENCE_OF(struct P0_PUCCH) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *p0_Set; + struct PUCCH_PowerControl__pathlossReferenceRSs { + A_SEQUENCE_OF(struct 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; +} PUCCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUCCH_PC_AdjustmentStates_11; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_PowerControl_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_PowerControl_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-Resource.c b/src/codec_utils/RRC/PUCCH-Resource.c new file mode 100644 index 000000000..579611526 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-Resource.c @@ -0,0 +1,231 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-Resource.h" + +#include "PUCCH-format0.h" +#include "PUCCH-format1.h" +#include "PUCCH-format2.h" +#include "PUCCH-format3.h" +#include "PUCCH-format4.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_intraSlotFrequencyHopping_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_format_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_intraSlotFrequencyHopping_value2enum_4[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_intraSlotFrequencyHopping_enum2value_4[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_intraSlotFrequencyHopping_specs_4 = { + asn_MAP_intraSlotFrequencyHopping_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_intraSlotFrequencyHopping_4 = { + "intraSlotFrequencyHopping", + "intraSlotFrequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_intraSlotFrequencyHopping_tags_4, + sizeof(asn_DEF_intraSlotFrequencyHopping_tags_4) + /sizeof(asn_DEF_intraSlotFrequencyHopping_tags_4[0]) - 1, /* 1 */ + asn_DEF_intraSlotFrequencyHopping_tags_4, /* Same as above */ + sizeof(asn_DEF_intraSlotFrequencyHopping_tags_4) + /sizeof(asn_DEF_intraSlotFrequencyHopping_tags_4[0]), /* 2 */ + { &asn_OER_type_intraSlotFrequencyHopping_constr_4, &asn_PER_type_intraSlotFrequencyHopping_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_intraSlotFrequencyHopping_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_format_7[] = { + { ATF_POINTER, 0, offsetof(struct PUCCH_Resource__format, choice.format0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_format0, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format0" + }, + { ATF_POINTER, 0, offsetof(struct PUCCH_Resource__format, choice.format1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_format1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format1" + }, + { ATF_POINTER, 0, offsetof(struct PUCCH_Resource__format, choice.format2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_format2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format2" + }, + { ATF_POINTER, 0, offsetof(struct PUCCH_Resource__format, choice.format3), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_format3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format3" + }, + { ATF_POINTER, 0, offsetof(struct PUCCH_Resource__format, choice.format4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_format4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format4" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_format_specs_7 = { + sizeof(struct PUCCH_Resource__format), + offsetof(struct PUCCH_Resource__format, _asn_ctx), + offsetof(struct PUCCH_Resource__format, present), + sizeof(((struct PUCCH_Resource__format *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_format_constr_7, &asn_PER_type_format_constr_7, CHOICE_constraint }, + asn_MBR_format_7, + 5, /* Elements count */ + &asn_SPC_format_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Resource, pucch_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Resource, startingPRB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PRB_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "startingPRB" + }, + { ATF_POINTER, 2, offsetof(struct PUCCH_Resource, intraSlotFrequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_intraSlotFrequencyHopping_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraSlotFrequencyHopping" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_Resource, secondHopPRB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PRB_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "secondHopPRB" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_Resource, format), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_format_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "format" + }, +}; +static const int asn_MAP_PUCCH_Resource_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_Resource_specs_1 = { + sizeof(struct PUCCH_Resource), + offsetof(struct PUCCH_Resource, _asn_ctx), + asn_MAP_PUCCH_Resource_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_PUCCH_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_Resource = { + "PUCCH-Resource", + "PUCCH-Resource", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_Resource_tags_1, + sizeof(asn_DEF_PUCCH_Resource_tags_1) + /sizeof(asn_DEF_PUCCH_Resource_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_Resource_tags_1) + /sizeof(asn_DEF_PUCCH_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_Resource_1, + 5, /* Elements count */ + &asn_SPC_PUCCH_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-Resource.h b/src/codec_utils/RRC/PUCCH-Resource.h new file mode 100644 index 000000000..a7dfb4a22 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_Resource_H_ +#define _PUCCH_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "PUCCH-ResourceId.h" +#include "PRB-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_Resource__intraSlotFrequencyHopping { + PUCCH_Resource__intraSlotFrequencyHopping_enabled = 0 +} e_PUCCH_Resource__intraSlotFrequencyHopping; +typedef enum PUCCH_Resource__format_PR { + PUCCH_Resource__format_PR_NOTHING, /* No components present */ + PUCCH_Resource__format_PR_format0, + PUCCH_Resource__format_PR_format1, + PUCCH_Resource__format_PR_format2, + PUCCH_Resource__format_PR_format3, + PUCCH_Resource__format_PR_format4 +} PUCCH_Resource__format_PR; + +/* Forward declarations */ +struct PUCCH_format0; +struct PUCCH_format1; +struct PUCCH_format2; +struct PUCCH_format3; +struct PUCCH_format4; + +/* PUCCH-Resource */ +typedef struct PUCCH_Resource { + PUCCH_ResourceId_t pucch_ResourceId; + PRB_Id_t startingPRB; + long *intraSlotFrequencyHopping; /* OPTIONAL */ + PRB_Id_t *secondHopPRB; /* OPTIONAL */ + struct PUCCH_Resource__format { + PUCCH_Resource__format_PR present; + union PUCCH_Resource__format_u { + struct PUCCH_format0 *format0; + struct PUCCH_format1 *format1; + struct PUCCH_format2 *format2; + struct PUCCH_format3 *format3; + struct 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; +} PUCCH_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_intraSlotFrequencyHopping_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_Resource_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-ResourceId.c b/src/codec_utils/RRC/PUCCH-ResourceId.c new file mode 100644 index 000000000..c337063b6 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-ResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PUCCH_ResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PUCCH_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceId = { + "PUCCH-ResourceId", + "PUCCH-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_PUCCH_ResourceId_tags_1, + sizeof(asn_DEF_PUCCH_ResourceId_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_ResourceId_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_PUCCH_ResourceId_constr_1, &asn_PER_type_PUCCH_ResourceId_constr_1, PUCCH_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-ResourceId.h b/src/codec_utils/RRC/PUCCH-ResourceId.h new file mode 100644 index 000000000..7849f674c --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_ResourceId_H_ +#define _PUCCH_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-ResourceId */ +typedef long PUCCH_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUCCH_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceId; +asn_struct_free_f PUCCH_ResourceId_free; +asn_struct_print_f PUCCH_ResourceId_print; +asn_constr_check_f PUCCH_ResourceId_constraint; +ber_type_decoder_f PUCCH_ResourceId_decode_ber; +der_type_encoder_f PUCCH_ResourceId_encode_der; +xer_type_decoder_f PUCCH_ResourceId_decode_xer; +xer_type_encoder_f PUCCH_ResourceId_encode_xer; +oer_type_decoder_f PUCCH_ResourceId_decode_oer; +oer_type_encoder_f PUCCH_ResourceId_encode_oer; +per_type_decoder_f PUCCH_ResourceId_decode_uper; +per_type_encoder_f PUCCH_ResourceId_encode_uper; +per_type_decoder_f PUCCH_ResourceId_decode_aper; +per_type_encoder_f PUCCH_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_ResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-ResourceSet.c b/src/codec_utils/RRC/PUCCH-ResourceSet.c new file mode 100644 index 000000000..f244f814d --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ResourceSet.c @@ -0,0 +1,184 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-ResourceSet.h" + +static int +memb_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_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_oer_constraints_t asn_OER_type_resourceList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_resourceList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxPayloadMinus1_constr_5 CC_NOTUSED = { + { 2, 1 } /* (4..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_resourceList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_resourceList_specs_3 = { + sizeof(struct PUCCH_ResourceSet__resourceList), + offsetof(struct PUCCH_ResourceSet__resourceList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_resourceList_3 = { + "resourceList", + "resourceList", + &asn_OP_SEQUENCE_OF, + asn_DEF_resourceList_tags_3, + sizeof(asn_DEF_resourceList_tags_3) + /sizeof(asn_DEF_resourceList_tags_3[0]) - 1, /* 1 */ + asn_DEF_resourceList_tags_3, /* Same as above */ + sizeof(asn_DEF_resourceList_tags_3) + /sizeof(asn_DEF_resourceList_tags_3[0]), /* 2 */ + { &asn_OER_type_resourceList_constr_3, &asn_PER_type_resourceList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_resourceList_3, + 1, /* Single element */ + &asn_SPC_resourceList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_ResourceSet, pucch_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_ResourceSet, resourceList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_resourceList_3, + 0, + { &asn_OER_memb_resourceList_constr_3, &asn_PER_memb_resourceList_constr_3, memb_resourceList_constraint_1 }, + 0, 0, /* No default value */ + "resourceList" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_ResourceSet, maxPayloadMinus1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxPayloadMinus1_constr_5, &asn_PER_memb_maxPayloadMinus1_constr_5, memb_maxPayloadMinus1_constraint_1 }, + 0, 0, /* No default value */ + "maxPayloadMinus1" + }, +}; +static const int asn_MAP_PUCCH_ResourceSet_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_ResourceSet_specs_1 = { + sizeof(struct PUCCH_ResourceSet), + offsetof(struct PUCCH_ResourceSet, _asn_ctx), + asn_MAP_PUCCH_ResourceSet_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PUCCH_ResourceSet_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceSet = { + "PUCCH-ResourceSet", + "PUCCH-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_ResourceSet_tags_1, + sizeof(asn_DEF_PUCCH_ResourceSet_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_ResourceSet_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_ResourceSet_1, + 3, /* Elements count */ + &asn_SPC_PUCCH_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-ResourceSet.h b/src/codec_utils/RRC/PUCCH-ResourceSet.h new file mode 100644 index 000000000..87fadd2c4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_ResourceSet_H_ +#define _PUCCH_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "PUCCH-ResourceSetId.h" +#include +#include "PUCCH-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-ResourceSet */ +typedef struct PUCCH_ResourceSet { + PUCCH_ResourceSetId_t pucch_ResourceSetId; + struct PUCCH_ResourceSet__resourceList { + A_SEQUENCE_OF(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; +} PUCCH_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_ResourceSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-ResourceSetId.c b/src/codec_utils/RRC/PUCCH-ResourceSetId.c new file mode 100644 index 000000000..b18f7be8d --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PUCCH_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PUCCH_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceSetId = { + "PUCCH-ResourceSetId", + "PUCCH-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_PUCCH_ResourceSetId_tags_1, + sizeof(asn_DEF_PUCCH_ResourceSetId_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_ResourceSetId_tags_1) + /sizeof(asn_DEF_PUCCH_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_PUCCH_ResourceSetId_constr_1, &asn_PER_type_PUCCH_ResourceSetId_constr_1, PUCCH_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-ResourceSetId.h b/src/codec_utils/RRC/PUCCH-ResourceSetId.h new file mode 100644 index 000000000..7aedb9bbc --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_ResourceSetId_H_ +#define _PUCCH_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-ResourceSetId */ +typedef long PUCCH_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUCCH_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_ResourceSetId; +asn_struct_free_f PUCCH_ResourceSetId_free; +asn_struct_print_f PUCCH_ResourceSetId_print; +asn_constr_check_f PUCCH_ResourceSetId_constraint; +ber_type_decoder_f PUCCH_ResourceSetId_decode_ber; +der_type_encoder_f PUCCH_ResourceSetId_encode_der; +xer_type_decoder_f PUCCH_ResourceSetId_decode_xer; +xer_type_encoder_f PUCCH_ResourceSetId_encode_xer; +oer_type_decoder_f PUCCH_ResourceSetId_decode_oer; +oer_type_encoder_f PUCCH_ResourceSetId_encode_oer; +per_type_decoder_f PUCCH_ResourceSetId_decode_uper; +per_type_encoder_f PUCCH_ResourceSetId_encode_uper; +per_type_decoder_f PUCCH_ResourceSetId_decode_aper; +per_type_encoder_f PUCCH_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-SpatialRelationInfo.c b/src/codec_utils/RRC/PUCCH-SpatialRelationInfo.c new file mode 100644 index 000000000..79cb91c3c --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-SpatialRelationInfo.c @@ -0,0 +1,271 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-SpatialRelationInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_referenceSignal_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_closedLoopIndex_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_srs_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal__srs, resource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resource" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal__srs, uplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBWP" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_srs_specs_7 = { + sizeof(struct PUCCH_SpatialRelationInfo__referenceSignal__srs), + offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal__srs, _asn_ctx), + asn_MAP_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_srs_7 = { + "srs", + "srs", + &asn_OP_SEQUENCE, + asn_DEF_srs_tags_7, + sizeof(asn_DEF_srs_tags_7) + /sizeof(asn_DEF_srs_tags_7[0]) - 1, /* 1 */ + asn_DEF_srs_tags_7, /* Same as above */ + sizeof(asn_DEF_srs_tags_7) + /sizeof(asn_DEF_srs_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_srs_7, + 2, /* Elements count */ + &asn_SPC_srs_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_referenceSignal_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 0, offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal, choice.srs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_srs_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_referenceSignal_specs_4 = { + sizeof(struct PUCCH_SpatialRelationInfo__referenceSignal), + offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal, _asn_ctx), + offsetof(struct PUCCH_SpatialRelationInfo__referenceSignal, present), + sizeof(((struct PUCCH_SpatialRelationInfo__referenceSignal *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_referenceSignal_constr_4, &asn_PER_type_referenceSignal_constr_4, CHOICE_constraint }, + asn_MBR_referenceSignal_4, + 3, /* Elements count */ + &asn_SPC_referenceSignal_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_closedLoopIndex_value2enum_12[] = { + { 0, 2, "i0" }, + { 1, 2, "i1" } +}; +static const unsigned int asn_MAP_closedLoopIndex_enum2value_12[] = { + 0, /* i0(0) */ + 1 /* i1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_closedLoopIndex_specs_12 = { + asn_MAP_closedLoopIndex_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_closedLoopIndex_12 = { + "closedLoopIndex", + "closedLoopIndex", + &asn_OP_NativeEnumerated, + asn_DEF_closedLoopIndex_tags_12, + sizeof(asn_DEF_closedLoopIndex_tags_12) + /sizeof(asn_DEF_closedLoopIndex_tags_12[0]) - 1, /* 1 */ + asn_DEF_closedLoopIndex_tags_12, /* Same as above */ + sizeof(asn_DEF_closedLoopIndex_tags_12) + /sizeof(asn_DEF_closedLoopIndex_tags_12[0]), /* 2 */ + { &asn_OER_type_closedLoopIndex_constr_12, &asn_PER_type_closedLoopIndex_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_closedLoopIndex_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_SpatialRelationInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo, pucch_SpatialRelationInfoId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_SpatialRelationInfoId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-SpatialRelationInfoId" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_SpatialRelationInfo, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_referenceSignal_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo, pucch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo, p0_PUCCH_Id), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUCCH_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p0-PUCCH-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_SpatialRelationInfo, closedLoopIndex), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_closedLoopIndex_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "closedLoopIndex" + }, +}; +static const int asn_MAP_PUCCH_SpatialRelationInfo_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_SpatialRelationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_SpatialRelationInfo_specs_1 = { + sizeof(struct PUCCH_SpatialRelationInfo), + offsetof(struct PUCCH_SpatialRelationInfo, _asn_ctx), + asn_MAP_PUCCH_SpatialRelationInfo_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_PUCCH_SpatialRelationInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_SpatialRelationInfo = { + "PUCCH-SpatialRelationInfo", + "PUCCH-SpatialRelationInfo", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_SpatialRelationInfo_tags_1, + sizeof(asn_DEF_PUCCH_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_PUCCH_SpatialRelationInfo_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_SpatialRelationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_PUCCH_SpatialRelationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_SpatialRelationInfo_1, + 6, /* Elements count */ + &asn_SPC_PUCCH_SpatialRelationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-SpatialRelationInfo.h b/src/codec_utils/RRC/PUCCH-SpatialRelationInfo.h new file mode 100644 index 000000000..588169aaa --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_SpatialRelationInfo_H_ +#define _PUCCH_SpatialRelationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "PUCCH-SpatialRelationInfoId.h" +#include "ServCellIndex.h" +#include "PUCCH-PathlossReferenceRS-Id.h" +#include "P0-PUCCH-Id.h" +#include +#include "SSB-Index.h" +#include "NZP-CSI-RS-ResourceId.h" +#include "SRS-ResourceId.h" +#include "BWP-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_SpatialRelationInfo__referenceSignal_PR { + PUCCH_SpatialRelationInfo__referenceSignal_PR_NOTHING, /* No components present */ + PUCCH_SpatialRelationInfo__referenceSignal_PR_ssb_Index, + PUCCH_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index, + PUCCH_SpatialRelationInfo__referenceSignal_PR_srs +} PUCCH_SpatialRelationInfo__referenceSignal_PR; +typedef enum PUCCH_SpatialRelationInfo__closedLoopIndex { + PUCCH_SpatialRelationInfo__closedLoopIndex_i0 = 0, + PUCCH_SpatialRelationInfo__closedLoopIndex_i1 = 1 +} e_PUCCH_SpatialRelationInfo__closedLoopIndex; + +/* PUCCH-SpatialRelationInfo */ +typedef struct PUCCH_SpatialRelationInfo { + PUCCH_SpatialRelationInfoId_t pucch_SpatialRelationInfoId; + ServCellIndex_t *servingCellId; /* OPTIONAL */ + struct PUCCH_SpatialRelationInfo__referenceSignal { + PUCCH_SpatialRelationInfo__referenceSignal_PR present; + union PUCCH_SpatialRelationInfo__referenceSignal_u { + SSB_Index_t ssb_Index; + NZP_CSI_RS_ResourceId_t csi_RS_Index; + struct PUCCH_SpatialRelationInfo__referenceSignal__srs { + SRS_ResourceId_t resource; + 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; + PUCCH_PathlossReferenceRS_Id_t pucch_PathlossReferenceRS_Id; + P0_PUCCH_Id_t p0_PUCCH_Id; + long closedLoopIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_SpatialRelationInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_closedLoopIndex_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_SpatialRelationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_SpatialRelationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_SpatialRelationInfo_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_SpatialRelationInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.c b/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.c new file mode 100644 index 000000000..6468d426b --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-SpatialRelationInfoId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PUCCH_SpatialRelationInfoId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PUCCH_SpatialRelationInfoId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_SpatialRelationInfoId = { + "PUCCH-SpatialRelationInfoId", + "PUCCH-SpatialRelationInfoId", + &asn_OP_NativeInteger, + asn_DEF_PUCCH_SpatialRelationInfoId_tags_1, + sizeof(asn_DEF_PUCCH_SpatialRelationInfoId_tags_1) + /sizeof(asn_DEF_PUCCH_SpatialRelationInfoId_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_SpatialRelationInfoId_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_SpatialRelationInfoId_tags_1) + /sizeof(asn_DEF_PUCCH_SpatialRelationInfoId_tags_1[0]), /* 1 */ + { &asn_OER_type_PUCCH_SpatialRelationInfoId_constr_1, &asn_PER_type_PUCCH_SpatialRelationInfoId_constr_1, PUCCH_SpatialRelationInfoId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.h b/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.h new file mode 100644 index 000000000..19dcf7d93 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-SpatialRelationInfoId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_SpatialRelationInfoId_H_ +#define _PUCCH_SpatialRelationInfoId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-SpatialRelationInfoId */ +typedef long PUCCH_SpatialRelationInfoId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUCCH_SpatialRelationInfoId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_SpatialRelationInfoId; +asn_struct_free_f PUCCH_SpatialRelationInfoId_free; +asn_struct_print_f PUCCH_SpatialRelationInfoId_print; +asn_constr_check_f PUCCH_SpatialRelationInfoId_constraint; +ber_type_decoder_f PUCCH_SpatialRelationInfoId_decode_ber; +der_type_encoder_f PUCCH_SpatialRelationInfoId_encode_der; +xer_type_decoder_f PUCCH_SpatialRelationInfoId_decode_xer; +xer_type_encoder_f PUCCH_SpatialRelationInfoId_encode_xer; +oer_type_decoder_f PUCCH_SpatialRelationInfoId_decode_oer; +oer_type_encoder_f PUCCH_SpatialRelationInfoId_encode_oer; +per_type_decoder_f PUCCH_SpatialRelationInfoId_decode_uper; +per_type_encoder_f PUCCH_SpatialRelationInfoId_encode_uper; +per_type_decoder_f PUCCH_SpatialRelationInfoId_decode_aper; +per_type_encoder_f PUCCH_SpatialRelationInfoId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_SpatialRelationInfoId_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-TPC-CommandConfig.c b/src/codec_utils/RRC/PUCCH-TPC-CommandConfig.c new file mode 100644 index 000000000..698d21fd6 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-TPC-CommandConfig.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-TPC-CommandConfig.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_tpc_IndexPCell_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tpc_IndexPUCCH_SCell_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUCCH_TPC_CommandConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct PUCCH_TPC_CommandConfig, tpc_IndexPCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tpc_IndexPCell_constr_2, &asn_PER_memb_tpc_IndexPCell_constr_2, memb_tpc_IndexPCell_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexPCell" + }, + { ATF_POINTER, 1, offsetof(struct PUCCH_TPC_CommandConfig, tpc_IndexPUCCH_SCell), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tpc_IndexPUCCH_SCell_constr_3, &asn_PER_memb_tpc_IndexPUCCH_SCell_constr_3, memb_tpc_IndexPUCCH_SCell_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexPUCCH-SCell" + }, +}; +static const int asn_MAP_PUCCH_TPC_CommandConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_PUCCH_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_TPC_CommandConfig_specs_1 = { + sizeof(struct PUCCH_TPC_CommandConfig), + offsetof(struct PUCCH_TPC_CommandConfig, _asn_ctx), + asn_MAP_PUCCH_TPC_CommandConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PUCCH_TPC_CommandConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUCCH_TPC_CommandConfig = { + "PUCCH-TPC-CommandConfig", + "PUCCH-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_PUCCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_PUCCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_PUCCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_TPC_CommandConfig_1, + 2, /* Elements count */ + &asn_SPC_PUCCH_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-TPC-CommandConfig.h b/src/codec_utils/RRC/PUCCH-TPC-CommandConfig.h new file mode 100644 index 000000000..91966f0bf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_TPC_CommandConfig_H_ +#define _PUCCH_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-TPC-CommandConfig */ +typedef struct 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; +} PUCCH_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_TPC_CommandConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_TPC_CommandConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-format0.c b/src/codec_utils/RRC/PUCCH-format0.c new file mode 100644 index 000000000..a2c7bf395 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-format0.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-format0.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_initialCyclicShift_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..11) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofSymbols_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingSymbolIndex_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUCCH_format0_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format0, initialCyclicShift), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_initialCyclicShift_constr_2, &asn_PER_memb_initialCyclicShift_constr_2, memb_initialCyclicShift_constraint_1 }, + 0, 0, /* No default value */ + "initialCyclicShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format0, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSymbols_constr_3, &asn_PER_memb_nrofSymbols_constr_3, memb_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format0, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingSymbolIndex_constr_4, &asn_PER_memb_startingSymbolIndex_constr_4, memb_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_format0_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_format0_specs_1 = { + sizeof(struct PUCCH_format0), + offsetof(struct PUCCH_format0, _asn_ctx), + asn_MAP_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_PUCCH_format0 = { + "PUCCH-format0", + "PUCCH-format0", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_format0_tags_1, + sizeof(asn_DEF_PUCCH_format0_tags_1) + /sizeof(asn_DEF_PUCCH_format0_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_format0_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_format0_tags_1) + /sizeof(asn_DEF_PUCCH_format0_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_format0_1, + 3, /* Elements count */ + &asn_SPC_PUCCH_format0_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-format0.h b/src/codec_utils/RRC/PUCCH-format0.h new file mode 100644 index 000000000..e70d9fa52 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_format0_H_ +#define _PUCCH_format0_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-format0 */ +typedef struct PUCCH_format0 { + long initialCyclicShift; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_format0_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_format0; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_format0_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_format0_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_format0_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-format1.c b/src/codec_utils/RRC/PUCCH-format1.c new file mode 100644 index 000000000..8f77a97a2 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-format1.c @@ -0,0 +1,212 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-format1.h" + +static int +memb_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_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_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_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_oer_constraints_t asn_OER_memb_initialCyclicShift_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..11) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofSymbols_constr_3 CC_NOTUSED = { + { 1, 1 } /* (4..14) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingSymbolIndex_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_timeDomainOCC_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUCCH_format1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format1, initialCyclicShift), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_initialCyclicShift_constr_2, &asn_PER_memb_initialCyclicShift_constr_2, memb_initialCyclicShift_constraint_1 }, + 0, 0, /* No default value */ + "initialCyclicShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format1, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSymbols_constr_3, &asn_PER_memb_nrofSymbols_constr_3, memb_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format1, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingSymbolIndex_constr_4, &asn_PER_memb_startingSymbolIndex_constr_4, memb_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format1, timeDomainOCC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_timeDomainOCC_constr_5, &asn_PER_memb_timeDomainOCC_constr_5, memb_timeDomainOCC_constraint_1 }, + 0, 0, /* No default value */ + "timeDomainOCC" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_format1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_format1_specs_1 = { + sizeof(struct PUCCH_format1), + offsetof(struct PUCCH_format1, _asn_ctx), + asn_MAP_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_PUCCH_format1 = { + "PUCCH-format1", + "PUCCH-format1", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_format1_tags_1, + sizeof(asn_DEF_PUCCH_format1_tags_1) + /sizeof(asn_DEF_PUCCH_format1_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_format1_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_format1_tags_1) + /sizeof(asn_DEF_PUCCH_format1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_format1_1, + 4, /* Elements count */ + &asn_SPC_PUCCH_format1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-format1.h b/src/codec_utils/RRC/PUCCH-format1.h new file mode 100644 index 000000000..ff7db039a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_format1_H_ +#define _PUCCH_format1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-format1 */ +typedef struct PUCCH_format1 { + long initialCyclicShift; + long nrofSymbols; + long startingSymbolIndex; + long timeDomainOCC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_format1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_format1; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_format1_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_format1_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_format1_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-format2.c b/src/codec_utils/RRC/PUCCH-format2.c new file mode 100644 index 000000000..a8d77652c --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-format2.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-format2.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_nrofPRBs_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofSymbols_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..2) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingSymbolIndex_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUCCH_format2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format2, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofPRBs_constr_2, &asn_PER_memb_nrofPRBs_constr_2, memb_nrofPRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format2, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSymbols_constr_3, &asn_PER_memb_nrofSymbols_constr_3, memb_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format2, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingSymbolIndex_constr_4, &asn_PER_memb_startingSymbolIndex_constr_4, memb_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_format2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_format2_specs_1 = { + sizeof(struct PUCCH_format2), + offsetof(struct PUCCH_format2, _asn_ctx), + asn_MAP_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_PUCCH_format2 = { + "PUCCH-format2", + "PUCCH-format2", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_format2_tags_1, + sizeof(asn_DEF_PUCCH_format2_tags_1) + /sizeof(asn_DEF_PUCCH_format2_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_format2_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_format2_tags_1) + /sizeof(asn_DEF_PUCCH_format2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_format2_1, + 3, /* Elements count */ + &asn_SPC_PUCCH_format2_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-format2.h b/src/codec_utils/RRC/PUCCH-format2.h new file mode 100644 index 000000000..de2b02174 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_format2_H_ +#define _PUCCH_format2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-format2 */ +typedef struct PUCCH_format2 { + long nrofPRBs; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_format2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_format2; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_format2_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_format2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_format2_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-format3.c b/src/codec_utils/RRC/PUCCH-format3.c new file mode 100644 index 000000000..4f79096f1 --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-format3.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUCCH-format3.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_nrofPRBs_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofSymbols_constr_3 CC_NOTUSED = { + { 1, 1 } /* (4..14) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingSymbolIndex_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUCCH_format3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format3, nrofPRBs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofPRBs_constr_2, &asn_PER_memb_nrofPRBs_constr_2, memb_nrofPRBs_constraint_1 }, + 0, 0, /* No default value */ + "nrofPRBs" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format3, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSymbols_constr_3, &asn_PER_memb_nrofSymbols_constr_3, memb_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format3, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingSymbolIndex_constr_4, &asn_PER_memb_startingSymbolIndex_constr_4, memb_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_format3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_format3_specs_1 = { + sizeof(struct PUCCH_format3), + offsetof(struct PUCCH_format3, _asn_ctx), + asn_MAP_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_PUCCH_format3 = { + "PUCCH-format3", + "PUCCH-format3", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_format3_tags_1, + sizeof(asn_DEF_PUCCH_format3_tags_1) + /sizeof(asn_DEF_PUCCH_format3_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_format3_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_format3_tags_1) + /sizeof(asn_DEF_PUCCH_format3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_format3_1, + 3, /* Elements count */ + &asn_SPC_PUCCH_format3_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-format3.h b/src/codec_utils/RRC/PUCCH-format3.h new file mode 100644 index 000000000..eb9e03a0c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_format3_H_ +#define _PUCCH_format3_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUCCH-format3 */ +typedef struct PUCCH_format3 { + long nrofPRBs; + long nrofSymbols; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_format3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_format3; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_format3_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_format3_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_format3_H_ */ +#include diff --git a/src/codec_utils/RRC/PUCCH-format4.c b/src/codec_utils/RRC/PUCCH-format4.c new file mode 100644 index 000000000..f55b265dc --- /dev/null +++ b/src/codec_utils/RRC/PUCCH-format4.c @@ -0,0 +1,248 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_occ_Length_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_occ_Index_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofSymbols_constr_2 CC_NOTUSED = { + { 1, 1 } /* (4..14) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingSymbolIndex_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..10) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_occ_Length_value2enum_3[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_occ_Length_enum2value_3[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_occ_Length_specs_3 = { + asn_MAP_occ_Length_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_occ_Length_3 = { + "occ-Length", + "occ-Length", + &asn_OP_NativeEnumerated, + asn_DEF_occ_Length_tags_3, + sizeof(asn_DEF_occ_Length_tags_3) + /sizeof(asn_DEF_occ_Length_tags_3[0]) - 1, /* 1 */ + asn_DEF_occ_Length_tags_3, /* Same as above */ + sizeof(asn_DEF_occ_Length_tags_3) + /sizeof(asn_DEF_occ_Length_tags_3[0]), /* 2 */ + { &asn_OER_type_occ_Length_constr_3, &asn_PER_type_occ_Length_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_occ_Length_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_occ_Index_value2enum_6[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" }, + { 2, 2, "n2" }, + { 3, 2, "n3" } +}; +static const unsigned int asn_MAP_occ_Index_enum2value_6[] = { + 0, /* n0(0) */ + 1, /* n1(1) */ + 2, /* n2(2) */ + 3 /* n3(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_occ_Index_specs_6 = { + asn_MAP_occ_Index_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_occ_Index_6 = { + "occ-Index", + "occ-Index", + &asn_OP_NativeEnumerated, + asn_DEF_occ_Index_tags_6, + sizeof(asn_DEF_occ_Index_tags_6) + /sizeof(asn_DEF_occ_Index_tags_6[0]) - 1, /* 1 */ + asn_DEF_occ_Index_tags_6, /* Same as above */ + sizeof(asn_DEF_occ_Index_tags_6) + /sizeof(asn_DEF_occ_Index_tags_6[0]), /* 2 */ + { &asn_OER_type_occ_Index_constr_6, &asn_PER_type_occ_Index_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_occ_Index_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUCCH_format4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format4, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSymbols_constr_2, &asn_PER_memb_nrofSymbols_constr_2, memb_nrofSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format4, occ_Length), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_occ_Length_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occ-Length" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format4, occ_Index), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_occ_Index_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "occ-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUCCH_format4, startingSymbolIndex), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingSymbolIndex_constr_11, &asn_PER_memb_startingSymbolIndex_constr_11, memb_startingSymbolIndex_constraint_1 }, + 0, 0, /* No default value */ + "startingSymbolIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUCCH_format4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_format4_specs_1 = { + sizeof(struct PUCCH_format4), + offsetof(struct PUCCH_format4, _asn_ctx), + asn_MAP_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_PUCCH_format4 = { + "PUCCH-format4", + "PUCCH-format4", + &asn_OP_SEQUENCE, + asn_DEF_PUCCH_format4_tags_1, + sizeof(asn_DEF_PUCCH_format4_tags_1) + /sizeof(asn_DEF_PUCCH_format4_tags_1[0]), /* 1 */ + asn_DEF_PUCCH_format4_tags_1, /* Same as above */ + sizeof(asn_DEF_PUCCH_format4_tags_1) + /sizeof(asn_DEF_PUCCH_format4_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUCCH_format4_1, + 4, /* Elements count */ + &asn_SPC_PUCCH_format4_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUCCH-format4.h b/src/codec_utils/RRC/PUCCH-format4.h new file mode 100644 index 000000000..85fbe11fc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUCCH_format4_H_ +#define _PUCCH_format4_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUCCH_format4__occ_Length { + PUCCH_format4__occ_Length_n2 = 0, + PUCCH_format4__occ_Length_n4 = 1 +} e_PUCCH_format4__occ_Length; +typedef enum PUCCH_format4__occ_Index { + PUCCH_format4__occ_Index_n0 = 0, + PUCCH_format4__occ_Index_n1 = 1, + PUCCH_format4__occ_Index_n2 = 2, + PUCCH_format4__occ_Index_n3 = 3 +} e_PUCCH_format4__occ_Index; + +/* PUCCH-format4 */ +typedef struct PUCCH_format4 { + long nrofSymbols; + long occ_Length; + long occ_Index; + long startingSymbolIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUCCH_format4_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_occ_Length_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_occ_Index_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUCCH_format4; +extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_format4_specs_1; +extern asn_TYPE_member_t asn_MBR_PUCCH_format4_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUCCH_format4_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.c b/src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.c new file mode 100644 index 000000000..fb65356ab --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-CodeBlockGroupTransmission.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_maxCodeBlockGroupsPerTransportBlock_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_maxCodeBlockGroupsPerTransportBlock_value2enum_2[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n6" }, + { 3, 2, "n8" } +}; +static const unsigned int asn_MAP_maxCodeBlockGroupsPerTransportBlock_enum2value_2[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2, /* n6(2) */ + 3 /* n8(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxCodeBlockGroupsPerTransportBlock_specs_2 = { + asn_MAP_maxCodeBlockGroupsPerTransportBlock_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxCodeBlockGroupsPerTransportBlock_2 = { + "maxCodeBlockGroupsPerTransportBlock", + "maxCodeBlockGroupsPerTransportBlock", + &asn_OP_NativeEnumerated, + asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2, + sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2, /* Same as above */ + sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2) + /sizeof(asn_DEF_maxCodeBlockGroupsPerTransportBlock_tags_2[0]), /* 2 */ + { &asn_OER_type_maxCodeBlockGroupsPerTransportBlock_constr_2, &asn_PER_type_maxCodeBlockGroupsPerTransportBlock_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxCodeBlockGroupsPerTransportBlock_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_CodeBlockGroupTransmission_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_CodeBlockGroupTransmission, maxCodeBlockGroupsPerTransportBlock), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxCodeBlockGroupsPerTransportBlock_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxCodeBlockGroupsPerTransportBlock" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_PUSCH_CodeBlockGroupTransmission_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* maxCodeBlockGroupsPerTransportBlock */ +}; +asn_SEQUENCE_specifics_t asn_SPC_PUSCH_CodeBlockGroupTransmission_specs_1 = { + sizeof(struct PUSCH_CodeBlockGroupTransmission), + offsetof(struct PUSCH_CodeBlockGroupTransmission, _asn_ctx), + asn_MAP_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_PUSCH_CodeBlockGroupTransmission = { + "PUSCH-CodeBlockGroupTransmission", + "PUSCH-CodeBlockGroupTransmission", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1, + sizeof(asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1) + /sizeof(asn_DEF_PUSCH_CodeBlockGroupTransmission_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_CodeBlockGroupTransmission_1, + 1, /* Elements count */ + &asn_SPC_PUSCH_CodeBlockGroupTransmission_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.h b/src/codec_utils/RRC/PUSCH-CodeBlockGroupTransmission.h new file mode 100644 index 000000000..90d7be55a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_CodeBlockGroupTransmission_H_ +#define _PUSCH_CodeBlockGroupTransmission_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock { + PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n2 = 0, + PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n4 = 1, + PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n6 = 2, + PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock_n8 = 3 +} e_PUSCH_CodeBlockGroupTransmission__maxCodeBlockGroupsPerTransportBlock; + +/* PUSCH-CodeBlockGroupTransmission */ +typedef struct PUSCH_CodeBlockGroupTransmission { + long maxCodeBlockGroupsPerTransportBlock; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUSCH_CodeBlockGroupTransmission_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxCodeBlockGroupsPerTransportBlock_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_CodeBlockGroupTransmission; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_CodeBlockGroupTransmission_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_CodeBlockGroupTransmission_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_CodeBlockGroupTransmission_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-Config.c b/src/codec_utils/RRC/PUSCH-Config.c new file mode 100644 index 000000000..87338d8d5 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-Config.c @@ -0,0 +1,1124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-Config.h" + +#include "PUSCH-PowerControl.h" +#include "DMRS-UplinkConfig.h" +#include "PUSCH-TimeDomainResourceAllocationList.h" +#include "UCI-OnPUSCH.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_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 <= 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_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_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_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_oer_constraints_t asn_OER_type_txConfig_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeA_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_oer_constraints_t asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeB_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_oer_constraints_t asn_OER_type_frequencyHopping_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_frequencyHopping_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_oer_constraints_t asn_OER_memb_Member_constr_17 CC_NOTUSED = { + { 2, 1 } /* (1..274) */, + -1}; +static asn_per_constraints_t asn_PER_memb_Member_constr_17 CC_NOTUSED = { + { APC_CONSTRAINED, 9, 9, 1, 274 } /* (1..274) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_frequencyHoppingOffsetLists_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_oer_constraints_t asn_OER_type_resourceAllocation_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_resourceAllocation_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_pusch_TimeDomainAllocationList_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pusch_TimeDomainAllocationList_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_pusch_AggregationFactor_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pusch_AggregationFactor_constr_25 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_mcs_Table_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_mcs_Table_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_oer_constraints_t asn_OER_type_mcs_TableTransformPrecoder_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_mcs_TableTransformPrecoder_constr_32 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_transformPrecoder_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_transformPrecoder_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_codebookSubset_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_codebookSubset_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_oer_constraints_t asn_OER_type_rbg_Size_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rbg_Size_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_oer_constraints_t asn_OER_type_uci_OnPUSCH_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_uci_OnPUSCH_constr_45 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_tp_pi2BPSK_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_tp_pi2BPSK_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_oer_constraints_t asn_OER_memb_dataScramblingIdentityPUSCH_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_frequencyHoppingOffsetLists_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_frequencyHoppingOffsetLists_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_oer_constraints_t asn_OER_memb_maxRank_constr_42 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxRank_constr_42 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_txConfig_value2enum_3[] = { + { 0, 8, "codebook" }, + { 1, 11, "nonCodebook" } +}; +static const unsigned int asn_MAP_txConfig_enum2value_3[] = { + 0, /* codebook(0) */ + 1 /* nonCodebook(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_txConfig_specs_3 = { + asn_MAP_txConfig_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_txConfig_3 = { + "txConfig", + "txConfig", + &asn_OP_NativeEnumerated, + asn_DEF_txConfig_tags_3, + sizeof(asn_DEF_txConfig_tags_3) + /sizeof(asn_DEF_txConfig_tags_3[0]) - 1, /* 1 */ + asn_DEF_txConfig_tags_3, /* Same as above */ + sizeof(asn_DEF_txConfig_tags_3) + /sizeof(asn_DEF_txConfig_tags_3[0]), /* 2 */ + { &asn_OER_type_txConfig_constr_3, &asn_PER_type_txConfig_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_txConfig_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dmrs_UplinkForPUSCH_MappingTypeA_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, 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 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_dmrs_UplinkForPUSCH_MappingTypeA_tag2el_6[] = { + { (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_dmrs_UplinkForPUSCH_MappingTypeA_specs_6 = { + sizeof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA), + offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, _asn_ctx), + offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA, present), + sizeof(((struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA *)0)->present), + asn_MAP_dmrs_UplinkForPUSCH_MappingTypeA_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_dmrs_UplinkForPUSCH_MappingTypeA_6 = { + "dmrs-UplinkForPUSCH-MappingTypeA", + "dmrs-UplinkForPUSCH-MappingTypeA", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6, &asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeA_constr_6, CHOICE_constraint }, + asn_MBR_dmrs_UplinkForPUSCH_MappingTypeA_6, + 2, /* Elements count */ + &asn_SPC_dmrs_UplinkForPUSCH_MappingTypeA_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dmrs_UplinkForPUSCH_MappingTypeB_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, 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 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DMRS_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_dmrs_UplinkForPUSCH_MappingTypeB_tag2el_9[] = { + { (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_dmrs_UplinkForPUSCH_MappingTypeB_specs_9 = { + sizeof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB), + offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, _asn_ctx), + offsetof(struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB, present), + sizeof(((struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB *)0)->present), + asn_MAP_dmrs_UplinkForPUSCH_MappingTypeB_tag2el_9, + 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_dmrs_UplinkForPUSCH_MappingTypeB_9 = { + "dmrs-UplinkForPUSCH-MappingTypeB", + "dmrs-UplinkForPUSCH-MappingTypeB", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9, &asn_PER_type_dmrs_UplinkForPUSCH_MappingTypeB_constr_9, CHOICE_constraint }, + asn_MBR_dmrs_UplinkForPUSCH_MappingTypeB_9, + 2, /* Elements count */ + &asn_SPC_dmrs_UplinkForPUSCH_MappingTypeB_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_frequencyHopping_value2enum_13[] = { + { 0, 9, "intraSlot" }, + { 1, 9, "interSlot" } +}; +static const unsigned int asn_MAP_frequencyHopping_enum2value_13[] = { + 1, /* interSlot(1) */ + 0 /* intraSlot(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_frequencyHopping_specs_13 = { + asn_MAP_frequencyHopping_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_frequencyHopping_enum2value_13, /* 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_frequencyHopping_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_frequencyHopping_13 = { + "frequencyHopping", + "frequencyHopping", + &asn_OP_NativeEnumerated, + asn_DEF_frequencyHopping_tags_13, + sizeof(asn_DEF_frequencyHopping_tags_13) + /sizeof(asn_DEF_frequencyHopping_tags_13[0]) - 1, /* 1 */ + asn_DEF_frequencyHopping_tags_13, /* Same as above */ + sizeof(asn_DEF_frequencyHopping_tags_13) + /sizeof(asn_DEF_frequencyHopping_tags_13[0]), /* 2 */ + { &asn_OER_type_frequencyHopping_constr_13, &asn_PER_type_frequencyHopping_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_frequencyHopping_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_frequencyHoppingOffsetLists_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_17, &asn_PER_memb_Member_constr_17, memb_NativeInteger_constraint_16 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_frequencyHoppingOffsetLists_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_frequencyHoppingOffsetLists_specs_16 = { + sizeof(struct PUSCH_Config__frequencyHoppingOffsetLists), + offsetof(struct PUSCH_Config__frequencyHoppingOffsetLists, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_frequencyHoppingOffsetLists_16 = { + "frequencyHoppingOffsetLists", + "frequencyHoppingOffsetLists", + &asn_OP_SEQUENCE_OF, + asn_DEF_frequencyHoppingOffsetLists_tags_16, + sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16) + /sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16[0]) - 1, /* 1 */ + asn_DEF_frequencyHoppingOffsetLists_tags_16, /* Same as above */ + sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16) + /sizeof(asn_DEF_frequencyHoppingOffsetLists_tags_16[0]), /* 2 */ + { &asn_OER_type_frequencyHoppingOffsetLists_constr_16, &asn_PER_type_frequencyHoppingOffsetLists_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_frequencyHoppingOffsetLists_16, + 1, /* Single element */ + &asn_SPC_frequencyHoppingOffsetLists_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_resourceAllocation_value2enum_18[] = { + { 0, 23, "resourceAllocationType0" }, + { 1, 23, "resourceAllocationType1" }, + { 2, 13, "dynamicSwitch" } +}; +static const unsigned int asn_MAP_resourceAllocation_enum2value_18[] = { + 2, /* dynamicSwitch(2) */ + 0, /* resourceAllocationType0(0) */ + 1 /* resourceAllocationType1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_resourceAllocation_specs_18 = { + asn_MAP_resourceAllocation_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_resourceAllocation_enum2value_18, /* 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_resourceAllocation_tags_18[] = { + (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_resourceAllocation_18 = { + "resourceAllocation", + "resourceAllocation", + &asn_OP_NativeEnumerated, + asn_DEF_resourceAllocation_tags_18, + sizeof(asn_DEF_resourceAllocation_tags_18) + /sizeof(asn_DEF_resourceAllocation_tags_18[0]) - 1, /* 1 */ + asn_DEF_resourceAllocation_tags_18, /* Same as above */ + sizeof(asn_DEF_resourceAllocation_tags_18) + /sizeof(asn_DEF_resourceAllocation_tags_18[0]), /* 2 */ + { &asn_OER_type_resourceAllocation_constr_18, &asn_PER_type_resourceAllocation_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_resourceAllocation_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pusch_TimeDomainAllocationList_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, 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 PUSCH_Config__pusch_TimeDomainAllocationList, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pusch_TimeDomainAllocationList_tag2el_22[] = { + { (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_pusch_TimeDomainAllocationList_specs_22 = { + sizeof(struct PUSCH_Config__pusch_TimeDomainAllocationList), + offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, _asn_ctx), + offsetof(struct PUSCH_Config__pusch_TimeDomainAllocationList, present), + sizeof(((struct PUSCH_Config__pusch_TimeDomainAllocationList *)0)->present), + asn_MAP_pusch_TimeDomainAllocationList_tag2el_22, + 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_pusch_TimeDomainAllocationList_22 = { + "pusch-TimeDomainAllocationList", + "pusch-TimeDomainAllocationList", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pusch_TimeDomainAllocationList_constr_22, &asn_PER_type_pusch_TimeDomainAllocationList_constr_22, CHOICE_constraint }, + asn_MBR_pusch_TimeDomainAllocationList_22, + 2, /* Elements count */ + &asn_SPC_pusch_TimeDomainAllocationList_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_AggregationFactor_value2enum_25[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" }, + { 2, 2, "n8" } +}; +static const unsigned int asn_MAP_pusch_AggregationFactor_enum2value_25[] = { + 0, /* n2(0) */ + 1, /* n4(1) */ + 2 /* n8(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_AggregationFactor_specs_25 = { + asn_MAP_pusch_AggregationFactor_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_pusch_AggregationFactor_enum2value_25, /* 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_pusch_AggregationFactor_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_pusch_AggregationFactor_25 = { + "pusch-AggregationFactor", + "pusch-AggregationFactor", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_AggregationFactor_tags_25, + sizeof(asn_DEF_pusch_AggregationFactor_tags_25) + /sizeof(asn_DEF_pusch_AggregationFactor_tags_25[0]) - 1, /* 1 */ + asn_DEF_pusch_AggregationFactor_tags_25, /* Same as above */ + sizeof(asn_DEF_pusch_AggregationFactor_tags_25) + /sizeof(asn_DEF_pusch_AggregationFactor_tags_25[0]), /* 2 */ + { &asn_OER_type_pusch_AggregationFactor_constr_25, &asn_PER_type_pusch_AggregationFactor_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_AggregationFactor_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_Table_value2enum_29[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_Table_enum2value_29[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_Table_specs_29 = { + asn_MAP_mcs_Table_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_mcs_Table_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_mcs_Table_tags_29[] = { + (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_mcs_Table_29 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_Table_tags_29, + sizeof(asn_DEF_mcs_Table_tags_29) + /sizeof(asn_DEF_mcs_Table_tags_29[0]) - 1, /* 1 */ + asn_DEF_mcs_Table_tags_29, /* Same as above */ + sizeof(asn_DEF_mcs_Table_tags_29) + /sizeof(asn_DEF_mcs_Table_tags_29[0]), /* 2 */ + { &asn_OER_type_mcs_Table_constr_29, &asn_PER_type_mcs_Table_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_Table_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_TableTransformPrecoder_value2enum_32[] = { + { 0, 6, "qam256" }, + { 1, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_TableTransformPrecoder_enum2value_32[] = { + 0, /* qam256(0) */ + 1 /* qam64LowSE(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_TableTransformPrecoder_specs_32 = { + asn_MAP_mcs_TableTransformPrecoder_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_mcs_TableTransformPrecoder_enum2value_32, /* 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_mcs_TableTransformPrecoder_tags_32[] = { + (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_mcs_TableTransformPrecoder_32 = { + "mcs-TableTransformPrecoder", + "mcs-TableTransformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_TableTransformPrecoder_tags_32, + sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32) + /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32[0]) - 1, /* 1 */ + asn_DEF_mcs_TableTransformPrecoder_tags_32, /* Same as above */ + sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32) + /sizeof(asn_DEF_mcs_TableTransformPrecoder_tags_32[0]), /* 2 */ + { &asn_OER_type_mcs_TableTransformPrecoder_constr_32, &asn_PER_type_mcs_TableTransformPrecoder_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_TableTransformPrecoder_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_transformPrecoder_value2enum_35[] = { + { 0, 7, "enabled" }, + { 1, 8, "disabled" } +}; +static const unsigned int asn_MAP_transformPrecoder_enum2value_35[] = { + 1, /* disabled(1) */ + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_transformPrecoder_specs_35 = { + asn_MAP_transformPrecoder_value2enum_35, /* "tag" => N; sorted by tag */ + asn_MAP_transformPrecoder_enum2value_35, /* 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_transformPrecoder_tags_35[] = { + (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_transformPrecoder_35 = { + "transformPrecoder", + "transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_transformPrecoder_tags_35, + sizeof(asn_DEF_transformPrecoder_tags_35) + /sizeof(asn_DEF_transformPrecoder_tags_35[0]) - 1, /* 1 */ + asn_DEF_transformPrecoder_tags_35, /* Same as above */ + sizeof(asn_DEF_transformPrecoder_tags_35) + /sizeof(asn_DEF_transformPrecoder_tags_35[0]), /* 2 */ + { &asn_OER_type_transformPrecoder_constr_35, &asn_PER_type_transformPrecoder_constr_35, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_transformPrecoder_specs_35 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_codebookSubset_value2enum_38[] = { + { 0, 29, "fullyAndPartialAndNonCoherent" }, + { 1, 21, "partialAndNonCoherent" }, + { 2, 11, "nonCoherent" } +}; +static const unsigned int asn_MAP_codebookSubset_enum2value_38[] = { + 0, /* fullyAndPartialAndNonCoherent(0) */ + 2, /* nonCoherent(2) */ + 1 /* partialAndNonCoherent(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_codebookSubset_specs_38 = { + asn_MAP_codebookSubset_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_codebookSubset_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_codebookSubset_tags_38[] = { + (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_codebookSubset_38 = { + "codebookSubset", + "codebookSubset", + &asn_OP_NativeEnumerated, + asn_DEF_codebookSubset_tags_38, + sizeof(asn_DEF_codebookSubset_tags_38) + /sizeof(asn_DEF_codebookSubset_tags_38[0]) - 1, /* 1 */ + asn_DEF_codebookSubset_tags_38, /* Same as above */ + sizeof(asn_DEF_codebookSubset_tags_38) + /sizeof(asn_DEF_codebookSubset_tags_38[0]), /* 2 */ + { &asn_OER_type_codebookSubset_constr_38, &asn_PER_type_codebookSubset_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_codebookSubset_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rbg_Size_value2enum_43[] = { + { 0, 7, "config2" } +}; +static const unsigned int asn_MAP_rbg_Size_enum2value_43[] = { + 0 /* config2(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rbg_Size_specs_43 = { + asn_MAP_rbg_Size_value2enum_43, /* "tag" => N; sorted by tag */ + asn_MAP_rbg_Size_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_rbg_Size_tags_43[] = { + (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_rbg_Size_43 = { + "rbg-Size", + "rbg-Size", + &asn_OP_NativeEnumerated, + asn_DEF_rbg_Size_tags_43, + sizeof(asn_DEF_rbg_Size_tags_43) + /sizeof(asn_DEF_rbg_Size_tags_43[0]) - 1, /* 1 */ + asn_DEF_rbg_Size_tags_43, /* Same as above */ + sizeof(asn_DEF_rbg_Size_tags_43) + /sizeof(asn_DEF_rbg_Size_tags_43[0]), /* 2 */ + { &asn_OER_type_rbg_Size_constr_43, &asn_PER_type_rbg_Size_constr_43, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rbg_Size_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uci_OnPUSCH_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config__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 PUSCH_Config__uci_OnPUSCH, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UCI_OnPUSCH, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_uci_OnPUSCH_tag2el_45[] = { + { (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_uci_OnPUSCH_specs_45 = { + sizeof(struct PUSCH_Config__uci_OnPUSCH), + offsetof(struct PUSCH_Config__uci_OnPUSCH, _asn_ctx), + offsetof(struct PUSCH_Config__uci_OnPUSCH, present), + sizeof(((struct PUSCH_Config__uci_OnPUSCH *)0)->present), + asn_MAP_uci_OnPUSCH_tag2el_45, + 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_uci_OnPUSCH_45 = { + "uci-OnPUSCH", + "uci-OnPUSCH", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_uci_OnPUSCH_constr_45, &asn_PER_type_uci_OnPUSCH_constr_45, CHOICE_constraint }, + asn_MBR_uci_OnPUSCH_45, + 2, /* Elements count */ + &asn_SPC_uci_OnPUSCH_specs_45 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tp_pi2BPSK_value2enum_48[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_tp_pi2BPSK_enum2value_48[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tp_pi2BPSK_specs_48 = { + asn_MAP_tp_pi2BPSK_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_tp_pi2BPSK_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_tp_pi2BPSK_tags_48[] = { + (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_tp_pi2BPSK_48 = { + "tp-pi2BPSK", + "tp-pi2BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_tp_pi2BPSK_tags_48, + sizeof(asn_DEF_tp_pi2BPSK_tags_48) + /sizeof(asn_DEF_tp_pi2BPSK_tags_48[0]) - 1, /* 1 */ + asn_DEF_tp_pi2BPSK_tags_48, /* Same as above */ + sizeof(asn_DEF_tp_pi2BPSK_tags_48) + /sizeof(asn_DEF_tp_pi2BPSK_tags_48[0]), /* 2 */ + { &asn_OER_type_tp_pi2BPSK_constr_48, &asn_PER_type_tp_pi2BPSK_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tp_pi2BPSK_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_Config_1[] = { + { ATF_POINTER, 7, offsetof(struct PUSCH_Config, dataScramblingIdentityPUSCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dataScramblingIdentityPUSCH_constr_2, &asn_PER_memb_dataScramblingIdentityPUSCH_constr_2, memb_dataScramblingIdentityPUSCH_constraint_1 }, + 0, 0, /* No default value */ + "dataScramblingIdentityPUSCH" + }, + { ATF_POINTER, 6, offsetof(struct PUSCH_Config, txConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_txConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txConfig" + }, + { ATF_POINTER, 5, offsetof(struct PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_dmrs_UplinkForPUSCH_MappingTypeA_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-UplinkForPUSCH-MappingTypeA" + }, + { ATF_POINTER, 4, offsetof(struct PUSCH_Config, dmrs_UplinkForPUSCH_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_dmrs_UplinkForPUSCH_MappingTypeB_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-UplinkForPUSCH-MappingTypeB" + }, + { ATF_POINTER, 3, offsetof(struct PUSCH_Config, pusch_PowerControl), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-PowerControl" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_Config, frequencyHopping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_frequencyHopping_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyHopping" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_Config, frequencyHoppingOffsetLists), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_frequencyHoppingOffsetLists_16, + 0, + { &asn_OER_memb_frequencyHoppingOffsetLists_constr_16, &asn_PER_memb_frequencyHoppingOffsetLists_constr_16, memb_frequencyHoppingOffsetLists_constraint_1 }, + 0, 0, /* No default value */ + "frequencyHoppingOffsetLists" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_Config, resourceAllocation), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_resourceAllocation_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceAllocation" + }, + { ATF_POINTER, 10, offsetof(struct PUSCH_Config, pusch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pusch_TimeDomainAllocationList_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TimeDomainAllocationList" + }, + { ATF_POINTER, 9, offsetof(struct PUSCH_Config, pusch_AggregationFactor), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_AggregationFactor_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-AggregationFactor" + }, + { ATF_POINTER, 8, offsetof(struct PUSCH_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_Table_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, + { ATF_POINTER, 7, offsetof(struct PUSCH_Config, mcs_TableTransformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_TableTransformPrecoder_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-TableTransformPrecoder" + }, + { ATF_POINTER, 6, offsetof(struct PUSCH_Config, transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_transformPrecoder_35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transformPrecoder" + }, + { ATF_POINTER, 5, offsetof(struct PUSCH_Config, codebookSubset), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_codebookSubset_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codebookSubset" + }, + { ATF_POINTER, 4, offsetof(struct PUSCH_Config, maxRank), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxRank_constr_42, &asn_PER_memb_maxRank_constr_42, memb_maxRank_constraint_1 }, + 0, 0, /* No default value */ + "maxRank" + }, + { ATF_POINTER, 3, offsetof(struct PUSCH_Config, rbg_Size), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rbg_Size_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rbg-Size" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_Config, uci_OnPUSCH), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_uci_OnPUSCH_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-OnPUSCH" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_Config, tp_pi2BPSK), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tp_pi2BPSK_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tp-pi2BPSK" + }, +}; +static const int asn_MAP_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_PUSCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_Config_specs_1 = { + sizeof(struct PUSCH_Config), + offsetof(struct PUSCH_Config, _asn_ctx), + asn_MAP_PUSCH_Config_tag2el_1, + 18, /* Count of tags in the map */ + asn_MAP_PUSCH_Config_oms_1, /* Optional members */ + 17, 0, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_Config = { + "PUSCH-Config", + "PUSCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_Config_tags_1, + sizeof(asn_DEF_PUSCH_Config_tags_1) + /sizeof(asn_DEF_PUSCH_Config_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_Config_tags_1) + /sizeof(asn_DEF_PUSCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_Config_1, + 18, /* Elements count */ + &asn_SPC_PUSCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-Config.h b/src/codec_utils/RRC/PUSCH-Config.h new file mode 100644 index 000000000..bddadaa91 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-Config.h @@ -0,0 +1,186 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_Config_H_ +#define _PUSCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_Config__txConfig { + PUSCH_Config__txConfig_codebook = 0, + PUSCH_Config__txConfig_nonCodebook = 1 +} e_PUSCH_Config__txConfig; +typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR { + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_NOTHING, /* No components present */ + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_release, + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_setup +} PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR; +typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR { + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_NOTHING, /* No components present */ + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_release, + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_setup +} PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR; +typedef enum PUSCH_Config__frequencyHopping { + PUSCH_Config__frequencyHopping_intraSlot = 0, + PUSCH_Config__frequencyHopping_interSlot = 1 +} e_PUSCH_Config__frequencyHopping; +typedef enum PUSCH_Config__resourceAllocation { + PUSCH_Config__resourceAllocation_resourceAllocationType0 = 0, + PUSCH_Config__resourceAllocation_resourceAllocationType1 = 1, + PUSCH_Config__resourceAllocation_dynamicSwitch = 2 +} e_PUSCH_Config__resourceAllocation; +typedef enum PUSCH_Config__pusch_TimeDomainAllocationList_PR { + PUSCH_Config__pusch_TimeDomainAllocationList_PR_NOTHING, /* No components present */ + PUSCH_Config__pusch_TimeDomainAllocationList_PR_release, + PUSCH_Config__pusch_TimeDomainAllocationList_PR_setup +} PUSCH_Config__pusch_TimeDomainAllocationList_PR; +typedef enum PUSCH_Config__pusch_AggregationFactor { + PUSCH_Config__pusch_AggregationFactor_n2 = 0, + PUSCH_Config__pusch_AggregationFactor_n4 = 1, + PUSCH_Config__pusch_AggregationFactor_n8 = 2 +} e_PUSCH_Config__pusch_AggregationFactor; +typedef enum PUSCH_Config__mcs_Table { + PUSCH_Config__mcs_Table_qam256 = 0, + PUSCH_Config__mcs_Table_qam64LowSE = 1 +} e_PUSCH_Config__mcs_Table; +typedef enum PUSCH_Config__mcs_TableTransformPrecoder { + PUSCH_Config__mcs_TableTransformPrecoder_qam256 = 0, + PUSCH_Config__mcs_TableTransformPrecoder_qam64LowSE = 1 +} e_PUSCH_Config__mcs_TableTransformPrecoder; +typedef enum PUSCH_Config__transformPrecoder { + PUSCH_Config__transformPrecoder_enabled = 0, + PUSCH_Config__transformPrecoder_disabled = 1 +} e_PUSCH_Config__transformPrecoder; +typedef enum PUSCH_Config__codebookSubset { + PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent = 0, + PUSCH_Config__codebookSubset_partialAndNonCoherent = 1, + PUSCH_Config__codebookSubset_nonCoherent = 2 +} e_PUSCH_Config__codebookSubset; +typedef enum PUSCH_Config__rbg_Size { + PUSCH_Config__rbg_Size_config2 = 0 +} e_PUSCH_Config__rbg_Size; +typedef enum PUSCH_Config__uci_OnPUSCH_PR { + PUSCH_Config__uci_OnPUSCH_PR_NOTHING, /* No components present */ + PUSCH_Config__uci_OnPUSCH_PR_release, + PUSCH_Config__uci_OnPUSCH_PR_setup +} PUSCH_Config__uci_OnPUSCH_PR; +typedef enum PUSCH_Config__tp_pi2BPSK { + PUSCH_Config__tp_pi2BPSK_enabled = 0 +} e_PUSCH_Config__tp_pi2BPSK; + +/* Forward declarations */ +struct PUSCH_PowerControl; +struct DMRS_UplinkConfig; +struct PUSCH_TimeDomainResourceAllocationList; +struct UCI_OnPUSCH; + +/* PUSCH-Config */ +typedef struct PUSCH_Config { + long *dataScramblingIdentityPUSCH; /* OPTIONAL */ + long *txConfig; /* OPTIONAL */ + struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA { + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR present; + union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_u { + NULL_t release; + struct DMRS_UplinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dmrs_UplinkForPUSCH_MappingTypeA; + struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB { + PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR present; + union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_u { + NULL_t release; + struct DMRS_UplinkConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dmrs_UplinkForPUSCH_MappingTypeB; + struct PUSCH_PowerControl *pusch_PowerControl; /* OPTIONAL */ + long *frequencyHopping; /* OPTIONAL */ + struct PUSCH_Config__frequencyHoppingOffsetLists { + A_SEQUENCE_OF(long) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *frequencyHoppingOffsetLists; + long resourceAllocation; + struct PUSCH_Config__pusch_TimeDomainAllocationList { + PUSCH_Config__pusch_TimeDomainAllocationList_PR present; + union PUSCH_Config__pusch_TimeDomainAllocationList_u { + NULL_t release; + struct PUSCH_TimeDomainResourceAllocationList *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_TimeDomainAllocationList; + 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 PUSCH_Config__uci_OnPUSCH { + PUSCH_Config__uci_OnPUSCH_PR present; + union PUSCH_Config__uci_OnPUSCH_u { + NULL_t release; + struct UCI_OnPUSCH *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uci_OnPUSCH; + long *tp_pi2BPSK; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUSCH_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_txConfig_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_frequencyHopping_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_resourceAllocation_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_AggregationFactor_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_TableTransformPrecoder_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_transformPrecoder_35; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_codebookSubset_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rbg_Size_43; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tp_pi2BPSK_48; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_Config_1[18]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-ConfigCommon.c b/src/codec_utils/RRC/PUSCH-ConfigCommon.c new file mode 100644 index 000000000..d41d72d7d --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-ConfigCommon.c @@ -0,0 +1,196 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-ConfigCommon.h" + +#include "PUSCH-TimeDomainResourceAllocationList.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_groupHoppingEnabledTransformPrecoding_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_msg3_DeltaPreamble_constr_5 CC_NOTUSED = { + { 1, 0 } /* (-1..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_NominalWithGrant_constr_6 CC_NOTUSED = { + { 2, 0 } /* (-202..24) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_groupHoppingEnabledTransformPrecoding_value2enum_2[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_groupHoppingEnabledTransformPrecoding_enum2value_2[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_groupHoppingEnabledTransformPrecoding_specs_2 = { + asn_MAP_groupHoppingEnabledTransformPrecoding_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_groupHoppingEnabledTransformPrecoding_2 = { + "groupHoppingEnabledTransformPrecoding", + "groupHoppingEnabledTransformPrecoding", + &asn_OP_NativeEnumerated, + asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2, + sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2) + /sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2[0]) - 1, /* 1 */ + asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2, /* Same as above */ + sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2) + /sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2[0]), /* 2 */ + { &asn_OER_type_groupHoppingEnabledTransformPrecoding_constr_2, &asn_PER_type_groupHoppingEnabledTransformPrecoding_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_groupHoppingEnabledTransformPrecoding_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_ConfigCommon_1[] = { + { ATF_POINTER, 4, offsetof(struct PUSCH_ConfigCommon, groupHoppingEnabledTransformPrecoding), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_groupHoppingEnabledTransformPrecoding_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupHoppingEnabledTransformPrecoding" + }, + { ATF_POINTER, 3, offsetof(struct PUSCH_ConfigCommon, pusch_TimeDomainAllocationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_TimeDomainResourceAllocationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-TimeDomainAllocationList" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_ConfigCommon, msg3_DeltaPreamble), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_msg3_DeltaPreamble_constr_5, &asn_PER_memb_msg3_DeltaPreamble_constr_5, memb_msg3_DeltaPreamble_constraint_1 }, + 0, 0, /* No default value */ + "msg3-DeltaPreamble" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_ConfigCommon, p0_NominalWithGrant), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_NominalWithGrant_constr_6, &asn_PER_memb_p0_NominalWithGrant_constr_6, memb_p0_NominalWithGrant_constraint_1 }, + 0, 0, /* No default value */ + "p0-NominalWithGrant" + }, +}; +static const int asn_MAP_PUSCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PUSCH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_ConfigCommon_specs_1 = { + sizeof(struct PUSCH_ConfigCommon), + offsetof(struct PUSCH_ConfigCommon, _asn_ctx), + asn_MAP_PUSCH_ConfigCommon_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PUSCH_ConfigCommon_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_ConfigCommon = { + "PUSCH-ConfigCommon", + "PUSCH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_ConfigCommon_tags_1, + sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1) + /sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_ConfigCommon_1, + 4, /* Elements count */ + &asn_SPC_PUSCH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-ConfigCommon.h b/src/codec_utils/RRC/PUSCH-ConfigCommon.h new file mode 100644 index 000000000..1214f062d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_ConfigCommon_H_ +#define _PUSCH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding { + PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding_enabled = 0 +} e_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding; + +/* Forward declarations */ +struct PUSCH_TimeDomainResourceAllocationList; + +/* PUSCH-ConfigCommon */ +typedef struct PUSCH_ConfigCommon { + long *groupHoppingEnabledTransformPrecoding; /* OPTIONAL */ + struct 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; +} PUSCH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_groupHoppingEnabledTransformPrecoding_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_ConfigCommon_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.c b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.c new file mode 100644 index 000000000..8f3922d90 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-PathlossReferenceRS-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PUSCH_PathlossReferenceRS_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PUSCH_PathlossReferenceRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_PathlossReferenceRS_Id = { + "PUSCH-PathlossReferenceRS-Id", + "PUSCH-PathlossReferenceRS-Id", + &asn_OP_NativeInteger, + asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1, + sizeof(asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1) + /sizeof(asn_DEF_PUSCH_PathlossReferenceRS_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_PUSCH_PathlossReferenceRS_Id_constr_1, &asn_PER_type_PUSCH_PathlossReferenceRS_Id_constr_1, PUSCH_PathlossReferenceRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.h b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.h new file mode 100644 index 000000000..b2468deb8 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_PathlossReferenceRS_Id_H_ +#define _PUSCH_PathlossReferenceRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUSCH-PathlossReferenceRS-Id */ +typedef long PUSCH_PathlossReferenceRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PUSCH_PathlossReferenceRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_PathlossReferenceRS_Id; +asn_struct_free_f PUSCH_PathlossReferenceRS_Id_free; +asn_struct_print_f PUSCH_PathlossReferenceRS_Id_print; +asn_constr_check_f PUSCH_PathlossReferenceRS_Id_constraint; +ber_type_decoder_f PUSCH_PathlossReferenceRS_Id_decode_ber; +der_type_encoder_f PUSCH_PathlossReferenceRS_Id_encode_der; +xer_type_decoder_f PUSCH_PathlossReferenceRS_Id_decode_xer; +xer_type_encoder_f PUSCH_PathlossReferenceRS_Id_encode_xer; +oer_type_decoder_f PUSCH_PathlossReferenceRS_Id_decode_oer; +oer_type_encoder_f PUSCH_PathlossReferenceRS_Id_encode_oer; +per_type_decoder_f PUSCH_PathlossReferenceRS_Id_decode_uper; +per_type_encoder_f PUSCH_PathlossReferenceRS_Id_encode_uper; +per_type_decoder_f PUSCH_PathlossReferenceRS_Id_decode_aper; +per_type_encoder_f PUSCH_PathlossReferenceRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_PathlossReferenceRS_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-PathlossReferenceRS.c b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS.c new file mode 100644 index 000000000..a049cfda3 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS.c @@ -0,0 +1,117 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-PathlossReferenceRS.h" + +static asn_oer_constraints_t asn_OER_type_referenceSignal_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_PathlossReferenceRS__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_PathlossReferenceRS__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_referenceSignal_specs_3 = { + sizeof(struct PUSCH_PathlossReferenceRS__referenceSignal), + offsetof(struct PUSCH_PathlossReferenceRS__referenceSignal, _asn_ctx), + offsetof(struct PUSCH_PathlossReferenceRS__referenceSignal, present), + sizeof(((struct PUSCH_PathlossReferenceRS__referenceSignal *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_referenceSignal_constr_3, &asn_PER_type_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_referenceSignal_3, + 2, /* Elements count */ + &asn_SPC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_PathlossReferenceRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_PathlossReferenceRS, pusch_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_PathlossReferenceRS, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUSCH_PathlossReferenceRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_PathlossReferenceRS_specs_1 = { + sizeof(struct PUSCH_PathlossReferenceRS), + offsetof(struct PUSCH_PathlossReferenceRS, _asn_ctx), + asn_MAP_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_PUSCH_PathlossReferenceRS = { + "PUSCH-PathlossReferenceRS", + "PUSCH-PathlossReferenceRS", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_PathlossReferenceRS_tags_1, + sizeof(asn_DEF_PUSCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_PUSCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_PathlossReferenceRS_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_PathlossReferenceRS_tags_1) + /sizeof(asn_DEF_PUSCH_PathlossReferenceRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_PathlossReferenceRS_1, + 2, /* Elements count */ + &asn_SPC_PUSCH_PathlossReferenceRS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-PathlossReferenceRS.h b/src/codec_utils/RRC/PUSCH-PathlossReferenceRS.h new file mode 100644 index 000000000..23772710b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_PathlossReferenceRS_H_ +#define _PUSCH_PathlossReferenceRS_H_ + + +#include + +/* Including external dependencies */ +#include "PUSCH-PathlossReferenceRS-Id.h" +#include "SSB-Index.h" +#include "NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_PathlossReferenceRS__referenceSignal_PR { + PUSCH_PathlossReferenceRS__referenceSignal_PR_NOTHING, /* No components present */ + PUSCH_PathlossReferenceRS__referenceSignal_PR_ssb_Index, + PUSCH_PathlossReferenceRS__referenceSignal_PR_csi_RS_Index +} PUSCH_PathlossReferenceRS__referenceSignal_PR; + +/* PUSCH-PathlossReferenceRS */ +typedef struct PUSCH_PathlossReferenceRS { + PUSCH_PathlossReferenceRS_Id_t pusch_PathlossReferenceRS_Id; + struct PUSCH_PathlossReferenceRS__referenceSignal { + PUSCH_PathlossReferenceRS__referenceSignal_PR present; + union PUSCH_PathlossReferenceRS__referenceSignal_u { + SSB_Index_t ssb_Index; + 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; +} PUSCH_PathlossReferenceRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_PathlossReferenceRS; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_PathlossReferenceRS_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_PathlossReferenceRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_PathlossReferenceRS_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-PowerControl.c b/src/codec_utils/RRC/PUSCH-PowerControl.c new file mode 100644 index 000000000..6ab88ca9a --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-PowerControl.c @@ -0,0 +1,714 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-PowerControl.h" + +#include "P0-PUSCH-AlphaSet.h" +#include "PUSCH-PathlossReferenceRS.h" +#include "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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_tpc_Accumulation_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_p0_AlphaSets_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..30)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pathlossReferenceRSToAddModList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pathlossReferenceRSToReleaseList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUSCH_PC_AdjustmentStates_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_deltaMCS_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sri_PUSCH_MappingToAddModList_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sri_PUSCH_MappingToReleaseList_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_p0_NominalWithoutGrant_constr_5 CC_NOTUSED = { + { 2, 0 } /* (-202..24) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_AlphaSets_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..30)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pathlossReferenceRSToAddModList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pathlossReferenceRSToReleaseList_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sri_PUSCH_MappingToAddModList_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sri_PUSCH_MappingToReleaseList_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_tpc_Accumulation_value2enum_2[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_tpc_Accumulation_enum2value_2[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tpc_Accumulation_specs_2 = { + asn_MAP_tpc_Accumulation_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tpc_Accumulation_2 = { + "tpc-Accumulation", + "tpc-Accumulation", + &asn_OP_NativeEnumerated, + asn_DEF_tpc_Accumulation_tags_2, + sizeof(asn_DEF_tpc_Accumulation_tags_2) + /sizeof(asn_DEF_tpc_Accumulation_tags_2[0]) - 1, /* 1 */ + asn_DEF_tpc_Accumulation_tags_2, /* Same as above */ + sizeof(asn_DEF_tpc_Accumulation_tags_2) + /sizeof(asn_DEF_tpc_Accumulation_tags_2[0]), /* 2 */ + { &asn_OER_type_tpc_Accumulation_constr_2, &asn_PER_type_tpc_Accumulation_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tpc_Accumulation_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_p0_AlphaSets_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_P0_PUSCH_AlphaSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_p0_AlphaSets_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_p0_AlphaSets_specs_6 = { + sizeof(struct PUSCH_PowerControl__p0_AlphaSets), + offsetof(struct PUSCH_PowerControl__p0_AlphaSets, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_p0_AlphaSets_6 = { + "p0-AlphaSets", + "p0-AlphaSets", + &asn_OP_SEQUENCE_OF, + asn_DEF_p0_AlphaSets_tags_6, + sizeof(asn_DEF_p0_AlphaSets_tags_6) + /sizeof(asn_DEF_p0_AlphaSets_tags_6[0]) - 1, /* 1 */ + asn_DEF_p0_AlphaSets_tags_6, /* Same as above */ + sizeof(asn_DEF_p0_AlphaSets_tags_6) + /sizeof(asn_DEF_p0_AlphaSets_tags_6[0]), /* 2 */ + { &asn_OER_type_p0_AlphaSets_constr_6, &asn_PER_type_p0_AlphaSets_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_p0_AlphaSets_6, + 1, /* Single element */ + &asn_SPC_p0_AlphaSets_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pathlossReferenceRSToAddModList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUSCH_PathlossReferenceRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_pathlossReferenceRSToAddModList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_pathlossReferenceRSToAddModList_specs_8 = { + sizeof(struct PUSCH_PowerControl__pathlossReferenceRSToAddModList), + offsetof(struct PUSCH_PowerControl__pathlossReferenceRSToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pathlossReferenceRSToAddModList_8 = { + "pathlossReferenceRSToAddModList", + "pathlossReferenceRSToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_pathlossReferenceRSToAddModList_tags_8, + sizeof(asn_DEF_pathlossReferenceRSToAddModList_tags_8) + /sizeof(asn_DEF_pathlossReferenceRSToAddModList_tags_8[0]) - 1, /* 1 */ + asn_DEF_pathlossReferenceRSToAddModList_tags_8, /* Same as above */ + sizeof(asn_DEF_pathlossReferenceRSToAddModList_tags_8) + /sizeof(asn_DEF_pathlossReferenceRSToAddModList_tags_8[0]), /* 2 */ + { &asn_OER_type_pathlossReferenceRSToAddModList_constr_8, &asn_PER_type_pathlossReferenceRSToAddModList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_pathlossReferenceRSToAddModList_8, + 1, /* Single element */ + &asn_SPC_pathlossReferenceRSToAddModList_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pathlossReferenceRSToReleaseList_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_pathlossReferenceRSToReleaseList_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_pathlossReferenceRSToReleaseList_specs_10 = { + sizeof(struct PUSCH_PowerControl__pathlossReferenceRSToReleaseList), + offsetof(struct PUSCH_PowerControl__pathlossReferenceRSToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pathlossReferenceRSToReleaseList_10 = { + "pathlossReferenceRSToReleaseList", + "pathlossReferenceRSToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_pathlossReferenceRSToReleaseList_tags_10, + sizeof(asn_DEF_pathlossReferenceRSToReleaseList_tags_10) + /sizeof(asn_DEF_pathlossReferenceRSToReleaseList_tags_10[0]) - 1, /* 1 */ + asn_DEF_pathlossReferenceRSToReleaseList_tags_10, /* Same as above */ + sizeof(asn_DEF_pathlossReferenceRSToReleaseList_tags_10) + /sizeof(asn_DEF_pathlossReferenceRSToReleaseList_tags_10[0]), /* 2 */ + { &asn_OER_type_pathlossReferenceRSToReleaseList_constr_10, &asn_PER_type_pathlossReferenceRSToReleaseList_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_pathlossReferenceRSToReleaseList_10, + 1, /* Single element */ + &asn_SPC_pathlossReferenceRSToReleaseList_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUSCH_PC_AdjustmentStates_value2enum_12[] = { + { 0, 9, "twoStates" } +}; +static const unsigned int asn_MAP_twoPUSCH_PC_AdjustmentStates_enum2value_12[] = { + 0 /* twoStates(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUSCH_PC_AdjustmentStates_specs_12 = { + asn_MAP_twoPUSCH_PC_AdjustmentStates_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUSCH_PC_AdjustmentStates_12 = { + "twoPUSCH-PC-AdjustmentStates", + "twoPUSCH-PC-AdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12, + sizeof(asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12) + /sizeof(asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12[0]) - 1, /* 1 */ + asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12, /* Same as above */ + sizeof(asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12) + /sizeof(asn_DEF_twoPUSCH_PC_AdjustmentStates_tags_12[0]), /* 2 */ + { &asn_OER_type_twoPUSCH_PC_AdjustmentStates_constr_12, &asn_PER_type_twoPUSCH_PC_AdjustmentStates_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUSCH_PC_AdjustmentStates_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_deltaMCS_value2enum_14[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_deltaMCS_enum2value_14[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_deltaMCS_specs_14 = { + asn_MAP_deltaMCS_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_deltaMCS_14 = { + "deltaMCS", + "deltaMCS", + &asn_OP_NativeEnumerated, + asn_DEF_deltaMCS_tags_14, + sizeof(asn_DEF_deltaMCS_tags_14) + /sizeof(asn_DEF_deltaMCS_tags_14[0]) - 1, /* 1 */ + asn_DEF_deltaMCS_tags_14, /* Same as above */ + sizeof(asn_DEF_deltaMCS_tags_14) + /sizeof(asn_DEF_deltaMCS_tags_14[0]), /* 2 */ + { &asn_OER_type_deltaMCS_constr_14, &asn_PER_type_deltaMCS_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_deltaMCS_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sri_PUSCH_MappingToAddModList_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRI_PUSCH_PowerControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sri_PUSCH_MappingToAddModList_specs_16 = { + sizeof(struct PUSCH_PowerControl__sri_PUSCH_MappingToAddModList), + offsetof(struct 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_sri_PUSCH_MappingToAddModList_16 = { + "sri-PUSCH-MappingToAddModList", + "sri-PUSCH-MappingToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sri_PUSCH_MappingToAddModList_tags_16, + sizeof(asn_DEF_sri_PUSCH_MappingToAddModList_tags_16) + /sizeof(asn_DEF_sri_PUSCH_MappingToAddModList_tags_16[0]) - 1, /* 1 */ + asn_DEF_sri_PUSCH_MappingToAddModList_tags_16, /* Same as above */ + sizeof(asn_DEF_sri_PUSCH_MappingToAddModList_tags_16) + /sizeof(asn_DEF_sri_PUSCH_MappingToAddModList_tags_16[0]), /* 2 */ + { &asn_OER_type_sri_PUSCH_MappingToAddModList_constr_16, &asn_PER_type_sri_PUSCH_MappingToAddModList_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_sri_PUSCH_MappingToAddModList_16, + 1, /* Single element */ + &asn_SPC_sri_PUSCH_MappingToAddModList_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sri_PUSCH_MappingToReleaseList_18[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRI_PUSCH_PowerControlId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_sri_PUSCH_MappingToReleaseList_specs_18 = { + sizeof(struct PUSCH_PowerControl__sri_PUSCH_MappingToReleaseList), + offsetof(struct 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_sri_PUSCH_MappingToReleaseList_18 = { + "sri-PUSCH-MappingToReleaseList", + "sri-PUSCH-MappingToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18, + sizeof(asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18) + /sizeof(asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18[0]) - 1, /* 1 */ + asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18, /* Same as above */ + sizeof(asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18) + /sizeof(asn_DEF_sri_PUSCH_MappingToReleaseList_tags_18[0]), /* 2 */ + { &asn_OER_type_sri_PUSCH_MappingToReleaseList_constr_18, &asn_PER_type_sri_PUSCH_MappingToReleaseList_constr_18, SEQUENCE_OF_constraint }, + asn_MBR_sri_PUSCH_MappingToReleaseList_18, + 1, /* Single element */ + &asn_SPC_sri_PUSCH_MappingToReleaseList_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_PowerControl_1[] = { + { ATF_POINTER, 10, offsetof(struct PUSCH_PowerControl, tpc_Accumulation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tpc_Accumulation_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-Accumulation" + }, + { ATF_POINTER, 9, offsetof(struct PUSCH_PowerControl, msg3_Alpha), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg3-Alpha" + }, + { ATF_POINTER, 8, offsetof(struct PUSCH_PowerControl, p0_NominalWithoutGrant), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_NominalWithoutGrant_constr_5, &asn_PER_memb_p0_NominalWithoutGrant_constr_5, memb_p0_NominalWithoutGrant_constraint_1 }, + 0, 0, /* No default value */ + "p0-NominalWithoutGrant" + }, + { ATF_POINTER, 7, offsetof(struct PUSCH_PowerControl, p0_AlphaSets), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_p0_AlphaSets_6, + 0, + { &asn_OER_memb_p0_AlphaSets_constr_6, &asn_PER_memb_p0_AlphaSets_constr_6, memb_p0_AlphaSets_constraint_1 }, + 0, 0, /* No default value */ + "p0-AlphaSets" + }, + { ATF_POINTER, 6, offsetof(struct PUSCH_PowerControl, pathlossReferenceRSToAddModList), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_pathlossReferenceRSToAddModList_8, + 0, + { &asn_OER_memb_pathlossReferenceRSToAddModList_constr_8, &asn_PER_memb_pathlossReferenceRSToAddModList_constr_8, memb_pathlossReferenceRSToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSToAddModList" + }, + { ATF_POINTER, 5, offsetof(struct PUSCH_PowerControl, pathlossReferenceRSToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_pathlossReferenceRSToReleaseList_10, + 0, + { &asn_OER_memb_pathlossReferenceRSToReleaseList_constr_10, &asn_PER_memb_pathlossReferenceRSToReleaseList_constr_10, memb_pathlossReferenceRSToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "pathlossReferenceRSToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct PUSCH_PowerControl, twoPUSCH_PC_AdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUSCH_PC_AdjustmentStates_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUSCH-PC-AdjustmentStates" + }, + { ATF_POINTER, 3, offsetof(struct PUSCH_PowerControl, deltaMCS), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_deltaMCS_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deltaMCS" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_PowerControl, sri_PUSCH_MappingToAddModList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_sri_PUSCH_MappingToAddModList_16, + 0, + { &asn_OER_memb_sri_PUSCH_MappingToAddModList_constr_16, &asn_PER_memb_sri_PUSCH_MappingToAddModList_constr_16, memb_sri_PUSCH_MappingToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "sri-PUSCH-MappingToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_PowerControl, sri_PUSCH_MappingToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_sri_PUSCH_MappingToReleaseList_18, + 0, + { &asn_OER_memb_sri_PUSCH_MappingToReleaseList_constr_18, &asn_PER_memb_sri_PUSCH_MappingToReleaseList_constr_18, memb_sri_PUSCH_MappingToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "sri-PUSCH-MappingToReleaseList" + }, +}; +static const int asn_MAP_PUSCH_PowerControl_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_PUSCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_PowerControl_specs_1 = { + sizeof(struct PUSCH_PowerControl), + offsetof(struct PUSCH_PowerControl, _asn_ctx), + asn_MAP_PUSCH_PowerControl_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_PUSCH_PowerControl_oms_1, /* Optional members */ + 10, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_PowerControl = { + "PUSCH-PowerControl", + "PUSCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_PowerControl_tags_1, + sizeof(asn_DEF_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_PUSCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_PUSCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_PowerControl_1, + 10, /* Elements count */ + &asn_SPC_PUSCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-PowerControl.h b/src/codec_utils/RRC/PUSCH-PowerControl.h new file mode 100644 index 000000000..0172697d2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_PowerControl_H_ +#define _PUSCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include +#include "Alpha.h" +#include +#include +#include +#include "PUSCH-PathlossReferenceRS-Id.h" +#include "SRI-PUSCH-PowerControlId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_PowerControl__tpc_Accumulation { + PUSCH_PowerControl__tpc_Accumulation_disabled = 0 +} e_PUSCH_PowerControl__tpc_Accumulation; +typedef enum PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates { + PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates_twoStates = 0 +} e_PUSCH_PowerControl__twoPUSCH_PC_AdjustmentStates; +typedef enum PUSCH_PowerControl__deltaMCS { + PUSCH_PowerControl__deltaMCS_enabled = 0 +} e_PUSCH_PowerControl__deltaMCS; + +/* Forward declarations */ +struct P0_PUSCH_AlphaSet; +struct PUSCH_PathlossReferenceRS; +struct SRI_PUSCH_PowerControl; + +/* PUSCH-PowerControl */ +typedef struct PUSCH_PowerControl { + long *tpc_Accumulation; /* OPTIONAL */ + Alpha_t *msg3_Alpha; /* OPTIONAL */ + long *p0_NominalWithoutGrant; /* OPTIONAL */ + struct PUSCH_PowerControl__p0_AlphaSets { + A_SEQUENCE_OF(struct P0_PUSCH_AlphaSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *p0_AlphaSets; + struct PUSCH_PowerControl__pathlossReferenceRSToAddModList { + A_SEQUENCE_OF(struct PUSCH_PathlossReferenceRS) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pathlossReferenceRSToAddModList; + struct PUSCH_PowerControl__pathlossReferenceRSToReleaseList { + A_SEQUENCE_OF(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 PUSCH_PowerControl__sri_PUSCH_MappingToAddModList { + A_SEQUENCE_OF(struct SRI_PUSCH_PowerControl) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *sri_PUSCH_MappingToAddModList; + struct PUSCH_PowerControl__sri_PUSCH_MappingToReleaseList { + A_SEQUENCE_OF(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; +} PUSCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_tpc_Accumulation_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUSCH_PC_AdjustmentStates_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_deltaMCS_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_PowerControl_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_PowerControl_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-ServingCellConfig.c b/src/codec_utils/RRC/PUSCH-ServingCellConfig.c new file mode 100644 index 000000000..003fcc7af --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-ServingCellConfig.c @@ -0,0 +1,326 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-ServingCellConfig.h" + +#include "PUSCH-CodeBlockGroupTransmission.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_maxMIMO_Layers_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 <= 4)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_type_codeBlockGroupTransmission_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_codeBlockGroupTransmission_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_rateMatching_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rateMatching_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_oer_constraints_t asn_OER_type_xOverhead_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_xOverhead_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_maxMIMO_Layers_constr_13 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxMIMO_Layers_constr_13 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_codeBlockGroupTransmission_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_ServingCellConfig__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 PUSCH_ServingCellConfig__codeBlockGroupTransmission, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_CodeBlockGroupTransmission, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_codeBlockGroupTransmission_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_codeBlockGroupTransmission_specs_2 = { + sizeof(struct PUSCH_ServingCellConfig__codeBlockGroupTransmission), + offsetof(struct PUSCH_ServingCellConfig__codeBlockGroupTransmission, _asn_ctx), + offsetof(struct PUSCH_ServingCellConfig__codeBlockGroupTransmission, present), + sizeof(((struct PUSCH_ServingCellConfig__codeBlockGroupTransmission *)0)->present), + asn_MAP_codeBlockGroupTransmission_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_codeBlockGroupTransmission_2 = { + "codeBlockGroupTransmission", + "codeBlockGroupTransmission", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_codeBlockGroupTransmission_constr_2, &asn_PER_type_codeBlockGroupTransmission_constr_2, CHOICE_constraint }, + asn_MBR_codeBlockGroupTransmission_2, + 2, /* Elements count */ + &asn_SPC_codeBlockGroupTransmission_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rateMatching_value2enum_5[] = { + { 0, 15, "limitedBufferRM" } +}; +static const unsigned int asn_MAP_rateMatching_enum2value_5[] = { + 0 /* limitedBufferRM(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rateMatching_specs_5 = { + asn_MAP_rateMatching_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_rateMatching_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_rateMatching_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_rateMatching_5 = { + "rateMatching", + "rateMatching", + &asn_OP_NativeEnumerated, + asn_DEF_rateMatching_tags_5, + sizeof(asn_DEF_rateMatching_tags_5) + /sizeof(asn_DEF_rateMatching_tags_5[0]) - 1, /* 1 */ + asn_DEF_rateMatching_tags_5, /* Same as above */ + sizeof(asn_DEF_rateMatching_tags_5) + /sizeof(asn_DEF_rateMatching_tags_5[0]), /* 2 */ + { &asn_OER_type_rateMatching_constr_5, &asn_PER_type_rateMatching_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rateMatching_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_xOverhead_value2enum_7[] = { + { 0, 4, "xoh6" }, + { 1, 5, "xoh12" }, + { 2, 5, "xoh18" } +}; +static const unsigned int asn_MAP_xOverhead_enum2value_7[] = { + 1, /* xoh12(1) */ + 2, /* xoh18(2) */ + 0 /* xoh6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_xOverhead_specs_7 = { + asn_MAP_xOverhead_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_xOverhead_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_xOverhead_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_xOverhead_7 = { + "xOverhead", + "xOverhead", + &asn_OP_NativeEnumerated, + asn_DEF_xOverhead_tags_7, + sizeof(asn_DEF_xOverhead_tags_7) + /sizeof(asn_DEF_xOverhead_tags_7[0]) - 1, /* 1 */ + asn_DEF_xOverhead_tags_7, /* Same as above */ + sizeof(asn_DEF_xOverhead_tags_7) + /sizeof(asn_DEF_xOverhead_tags_7[0]), /* 2 */ + { &asn_OER_type_xOverhead_constr_7, &asn_PER_type_xOverhead_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_xOverhead_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_12[] = { + { ATF_POINTER, 2, offsetof(struct PUSCH_ServingCellConfig__ext1, maxMIMO_Layers), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxMIMO_Layers_constr_13, &asn_PER_memb_maxMIMO_Layers_constr_13, memb_maxMIMO_Layers_constraint_12 }, + 0, 0, /* No default value */ + "maxMIMO-Layers" + }, + { ATF_POINTER, 1, offsetof(struct 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_ext1_oms_12[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_12[] = { + { (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_ext1_specs_12 = { + sizeof(struct PUSCH_ServingCellConfig__ext1), + offsetof(struct PUSCH_ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_12, + 2, /* Count of tags in the map */ + asn_MAP_ext1_oms_12, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_12 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_12, + sizeof(asn_DEF_ext1_tags_12) + /sizeof(asn_DEF_ext1_tags_12[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_12, /* Same as above */ + sizeof(asn_DEF_ext1_tags_12) + /sizeof(asn_DEF_ext1_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_12, + 2, /* Elements count */ + &asn_SPC_ext1_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_ServingCellConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct PUSCH_ServingCellConfig, codeBlockGroupTransmission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_codeBlockGroupTransmission_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "codeBlockGroupTransmission" + }, + { ATF_POINTER, 3, offsetof(struct PUSCH_ServingCellConfig, rateMatching), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rateMatching_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatching" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_ServingCellConfig, xOverhead), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_xOverhead_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xOverhead" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_PUSCH_ServingCellConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_PUSCH_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_ServingCellConfig_specs_1 = { + sizeof(struct PUSCH_ServingCellConfig), + offsetof(struct PUSCH_ServingCellConfig, _asn_ctx), + asn_MAP_PUSCH_ServingCellConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_PUSCH_ServingCellConfig_oms_1, /* Optional members */ + 3, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_ServingCellConfig = { + "PUSCH-ServingCellConfig", + "PUSCH-ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_ServingCellConfig_tags_1, + sizeof(asn_DEF_PUSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PUSCH_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_ServingCellConfig_tags_1) + /sizeof(asn_DEF_PUSCH_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_ServingCellConfig_1, + 4, /* Elements count */ + &asn_SPC_PUSCH_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-ServingCellConfig.h b/src/codec_utils/RRC/PUSCH-ServingCellConfig.h new file mode 100644 index 000000000..2891558aa --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-ServingCellConfig.h @@ -0,0 +1,86 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_ServingCellConfig_H_ +#define _PUSCH_ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR { + PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR_NOTHING, /* No components present */ + PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR_release, + PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR_setup +} PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR; +typedef enum PUSCH_ServingCellConfig__rateMatching { + PUSCH_ServingCellConfig__rateMatching_limitedBufferRM = 0 +} e_PUSCH_ServingCellConfig__rateMatching; +typedef enum PUSCH_ServingCellConfig__xOverhead { + PUSCH_ServingCellConfig__xOverhead_xoh6 = 0, + PUSCH_ServingCellConfig__xOverhead_xoh12 = 1, + PUSCH_ServingCellConfig__xOverhead_xoh18 = 2 +} e_PUSCH_ServingCellConfig__xOverhead; + +/* Forward declarations */ +struct PUSCH_CodeBlockGroupTransmission; + +/* PUSCH-ServingCellConfig */ +typedef struct PUSCH_ServingCellConfig { + struct PUSCH_ServingCellConfig__codeBlockGroupTransmission { + PUSCH_ServingCellConfig__codeBlockGroupTransmission_PR present; + union PUSCH_ServingCellConfig__codeBlockGroupTransmission_u { + NULL_t release; + struct PUSCH_CodeBlockGroupTransmission *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *codeBlockGroupTransmission; + long *rateMatching; /* OPTIONAL */ + long *xOverhead; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} PUSCH_ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_rateMatching_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_xOverhead_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_ServingCellConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_ServingCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-TPC-CommandConfig.c b/src/codec_utils/RRC/PUSCH-TPC-CommandConfig.c new file mode 100644 index 000000000..5ef405096 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-TPC-CommandConfig.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-TPC-CommandConfig.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_tpc_Index_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tpc_IndexSUL_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_PUSCH_TPC_CommandConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct PUSCH_TPC_CommandConfig, tpc_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tpc_Index_constr_2, &asn_PER_memb_tpc_Index_constr_2, memb_tpc_Index_constraint_1 }, + 0, 0, /* No default value */ + "tpc-Index" + }, + { ATF_POINTER, 2, offsetof(struct PUSCH_TPC_CommandConfig, tpc_IndexSUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_tpc_IndexSUL_constr_3, &asn_PER_memb_tpc_IndexSUL_constr_3, memb_tpc_IndexSUL_constraint_1 }, + 0, 0, /* No default value */ + "tpc-IndexSUL" + }, + { ATF_POINTER, 1, offsetof(struct PUSCH_TPC_CommandConfig, targetCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCell" + }, +}; +static const int asn_MAP_PUSCH_TPC_CommandConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_PUSCH_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_TPC_CommandConfig_specs_1 = { + sizeof(struct PUSCH_TPC_CommandConfig), + offsetof(struct PUSCH_TPC_CommandConfig, _asn_ctx), + asn_MAP_PUSCH_TPC_CommandConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PUSCH_TPC_CommandConfig_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_TPC_CommandConfig = { + "PUSCH-TPC-CommandConfig", + "PUSCH-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_PUSCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_PUSCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_PUSCH_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_TPC_CommandConfig_1, + 3, /* Elements count */ + &asn_SPC_PUSCH_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-TPC-CommandConfig.h b/src/codec_utils/RRC/PUSCH-TPC-CommandConfig.h new file mode 100644 index 000000000..271704015 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_TPC_CommandConfig_H_ +#define _PUSCH_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PUSCH-TPC-CommandConfig */ +typedef struct PUSCH_TPC_CommandConfig { + long *tpc_Index; /* OPTIONAL */ + long *tpc_IndexSUL; /* OPTIONAL */ + ServCellIndex_t *targetCell; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUSCH_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_TPC_CommandConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_TPC_CommandConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.c b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.c new file mode 100644 index 000000000..fe4eb7fe1 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.c @@ -0,0 +1,187 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-TimeDomainResourceAllocation.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_mappingType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_k2_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startSymbolAndLength_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_mappingType_value2enum_3[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" } +}; +static const unsigned int asn_MAP_mappingType_enum2value_3[] = { + 0, /* typeA(0) */ + 1 /* typeB(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mappingType_specs_3 = { + asn_MAP_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mappingType_3 = { + "mappingType", + "mappingType", + &asn_OP_NativeEnumerated, + asn_DEF_mappingType_tags_3, + sizeof(asn_DEF_mappingType_tags_3) + /sizeof(asn_DEF_mappingType_tags_3[0]) - 1, /* 1 */ + asn_DEF_mappingType_tags_3, /* Same as above */ + sizeof(asn_DEF_mappingType_tags_3) + /sizeof(asn_DEF_mappingType_tags_3[0]), /* 2 */ + { &asn_OER_type_mappingType_constr_3, &asn_PER_type_mappingType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mappingType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocation_1[] = { + { ATF_POINTER, 1, offsetof(struct PUSCH_TimeDomainResourceAllocation, k2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_k2_constr_2, &asn_PER_memb_k2_constr_2, memb_k2_constraint_1 }, + 0, 0, /* No default value */ + "k2" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_TimeDomainResourceAllocation, mappingType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mappingType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mappingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PUSCH_TimeDomainResourceAllocation, startSymbolAndLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startSymbolAndLength_constr_6, &asn_PER_memb_startSymbolAndLength_constr_6, memb_startSymbolAndLength_constraint_1 }, + 0, 0, /* No default value */ + "startSymbolAndLength" + }, +}; +static const int asn_MAP_PUSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_TimeDomainResourceAllocation_specs_1 = { + sizeof(struct PUSCH_TimeDomainResourceAllocation), + offsetof(struct PUSCH_TimeDomainResourceAllocation, _asn_ctx), + asn_MAP_PUSCH_TimeDomainResourceAllocation_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_PUSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocation = { + "PUSCH-TimeDomainResourceAllocation", + "PUSCH-TimeDomainResourceAllocation", + &asn_OP_SEQUENCE, + asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1, + sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1) + /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PUSCH_TimeDomainResourceAllocation_1, + 3, /* Elements count */ + &asn_SPC_PUSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.h b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocation.h new file mode 100644 index 000000000..c205fff6d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_TimeDomainResourceAllocation_H_ +#define _PUSCH_TimeDomainResourceAllocation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PUSCH_TimeDomainResourceAllocation__mappingType { + PUSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, + PUSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 +} e_PUSCH_TimeDomainResourceAllocation__mappingType; + +/* PUSCH-TimeDomainResourceAllocation */ +typedef struct PUSCH_TimeDomainResourceAllocation { + long *k2; /* OPTIONAL */ + long mappingType; + long startSymbolAndLength; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUSCH_TimeDomainResourceAllocation_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_mappingType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocation; +extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocation_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_TimeDomainResourceAllocation_H_ */ +#include diff --git a/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.c b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.c new file mode 100644 index 000000000..bd33d72e4 --- /dev/null +++ b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PUSCH-TimeDomainResourceAllocationList.h" + +#include "PUSCH-TimeDomainResourceAllocation.h" +static asn_oer_constraints_t asn_OER_type_PUSCH_TimeDomainResourceAllocationList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +asn_per_constraints_t asn_PER_type_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_PUSCH_TimeDomainResourceAllocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PUSCH_TimeDomainResourceAllocation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1 = { + sizeof(struct PUSCH_TimeDomainResourceAllocationList), + offsetof(struct PUSCH_TimeDomainResourceAllocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocationList = { + "PUSCH-TimeDomainResourceAllocationList", + "PUSCH-TimeDomainResourceAllocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1, + sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1) + /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ + { &asn_OER_type_PUSCH_TimeDomainResourceAllocationList_constr_1, &asn_PER_type_PUSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PUSCH_TimeDomainResourceAllocationList_1, + 1, /* Single element */ + &asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.h b/src/codec_utils/RRC/PUSCH-TimeDomainResourceAllocationList.h new file mode 100644 index 000000000..174086e66 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PUSCH_TimeDomainResourceAllocationList_H_ +#define _PUSCH_TimeDomainResourceAllocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PUSCH_TimeDomainResourceAllocation; + +/* PUSCH-TimeDomainResourceAllocationList */ +typedef struct PUSCH_TimeDomainResourceAllocationList { + A_SEQUENCE_OF(struct PUSCH_TimeDomainResourceAllocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PUSCH_TimeDomainResourceAllocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocationList; +extern asn_SET_OF_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_PUSCH_TimeDomainResourceAllocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PUSCH_TimeDomainResourceAllocationList_H_ */ +#include diff --git a/src/codec_utils/RRC/Paging.c b/src/codec_utils/RRC/Paging.c new file mode 100644 index 000000000..b10b2286f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Paging.h" + +#include "PagingRecordList.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct Paging__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Paging_1[] = { + { ATF_POINTER, 3, offsetof(struct Paging, pagingRecordList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PagingRecordList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pagingRecordList" + }, + { ATF_POINTER, 2, offsetof(struct 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 Paging, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_Paging_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_Paging_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Paging_specs_1 = { + sizeof(struct Paging), + offsetof(struct Paging, _asn_ctx), + asn_MAP_Paging_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_Paging_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Paging = { + "Paging", + "Paging", + &asn_OP_SEQUENCE, + asn_DEF_Paging_tags_1, + sizeof(asn_DEF_Paging_tags_1) + /sizeof(asn_DEF_Paging_tags_1[0]), /* 1 */ + asn_DEF_Paging_tags_1, /* Same as above */ + sizeof(asn_DEF_Paging_tags_1) + /sizeof(asn_DEF_Paging_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Paging_1, + 3, /* Elements count */ + &asn_SPC_Paging_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Paging.h b/src/codec_utils/RRC/Paging.h new file mode 100644 index 000000000..f6c2df197 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Paging_H_ +#define _Paging_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PagingRecordList; + +/* Paging */ +typedef struct Paging { + struct PagingRecordList *pagingRecordList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} Paging_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Paging; +extern asn_SEQUENCE_specifics_t asn_SPC_Paging_specs_1; +extern asn_TYPE_member_t asn_MBR_Paging_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Paging_H_ */ +#include diff --git a/src/codec_utils/RRC/PagingCycle.c b/src/codec_utils/RRC/PagingCycle.c new file mode 100644 index 000000000..c2d802999 --- /dev/null +++ b/src/codec_utils/RRC/PagingCycle.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingCycle.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PagingCycle_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_PagingCycle_value2enum_1[] = { + { 0, 4, "rf32" }, + { 1, 4, "rf64" }, + { 2, 5, "rf128" }, + { 3, 5, "rf256" } +}; +static const unsigned int asn_MAP_PagingCycle_enum2value_1[] = { + 2, /* rf128(2) */ + 3, /* rf256(3) */ + 0, /* rf32(0) */ + 1 /* rf64(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_PagingCycle_specs_1 = { + asn_MAP_PagingCycle_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_PagingCycle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PagingCycle = { + "PagingCycle", + "PagingCycle", + &asn_OP_NativeEnumerated, + asn_DEF_PagingCycle_tags_1, + sizeof(asn_DEF_PagingCycle_tags_1) + /sizeof(asn_DEF_PagingCycle_tags_1[0]), /* 1 */ + asn_DEF_PagingCycle_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingCycle_tags_1) + /sizeof(asn_DEF_PagingCycle_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingCycle_constr_1, &asn_PER_type_PagingCycle_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PagingCycle_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PagingCycle.h b/src/codec_utils/RRC/PagingCycle.h new file mode 100644 index 000000000..a4188ecb8 --- /dev/null +++ b/src/codec_utils/RRC/PagingCycle.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingCycle_H_ +#define _PagingCycle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingCycle { + PagingCycle_rf32 = 0, + PagingCycle_rf64 = 1, + PagingCycle_rf128 = 2, + PagingCycle_rf256 = 3 +} e_PagingCycle; + +/* PagingCycle */ +typedef long PagingCycle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PagingCycle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PagingCycle; +extern const asn_INTEGER_specifics_t asn_SPC_PagingCycle_specs_1; +asn_struct_free_f PagingCycle_free; +asn_struct_print_f PagingCycle_print; +asn_constr_check_f PagingCycle_constraint; +ber_type_decoder_f PagingCycle_decode_ber; +der_type_encoder_f PagingCycle_encode_der; +xer_type_decoder_f PagingCycle_decode_xer; +xer_type_encoder_f PagingCycle_encode_xer; +oer_type_decoder_f PagingCycle_decode_oer; +oer_type_encoder_f PagingCycle_encode_oer; +per_type_decoder_f PagingCycle_decode_uper; +per_type_encoder_f PagingCycle_encode_uper; +per_type_decoder_f PagingCycle_decode_aper; +per_type_encoder_f PagingCycle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingCycle_H_ */ +#include diff --git a/src/codec_utils/RRC/PagingRecord.c b/src/codec_utils/RRC/PagingRecord.c new file mode 100644 index 000000000..5750afba3 --- /dev/null +++ b/src/codec_utils/RRC/PagingRecord.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingRecord.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_accessType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_accessType_value2enum_3[] = { + { 0, 7, "non3GPP" } +}; +static const unsigned int asn_MAP_accessType_enum2value_3[] = { + 0 /* non3GPP(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_accessType_specs_3 = { + asn_MAP_accessType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_accessType_3 = { + "accessType", + "accessType", + &asn_OP_NativeEnumerated, + asn_DEF_accessType_tags_3, + sizeof(asn_DEF_accessType_tags_3) + /sizeof(asn_DEF_accessType_tags_3[0]) - 1, /* 1 */ + asn_DEF_accessType_tags_3, /* Same as above */ + sizeof(asn_DEF_accessType_tags_3) + /sizeof(asn_DEF_accessType_tags_3[0]), /* 2 */ + { &asn_OER_type_accessType_constr_3, &asn_PER_type_accessType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_accessType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PagingRecord_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingRecord, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_PagingUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_POINTER, 1, offsetof(struct PagingRecord, accessType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_accessType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accessType" + }, +}; +static const int asn_MAP_PagingRecord_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_PagingRecord_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PagingRecord_specs_1 = { + sizeof(struct PagingRecord), + offsetof(struct PagingRecord, _asn_ctx), + asn_MAP_PagingRecord_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_PagingRecord_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingRecord = { + "PagingRecord", + "PagingRecord", + &asn_OP_SEQUENCE, + asn_DEF_PagingRecord_tags_1, + sizeof(asn_DEF_PagingRecord_tags_1) + /sizeof(asn_DEF_PagingRecord_tags_1[0]), /* 1 */ + asn_DEF_PagingRecord_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingRecord_tags_1) + /sizeof(asn_DEF_PagingRecord_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PagingRecord_1, + 2, /* Elements count */ + &asn_SPC_PagingRecord_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PagingRecord.h b/src/codec_utils/RRC/PagingRecord.h new file mode 100644 index 000000000..1dd291efd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingRecord_H_ +#define _PagingRecord_H_ + + +#include + +/* Including external dependencies */ +#include "PagingUE-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingRecord__accessType { + PagingRecord__accessType_non3GPP = 0 +} e_PagingRecord__accessType; + +/* PagingRecord */ +typedef struct PagingRecord { + 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; +} PagingRecord_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_accessType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PagingRecord; +extern asn_SEQUENCE_specifics_t asn_SPC_PagingRecord_specs_1; +extern asn_TYPE_member_t asn_MBR_PagingRecord_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingRecord_H_ */ +#include diff --git a/src/codec_utils/RRC/PagingRecordList.c b/src/codec_utils/RRC/PagingRecordList.c new file mode 100644 index 000000000..d2e37500b --- /dev/null +++ b/src/codec_utils/RRC/PagingRecordList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingRecordList.h" + +#include "PagingRecord.h" +static asn_oer_constraints_t asn_OER_type_PagingRecordList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_PagingRecordList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_PagingRecord, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_PagingRecordList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_PagingRecordList_specs_1 = { + sizeof(struct PagingRecordList), + offsetof(struct PagingRecordList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_PagingRecordList = { + "PagingRecordList", + "PagingRecordList", + &asn_OP_SEQUENCE_OF, + asn_DEF_PagingRecordList_tags_1, + sizeof(asn_DEF_PagingRecordList_tags_1) + /sizeof(asn_DEF_PagingRecordList_tags_1[0]), /* 1 */ + asn_DEF_PagingRecordList_tags_1, /* Same as above */ + sizeof(asn_DEF_PagingRecordList_tags_1) + /sizeof(asn_DEF_PagingRecordList_tags_1[0]), /* 1 */ + { &asn_OER_type_PagingRecordList_constr_1, &asn_PER_type_PagingRecordList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_PagingRecordList_1, + 1, /* Single element */ + &asn_SPC_PagingRecordList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PagingRecordList.h b/src/codec_utils/RRC/PagingRecordList.h new file mode 100644 index 000000000..cb91adab0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingRecordList_H_ +#define _PagingRecordList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PagingRecord; + +/* PagingRecordList */ +typedef struct PagingRecordList { + A_SEQUENCE_OF(struct PagingRecord) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} PagingRecordList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingRecordList; +extern asn_SET_OF_specifics_t asn_SPC_PagingRecordList_specs_1; +extern asn_TYPE_member_t asn_MBR_PagingRecordList_1[1]; +extern asn_per_constraints_t asn_PER_type_PagingRecordList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingRecordList_H_ */ +#include diff --git a/src/codec_utils/RRC/PagingUE-Identity.c b/src/codec_utils/RRC/PagingUE-Identity.c new file mode 100644 index 000000000..a5e4d95f1 --- /dev/null +++ b/src/codec_utils/RRC/PagingUE-Identity.c @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PagingUE-Identity.h" + +static asn_oer_constraints_t asn_OER_type_PagingUE_Identity_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_PagingUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PagingUE_Identity, choice.ng_5G_S_TMSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NG_5G_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct PagingUE_Identity, choice.fullI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullI-RNTI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PagingUE_Identity_specs_1 = { + sizeof(struct PagingUE_Identity), + offsetof(struct PagingUE_Identity, _asn_ctx), + offsetof(struct PagingUE_Identity, present), + sizeof(((struct PagingUE_Identity *)0)->present), + asn_MAP_PagingUE_Identity_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_PagingUE_Identity_constr_1, &asn_PER_type_PagingUE_Identity_constr_1, CHOICE_constraint }, + asn_MBR_PagingUE_Identity_1, + 2, /* Elements count */ + &asn_SPC_PagingUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PagingUE-Identity.h b/src/codec_utils/RRC/PagingUE-Identity.h new file mode 100644 index 000000000..5f76f07e9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PagingUE_Identity_H_ +#define _PagingUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include "NG-5G-S-TMSI.h" +#include "I-RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PagingUE_Identity_PR { + PagingUE_Identity_PR_NOTHING, /* No components present */ + PagingUE_Identity_PR_ng_5G_S_TMSI, + PagingUE_Identity_PR_fullI_RNTI + /* Extensions may appear below */ + +} PagingUE_Identity_PR; + +/* PagingUE-Identity */ +typedef struct PagingUE_Identity { + PagingUE_Identity_PR present; + union PagingUE_Identity_u { + NG_5G_S_TMSI_t ng_5G_S_TMSI; + 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; +} PagingUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PagingUE_Identity; +extern asn_CHOICE_specifics_t asn_SPC_PagingUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_PagingUE_Identity_1[2]; +extern asn_per_constraints_t asn_PER_type_PagingUE_Identity_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PagingUE_Identity_H_ */ +#include diff --git a/src/codec_utils/RRC/PeriodicRNAU-TimerValue.c b/src/codec_utils/RRC/PeriodicRNAU-TimerValue.c new file mode 100644 index 000000000..8880fda3d --- /dev/null +++ b/src/codec_utils/RRC/PeriodicRNAU-TimerValue.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PeriodicRNAU-TimerValue.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PeriodicRNAU_TimerValue_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_PeriodicRNAU_TimerValue_specs_1 = { + asn_MAP_PeriodicRNAU_TimerValue_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_PeriodicRNAU_TimerValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PeriodicRNAU_TimerValue = { + "PeriodicRNAU-TimerValue", + "PeriodicRNAU-TimerValue", + &asn_OP_NativeEnumerated, + asn_DEF_PeriodicRNAU_TimerValue_tags_1, + sizeof(asn_DEF_PeriodicRNAU_TimerValue_tags_1) + /sizeof(asn_DEF_PeriodicRNAU_TimerValue_tags_1[0]), /* 1 */ + asn_DEF_PeriodicRNAU_TimerValue_tags_1, /* Same as above */ + sizeof(asn_DEF_PeriodicRNAU_TimerValue_tags_1) + /sizeof(asn_DEF_PeriodicRNAU_TimerValue_tags_1[0]), /* 1 */ + { &asn_OER_type_PeriodicRNAU_TimerValue_constr_1, &asn_PER_type_PeriodicRNAU_TimerValue_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PeriodicRNAU_TimerValue_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PeriodicRNAU-TimerValue.h b/src/codec_utils/RRC/PeriodicRNAU-TimerValue.h new file mode 100644 index 000000000..862cd23b8 --- /dev/null +++ b/src/codec_utils/RRC/PeriodicRNAU-TimerValue.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PeriodicRNAU_TimerValue_H_ +#define _PeriodicRNAU_TimerValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PeriodicRNAU_TimerValue { + PeriodicRNAU_TimerValue_min5 = 0, + PeriodicRNAU_TimerValue_min10 = 1, + PeriodicRNAU_TimerValue_min20 = 2, + PeriodicRNAU_TimerValue_min30 = 3, + PeriodicRNAU_TimerValue_min60 = 4, + PeriodicRNAU_TimerValue_min120 = 5, + PeriodicRNAU_TimerValue_min360 = 6, + PeriodicRNAU_TimerValue_min720 = 7 +} e_PeriodicRNAU_TimerValue; + +/* PeriodicRNAU-TimerValue */ +typedef long PeriodicRNAU_TimerValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PeriodicRNAU_TimerValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PeriodicRNAU_TimerValue; +extern const asn_INTEGER_specifics_t asn_SPC_PeriodicRNAU_TimerValue_specs_1; +asn_struct_free_f PeriodicRNAU_TimerValue_free; +asn_struct_print_f PeriodicRNAU_TimerValue_print; +asn_constr_check_f PeriodicRNAU_TimerValue_constraint; +ber_type_decoder_f PeriodicRNAU_TimerValue_decode_ber; +der_type_encoder_f PeriodicRNAU_TimerValue_encode_der; +xer_type_decoder_f PeriodicRNAU_TimerValue_decode_xer; +xer_type_encoder_f PeriodicRNAU_TimerValue_encode_xer; +oer_type_decoder_f PeriodicRNAU_TimerValue_decode_oer; +oer_type_encoder_f PeriodicRNAU_TimerValue_encode_oer; +per_type_decoder_f PeriodicRNAU_TimerValue_decode_uper; +per_type_encoder_f PeriodicRNAU_TimerValue_encode_uper; +per_type_decoder_f PeriodicRNAU_TimerValue_decode_aper; +per_type_encoder_f PeriodicRNAU_TimerValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PeriodicRNAU_TimerValue_H_ */ +#include diff --git a/src/codec_utils/RRC/PeriodicalReportConfig.c b/src/codec_utils/RRC/PeriodicalReportConfig.c new file mode 100644 index 000000000..802c42b0c --- /dev/null +++ b/src/codec_utils/RRC/PeriodicalReportConfig.c @@ -0,0 +1,260 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PeriodicalReportConfig.h" + +#include "MeasReportQuantity.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_reportAmount_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxReportCells_constr_14 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNrofRS_IndexesToReport_constr_16 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_reportAmount_specs_4 = { + asn_MAP_reportAmount_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportAmount_4 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_reportAmount_tags_4, + sizeof(asn_DEF_reportAmount_tags_4) + /sizeof(asn_DEF_reportAmount_tags_4[0]) - 1, /* 1 */ + asn_DEF_reportAmount_tags_4, /* Same as above */ + sizeof(asn_DEF_reportAmount_tags_4) + /sizeof(asn_DEF_reportAmount_tags_4[0]), /* 2 */ + { &asn_OER_type_reportAmount_constr_4, &asn_PER_type_reportAmount_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportAmount_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PeriodicalReportConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfig, rsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NR_RS_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsType" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfig, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfig, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportAmount_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfig, reportQuantityCell), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfig, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxReportCells_constr_14, &asn_PER_memb_maxReportCells_constr_14, memb_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, + { ATF_POINTER, 2, offsetof(struct PeriodicalReportConfig, reportQuantityRS_Indexes), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantityRS-Indexes" + }, + { ATF_POINTER, 1, offsetof(struct PeriodicalReportConfig, maxNrofRS_IndexesToReport), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNrofRS_IndexesToReport_constr_16, &asn_PER_memb_maxNrofRS_IndexesToReport_constr_16, memb_maxNrofRS_IndexesToReport_constraint_1 }, + 0, 0, /* No default value */ + "maxNrofRS-IndexesToReport" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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_PeriodicalReportConfig_oms_1[] = { 5, 6 }; +static const ber_tlv_tag_t asn_DEF_PeriodicalReportConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PeriodicalReportConfig_specs_1 = { + sizeof(struct PeriodicalReportConfig), + offsetof(struct PeriodicalReportConfig, _asn_ctx), + asn_MAP_PeriodicalReportConfig_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_PeriodicalReportConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PeriodicalReportConfig = { + "PeriodicalReportConfig", + "PeriodicalReportConfig", + &asn_OP_SEQUENCE, + asn_DEF_PeriodicalReportConfig_tags_1, + sizeof(asn_DEF_PeriodicalReportConfig_tags_1) + /sizeof(asn_DEF_PeriodicalReportConfig_tags_1[0]), /* 1 */ + asn_DEF_PeriodicalReportConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PeriodicalReportConfig_tags_1) + /sizeof(asn_DEF_PeriodicalReportConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PeriodicalReportConfig_1, + 9, /* Elements count */ + &asn_SPC_PeriodicalReportConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PeriodicalReportConfig.h b/src/codec_utils/RRC/PeriodicalReportConfig.h new file mode 100644 index 000000000..8a181e80d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PeriodicalReportConfig_H_ +#define _PeriodicalReportConfig_H_ + + +#include + +/* Including external dependencies */ +#include "NR-RS-Type.h" +#include "ReportInterval.h" +#include +#include "MeasReportQuantity.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PeriodicalReportConfig__reportAmount { + PeriodicalReportConfig__reportAmount_r1 = 0, + PeriodicalReportConfig__reportAmount_r2 = 1, + PeriodicalReportConfig__reportAmount_r4 = 2, + PeriodicalReportConfig__reportAmount_r8 = 3, + PeriodicalReportConfig__reportAmount_r16 = 4, + PeriodicalReportConfig__reportAmount_r32 = 5, + PeriodicalReportConfig__reportAmount_r64 = 6, + PeriodicalReportConfig__reportAmount_infinity = 7 +} e_PeriodicalReportConfig__reportAmount; + +/* Forward declarations */ +struct MeasReportQuantity; + +/* PeriodicalReportConfig */ +typedef struct PeriodicalReportConfig { + NR_RS_Type_t rsType; + ReportInterval_t reportInterval; + long reportAmount; + MeasReportQuantity_t reportQuantityCell; + long maxReportCells; + struct 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; +} PeriodicalReportConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportAmount_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PeriodicalReportConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PeriodicalReportConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PeriodicalReportConfig_1[9]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PeriodicalReportConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PeriodicalReportConfigInterRAT.c b/src/codec_utils/RRC/PeriodicalReportConfigInterRAT.c new file mode 100644 index 000000000..4f5f893e0 --- /dev/null +++ b/src/codec_utils/RRC/PeriodicalReportConfigInterRAT.c @@ -0,0 +1,174 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PeriodicalReportConfigInterRAT.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_reportAmount_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxReportCells_constr_13 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_reportAmount_specs_3 = { + asn_MAP_reportAmount_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reportAmount_3 = { + "reportAmount", + "reportAmount", + &asn_OP_NativeEnumerated, + asn_DEF_reportAmount_tags_3, + sizeof(asn_DEF_reportAmount_tags_3) + /sizeof(asn_DEF_reportAmount_tags_3[0]) - 1, /* 1 */ + asn_DEF_reportAmount_tags_3, /* Same as above */ + sizeof(asn_DEF_reportAmount_tags_3) + /sizeof(asn_DEF_reportAmount_tags_3[0]), /* 2 */ + { &asn_OER_type_reportAmount_constr_3, &asn_PER_type_reportAmount_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reportAmount_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PeriodicalReportConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfigInterRAT, reportInterval), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportInterval, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportInterval" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfigInterRAT, reportAmount), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reportAmount_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportAmount" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfigInterRAT, reportQuantity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasReportQuantity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportQuantity" + }, + { ATF_NOFLAGS, 0, offsetof(struct PeriodicalReportConfigInterRAT, maxReportCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxReportCells_constr_13, &asn_PER_memb_maxReportCells_constr_13, memb_maxReportCells_constraint_1 }, + 0, 0, /* No default value */ + "maxReportCells" + }, +}; +static const ber_tlv_tag_t asn_DEF_PeriodicalReportConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_PeriodicalReportConfigInterRAT_specs_1 = { + sizeof(struct PeriodicalReportConfigInterRAT), + offsetof(struct PeriodicalReportConfigInterRAT, _asn_ctx), + asn_MAP_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_PeriodicalReportConfigInterRAT = { + "PeriodicalReportConfigInterRAT", + "PeriodicalReportConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_PeriodicalReportConfigInterRAT_tags_1, + sizeof(asn_DEF_PeriodicalReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_PeriodicalReportConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_PeriodicalReportConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_PeriodicalReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_PeriodicalReportConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PeriodicalReportConfigInterRAT_1, + 4, /* Elements count */ + &asn_SPC_PeriodicalReportConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PeriodicalReportConfigInterRAT.h b/src/codec_utils/RRC/PeriodicalReportConfigInterRAT.h new file mode 100644 index 000000000..2370964ba --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PeriodicalReportConfigInterRAT_H_ +#define _PeriodicalReportConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include "ReportInterval.h" +#include +#include "MeasReportQuantity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PeriodicalReportConfigInterRAT__reportAmount { + PeriodicalReportConfigInterRAT__reportAmount_r1 = 0, + PeriodicalReportConfigInterRAT__reportAmount_r2 = 1, + PeriodicalReportConfigInterRAT__reportAmount_r4 = 2, + PeriodicalReportConfigInterRAT__reportAmount_r8 = 3, + PeriodicalReportConfigInterRAT__reportAmount_r16 = 4, + PeriodicalReportConfigInterRAT__reportAmount_r32 = 5, + PeriodicalReportConfigInterRAT__reportAmount_r64 = 6, + PeriodicalReportConfigInterRAT__reportAmount_infinity = 7 +} e_PeriodicalReportConfigInterRAT__reportAmount; + +/* PeriodicalReportConfigInterRAT */ +typedef struct PeriodicalReportConfigInterRAT { + ReportInterval_t reportInterval; + long reportAmount; + 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; +} PeriodicalReportConfigInterRAT_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reportAmount_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PeriodicalReportConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_PeriodicalReportConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_PeriodicalReportConfigInterRAT_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PeriodicalReportConfigInterRAT_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-Parameters.c b/src/codec_utils/RRC/Phy-Parameters.c new file mode 100644 index 000000000..59a510e95 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Phy-Parameters.h" + +#include "Phy-ParametersCommon.h" +#include "Phy-ParametersXDD-Diff.h" +#include "Phy-ParametersFRX-Diff.h" +#include "Phy-ParametersFR1.h" +#include "Phy-ParametersFR2.h" +asn_TYPE_member_t asn_MBR_Phy_Parameters_1[] = { + { ATF_POINTER, 5, offsetof(struct Phy_Parameters, phy_ParametersCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersCommon" + }, + { ATF_POINTER, 4, offsetof(struct Phy_Parameters, phy_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersXDD-Diff" + }, + { ATF_POINTER, 3, offsetof(struct Phy_Parameters, phy_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFRX-Diff" + }, + { ATF_POINTER, 2, offsetof(struct Phy_Parameters, phy_ParametersFR1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersFR1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFR1" + }, + { ATF_POINTER, 1, offsetof(struct Phy_Parameters, phy_ParametersFR2), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersFR2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFR2" + }, +}; +static const int asn_MAP_Phy_Parameters_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_Phy_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Phy_Parameters_specs_1 = { + sizeof(struct Phy_Parameters), + offsetof(struct Phy_Parameters, _asn_ctx), + asn_MAP_Phy_Parameters_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_Phy_Parameters_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_Parameters = { + "Phy-Parameters", + "Phy-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_Phy_Parameters_tags_1, + sizeof(asn_DEF_Phy_Parameters_tags_1) + /sizeof(asn_DEF_Phy_Parameters_tags_1[0]), /* 1 */ + asn_DEF_Phy_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_Parameters_tags_1) + /sizeof(asn_DEF_Phy_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_Parameters_1, + 5, /* Elements count */ + &asn_SPC_Phy_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-Parameters.h b/src/codec_utils/RRC/Phy-Parameters.h new file mode 100644 index 000000000..ca08eb21d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_Parameters_H_ +#define _Phy_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Phy_ParametersCommon; +struct Phy_ParametersXDD_Diff; +struct Phy_ParametersFRX_Diff; +struct Phy_ParametersFR1; +struct Phy_ParametersFR2; + +/* Phy-Parameters */ +typedef struct Phy_Parameters { + struct Phy_ParametersCommon *phy_ParametersCommon; /* OPTIONAL */ + struct Phy_ParametersXDD_Diff *phy_ParametersXDD_Diff; /* OPTIONAL */ + struct Phy_ParametersFRX_Diff *phy_ParametersFRX_Diff; /* OPTIONAL */ + struct Phy_ParametersFR1 *phy_ParametersFR1; /* OPTIONAL */ + struct Phy_ParametersFR2 *phy_ParametersFR2; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Phy_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_Parameters_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersCommon.c b/src/codec_utils/RRC/Phy-ParametersCommon.c new file mode 100644 index 000000000..8a4e11d87 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersCommon.c @@ -0,0 +1,2084 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_csi_RS_CFRA_ForHO_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicPRB_BundlingDL_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_CSI_ReportPUCCH_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_CSI_ReportPUSCH_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nzp_CSI_RS_IntefMgmt_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_type2_SP_CSI_Feedback_LongPUCCH_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_precoderGranularityCORESET_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicHARQ_ACK_Codebook_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_semiStaticHARQ_ACK_Codebook_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_spatialBundlingHARQ_ACK_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicBetaOffsetInd_HARQ_ACK_CSI_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_Repetition_F1_3_4_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ra_Type0_PUSCH_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicSwitchRA_Type0_1_PDSCH_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicSwitchRA_Type0_1_PUSCH_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_MappingTypeA_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_MappingTypeB_constr_34 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_interleavingVRB_ToPRB_PDSCH_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_interSlotFreqHopping_PUSCH_constr_38 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_type1_PUSCH_RepetitionMultiSlots_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_type2_PUSCH_RepetitionMultiSlots_constr_42 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_RepetitionMultiSlots_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_RepetitionMultiSlots_constr_46 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_downlinkSPS_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_configuredUL_GrantType1_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_configuredUL_GrantType2_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pre_EmptIndication_DL_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cbg_TransIndication_DL_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cbg_TransIndication_UL_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cbg_FlushIndication_DL_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_constr_62 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rateMatchingResrcSetSemi_Static_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rateMatchingResrcSetDynamic_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bwp_SwitchingDelay_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eutra_RS_SINR_measurement_constr_73 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_eutra_RS_SINR_measurement_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 const asn_INTEGER_enum_map_t asn_MAP_csi_RS_CFRA_ForHO_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_RS_CFRA_ForHO_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_RS_CFRA_ForHO_specs_2 = { + asn_MAP_csi_RS_CFRA_ForHO_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_RS_CFRA_ForHO_2 = { + "csi-RS-CFRA-ForHO", + "csi-RS-CFRA-ForHO", + &asn_OP_NativeEnumerated, + asn_DEF_csi_RS_CFRA_ForHO_tags_2, + sizeof(asn_DEF_csi_RS_CFRA_ForHO_tags_2) + /sizeof(asn_DEF_csi_RS_CFRA_ForHO_tags_2[0]) - 1, /* 1 */ + asn_DEF_csi_RS_CFRA_ForHO_tags_2, /* Same as above */ + sizeof(asn_DEF_csi_RS_CFRA_ForHO_tags_2) + /sizeof(asn_DEF_csi_RS_CFRA_ForHO_tags_2[0]), /* 2 */ + { &asn_OER_type_csi_RS_CFRA_ForHO_constr_2, &asn_PER_type_csi_RS_CFRA_ForHO_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_RS_CFRA_ForHO_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicPRB_BundlingDL_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicPRB_BundlingDL_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicPRB_BundlingDL_specs_4 = { + asn_MAP_dynamicPRB_BundlingDL_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicPRB_BundlingDL_4 = { + "dynamicPRB-BundlingDL", + "dynamicPRB-BundlingDL", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicPRB_BundlingDL_tags_4, + sizeof(asn_DEF_dynamicPRB_BundlingDL_tags_4) + /sizeof(asn_DEF_dynamicPRB_BundlingDL_tags_4[0]) - 1, /* 1 */ + asn_DEF_dynamicPRB_BundlingDL_tags_4, /* Same as above */ + sizeof(asn_DEF_dynamicPRB_BundlingDL_tags_4) + /sizeof(asn_DEF_dynamicPRB_BundlingDL_tags_4[0]), /* 2 */ + { &asn_OER_type_dynamicPRB_BundlingDL_constr_4, &asn_PER_type_dynamicPRB_BundlingDL_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicPRB_BundlingDL_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_CSI_ReportPUCCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_CSI_ReportPUCCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_CSI_ReportPUCCH_specs_6 = { + asn_MAP_sp_CSI_ReportPUCCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_CSI_ReportPUCCH_6 = { + "sp-CSI-ReportPUCCH", + "sp-CSI-ReportPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_sp_CSI_ReportPUCCH_tags_6, + sizeof(asn_DEF_sp_CSI_ReportPUCCH_tags_6) + /sizeof(asn_DEF_sp_CSI_ReportPUCCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_sp_CSI_ReportPUCCH_tags_6, /* Same as above */ + sizeof(asn_DEF_sp_CSI_ReportPUCCH_tags_6) + /sizeof(asn_DEF_sp_CSI_ReportPUCCH_tags_6[0]), /* 2 */ + { &asn_OER_type_sp_CSI_ReportPUCCH_constr_6, &asn_PER_type_sp_CSI_ReportPUCCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_CSI_ReportPUCCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_CSI_ReportPUSCH_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_CSI_ReportPUSCH_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_CSI_ReportPUSCH_specs_8 = { + asn_MAP_sp_CSI_ReportPUSCH_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_CSI_ReportPUSCH_8 = { + "sp-CSI-ReportPUSCH", + "sp-CSI-ReportPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_sp_CSI_ReportPUSCH_tags_8, + sizeof(asn_DEF_sp_CSI_ReportPUSCH_tags_8) + /sizeof(asn_DEF_sp_CSI_ReportPUSCH_tags_8[0]) - 1, /* 1 */ + asn_DEF_sp_CSI_ReportPUSCH_tags_8, /* Same as above */ + sizeof(asn_DEF_sp_CSI_ReportPUSCH_tags_8) + /sizeof(asn_DEF_sp_CSI_ReportPUSCH_tags_8[0]), /* 2 */ + { &asn_OER_type_sp_CSI_ReportPUSCH_constr_8, &asn_PER_type_sp_CSI_ReportPUSCH_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_CSI_ReportPUSCH_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nzp_CSI_RS_IntefMgmt_value2enum_10[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_nzp_CSI_RS_IntefMgmt_enum2value_10[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nzp_CSI_RS_IntefMgmt_specs_10 = { + asn_MAP_nzp_CSI_RS_IntefMgmt_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nzp_CSI_RS_IntefMgmt_10 = { + "nzp-CSI-RS-IntefMgmt", + "nzp-CSI-RS-IntefMgmt", + &asn_OP_NativeEnumerated, + asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10, + sizeof(asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10) + /sizeof(asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10[0]) - 1, /* 1 */ + asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10, /* Same as above */ + sizeof(asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10) + /sizeof(asn_DEF_nzp_CSI_RS_IntefMgmt_tags_10[0]), /* 2 */ + { &asn_OER_type_nzp_CSI_RS_IntefMgmt_constr_10, &asn_PER_type_nzp_CSI_RS_IntefMgmt_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nzp_CSI_RS_IntefMgmt_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_type2_SP_CSI_Feedback_LongPUCCH_value2enum_12[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_type2_SP_CSI_Feedback_LongPUCCH_enum2value_12[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_type2_SP_CSI_Feedback_LongPUCCH_specs_12 = { + asn_MAP_type2_SP_CSI_Feedback_LongPUCCH_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type2_SP_CSI_Feedback_LongPUCCH_12 = { + "type2-SP-CSI-Feedback-LongPUCCH", + "type2-SP-CSI-Feedback-LongPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12, + sizeof(asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12) + /sizeof(asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12[0]) - 1, /* 1 */ + asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12, /* Same as above */ + sizeof(asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12) + /sizeof(asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_tags_12[0]), /* 2 */ + { &asn_OER_type_type2_SP_CSI_Feedback_LongPUCCH_constr_12, &asn_PER_type_type2_SP_CSI_Feedback_LongPUCCH_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type2_SP_CSI_Feedback_LongPUCCH_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_precoderGranularityCORESET_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_precoderGranularityCORESET_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_precoderGranularityCORESET_specs_14 = { + asn_MAP_precoderGranularityCORESET_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_precoderGranularityCORESET_14 = { + "precoderGranularityCORESET", + "precoderGranularityCORESET", + &asn_OP_NativeEnumerated, + asn_DEF_precoderGranularityCORESET_tags_14, + sizeof(asn_DEF_precoderGranularityCORESET_tags_14) + /sizeof(asn_DEF_precoderGranularityCORESET_tags_14[0]) - 1, /* 1 */ + asn_DEF_precoderGranularityCORESET_tags_14, /* Same as above */ + sizeof(asn_DEF_precoderGranularityCORESET_tags_14) + /sizeof(asn_DEF_precoderGranularityCORESET_tags_14[0]), /* 2 */ + { &asn_OER_type_precoderGranularityCORESET_constr_14, &asn_PER_type_precoderGranularityCORESET_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_precoderGranularityCORESET_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicHARQ_ACK_Codebook_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicHARQ_ACK_Codebook_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicHARQ_ACK_Codebook_specs_16 = { + asn_MAP_dynamicHARQ_ACK_Codebook_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicHARQ_ACK_Codebook_16 = { + "dynamicHARQ-ACK-Codebook", + "dynamicHARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicHARQ_ACK_Codebook_tags_16, + sizeof(asn_DEF_dynamicHARQ_ACK_Codebook_tags_16) + /sizeof(asn_DEF_dynamicHARQ_ACK_Codebook_tags_16[0]) - 1, /* 1 */ + asn_DEF_dynamicHARQ_ACK_Codebook_tags_16, /* Same as above */ + sizeof(asn_DEF_dynamicHARQ_ACK_Codebook_tags_16) + /sizeof(asn_DEF_dynamicHARQ_ACK_Codebook_tags_16[0]), /* 2 */ + { &asn_OER_type_dynamicHARQ_ACK_Codebook_constr_16, &asn_PER_type_dynamicHARQ_ACK_Codebook_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicHARQ_ACK_Codebook_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_semiStaticHARQ_ACK_Codebook_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_semiStaticHARQ_ACK_Codebook_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_semiStaticHARQ_ACK_Codebook_specs_18 = { + asn_MAP_semiStaticHARQ_ACK_Codebook_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_semiStaticHARQ_ACK_Codebook_18 = { + "semiStaticHARQ-ACK-Codebook", + "semiStaticHARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18, + sizeof(asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18) + /sizeof(asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18[0]) - 1, /* 1 */ + asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18, /* Same as above */ + sizeof(asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18) + /sizeof(asn_DEF_semiStaticHARQ_ACK_Codebook_tags_18[0]), /* 2 */ + { &asn_OER_type_semiStaticHARQ_ACK_Codebook_constr_18, &asn_PER_type_semiStaticHARQ_ACK_Codebook_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_semiStaticHARQ_ACK_Codebook_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_spatialBundlingHARQ_ACK_value2enum_20[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_spatialBundlingHARQ_ACK_enum2value_20[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatialBundlingHARQ_ACK_specs_20 = { + asn_MAP_spatialBundlingHARQ_ACK_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_spatialBundlingHARQ_ACK_20 = { + "spatialBundlingHARQ-ACK", + "spatialBundlingHARQ-ACK", + &asn_OP_NativeEnumerated, + asn_DEF_spatialBundlingHARQ_ACK_tags_20, + sizeof(asn_DEF_spatialBundlingHARQ_ACK_tags_20) + /sizeof(asn_DEF_spatialBundlingHARQ_ACK_tags_20[0]) - 1, /* 1 */ + asn_DEF_spatialBundlingHARQ_ACK_tags_20, /* Same as above */ + sizeof(asn_DEF_spatialBundlingHARQ_ACK_tags_20) + /sizeof(asn_DEF_spatialBundlingHARQ_ACK_tags_20[0]), /* 2 */ + { &asn_OER_type_spatialBundlingHARQ_ACK_constr_20, &asn_PER_type_spatialBundlingHARQ_ACK_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_spatialBundlingHARQ_ACK_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicBetaOffsetInd_HARQ_ACK_CSI_value2enum_22[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicBetaOffsetInd_HARQ_ACK_CSI_enum2value_22[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicBetaOffsetInd_HARQ_ACK_CSI_specs_22 = { + asn_MAP_dynamicBetaOffsetInd_HARQ_ACK_CSI_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicBetaOffsetInd_HARQ_ACK_CSI_22 = { + "dynamicBetaOffsetInd-HARQ-ACK-CSI", + "dynamicBetaOffsetInd-HARQ-ACK-CSI", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22, + sizeof(asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22) + /sizeof(asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22[0]) - 1, /* 1 */ + asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22, /* Same as above */ + sizeof(asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22) + /sizeof(asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_tags_22[0]), /* 2 */ + { &asn_OER_type_dynamicBetaOffsetInd_HARQ_ACK_CSI_constr_22, &asn_PER_type_dynamicBetaOffsetInd_HARQ_ACK_CSI_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicBetaOffsetInd_HARQ_ACK_CSI_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_Repetition_F1_3_4_value2enum_24[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_Repetition_F1_3_4_enum2value_24[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_Repetition_F1_3_4_specs_24 = { + asn_MAP_pucch_Repetition_F1_3_4_value2enum_24, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_Repetition_F1_3_4_24 = { + "pucch-Repetition-F1-3-4", + "pucch-Repetition-F1-3-4", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_Repetition_F1_3_4_tags_24, + sizeof(asn_DEF_pucch_Repetition_F1_3_4_tags_24) + /sizeof(asn_DEF_pucch_Repetition_F1_3_4_tags_24[0]) - 1, /* 1 */ + asn_DEF_pucch_Repetition_F1_3_4_tags_24, /* Same as above */ + sizeof(asn_DEF_pucch_Repetition_F1_3_4_tags_24) + /sizeof(asn_DEF_pucch_Repetition_F1_3_4_tags_24[0]), /* 2 */ + { &asn_OER_type_pucch_Repetition_F1_3_4_constr_24, &asn_PER_type_pucch_Repetition_F1_3_4_constr_24, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_Repetition_F1_3_4_specs_24 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ra_Type0_PUSCH_value2enum_26[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_ra_Type0_PUSCH_enum2value_26[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ra_Type0_PUSCH_specs_26 = { + asn_MAP_ra_Type0_PUSCH_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ra_Type0_PUSCH_26 = { + "ra-Type0-PUSCH", + "ra-Type0-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_ra_Type0_PUSCH_tags_26, + sizeof(asn_DEF_ra_Type0_PUSCH_tags_26) + /sizeof(asn_DEF_ra_Type0_PUSCH_tags_26[0]) - 1, /* 1 */ + asn_DEF_ra_Type0_PUSCH_tags_26, /* Same as above */ + sizeof(asn_DEF_ra_Type0_PUSCH_tags_26) + /sizeof(asn_DEF_ra_Type0_PUSCH_tags_26[0]), /* 2 */ + { &asn_OER_type_ra_Type0_PUSCH_constr_26, &asn_PER_type_ra_Type0_PUSCH_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_Type0_PUSCH_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicSwitchRA_Type0_1_PDSCH_value2enum_28[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicSwitchRA_Type0_1_PDSCH_enum2value_28[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicSwitchRA_Type0_1_PDSCH_specs_28 = { + asn_MAP_dynamicSwitchRA_Type0_1_PDSCH_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicSwitchRA_Type0_1_PDSCH_28 = { + "dynamicSwitchRA-Type0-1-PDSCH", + "dynamicSwitchRA-Type0-1-PDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28, + sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28) + /sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28[0]) - 1, /* 1 */ + asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28, /* Same as above */ + sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28) + /sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_tags_28[0]), /* 2 */ + { &asn_OER_type_dynamicSwitchRA_Type0_1_PDSCH_constr_28, &asn_PER_type_dynamicSwitchRA_Type0_1_PDSCH_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicSwitchRA_Type0_1_PDSCH_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicSwitchRA_Type0_1_PUSCH_value2enum_30[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicSwitchRA_Type0_1_PUSCH_enum2value_30[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicSwitchRA_Type0_1_PUSCH_specs_30 = { + asn_MAP_dynamicSwitchRA_Type0_1_PUSCH_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicSwitchRA_Type0_1_PUSCH_30 = { + "dynamicSwitchRA-Type0-1-PUSCH", + "dynamicSwitchRA-Type0-1-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30, + sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30) + /sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30[0]) - 1, /* 1 */ + asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30, /* Same as above */ + sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30) + /sizeof(asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_tags_30[0]), /* 2 */ + { &asn_OER_type_dynamicSwitchRA_Type0_1_PUSCH_constr_30, &asn_PER_type_dynamicSwitchRA_Type0_1_PUSCH_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicSwitchRA_Type0_1_PUSCH_specs_30 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_MappingTypeA_value2enum_32[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdsch_MappingTypeA_enum2value_32[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_MappingTypeA_specs_32 = { + asn_MAP_pdsch_MappingTypeA_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_MappingTypeA_32 = { + "pdsch-MappingTypeA", + "pdsch-MappingTypeA", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_MappingTypeA_tags_32, + sizeof(asn_DEF_pdsch_MappingTypeA_tags_32) + /sizeof(asn_DEF_pdsch_MappingTypeA_tags_32[0]) - 1, /* 1 */ + asn_DEF_pdsch_MappingTypeA_tags_32, /* Same as above */ + sizeof(asn_DEF_pdsch_MappingTypeA_tags_32) + /sizeof(asn_DEF_pdsch_MappingTypeA_tags_32[0]), /* 2 */ + { &asn_OER_type_pdsch_MappingTypeA_constr_32, &asn_PER_type_pdsch_MappingTypeA_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_MappingTypeA_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_MappingTypeB_value2enum_34[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdsch_MappingTypeB_enum2value_34[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_MappingTypeB_specs_34 = { + asn_MAP_pdsch_MappingTypeB_value2enum_34, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_MappingTypeB_34 = { + "pdsch-MappingTypeB", + "pdsch-MappingTypeB", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_MappingTypeB_tags_34, + sizeof(asn_DEF_pdsch_MappingTypeB_tags_34) + /sizeof(asn_DEF_pdsch_MappingTypeB_tags_34[0]) - 1, /* 1 */ + asn_DEF_pdsch_MappingTypeB_tags_34, /* Same as above */ + sizeof(asn_DEF_pdsch_MappingTypeB_tags_34) + /sizeof(asn_DEF_pdsch_MappingTypeB_tags_34[0]), /* 2 */ + { &asn_OER_type_pdsch_MappingTypeB_constr_34, &asn_PER_type_pdsch_MappingTypeB_constr_34, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_MappingTypeB_specs_34 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_interleavingVRB_ToPRB_PDSCH_value2enum_36[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_interleavingVRB_ToPRB_PDSCH_enum2value_36[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_interleavingVRB_ToPRB_PDSCH_specs_36 = { + asn_MAP_interleavingVRB_ToPRB_PDSCH_value2enum_36, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_interleavingVRB_ToPRB_PDSCH_36 = { + "interleavingVRB-ToPRB-PDSCH", + "interleavingVRB-ToPRB-PDSCH", + &asn_OP_NativeEnumerated, + asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36, + sizeof(asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36) + /sizeof(asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36[0]) - 1, /* 1 */ + asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36, /* Same as above */ + sizeof(asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36) + /sizeof(asn_DEF_interleavingVRB_ToPRB_PDSCH_tags_36[0]), /* 2 */ + { &asn_OER_type_interleavingVRB_ToPRB_PDSCH_constr_36, &asn_PER_type_interleavingVRB_ToPRB_PDSCH_constr_36, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_interleavingVRB_ToPRB_PDSCH_specs_36 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_interSlotFreqHopping_PUSCH_value2enum_38[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_interSlotFreqHopping_PUSCH_enum2value_38[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_interSlotFreqHopping_PUSCH_specs_38 = { + asn_MAP_interSlotFreqHopping_PUSCH_value2enum_38, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_interSlotFreqHopping_PUSCH_38 = { + "interSlotFreqHopping-PUSCH", + "interSlotFreqHopping-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_interSlotFreqHopping_PUSCH_tags_38, + sizeof(asn_DEF_interSlotFreqHopping_PUSCH_tags_38) + /sizeof(asn_DEF_interSlotFreqHopping_PUSCH_tags_38[0]) - 1, /* 1 */ + asn_DEF_interSlotFreqHopping_PUSCH_tags_38, /* Same as above */ + sizeof(asn_DEF_interSlotFreqHopping_PUSCH_tags_38) + /sizeof(asn_DEF_interSlotFreqHopping_PUSCH_tags_38[0]), /* 2 */ + { &asn_OER_type_interSlotFreqHopping_PUSCH_constr_38, &asn_PER_type_interSlotFreqHopping_PUSCH_constr_38, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_interSlotFreqHopping_PUSCH_specs_38 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_type1_PUSCH_RepetitionMultiSlots_value2enum_40[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_type1_PUSCH_RepetitionMultiSlots_enum2value_40[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_type1_PUSCH_RepetitionMultiSlots_specs_40 = { + asn_MAP_type1_PUSCH_RepetitionMultiSlots_value2enum_40, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type1_PUSCH_RepetitionMultiSlots_40 = { + "type1-PUSCH-RepetitionMultiSlots", + "type1-PUSCH-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40, + sizeof(asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40) + /sizeof(asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40[0]) - 1, /* 1 */ + asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40, /* Same as above */ + sizeof(asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40) + /sizeof(asn_DEF_type1_PUSCH_RepetitionMultiSlots_tags_40[0]), /* 2 */ + { &asn_OER_type_type1_PUSCH_RepetitionMultiSlots_constr_40, &asn_PER_type_type1_PUSCH_RepetitionMultiSlots_constr_40, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type1_PUSCH_RepetitionMultiSlots_specs_40 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_type2_PUSCH_RepetitionMultiSlots_value2enum_42[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_type2_PUSCH_RepetitionMultiSlots_enum2value_42[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_type2_PUSCH_RepetitionMultiSlots_specs_42 = { + asn_MAP_type2_PUSCH_RepetitionMultiSlots_value2enum_42, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type2_PUSCH_RepetitionMultiSlots_42 = { + "type2-PUSCH-RepetitionMultiSlots", + "type2-PUSCH-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42, + sizeof(asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42) + /sizeof(asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42[0]) - 1, /* 1 */ + asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42, /* Same as above */ + sizeof(asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42) + /sizeof(asn_DEF_type2_PUSCH_RepetitionMultiSlots_tags_42[0]), /* 2 */ + { &asn_OER_type_type2_PUSCH_RepetitionMultiSlots_constr_42, &asn_PER_type_type2_PUSCH_RepetitionMultiSlots_constr_42, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type2_PUSCH_RepetitionMultiSlots_specs_42 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_RepetitionMultiSlots_value2enum_44[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pusch_RepetitionMultiSlots_enum2value_44[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_RepetitionMultiSlots_specs_44 = { + asn_MAP_pusch_RepetitionMultiSlots_value2enum_44, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pusch_RepetitionMultiSlots_44 = { + "pusch-RepetitionMultiSlots", + "pusch-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_RepetitionMultiSlots_tags_44, + sizeof(asn_DEF_pusch_RepetitionMultiSlots_tags_44) + /sizeof(asn_DEF_pusch_RepetitionMultiSlots_tags_44[0]) - 1, /* 1 */ + asn_DEF_pusch_RepetitionMultiSlots_tags_44, /* Same as above */ + sizeof(asn_DEF_pusch_RepetitionMultiSlots_tags_44) + /sizeof(asn_DEF_pusch_RepetitionMultiSlots_tags_44[0]), /* 2 */ + { &asn_OER_type_pusch_RepetitionMultiSlots_constr_44, &asn_PER_type_pusch_RepetitionMultiSlots_constr_44, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_RepetitionMultiSlots_specs_44 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_RepetitionMultiSlots_value2enum_46[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdsch_RepetitionMultiSlots_enum2value_46[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_RepetitionMultiSlots_specs_46 = { + asn_MAP_pdsch_RepetitionMultiSlots_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_RepetitionMultiSlots_46 = { + "pdsch-RepetitionMultiSlots", + "pdsch-RepetitionMultiSlots", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_RepetitionMultiSlots_tags_46, + sizeof(asn_DEF_pdsch_RepetitionMultiSlots_tags_46) + /sizeof(asn_DEF_pdsch_RepetitionMultiSlots_tags_46[0]) - 1, /* 1 */ + asn_DEF_pdsch_RepetitionMultiSlots_tags_46, /* Same as above */ + sizeof(asn_DEF_pdsch_RepetitionMultiSlots_tags_46) + /sizeof(asn_DEF_pdsch_RepetitionMultiSlots_tags_46[0]), /* 2 */ + { &asn_OER_type_pdsch_RepetitionMultiSlots_constr_46, &asn_PER_type_pdsch_RepetitionMultiSlots_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_RepetitionMultiSlots_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_downlinkSPS_value2enum_48[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_downlinkSPS_enum2value_48[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_downlinkSPS_specs_48 = { + asn_MAP_downlinkSPS_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_downlinkSPS_48 = { + "downlinkSPS", + "downlinkSPS", + &asn_OP_NativeEnumerated, + asn_DEF_downlinkSPS_tags_48, + sizeof(asn_DEF_downlinkSPS_tags_48) + /sizeof(asn_DEF_downlinkSPS_tags_48[0]) - 1, /* 1 */ + asn_DEF_downlinkSPS_tags_48, /* Same as above */ + sizeof(asn_DEF_downlinkSPS_tags_48) + /sizeof(asn_DEF_downlinkSPS_tags_48[0]), /* 2 */ + { &asn_OER_type_downlinkSPS_constr_48, &asn_PER_type_downlinkSPS_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_downlinkSPS_specs_48 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_configuredUL_GrantType1_value2enum_50[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_configuredUL_GrantType1_enum2value_50[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_configuredUL_GrantType1_specs_50 = { + asn_MAP_configuredUL_GrantType1_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_configuredUL_GrantType1_50 = { + "configuredUL-GrantType1", + "configuredUL-GrantType1", + &asn_OP_NativeEnumerated, + asn_DEF_configuredUL_GrantType1_tags_50, + sizeof(asn_DEF_configuredUL_GrantType1_tags_50) + /sizeof(asn_DEF_configuredUL_GrantType1_tags_50[0]) - 1, /* 1 */ + asn_DEF_configuredUL_GrantType1_tags_50, /* Same as above */ + sizeof(asn_DEF_configuredUL_GrantType1_tags_50) + /sizeof(asn_DEF_configuredUL_GrantType1_tags_50[0]), /* 2 */ + { &asn_OER_type_configuredUL_GrantType1_constr_50, &asn_PER_type_configuredUL_GrantType1_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_configuredUL_GrantType1_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_configuredUL_GrantType2_value2enum_52[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_configuredUL_GrantType2_enum2value_52[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_configuredUL_GrantType2_specs_52 = { + asn_MAP_configuredUL_GrantType2_value2enum_52, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_configuredUL_GrantType2_52 = { + "configuredUL-GrantType2", + "configuredUL-GrantType2", + &asn_OP_NativeEnumerated, + asn_DEF_configuredUL_GrantType2_tags_52, + sizeof(asn_DEF_configuredUL_GrantType2_tags_52) + /sizeof(asn_DEF_configuredUL_GrantType2_tags_52[0]) - 1, /* 1 */ + asn_DEF_configuredUL_GrantType2_tags_52, /* Same as above */ + sizeof(asn_DEF_configuredUL_GrantType2_tags_52) + /sizeof(asn_DEF_configuredUL_GrantType2_tags_52[0]), /* 2 */ + { &asn_OER_type_configuredUL_GrantType2_constr_52, &asn_PER_type_configuredUL_GrantType2_constr_52, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_configuredUL_GrantType2_specs_52 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pre_EmptIndication_DL_value2enum_54[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pre_EmptIndication_DL_enum2value_54[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pre_EmptIndication_DL_specs_54 = { + asn_MAP_pre_EmptIndication_DL_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pre_EmptIndication_DL_54 = { + "pre-EmptIndication-DL", + "pre-EmptIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_pre_EmptIndication_DL_tags_54, + sizeof(asn_DEF_pre_EmptIndication_DL_tags_54) + /sizeof(asn_DEF_pre_EmptIndication_DL_tags_54[0]) - 1, /* 1 */ + asn_DEF_pre_EmptIndication_DL_tags_54, /* Same as above */ + sizeof(asn_DEF_pre_EmptIndication_DL_tags_54) + /sizeof(asn_DEF_pre_EmptIndication_DL_tags_54[0]), /* 2 */ + { &asn_OER_type_pre_EmptIndication_DL_constr_54, &asn_PER_type_pre_EmptIndication_DL_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pre_EmptIndication_DL_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cbg_TransIndication_DL_value2enum_56[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_cbg_TransIndication_DL_enum2value_56[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cbg_TransIndication_DL_specs_56 = { + asn_MAP_cbg_TransIndication_DL_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cbg_TransIndication_DL_56 = { + "cbg-TransIndication-DL", + "cbg-TransIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_cbg_TransIndication_DL_tags_56, + sizeof(asn_DEF_cbg_TransIndication_DL_tags_56) + /sizeof(asn_DEF_cbg_TransIndication_DL_tags_56[0]) - 1, /* 1 */ + asn_DEF_cbg_TransIndication_DL_tags_56, /* Same as above */ + sizeof(asn_DEF_cbg_TransIndication_DL_tags_56) + /sizeof(asn_DEF_cbg_TransIndication_DL_tags_56[0]), /* 2 */ + { &asn_OER_type_cbg_TransIndication_DL_constr_56, &asn_PER_type_cbg_TransIndication_DL_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cbg_TransIndication_DL_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cbg_TransIndication_UL_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_cbg_TransIndication_UL_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cbg_TransIndication_UL_specs_58 = { + asn_MAP_cbg_TransIndication_UL_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cbg_TransIndication_UL_58 = { + "cbg-TransIndication-UL", + "cbg-TransIndication-UL", + &asn_OP_NativeEnumerated, + asn_DEF_cbg_TransIndication_UL_tags_58, + sizeof(asn_DEF_cbg_TransIndication_UL_tags_58) + /sizeof(asn_DEF_cbg_TransIndication_UL_tags_58[0]) - 1, /* 1 */ + asn_DEF_cbg_TransIndication_UL_tags_58, /* Same as above */ + sizeof(asn_DEF_cbg_TransIndication_UL_tags_58) + /sizeof(asn_DEF_cbg_TransIndication_UL_tags_58[0]), /* 2 */ + { &asn_OER_type_cbg_TransIndication_UL_constr_58, &asn_PER_type_cbg_TransIndication_UL_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cbg_TransIndication_UL_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_cbg_FlushIndication_DL_value2enum_60[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_cbg_FlushIndication_DL_enum2value_60[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cbg_FlushIndication_DL_specs_60 = { + asn_MAP_cbg_FlushIndication_DL_value2enum_60, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cbg_FlushIndication_DL_60 = { + "cbg-FlushIndication-DL", + "cbg-FlushIndication-DL", + &asn_OP_NativeEnumerated, + asn_DEF_cbg_FlushIndication_DL_tags_60, + sizeof(asn_DEF_cbg_FlushIndication_DL_tags_60) + /sizeof(asn_DEF_cbg_FlushIndication_DL_tags_60[0]) - 1, /* 1 */ + asn_DEF_cbg_FlushIndication_DL_tags_60, /* Same as above */ + sizeof(asn_DEF_cbg_FlushIndication_DL_tags_60) + /sizeof(asn_DEF_cbg_FlushIndication_DL_tags_60[0]), /* 2 */ + { &asn_OER_type_cbg_FlushIndication_DL_constr_60, &asn_PER_type_cbg_FlushIndication_DL_constr_60, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cbg_FlushIndication_DL_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_value2enum_62[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_enum2value_62[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_specs_62 = { + asn_MAP_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_value2enum_62, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62 = { + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL", + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62, + sizeof(asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62) + /sizeof(asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62[0]) - 1, /* 1 */ + asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62, /* Same as above */ + sizeof(asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62) + /sizeof(asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_tags_62[0]), /* 2 */ + { &asn_OER_type_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_constr_62, &asn_PER_type_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_constr_62, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_specs_62 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rateMatchingResrcSetSemi_Static_value2enum_64[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_rateMatchingResrcSetSemi_Static_enum2value_64[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rateMatchingResrcSetSemi_Static_specs_64 = { + asn_MAP_rateMatchingResrcSetSemi_Static_value2enum_64, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_rateMatchingResrcSetSemi_Static_64 = { + "rateMatchingResrcSetSemi-Static", + "rateMatchingResrcSetSemi-Static", + &asn_OP_NativeEnumerated, + asn_DEF_rateMatchingResrcSetSemi_Static_tags_64, + sizeof(asn_DEF_rateMatchingResrcSetSemi_Static_tags_64) + /sizeof(asn_DEF_rateMatchingResrcSetSemi_Static_tags_64[0]) - 1, /* 1 */ + asn_DEF_rateMatchingResrcSetSemi_Static_tags_64, /* Same as above */ + sizeof(asn_DEF_rateMatchingResrcSetSemi_Static_tags_64) + /sizeof(asn_DEF_rateMatchingResrcSetSemi_Static_tags_64[0]), /* 2 */ + { &asn_OER_type_rateMatchingResrcSetSemi_Static_constr_64, &asn_PER_type_rateMatchingResrcSetSemi_Static_constr_64, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rateMatchingResrcSetSemi_Static_specs_64 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rateMatchingResrcSetDynamic_value2enum_66[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_rateMatchingResrcSetDynamic_enum2value_66[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rateMatchingResrcSetDynamic_specs_66 = { + asn_MAP_rateMatchingResrcSetDynamic_value2enum_66, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_rateMatchingResrcSetDynamic_66 = { + "rateMatchingResrcSetDynamic", + "rateMatchingResrcSetDynamic", + &asn_OP_NativeEnumerated, + asn_DEF_rateMatchingResrcSetDynamic_tags_66, + sizeof(asn_DEF_rateMatchingResrcSetDynamic_tags_66) + /sizeof(asn_DEF_rateMatchingResrcSetDynamic_tags_66[0]) - 1, /* 1 */ + asn_DEF_rateMatchingResrcSetDynamic_tags_66, /* Same as above */ + sizeof(asn_DEF_rateMatchingResrcSetDynamic_tags_66) + /sizeof(asn_DEF_rateMatchingResrcSetDynamic_tags_66[0]), /* 2 */ + { &asn_OER_type_rateMatchingResrcSetDynamic_constr_66, &asn_PER_type_rateMatchingResrcSetDynamic_constr_66, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rateMatchingResrcSetDynamic_specs_66 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bwp_SwitchingDelay_value2enum_68[] = { + { 0, 5, "type1" }, + { 1, 5, "type2" } +}; +static const unsigned int asn_MAP_bwp_SwitchingDelay_enum2value_68[] = { + 0, /* type1(0) */ + 1 /* type2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bwp_SwitchingDelay_specs_68 = { + asn_MAP_bwp_SwitchingDelay_value2enum_68, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bwp_SwitchingDelay_68 = { + "bwp-SwitchingDelay", + "bwp-SwitchingDelay", + &asn_OP_NativeEnumerated, + asn_DEF_bwp_SwitchingDelay_tags_68, + sizeof(asn_DEF_bwp_SwitchingDelay_tags_68) + /sizeof(asn_DEF_bwp_SwitchingDelay_tags_68[0]) - 1, /* 1 */ + asn_DEF_bwp_SwitchingDelay_tags_68, /* Same as above */ + sizeof(asn_DEF_bwp_SwitchingDelay_tags_68) + /sizeof(asn_DEF_bwp_SwitchingDelay_tags_68[0]), /* 2 */ + { &asn_OER_type_bwp_SwitchingDelay_constr_68, &asn_PER_type_bwp_SwitchingDelay_constr_68, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bwp_SwitchingDelay_specs_68 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_eutra_RS_SINR_measurement_value2enum_73[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_eutra_RS_SINR_measurement_enum2value_73[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_eutra_RS_SINR_measurement_specs_73 = { + asn_MAP_eutra_RS_SINR_measurement_value2enum_73, /* "tag" => N; sorted by tag */ + asn_MAP_eutra_RS_SINR_measurement_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_eutra_RS_SINR_measurement_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_eutra_RS_SINR_measurement_73 = { + "eutra-RS-SINR-measurement", + "eutra-RS-SINR-measurement", + &asn_OP_NativeEnumerated, + asn_DEF_eutra_RS_SINR_measurement_tags_73, + sizeof(asn_DEF_eutra_RS_SINR_measurement_tags_73) + /sizeof(asn_DEF_eutra_RS_SINR_measurement_tags_73[0]) - 1, /* 1 */ + asn_DEF_eutra_RS_SINR_measurement_tags_73, /* Same as above */ + sizeof(asn_DEF_eutra_RS_SINR_measurement_tags_73) + /sizeof(asn_DEF_eutra_RS_SINR_measurement_tags_73[0]), /* 2 */ + { &asn_OER_type_eutra_RS_SINR_measurement_constr_73, &asn_PER_type_eutra_RS_SINR_measurement_constr_73, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_eutra_RS_SINR_measurement_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_72[] = { + { ATF_POINTER, 1, offsetof(struct Phy_ParametersCommon__ext1, eutra_RS_SINR_measurement), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_eutra_RS_SINR_measurement_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra-RS-SINR-measurement" + }, +}; +static const int asn_MAP_ext1_oms_72[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_72[] = { + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_72[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* eutra-RS-SINR-measurement */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_72 = { + sizeof(struct Phy_ParametersCommon__ext1), + offsetof(struct Phy_ParametersCommon__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_72, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_72 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_72, + sizeof(asn_DEF_ext1_tags_72) + /sizeof(asn_DEF_ext1_tags_72[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_72, /* Same as above */ + sizeof(asn_DEF_ext1_tags_72) + /sizeof(asn_DEF_ext1_tags_72[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_72, + 1, /* Elements count */ + &asn_SPC_ext1_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersCommon_1[] = { + { ATF_POINTER, 35, offsetof(struct Phy_ParametersCommon, csi_RS_CFRA_ForHO), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_RS_CFRA_ForHO_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-CFRA-ForHO" + }, + { ATF_POINTER, 34, offsetof(struct Phy_ParametersCommon, dynamicPRB_BundlingDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicPRB_BundlingDL_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicPRB-BundlingDL" + }, + { ATF_POINTER, 33, offsetof(struct Phy_ParametersCommon, sp_CSI_ReportPUCCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_CSI_ReportPUCCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-ReportPUCCH" + }, + { ATF_POINTER, 32, offsetof(struct Phy_ParametersCommon, sp_CSI_ReportPUSCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_CSI_ReportPUSCH_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-ReportPUSCH" + }, + { ATF_POINTER, 31, offsetof(struct Phy_ParametersCommon, nzp_CSI_RS_IntefMgmt), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nzp_CSI_RS_IntefMgmt_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nzp-CSI-RS-IntefMgmt" + }, + { ATF_POINTER, 30, offsetof(struct Phy_ParametersCommon, type2_SP_CSI_Feedback_LongPUCCH), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2-SP-CSI-Feedback-LongPUCCH" + }, + { ATF_POINTER, 29, offsetof(struct Phy_ParametersCommon, precoderGranularityCORESET), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_precoderGranularityCORESET_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "precoderGranularityCORESET" + }, + { ATF_POINTER, 28, offsetof(struct Phy_ParametersCommon, dynamicHARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicHARQ_ACK_Codebook_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicHARQ-ACK-Codebook" + }, + { ATF_POINTER, 27, offsetof(struct Phy_ParametersCommon, semiStaticHARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_semiStaticHARQ_ACK_Codebook_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStaticHARQ-ACK-Codebook" + }, + { ATF_POINTER, 26, offsetof(struct Phy_ParametersCommon, spatialBundlingHARQ_ACK), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatialBundlingHARQ_ACK_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spatialBundlingHARQ-ACK" + }, + { ATF_POINTER, 25, offsetof(struct Phy_ParametersCommon, dynamicBetaOffsetInd_HARQ_ACK_CSI), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicBetaOffsetInd-HARQ-ACK-CSI" + }, + { ATF_POINTER, 24, offsetof(struct Phy_ParametersCommon, pucch_Repetition_F1_3_4), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_Repetition_F1_3_4_24, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-Repetition-F1-3-4" + }, + { ATF_POINTER, 23, offsetof(struct Phy_ParametersCommon, ra_Type0_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_Type0_PUSCH_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Type0-PUSCH" + }, + { ATF_POINTER, 22, offsetof(struct Phy_ParametersCommon, dynamicSwitchRA_Type0_1_PDSCH), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchRA-Type0-1-PDSCH" + }, + { ATF_POINTER, 21, offsetof(struct Phy_ParametersCommon, dynamicSwitchRA_Type0_1_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSwitchRA-Type0-1-PUSCH" + }, + { ATF_POINTER, 20, offsetof(struct Phy_ParametersCommon, pdsch_MappingTypeA), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_MappingTypeA_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-MappingTypeA" + }, + { ATF_POINTER, 19, offsetof(struct Phy_ParametersCommon, pdsch_MappingTypeB), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_MappingTypeB_34, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-MappingTypeB" + }, + { ATF_POINTER, 18, offsetof(struct Phy_ParametersCommon, interleavingVRB_ToPRB_PDSCH), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_interleavingVRB_ToPRB_PDSCH_36, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interleavingVRB-ToPRB-PDSCH" + }, + { ATF_POINTER, 17, offsetof(struct Phy_ParametersCommon, interSlotFreqHopping_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_interSlotFreqHopping_PUSCH_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interSlotFreqHopping-PUSCH" + }, + { ATF_POINTER, 16, offsetof(struct Phy_ParametersCommon, type1_PUSCH_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type1_PUSCH_RepetitionMultiSlots_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type1-PUSCH-RepetitionMultiSlots" + }, + { ATF_POINTER, 15, offsetof(struct Phy_ParametersCommon, type2_PUSCH_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type2_PUSCH_RepetitionMultiSlots_42, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type2-PUSCH-RepetitionMultiSlots" + }, + { ATF_POINTER, 14, offsetof(struct Phy_ParametersCommon, pusch_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_RepetitionMultiSlots_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-RepetitionMultiSlots" + }, + { ATF_POINTER, 13, offsetof(struct Phy_ParametersCommon, pdsch_RepetitionMultiSlots), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_RepetitionMultiSlots_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RepetitionMultiSlots" + }, + { ATF_POINTER, 12, offsetof(struct Phy_ParametersCommon, downlinkSPS), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_downlinkSPS_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkSPS" + }, + { ATF_POINTER, 11, offsetof(struct Phy_ParametersCommon, configuredUL_GrantType1), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_configuredUL_GrantType1_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredUL-GrantType1" + }, + { ATF_POINTER, 10, offsetof(struct Phy_ParametersCommon, configuredUL_GrantType2), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_configuredUL_GrantType2_52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "configuredUL-GrantType2" + }, + { ATF_POINTER, 9, offsetof(struct Phy_ParametersCommon, pre_EmptIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pre_EmptIndication_DL_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pre-EmptIndication-DL" + }, + { ATF_POINTER, 8, offsetof(struct Phy_ParametersCommon, cbg_TransIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cbg_TransIndication_DL_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-TransIndication-DL" + }, + { ATF_POINTER, 7, offsetof(struct Phy_ParametersCommon, cbg_TransIndication_UL), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cbg_TransIndication_UL_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-TransIndication-UL" + }, + { ATF_POINTER, 6, offsetof(struct Phy_ParametersCommon, cbg_FlushIndication_DL), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cbg_FlushIndication_DL_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cbg-FlushIndication-DL" + }, + { ATF_POINTER, 5, offsetof(struct Phy_ParametersCommon, dynamicHARQ_ACK_CodeB_CBG_Retx_DL), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicHARQ-ACK-CodeB-CBG-Retx-DL" + }, + { ATF_POINTER, 4, offsetof(struct Phy_ParametersCommon, rateMatchingResrcSetSemi_Static), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rateMatchingResrcSetSemi_Static_64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingResrcSetSemi-Static" + }, + { ATF_POINTER, 3, offsetof(struct Phy_ParametersCommon, rateMatchingResrcSetDynamic), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rateMatchingResrcSetDynamic_66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchingResrcSetDynamic" + }, + { ATF_POINTER, 2, offsetof(struct Phy_ParametersCommon, bwp_SwitchingDelay), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bwp_SwitchingDelay_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-SwitchingDelay" + }, + { ATF_POINTER, 1, offsetof(struct Phy_ParametersCommon, ext1), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + 0, + &asn_DEF_ext1_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_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 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_Phy_ParametersCommon_specs_1 = { + sizeof(struct Phy_ParametersCommon), + offsetof(struct Phy_ParametersCommon, _asn_ctx), + asn_MAP_Phy_ParametersCommon_tag2el_1, + 35, /* Count of tags in the map */ + asn_MAP_Phy_ParametersCommon_oms_1, /* Optional members */ + 34, 1, /* Root/Additions */ + 34, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersCommon = { + "Phy-ParametersCommon", + "Phy-ParametersCommon", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersCommon_tags_1, + sizeof(asn_DEF_Phy_ParametersCommon_tags_1) + /sizeof(asn_DEF_Phy_ParametersCommon_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersCommon_tags_1) + /sizeof(asn_DEF_Phy_ParametersCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersCommon_1, + 35, /* Elements count */ + &asn_SPC_Phy_ParametersCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersCommon.h b/src/codec_utils/RRC/Phy-ParametersCommon.h new file mode 100644 index 000000000..cfdf8a7a9 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersCommon.h @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersCommon_H_ +#define _Phy_ParametersCommon_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Phy_ParametersCommon__csi_RS_CFRA_ForHO { + Phy_ParametersCommon__csi_RS_CFRA_ForHO_supported = 0 +} e_Phy_ParametersCommon__csi_RS_CFRA_ForHO; +typedef enum Phy_ParametersCommon__dynamicPRB_BundlingDL { + Phy_ParametersCommon__dynamicPRB_BundlingDL_supported = 0 +} e_Phy_ParametersCommon__dynamicPRB_BundlingDL; +typedef enum Phy_ParametersCommon__sp_CSI_ReportPUCCH { + Phy_ParametersCommon__sp_CSI_ReportPUCCH_supported = 0 +} e_Phy_ParametersCommon__sp_CSI_ReportPUCCH; +typedef enum Phy_ParametersCommon__sp_CSI_ReportPUSCH { + Phy_ParametersCommon__sp_CSI_ReportPUSCH_supported = 0 +} e_Phy_ParametersCommon__sp_CSI_ReportPUSCH; +typedef enum Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt { + Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt_supported = 0 +} e_Phy_ParametersCommon__nzp_CSI_RS_IntefMgmt; +typedef enum Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH { + Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH_supported = 0 +} e_Phy_ParametersCommon__type2_SP_CSI_Feedback_LongPUCCH; +typedef enum Phy_ParametersCommon__precoderGranularityCORESET { + Phy_ParametersCommon__precoderGranularityCORESET_supported = 0 +} e_Phy_ParametersCommon__precoderGranularityCORESET; +typedef enum Phy_ParametersCommon__dynamicHARQ_ACK_Codebook { + Phy_ParametersCommon__dynamicHARQ_ACK_Codebook_supported = 0 +} e_Phy_ParametersCommon__dynamicHARQ_ACK_Codebook; +typedef enum Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook { + Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook_supported = 0 +} e_Phy_ParametersCommon__semiStaticHARQ_ACK_Codebook; +typedef enum Phy_ParametersCommon__spatialBundlingHARQ_ACK { + Phy_ParametersCommon__spatialBundlingHARQ_ACK_supported = 0 +} e_Phy_ParametersCommon__spatialBundlingHARQ_ACK; +typedef enum Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI { + Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI_supported = 0 +} e_Phy_ParametersCommon__dynamicBetaOffsetInd_HARQ_ACK_CSI; +typedef enum Phy_ParametersCommon__pucch_Repetition_F1_3_4 { + Phy_ParametersCommon__pucch_Repetition_F1_3_4_supported = 0 +} e_Phy_ParametersCommon__pucch_Repetition_F1_3_4; +typedef enum Phy_ParametersCommon__ra_Type0_PUSCH { + Phy_ParametersCommon__ra_Type0_PUSCH_supported = 0 +} e_Phy_ParametersCommon__ra_Type0_PUSCH; +typedef enum Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH { + Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH_supported = 0 +} e_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PDSCH; +typedef enum Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH { + Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH_supported = 0 +} e_Phy_ParametersCommon__dynamicSwitchRA_Type0_1_PUSCH; +typedef enum Phy_ParametersCommon__pdsch_MappingTypeA { + Phy_ParametersCommon__pdsch_MappingTypeA_supported = 0 +} e_Phy_ParametersCommon__pdsch_MappingTypeA; +typedef enum Phy_ParametersCommon__pdsch_MappingTypeB { + Phy_ParametersCommon__pdsch_MappingTypeB_supported = 0 +} e_Phy_ParametersCommon__pdsch_MappingTypeB; +typedef enum Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH { + Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH_supported = 0 +} e_Phy_ParametersCommon__interleavingVRB_ToPRB_PDSCH; +typedef enum Phy_ParametersCommon__interSlotFreqHopping_PUSCH { + Phy_ParametersCommon__interSlotFreqHopping_PUSCH_supported = 0 +} e_Phy_ParametersCommon__interSlotFreqHopping_PUSCH; +typedef enum Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots { + Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots_supported = 0 +} e_Phy_ParametersCommon__type1_PUSCH_RepetitionMultiSlots; +typedef enum Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots { + Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots_supported = 0 +} e_Phy_ParametersCommon__type2_PUSCH_RepetitionMultiSlots; +typedef enum Phy_ParametersCommon__pusch_RepetitionMultiSlots { + Phy_ParametersCommon__pusch_RepetitionMultiSlots_supported = 0 +} e_Phy_ParametersCommon__pusch_RepetitionMultiSlots; +typedef enum Phy_ParametersCommon__pdsch_RepetitionMultiSlots { + Phy_ParametersCommon__pdsch_RepetitionMultiSlots_supported = 0 +} e_Phy_ParametersCommon__pdsch_RepetitionMultiSlots; +typedef enum Phy_ParametersCommon__downlinkSPS { + Phy_ParametersCommon__downlinkSPS_supported = 0 +} e_Phy_ParametersCommon__downlinkSPS; +typedef enum Phy_ParametersCommon__configuredUL_GrantType1 { + Phy_ParametersCommon__configuredUL_GrantType1_supported = 0 +} e_Phy_ParametersCommon__configuredUL_GrantType1; +typedef enum Phy_ParametersCommon__configuredUL_GrantType2 { + Phy_ParametersCommon__configuredUL_GrantType2_supported = 0 +} e_Phy_ParametersCommon__configuredUL_GrantType2; +typedef enum Phy_ParametersCommon__pre_EmptIndication_DL { + Phy_ParametersCommon__pre_EmptIndication_DL_supported = 0 +} e_Phy_ParametersCommon__pre_EmptIndication_DL; +typedef enum Phy_ParametersCommon__cbg_TransIndication_DL { + Phy_ParametersCommon__cbg_TransIndication_DL_supported = 0 +} e_Phy_ParametersCommon__cbg_TransIndication_DL; +typedef enum Phy_ParametersCommon__cbg_TransIndication_UL { + Phy_ParametersCommon__cbg_TransIndication_UL_supported = 0 +} e_Phy_ParametersCommon__cbg_TransIndication_UL; +typedef enum Phy_ParametersCommon__cbg_FlushIndication_DL { + Phy_ParametersCommon__cbg_FlushIndication_DL_supported = 0 +} e_Phy_ParametersCommon__cbg_FlushIndication_DL; +typedef enum Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL { + Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL_supported = 0 +} e_Phy_ParametersCommon__dynamicHARQ_ACK_CodeB_CBG_Retx_DL; +typedef enum Phy_ParametersCommon__rateMatchingResrcSetSemi_Static { + Phy_ParametersCommon__rateMatchingResrcSetSemi_Static_supported = 0 +} e_Phy_ParametersCommon__rateMatchingResrcSetSemi_Static; +typedef enum Phy_ParametersCommon__rateMatchingResrcSetDynamic { + Phy_ParametersCommon__rateMatchingResrcSetDynamic_supported = 0 +} e_Phy_ParametersCommon__rateMatchingResrcSetDynamic; +typedef enum Phy_ParametersCommon__bwp_SwitchingDelay { + Phy_ParametersCommon__bwp_SwitchingDelay_type1 = 0, + Phy_ParametersCommon__bwp_SwitchingDelay_type2 = 1 +} e_Phy_ParametersCommon__bwp_SwitchingDelay; +typedef enum Phy_ParametersCommon__ext1__eutra_RS_SINR_measurement { + Phy_ParametersCommon__ext1__eutra_RS_SINR_measurement_supported = 0 +} e_Phy_ParametersCommon__ext1__eutra_RS_SINR_measurement; + +/* Phy-ParametersCommon */ +typedef struct 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 Phy_ParametersCommon__ext1 { + long *eutra_RS_SINR_measurement; /* 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; +} Phy_ParametersCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_RS_CFRA_ForHO_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicPRB_BundlingDL_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_CSI_ReportPUCCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_CSI_ReportPUSCH_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nzp_CSI_RS_IntefMgmt_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_type2_SP_CSI_Feedback_LongPUCCH_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_precoderGranularityCORESET_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicHARQ_ACK_Codebook_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_semiStaticHARQ_ACK_Codebook_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_spatialBundlingHARQ_ACK_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicBetaOffsetInd_HARQ_ACK_CSI_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_Repetition_F1_3_4_24; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ra_Type0_PUSCH_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicSwitchRA_Type0_1_PDSCH_28; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicSwitchRA_Type0_1_PUSCH_30; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_MappingTypeA_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_MappingTypeB_34; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_interleavingVRB_ToPRB_PDSCH_36; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_interSlotFreqHopping_PUSCH_38; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_type1_PUSCH_RepetitionMultiSlots_40; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_type2_PUSCH_RepetitionMultiSlots_42; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_RepetitionMultiSlots_44; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_RepetitionMultiSlots_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_downlinkSPS_48; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_configuredUL_GrantType1_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_configuredUL_GrantType2_52; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pre_EmptIndication_DL_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cbg_TransIndication_DL_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cbg_TransIndication_UL_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_cbg_FlushIndication_DL_60; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_62; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rateMatchingResrcSetSemi_Static_64; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_rateMatchingResrcSetDynamic_66; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bwp_SwitchingDelay_68; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_eutra_RS_SINR_measurement_73; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersCommon_1[35]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersFR1.c b/src/codec_utils/RRC/Phy-ParametersFR1.c new file mode 100644 index 000000000..1c8a54c99 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFR1.c @@ -0,0 +1,272 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_pdcchMonitoringSingleOccasion_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdcchMonitoringSingleOccasion_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_oer_constraints_t asn_OER_type_scs_60kHz_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_256QAM_FR1_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_RE_MappingFR1_PerSymbol_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 const asn_INTEGER_enum_map_t asn_MAP_pdcchMonitoringSingleOccasion_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdcchMonitoringSingleOccasion_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdcchMonitoringSingleOccasion_specs_2 = { + asn_MAP_pdcchMonitoringSingleOccasion_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_pdcchMonitoringSingleOccasion_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_pdcchMonitoringSingleOccasion_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_pdcchMonitoringSingleOccasion_2 = { + "pdcchMonitoringSingleOccasion", + "pdcchMonitoringSingleOccasion", + &asn_OP_NativeEnumerated, + asn_DEF_pdcchMonitoringSingleOccasion_tags_2, + sizeof(asn_DEF_pdcchMonitoringSingleOccasion_tags_2) + /sizeof(asn_DEF_pdcchMonitoringSingleOccasion_tags_2[0]) - 1, /* 1 */ + asn_DEF_pdcchMonitoringSingleOccasion_tags_2, /* Same as above */ + sizeof(asn_DEF_pdcchMonitoringSingleOccasion_tags_2) + /sizeof(asn_DEF_pdcchMonitoringSingleOccasion_tags_2[0]), /* 2 */ + { &asn_OER_type_pdcchMonitoringSingleOccasion_constr_2, &asn_PER_type_pdcchMonitoringSingleOccasion_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdcchMonitoringSingleOccasion_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scs_60kHz_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_scs_60kHz_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scs_60kHz_specs_4 = { + asn_MAP_scs_60kHz_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scs_60kHz_4 = { + "scs-60kHz", + "scs-60kHz", + &asn_OP_NativeEnumerated, + asn_DEF_scs_60kHz_tags_4, + sizeof(asn_DEF_scs_60kHz_tags_4) + /sizeof(asn_DEF_scs_60kHz_tags_4[0]) - 1, /* 1 */ + asn_DEF_scs_60kHz_tags_4, /* Same as above */ + sizeof(asn_DEF_scs_60kHz_tags_4) + /sizeof(asn_DEF_scs_60kHz_tags_4[0]), /* 2 */ + { &asn_OER_type_scs_60kHz_constr_4, &asn_PER_type_scs_60kHz_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scs_60kHz_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_256QAM_FR1_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pdsch_256QAM_FR1_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_256QAM_FR1_specs_6 = { + asn_MAP_pdsch_256QAM_FR1_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_256QAM_FR1_6 = { + "pdsch-256QAM-FR1", + "pdsch-256QAM-FR1", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_256QAM_FR1_tags_6, + sizeof(asn_DEF_pdsch_256QAM_FR1_tags_6) + /sizeof(asn_DEF_pdsch_256QAM_FR1_tags_6[0]) - 1, /* 1 */ + asn_DEF_pdsch_256QAM_FR1_tags_6, /* Same as above */ + sizeof(asn_DEF_pdsch_256QAM_FR1_tags_6) + /sizeof(asn_DEF_pdsch_256QAM_FR1_tags_6[0]), /* 2 */ + { &asn_OER_type_pdsch_256QAM_FR1_constr_6, &asn_PER_type_pdsch_256QAM_FR1_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_256QAM_FR1_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_RE_MappingFR1_PerSymbol_value2enum_8[] = { + { 0, 3, "n10" }, + { 1, 3, "n20" } +}; +static const unsigned int asn_MAP_pdsch_RE_MappingFR1_PerSymbol_enum2value_8[] = { + 0, /* n10(0) */ + 1 /* n20(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_RE_MappingFR1_PerSymbol_specs_8 = { + asn_MAP_pdsch_RE_MappingFR1_PerSymbol_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_RE_MappingFR1_PerSymbol_8 = { + "pdsch-RE-MappingFR1-PerSymbol", + "pdsch-RE-MappingFR1-PerSymbol", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8, + sizeof(asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8) + /sizeof(asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8[0]) - 1, /* 1 */ + asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8, /* Same as above */ + sizeof(asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8) + /sizeof(asn_DEF_pdsch_RE_MappingFR1_PerSymbol_tags_8[0]), /* 2 */ + { &asn_OER_type_pdsch_RE_MappingFR1_PerSymbol_constr_8, &asn_PER_type_pdsch_RE_MappingFR1_PerSymbol_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_RE_MappingFR1_PerSymbol_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersFR1_1[] = { + { ATF_POINTER, 4, offsetof(struct Phy_ParametersFR1, pdcchMonitoringSingleOccasion), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdcchMonitoringSingleOccasion_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcchMonitoringSingleOccasion" + }, + { ATF_POINTER, 3, offsetof(struct Phy_ParametersFR1, scs_60kHz), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scs_60kHz_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scs-60kHz" + }, + { ATF_POINTER, 2, offsetof(struct Phy_ParametersFR1, pdsch_256QAM_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_256QAM_FR1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-256QAM-FR1" + }, + { ATF_POINTER, 1, offsetof(struct Phy_ParametersFR1, pdsch_RE_MappingFR1_PerSymbol), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_RE_MappingFR1_PerSymbol_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR1-PerSymbol" + }, +}; +static const int asn_MAP_Phy_ParametersFR1_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersFR1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Phy_ParametersFR1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pdcchMonitoringSingleOccasion */ + { (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_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFR1_specs_1 = { + sizeof(struct Phy_ParametersFR1), + offsetof(struct Phy_ParametersFR1, _asn_ctx), + asn_MAP_Phy_ParametersFR1_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Phy_ParametersFR1_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFR1 = { + "Phy-ParametersFR1", + "Phy-ParametersFR1", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersFR1_tags_1, + sizeof(asn_DEF_Phy_ParametersFR1_tags_1) + /sizeof(asn_DEF_Phy_ParametersFR1_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersFR1_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersFR1_tags_1) + /sizeof(asn_DEF_Phy_ParametersFR1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersFR1_1, + 4, /* Elements count */ + &asn_SPC_Phy_ParametersFR1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersFR1.h b/src/codec_utils/RRC/Phy-ParametersFR1.h new file mode 100644 index 000000000..2d5ca89f8 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFR1.h @@ -0,0 +1,66 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersFR1_H_ +#define _Phy_ParametersFR1_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Phy_ParametersFR1__pdcchMonitoringSingleOccasion { + Phy_ParametersFR1__pdcchMonitoringSingleOccasion_supported = 0 +} e_Phy_ParametersFR1__pdcchMonitoringSingleOccasion; +typedef enum Phy_ParametersFR1__scs_60kHz { + Phy_ParametersFR1__scs_60kHz_supported = 0 +} e_Phy_ParametersFR1__scs_60kHz; +typedef enum Phy_ParametersFR1__pdsch_256QAM_FR1 { + Phy_ParametersFR1__pdsch_256QAM_FR1_supported = 0 +} e_Phy_ParametersFR1__pdsch_256QAM_FR1; +typedef enum Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol { + Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol_n10 = 0, + Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol_n20 = 1 +} e_Phy_ParametersFR1__pdsch_RE_MappingFR1_PerSymbol; + +/* Phy-ParametersFR1 */ +typedef struct Phy_ParametersFR1 { + long *pdcchMonitoringSingleOccasion; /* OPTIONAL */ + long *scs_60kHz; /* OPTIONAL */ + long *pdsch_256QAM_FR1; /* OPTIONAL */ + long *pdsch_RE_MappingFR1_PerSymbol; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Phy_ParametersFR1_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdcchMonitoringSingleOccasion_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scs_60kHz_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_256QAM_FR1_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_RE_MappingFR1_PerSymbol_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFR1; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFR1_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersFR1_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersFR1_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersFR2.c b/src/codec_utils/RRC/Phy-ParametersFR2.c new file mode 100644 index 000000000..c811e3f0d --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFR2.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_calibrationGapPA_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_calibrationGapPA_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_oer_constraints_t asn_OER_type_pdsch_RE_MappingFR2_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_RE_MappingFR2_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_calibrationGapPA_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_calibrationGapPA_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_calibrationGapPA_specs_2 = { + asn_MAP_calibrationGapPA_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_calibrationGapPA_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_calibrationGapPA_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_calibrationGapPA_2 = { + "calibrationGapPA", + "calibrationGapPA", + &asn_OP_NativeEnumerated, + asn_DEF_calibrationGapPA_tags_2, + sizeof(asn_DEF_calibrationGapPA_tags_2) + /sizeof(asn_DEF_calibrationGapPA_tags_2[0]) - 1, /* 1 */ + asn_DEF_calibrationGapPA_tags_2, /* Same as above */ + sizeof(asn_DEF_calibrationGapPA_tags_2) + /sizeof(asn_DEF_calibrationGapPA_tags_2[0]), /* 2 */ + { &asn_OER_type_calibrationGapPA_constr_2, &asn_PER_type_calibrationGapPA_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_calibrationGapPA_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_RE_MappingFR2_value2enum_4[] = { + { 0, 2, "n6" }, + { 1, 3, "n20" } +}; +static const unsigned int asn_MAP_pdsch_RE_MappingFR2_enum2value_4[] = { + 1, /* n20(1) */ + 0 /* n6(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_RE_MappingFR2_specs_4 = { + asn_MAP_pdsch_RE_MappingFR2_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_pdsch_RE_MappingFR2_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_pdsch_RE_MappingFR2_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_pdsch_RE_MappingFR2_4 = { + "pdsch-RE-MappingFR2", + "pdsch-RE-MappingFR2", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_RE_MappingFR2_tags_4, + sizeof(asn_DEF_pdsch_RE_MappingFR2_tags_4) + /sizeof(asn_DEF_pdsch_RE_MappingFR2_tags_4[0]) - 1, /* 1 */ + asn_DEF_pdsch_RE_MappingFR2_tags_4, /* Same as above */ + sizeof(asn_DEF_pdsch_RE_MappingFR2_tags_4) + /sizeof(asn_DEF_pdsch_RE_MappingFR2_tags_4[0]), /* 2 */ + { &asn_OER_type_pdsch_RE_MappingFR2_constr_4, &asn_PER_type_pdsch_RE_MappingFR2_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_RE_MappingFR2_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersFR2_1[] = { + { ATF_POINTER, 2, offsetof(struct Phy_ParametersFR2, calibrationGapPA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_calibrationGapPA_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "calibrationGapPA" + }, + { ATF_POINTER, 1, offsetof(struct Phy_ParametersFR2, pdsch_RE_MappingFR2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_RE_MappingFR2_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-RE-MappingFR2" + }, +}; +static const int asn_MAP_Phy_ParametersFR2_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersFR2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Phy_ParametersFR2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* calibrationGapPA */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pdsch-RE-MappingFR2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFR2_specs_1 = { + sizeof(struct Phy_ParametersFR2), + offsetof(struct Phy_ParametersFR2, _asn_ctx), + asn_MAP_Phy_ParametersFR2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_Phy_ParametersFR2_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFR2 = { + "Phy-ParametersFR2", + "Phy-ParametersFR2", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersFR2_tags_1, + sizeof(asn_DEF_Phy_ParametersFR2_tags_1) + /sizeof(asn_DEF_Phy_ParametersFR2_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersFR2_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersFR2_tags_1) + /sizeof(asn_DEF_Phy_ParametersFR2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersFR2_1, + 2, /* Elements count */ + &asn_SPC_Phy_ParametersFR2_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersFR2.h b/src/codec_utils/RRC/Phy-ParametersFR2.h new file mode 100644 index 000000000..5db88b228 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFR2.h @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersFR2_H_ +#define _Phy_ParametersFR2_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Phy_ParametersFR2__calibrationGapPA { + Phy_ParametersFR2__calibrationGapPA_supported = 0 +} e_Phy_ParametersFR2__calibrationGapPA; +typedef enum Phy_ParametersFR2__pdsch_RE_MappingFR2 { + Phy_ParametersFR2__pdsch_RE_MappingFR2_n6 = 0, + Phy_ParametersFR2__pdsch_RE_MappingFR2_n20 = 1 +} e_Phy_ParametersFR2__pdsch_RE_MappingFR2; + +/* Phy-ParametersFR2 */ +typedef struct Phy_ParametersFR2 { + long *calibrationGapPA; /* OPTIONAL */ + long *pdsch_RE_MappingFR2; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Phy_ParametersFR2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_calibrationGapPA_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_RE_MappingFR2_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFR2; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFR2_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersFR2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersFR2_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersFRX-Diff.c b/src/codec_utils/RRC/Phy-ParametersFRX-Diff.c new file mode 100644 index 000000000..8f41e7e1f --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFRX-Diff.c @@ -0,0 +1,2101 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Phy-ParametersFRX-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. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type 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_oneFL_DMRS_TwoAdditionalDMRS_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_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_twoFL_DMRS_TwoAdditionalDMRS_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_oneFL_DMRS_ThreeAdditionalDMRS_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_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_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_oer_constraints_t asn_OER_type_dynamicSFI_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_supportedDMRS_TypeDL_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_supportedDMRS_TypeUL_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_semiOpenLoopCSI_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_ReportWithoutPMI_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_csi_ReportWithoutCQI_constr_18 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUCCH_F0_2_ConsecSymbols_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_F2_WithFH_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_F3_WithFH_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_F4_WithFH_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_freqHoppingPUCCH_F0_2_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_freqHoppingPUCCH_F1_3_4_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mux_SR_HARQ_ACK_CSI_PUCCH_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_mux_SR_HARQ_ACK_CSI_PUCCH_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_oer_constraints_t asn_OER_type_uci_CodeBlockSegmentation_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_onePUCCH_LongAndShortFormat_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUCCH_AnyOthersInSlot_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_intraSlotFreqHopping_PUSCH_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_LBRM_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tpc_PUSCH_RNTI_constr_46 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tpc_PUCCH_RNTI_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tpc_SRS_RNTI_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_absoluteTPC_Command_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoDifferentTPC_Loop_PUSCH_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoDifferentTPC_Loop_PUCCH_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_HalfPi_BPSK_constr_58 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pucch_F3_4_HalfPi_BPSK_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_almostContiguousCP_OFDM_UL_constr_62 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_CSI_RS_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sp_CSI_IM_constr_66 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tdd_MultiDL_UL_SwitchPerSlot_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_multipleCORESET_constr_70 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_oneFL_DMRS_TwoAdditionalDMRS_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_oneFL_DMRS_TwoAdditionalDMRS_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_oer_constraints_t asn_OER_memb_twoFL_DMRS_constr_5 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_twoFL_DMRS_TwoAdditionalDMRS_constr_6 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_twoFL_DMRS_TwoAdditionalDMRS_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_oer_constraints_t asn_OER_memb_oneFL_DMRS_ThreeAdditionalDMRS_constr_7 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_oneFL_DMRS_ThreeAdditionalDMRS_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_oer_constraints_t asn_OER_memb_onePortsPTRS_constr_20 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pdcch_BlindDetectionCA_constr_45 CC_NOTUSED = { + { 1, 1 } /* (4..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_dynamicSFI_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicSFI_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicSFI_specs_2 = { + asn_MAP_dynamicSFI_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicSFI_2 = { + "dynamicSFI", + "dynamicSFI", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicSFI_tags_2, + sizeof(asn_DEF_dynamicSFI_tags_2) + /sizeof(asn_DEF_dynamicSFI_tags_2[0]) - 1, /* 1 */ + asn_DEF_dynamicSFI_tags_2, /* Same as above */ + sizeof(asn_DEF_dynamicSFI_tags_2) + /sizeof(asn_DEF_dynamicSFI_tags_2[0]), /* 2 */ + { &asn_OER_type_dynamicSFI_constr_2, &asn_PER_type_dynamicSFI_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicSFI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedDMRS_TypeDL_value2enum_8[] = { + { 0, 5, "type1" }, + { 1, 9, "type1And2" } +}; +static const unsigned int asn_MAP_supportedDMRS_TypeDL_enum2value_8[] = { + 0, /* type1(0) */ + 1 /* type1And2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedDMRS_TypeDL_specs_8 = { + asn_MAP_supportedDMRS_TypeDL_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedDMRS_TypeDL_8 = { + "supportedDMRS-TypeDL", + "supportedDMRS-TypeDL", + &asn_OP_NativeEnumerated, + asn_DEF_supportedDMRS_TypeDL_tags_8, + sizeof(asn_DEF_supportedDMRS_TypeDL_tags_8) + /sizeof(asn_DEF_supportedDMRS_TypeDL_tags_8[0]) - 1, /* 1 */ + asn_DEF_supportedDMRS_TypeDL_tags_8, /* Same as above */ + sizeof(asn_DEF_supportedDMRS_TypeDL_tags_8) + /sizeof(asn_DEF_supportedDMRS_TypeDL_tags_8[0]), /* 2 */ + { &asn_OER_type_supportedDMRS_TypeDL_constr_8, &asn_PER_type_supportedDMRS_TypeDL_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedDMRS_TypeDL_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedDMRS_TypeUL_value2enum_11[] = { + { 0, 5, "type1" }, + { 1, 9, "type1And2" } +}; +static const unsigned int asn_MAP_supportedDMRS_TypeUL_enum2value_11[] = { + 0, /* type1(0) */ + 1 /* type1And2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedDMRS_TypeUL_specs_11 = { + asn_MAP_supportedDMRS_TypeUL_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedDMRS_TypeUL_11 = { + "supportedDMRS-TypeUL", + "supportedDMRS-TypeUL", + &asn_OP_NativeEnumerated, + asn_DEF_supportedDMRS_TypeUL_tags_11, + sizeof(asn_DEF_supportedDMRS_TypeUL_tags_11) + /sizeof(asn_DEF_supportedDMRS_TypeUL_tags_11[0]) - 1, /* 1 */ + asn_DEF_supportedDMRS_TypeUL_tags_11, /* Same as above */ + sizeof(asn_DEF_supportedDMRS_TypeUL_tags_11) + /sizeof(asn_DEF_supportedDMRS_TypeUL_tags_11[0]), /* 2 */ + { &asn_OER_type_supportedDMRS_TypeUL_constr_11, &asn_PER_type_supportedDMRS_TypeUL_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedDMRS_TypeUL_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_semiOpenLoopCSI_value2enum_14[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_semiOpenLoopCSI_enum2value_14[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_semiOpenLoopCSI_specs_14 = { + asn_MAP_semiOpenLoopCSI_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_semiOpenLoopCSI_14 = { + "semiOpenLoopCSI", + "semiOpenLoopCSI", + &asn_OP_NativeEnumerated, + asn_DEF_semiOpenLoopCSI_tags_14, + sizeof(asn_DEF_semiOpenLoopCSI_tags_14) + /sizeof(asn_DEF_semiOpenLoopCSI_tags_14[0]) - 1, /* 1 */ + asn_DEF_semiOpenLoopCSI_tags_14, /* Same as above */ + sizeof(asn_DEF_semiOpenLoopCSI_tags_14) + /sizeof(asn_DEF_semiOpenLoopCSI_tags_14[0]), /* 2 */ + { &asn_OER_type_semiOpenLoopCSI_constr_14, &asn_PER_type_semiOpenLoopCSI_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_semiOpenLoopCSI_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_ReportWithoutPMI_value2enum_16[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_ReportWithoutPMI_enum2value_16[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_ReportWithoutPMI_specs_16 = { + asn_MAP_csi_ReportWithoutPMI_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_ReportWithoutPMI_16 = { + "csi-ReportWithoutPMI", + "csi-ReportWithoutPMI", + &asn_OP_NativeEnumerated, + asn_DEF_csi_ReportWithoutPMI_tags_16, + sizeof(asn_DEF_csi_ReportWithoutPMI_tags_16) + /sizeof(asn_DEF_csi_ReportWithoutPMI_tags_16[0]) - 1, /* 1 */ + asn_DEF_csi_ReportWithoutPMI_tags_16, /* Same as above */ + sizeof(asn_DEF_csi_ReportWithoutPMI_tags_16) + /sizeof(asn_DEF_csi_ReportWithoutPMI_tags_16[0]), /* 2 */ + { &asn_OER_type_csi_ReportWithoutPMI_constr_16, &asn_PER_type_csi_ReportWithoutPMI_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_ReportWithoutPMI_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_csi_ReportWithoutCQI_value2enum_18[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_csi_ReportWithoutCQI_enum2value_18[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_csi_ReportWithoutCQI_specs_18 = { + asn_MAP_csi_ReportWithoutCQI_value2enum_18, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_csi_ReportWithoutCQI_18 = { + "csi-ReportWithoutCQI", + "csi-ReportWithoutCQI", + &asn_OP_NativeEnumerated, + asn_DEF_csi_ReportWithoutCQI_tags_18, + sizeof(asn_DEF_csi_ReportWithoutCQI_tags_18) + /sizeof(asn_DEF_csi_ReportWithoutCQI_tags_18[0]) - 1, /* 1 */ + asn_DEF_csi_ReportWithoutCQI_tags_18, /* Same as above */ + sizeof(asn_DEF_csi_ReportWithoutCQI_tags_18) + /sizeof(asn_DEF_csi_ReportWithoutCQI_tags_18[0]), /* 2 */ + { &asn_OER_type_csi_ReportWithoutCQI_constr_18, &asn_PER_type_csi_ReportWithoutCQI_constr_18, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_csi_ReportWithoutCQI_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_F0_2_ConsecSymbols_value2enum_21[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPUCCH_F0_2_ConsecSymbols_enum2value_21[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_F0_2_ConsecSymbols_specs_21 = { + asn_MAP_twoPUCCH_F0_2_ConsecSymbols_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUCCH_F0_2_ConsecSymbols_21 = { + "twoPUCCH-F0-2-ConsecSymbols", + "twoPUCCH-F0-2-ConsecSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21, + sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21) + /sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21[0]) - 1, /* 1 */ + asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21, /* Same as above */ + sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21) + /sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_21[0]), /* 2 */ + { &asn_OER_type_twoPUCCH_F0_2_ConsecSymbols_constr_21, &asn_PER_type_twoPUCCH_F0_2_ConsecSymbols_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUCCH_F0_2_ConsecSymbols_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_F2_WithFH_value2enum_23[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_F2_WithFH_enum2value_23[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_F2_WithFH_specs_23 = { + asn_MAP_pucch_F2_WithFH_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_F2_WithFH_23 = { + "pucch-F2-WithFH", + "pucch-F2-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_F2_WithFH_tags_23, + sizeof(asn_DEF_pucch_F2_WithFH_tags_23) + /sizeof(asn_DEF_pucch_F2_WithFH_tags_23[0]) - 1, /* 1 */ + asn_DEF_pucch_F2_WithFH_tags_23, /* Same as above */ + sizeof(asn_DEF_pucch_F2_WithFH_tags_23) + /sizeof(asn_DEF_pucch_F2_WithFH_tags_23[0]), /* 2 */ + { &asn_OER_type_pucch_F2_WithFH_constr_23, &asn_PER_type_pucch_F2_WithFH_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_F2_WithFH_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_F3_WithFH_value2enum_25[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_F3_WithFH_enum2value_25[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_F3_WithFH_specs_25 = { + asn_MAP_pucch_F3_WithFH_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_F3_WithFH_25 = { + "pucch-F3-WithFH", + "pucch-F3-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_F3_WithFH_tags_25, + sizeof(asn_DEF_pucch_F3_WithFH_tags_25) + /sizeof(asn_DEF_pucch_F3_WithFH_tags_25[0]) - 1, /* 1 */ + asn_DEF_pucch_F3_WithFH_tags_25, /* Same as above */ + sizeof(asn_DEF_pucch_F3_WithFH_tags_25) + /sizeof(asn_DEF_pucch_F3_WithFH_tags_25[0]), /* 2 */ + { &asn_OER_type_pucch_F3_WithFH_constr_25, &asn_PER_type_pucch_F3_WithFH_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_F3_WithFH_specs_25 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_F4_WithFH_value2enum_27[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_F4_WithFH_enum2value_27[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_F4_WithFH_specs_27 = { + asn_MAP_pucch_F4_WithFH_value2enum_27, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_F4_WithFH_27 = { + "pucch-F4-WithFH", + "pucch-F4-WithFH", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_F4_WithFH_tags_27, + sizeof(asn_DEF_pucch_F4_WithFH_tags_27) + /sizeof(asn_DEF_pucch_F4_WithFH_tags_27[0]) - 1, /* 1 */ + asn_DEF_pucch_F4_WithFH_tags_27, /* Same as above */ + sizeof(asn_DEF_pucch_F4_WithFH_tags_27) + /sizeof(asn_DEF_pucch_F4_WithFH_tags_27[0]), /* 2 */ + { &asn_OER_type_pucch_F4_WithFH_constr_27, &asn_PER_type_pucch_F4_WithFH_constr_27, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_F4_WithFH_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_freqHoppingPUCCH_F0_2_value2enum_29[] = { + { 0, 12, "notSupported" } +}; +static const unsigned int asn_MAP_freqHoppingPUCCH_F0_2_enum2value_29[] = { + 0 /* notSupported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_freqHoppingPUCCH_F0_2_specs_29 = { + asn_MAP_freqHoppingPUCCH_F0_2_value2enum_29, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_freqHoppingPUCCH_F0_2_29 = { + "freqHoppingPUCCH-F0-2", + "freqHoppingPUCCH-F0-2", + &asn_OP_NativeEnumerated, + asn_DEF_freqHoppingPUCCH_F0_2_tags_29, + sizeof(asn_DEF_freqHoppingPUCCH_F0_2_tags_29) + /sizeof(asn_DEF_freqHoppingPUCCH_F0_2_tags_29[0]) - 1, /* 1 */ + asn_DEF_freqHoppingPUCCH_F0_2_tags_29, /* Same as above */ + sizeof(asn_DEF_freqHoppingPUCCH_F0_2_tags_29) + /sizeof(asn_DEF_freqHoppingPUCCH_F0_2_tags_29[0]), /* 2 */ + { &asn_OER_type_freqHoppingPUCCH_F0_2_constr_29, &asn_PER_type_freqHoppingPUCCH_F0_2_constr_29, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_freqHoppingPUCCH_F0_2_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_freqHoppingPUCCH_F1_3_4_value2enum_31[] = { + { 0, 12, "notSupported" } +}; +static const unsigned int asn_MAP_freqHoppingPUCCH_F1_3_4_enum2value_31[] = { + 0 /* notSupported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_freqHoppingPUCCH_F1_3_4_specs_31 = { + asn_MAP_freqHoppingPUCCH_F1_3_4_value2enum_31, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_freqHoppingPUCCH_F1_3_4_31 = { + "freqHoppingPUCCH-F1-3-4", + "freqHoppingPUCCH-F1-3-4", + &asn_OP_NativeEnumerated, + asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31, + sizeof(asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31) + /sizeof(asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31[0]) - 1, /* 1 */ + asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31, /* Same as above */ + sizeof(asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31) + /sizeof(asn_DEF_freqHoppingPUCCH_F1_3_4_tags_31[0]), /* 2 */ + { &asn_OER_type_freqHoppingPUCCH_F1_3_4_constr_31, &asn_PER_type_freqHoppingPUCCH_F1_3_4_constr_31, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_freqHoppingPUCCH_F1_3_4_specs_31 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mux_SR_HARQ_ACK_CSI_PUCCH_value2enum_33[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_mux_SR_HARQ_ACK_CSI_PUCCH_enum2value_33[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mux_SR_HARQ_ACK_CSI_PUCCH_specs_33 = { + asn_MAP_mux_SR_HARQ_ACK_CSI_PUCCH_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_mux_SR_HARQ_ACK_CSI_PUCCH_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_mux_SR_HARQ_ACK_CSI_PUCCH_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_mux_SR_HARQ_ACK_CSI_PUCCH_33 = { + "mux-SR-HARQ-ACK-CSI-PUCCH", + "mux-SR-HARQ-ACK-CSI-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33, + sizeof(asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33) + /sizeof(asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33[0]) - 1, /* 1 */ + asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33, /* Same as above */ + sizeof(asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33) + /sizeof(asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_tags_33[0]), /* 2 */ + { &asn_OER_type_mux_SR_HARQ_ACK_CSI_PUCCH_constr_33, &asn_PER_type_mux_SR_HARQ_ACK_CSI_PUCCH_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mux_SR_HARQ_ACK_CSI_PUCCH_specs_33 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_uci_CodeBlockSegmentation_value2enum_35[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_uci_CodeBlockSegmentation_enum2value_35[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_uci_CodeBlockSegmentation_specs_35 = { + asn_MAP_uci_CodeBlockSegmentation_value2enum_35, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_uci_CodeBlockSegmentation_35 = { + "uci-CodeBlockSegmentation", + "uci-CodeBlockSegmentation", + &asn_OP_NativeEnumerated, + asn_DEF_uci_CodeBlockSegmentation_tags_35, + sizeof(asn_DEF_uci_CodeBlockSegmentation_tags_35) + /sizeof(asn_DEF_uci_CodeBlockSegmentation_tags_35[0]) - 1, /* 1 */ + asn_DEF_uci_CodeBlockSegmentation_tags_35, /* Same as above */ + sizeof(asn_DEF_uci_CodeBlockSegmentation_tags_35) + /sizeof(asn_DEF_uci_CodeBlockSegmentation_tags_35[0]), /* 2 */ + { &asn_OER_type_uci_CodeBlockSegmentation_constr_35, &asn_PER_type_uci_CodeBlockSegmentation_constr_35, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_uci_CodeBlockSegmentation_specs_35 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_onePUCCH_LongAndShortFormat_value2enum_37[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_onePUCCH_LongAndShortFormat_enum2value_37[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_onePUCCH_LongAndShortFormat_specs_37 = { + asn_MAP_onePUCCH_LongAndShortFormat_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_onePUCCH_LongAndShortFormat_37 = { + "onePUCCH-LongAndShortFormat", + "onePUCCH-LongAndShortFormat", + &asn_OP_NativeEnumerated, + asn_DEF_onePUCCH_LongAndShortFormat_tags_37, + sizeof(asn_DEF_onePUCCH_LongAndShortFormat_tags_37) + /sizeof(asn_DEF_onePUCCH_LongAndShortFormat_tags_37[0]) - 1, /* 1 */ + asn_DEF_onePUCCH_LongAndShortFormat_tags_37, /* Same as above */ + sizeof(asn_DEF_onePUCCH_LongAndShortFormat_tags_37) + /sizeof(asn_DEF_onePUCCH_LongAndShortFormat_tags_37[0]), /* 2 */ + { &asn_OER_type_onePUCCH_LongAndShortFormat_constr_37, &asn_PER_type_onePUCCH_LongAndShortFormat_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_onePUCCH_LongAndShortFormat_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_AnyOthersInSlot_value2enum_39[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPUCCH_AnyOthersInSlot_enum2value_39[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_AnyOthersInSlot_specs_39 = { + asn_MAP_twoPUCCH_AnyOthersInSlot_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUCCH_AnyOthersInSlot_39 = { + "twoPUCCH-AnyOthersInSlot", + "twoPUCCH-AnyOthersInSlot", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39, + sizeof(asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39) + /sizeof(asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39[0]) - 1, /* 1 */ + asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39, /* Same as above */ + sizeof(asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39) + /sizeof(asn_DEF_twoPUCCH_AnyOthersInSlot_tags_39[0]), /* 2 */ + { &asn_OER_type_twoPUCCH_AnyOthersInSlot_constr_39, &asn_PER_type_twoPUCCH_AnyOthersInSlot_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUCCH_AnyOthersInSlot_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_intraSlotFreqHopping_PUSCH_value2enum_41[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_intraSlotFreqHopping_PUSCH_enum2value_41[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_intraSlotFreqHopping_PUSCH_specs_41 = { + asn_MAP_intraSlotFreqHopping_PUSCH_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_intraSlotFreqHopping_PUSCH_41 = { + "intraSlotFreqHopping-PUSCH", + "intraSlotFreqHopping-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_intraSlotFreqHopping_PUSCH_tags_41, + sizeof(asn_DEF_intraSlotFreqHopping_PUSCH_tags_41) + /sizeof(asn_DEF_intraSlotFreqHopping_PUSCH_tags_41[0]) - 1, /* 1 */ + asn_DEF_intraSlotFreqHopping_PUSCH_tags_41, /* Same as above */ + sizeof(asn_DEF_intraSlotFreqHopping_PUSCH_tags_41) + /sizeof(asn_DEF_intraSlotFreqHopping_PUSCH_tags_41[0]), /* 2 */ + { &asn_OER_type_intraSlotFreqHopping_PUSCH_constr_41, &asn_PER_type_intraSlotFreqHopping_PUSCH_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_intraSlotFreqHopping_PUSCH_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_LBRM_value2enum_43[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pusch_LBRM_enum2value_43[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_LBRM_specs_43 = { + asn_MAP_pusch_LBRM_value2enum_43, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pusch_LBRM_43 = { + "pusch-LBRM", + "pusch-LBRM", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_LBRM_tags_43, + sizeof(asn_DEF_pusch_LBRM_tags_43) + /sizeof(asn_DEF_pusch_LBRM_tags_43[0]) - 1, /* 1 */ + asn_DEF_pusch_LBRM_tags_43, /* Same as above */ + sizeof(asn_DEF_pusch_LBRM_tags_43) + /sizeof(asn_DEF_pusch_LBRM_tags_43[0]), /* 2 */ + { &asn_OER_type_pusch_LBRM_constr_43, &asn_PER_type_pusch_LBRM_constr_43, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_LBRM_specs_43 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tpc_PUSCH_RNTI_value2enum_46[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_tpc_PUSCH_RNTI_enum2value_46[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tpc_PUSCH_RNTI_specs_46 = { + asn_MAP_tpc_PUSCH_RNTI_value2enum_46, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tpc_PUSCH_RNTI_46 = { + "tpc-PUSCH-RNTI", + "tpc-PUSCH-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_tpc_PUSCH_RNTI_tags_46, + sizeof(asn_DEF_tpc_PUSCH_RNTI_tags_46) + /sizeof(asn_DEF_tpc_PUSCH_RNTI_tags_46[0]) - 1, /* 1 */ + asn_DEF_tpc_PUSCH_RNTI_tags_46, /* Same as above */ + sizeof(asn_DEF_tpc_PUSCH_RNTI_tags_46) + /sizeof(asn_DEF_tpc_PUSCH_RNTI_tags_46[0]), /* 2 */ + { &asn_OER_type_tpc_PUSCH_RNTI_constr_46, &asn_PER_type_tpc_PUSCH_RNTI_constr_46, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tpc_PUSCH_RNTI_specs_46 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tpc_PUCCH_RNTI_value2enum_48[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_tpc_PUCCH_RNTI_enum2value_48[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tpc_PUCCH_RNTI_specs_48 = { + asn_MAP_tpc_PUCCH_RNTI_value2enum_48, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tpc_PUCCH_RNTI_48 = { + "tpc-PUCCH-RNTI", + "tpc-PUCCH-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_tpc_PUCCH_RNTI_tags_48, + sizeof(asn_DEF_tpc_PUCCH_RNTI_tags_48) + /sizeof(asn_DEF_tpc_PUCCH_RNTI_tags_48[0]) - 1, /* 1 */ + asn_DEF_tpc_PUCCH_RNTI_tags_48, /* Same as above */ + sizeof(asn_DEF_tpc_PUCCH_RNTI_tags_48) + /sizeof(asn_DEF_tpc_PUCCH_RNTI_tags_48[0]), /* 2 */ + { &asn_OER_type_tpc_PUCCH_RNTI_constr_48, &asn_PER_type_tpc_PUCCH_RNTI_constr_48, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tpc_PUCCH_RNTI_specs_48 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tpc_SRS_RNTI_value2enum_50[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_tpc_SRS_RNTI_enum2value_50[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tpc_SRS_RNTI_specs_50 = { + asn_MAP_tpc_SRS_RNTI_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tpc_SRS_RNTI_50 = { + "tpc-SRS-RNTI", + "tpc-SRS-RNTI", + &asn_OP_NativeEnumerated, + asn_DEF_tpc_SRS_RNTI_tags_50, + sizeof(asn_DEF_tpc_SRS_RNTI_tags_50) + /sizeof(asn_DEF_tpc_SRS_RNTI_tags_50[0]) - 1, /* 1 */ + asn_DEF_tpc_SRS_RNTI_tags_50, /* Same as above */ + sizeof(asn_DEF_tpc_SRS_RNTI_tags_50) + /sizeof(asn_DEF_tpc_SRS_RNTI_tags_50[0]), /* 2 */ + { &asn_OER_type_tpc_SRS_RNTI_constr_50, &asn_PER_type_tpc_SRS_RNTI_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tpc_SRS_RNTI_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_absoluteTPC_Command_value2enum_52[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_absoluteTPC_Command_enum2value_52[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_absoluteTPC_Command_specs_52 = { + asn_MAP_absoluteTPC_Command_value2enum_52, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_absoluteTPC_Command_52 = { + "absoluteTPC-Command", + "absoluteTPC-Command", + &asn_OP_NativeEnumerated, + asn_DEF_absoluteTPC_Command_tags_52, + sizeof(asn_DEF_absoluteTPC_Command_tags_52) + /sizeof(asn_DEF_absoluteTPC_Command_tags_52[0]) - 1, /* 1 */ + asn_DEF_absoluteTPC_Command_tags_52, /* Same as above */ + sizeof(asn_DEF_absoluteTPC_Command_tags_52) + /sizeof(asn_DEF_absoluteTPC_Command_tags_52[0]), /* 2 */ + { &asn_OER_type_absoluteTPC_Command_constr_52, &asn_PER_type_absoluteTPC_Command_constr_52, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_absoluteTPC_Command_specs_52 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoDifferentTPC_Loop_PUSCH_value2enum_54[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoDifferentTPC_Loop_PUSCH_enum2value_54[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoDifferentTPC_Loop_PUSCH_specs_54 = { + asn_MAP_twoDifferentTPC_Loop_PUSCH_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoDifferentTPC_Loop_PUSCH_54 = { + "twoDifferentTPC-Loop-PUSCH", + "twoDifferentTPC-Loop-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54, + sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54[0]) - 1, /* 1 */ + asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54, /* Same as above */ + sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_54[0]), /* 2 */ + { &asn_OER_type_twoDifferentTPC_Loop_PUSCH_constr_54, &asn_PER_type_twoDifferentTPC_Loop_PUSCH_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoDifferentTPC_Loop_PUSCH_specs_54 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoDifferentTPC_Loop_PUCCH_value2enum_56[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoDifferentTPC_Loop_PUCCH_enum2value_56[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoDifferentTPC_Loop_PUCCH_specs_56 = { + asn_MAP_twoDifferentTPC_Loop_PUCCH_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoDifferentTPC_Loop_PUCCH_56 = { + "twoDifferentTPC-Loop-PUCCH", + "twoDifferentTPC-Loop-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56, + sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56[0]) - 1, /* 1 */ + asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56, /* Same as above */ + sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_56[0]), /* 2 */ + { &asn_OER_type_twoDifferentTPC_Loop_PUCCH_constr_56, &asn_PER_type_twoDifferentTPC_Loop_PUCCH_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoDifferentTPC_Loop_PUCCH_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pusch_HalfPi_BPSK_value2enum_58[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pusch_HalfPi_BPSK_enum2value_58[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pusch_HalfPi_BPSK_specs_58 = { + asn_MAP_pusch_HalfPi_BPSK_value2enum_58, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pusch_HalfPi_BPSK_58 = { + "pusch-HalfPi-BPSK", + "pusch-HalfPi-BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_pusch_HalfPi_BPSK_tags_58, + sizeof(asn_DEF_pusch_HalfPi_BPSK_tags_58) + /sizeof(asn_DEF_pusch_HalfPi_BPSK_tags_58[0]) - 1, /* 1 */ + asn_DEF_pusch_HalfPi_BPSK_tags_58, /* Same as above */ + sizeof(asn_DEF_pusch_HalfPi_BPSK_tags_58) + /sizeof(asn_DEF_pusch_HalfPi_BPSK_tags_58[0]), /* 2 */ + { &asn_OER_type_pusch_HalfPi_BPSK_constr_58, &asn_PER_type_pusch_HalfPi_BPSK_constr_58, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pusch_HalfPi_BPSK_specs_58 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pucch_F3_4_HalfPi_BPSK_value2enum_60[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_pucch_F3_4_HalfPi_BPSK_enum2value_60[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pucch_F3_4_HalfPi_BPSK_specs_60 = { + asn_MAP_pucch_F3_4_HalfPi_BPSK_value2enum_60, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pucch_F3_4_HalfPi_BPSK_60 = { + "pucch-F3-4-HalfPi-BPSK", + "pucch-F3-4-HalfPi-BPSK", + &asn_OP_NativeEnumerated, + asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60, + sizeof(asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60) + /sizeof(asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60[0]) - 1, /* 1 */ + asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60, /* Same as above */ + sizeof(asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60) + /sizeof(asn_DEF_pucch_F3_4_HalfPi_BPSK_tags_60[0]), /* 2 */ + { &asn_OER_type_pucch_F3_4_HalfPi_BPSK_constr_60, &asn_PER_type_pucch_F3_4_HalfPi_BPSK_constr_60, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pucch_F3_4_HalfPi_BPSK_specs_60 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_almostContiguousCP_OFDM_UL_value2enum_62[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_almostContiguousCP_OFDM_UL_enum2value_62[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_almostContiguousCP_OFDM_UL_specs_62 = { + asn_MAP_almostContiguousCP_OFDM_UL_value2enum_62, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_almostContiguousCP_OFDM_UL_62 = { + "almostContiguousCP-OFDM-UL", + "almostContiguousCP-OFDM-UL", + &asn_OP_NativeEnumerated, + asn_DEF_almostContiguousCP_OFDM_UL_tags_62, + sizeof(asn_DEF_almostContiguousCP_OFDM_UL_tags_62) + /sizeof(asn_DEF_almostContiguousCP_OFDM_UL_tags_62[0]) - 1, /* 1 */ + asn_DEF_almostContiguousCP_OFDM_UL_tags_62, /* Same as above */ + sizeof(asn_DEF_almostContiguousCP_OFDM_UL_tags_62) + /sizeof(asn_DEF_almostContiguousCP_OFDM_UL_tags_62[0]), /* 2 */ + { &asn_OER_type_almostContiguousCP_OFDM_UL_constr_62, &asn_PER_type_almostContiguousCP_OFDM_UL_constr_62, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_almostContiguousCP_OFDM_UL_specs_62 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_CSI_RS_value2enum_64[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_CSI_RS_enum2value_64[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_CSI_RS_specs_64 = { + asn_MAP_sp_CSI_RS_value2enum_64, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_CSI_RS_64 = { + "sp-CSI-RS", + "sp-CSI-RS", + &asn_OP_NativeEnumerated, + asn_DEF_sp_CSI_RS_tags_64, + sizeof(asn_DEF_sp_CSI_RS_tags_64) + /sizeof(asn_DEF_sp_CSI_RS_tags_64[0]) - 1, /* 1 */ + asn_DEF_sp_CSI_RS_tags_64, /* Same as above */ + sizeof(asn_DEF_sp_CSI_RS_tags_64) + /sizeof(asn_DEF_sp_CSI_RS_tags_64[0]), /* 2 */ + { &asn_OER_type_sp_CSI_RS_constr_64, &asn_PER_type_sp_CSI_RS_constr_64, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_CSI_RS_specs_64 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sp_CSI_IM_value2enum_66[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_sp_CSI_IM_enum2value_66[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sp_CSI_IM_specs_66 = { + asn_MAP_sp_CSI_IM_value2enum_66, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sp_CSI_IM_66 = { + "sp-CSI-IM", + "sp-CSI-IM", + &asn_OP_NativeEnumerated, + asn_DEF_sp_CSI_IM_tags_66, + sizeof(asn_DEF_sp_CSI_IM_tags_66) + /sizeof(asn_DEF_sp_CSI_IM_tags_66[0]) - 1, /* 1 */ + asn_DEF_sp_CSI_IM_tags_66, /* Same as above */ + sizeof(asn_DEF_sp_CSI_IM_tags_66) + /sizeof(asn_DEF_sp_CSI_IM_tags_66[0]), /* 2 */ + { &asn_OER_type_sp_CSI_IM_constr_66, &asn_PER_type_sp_CSI_IM_constr_66, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sp_CSI_IM_specs_66 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tdd_MultiDL_UL_SwitchPerSlot_value2enum_68[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_tdd_MultiDL_UL_SwitchPerSlot_enum2value_68[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tdd_MultiDL_UL_SwitchPerSlot_specs_68 = { + asn_MAP_tdd_MultiDL_UL_SwitchPerSlot_value2enum_68, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tdd_MultiDL_UL_SwitchPerSlot_68 = { + "tdd-MultiDL-UL-SwitchPerSlot", + "tdd-MultiDL-UL-SwitchPerSlot", + &asn_OP_NativeEnumerated, + asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68, + sizeof(asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68) + /sizeof(asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68[0]) - 1, /* 1 */ + asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68, /* Same as above */ + sizeof(asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68) + /sizeof(asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_tags_68[0]), /* 2 */ + { &asn_OER_type_tdd_MultiDL_UL_SwitchPerSlot_constr_68, &asn_PER_type_tdd_MultiDL_UL_SwitchPerSlot_constr_68, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tdd_MultiDL_UL_SwitchPerSlot_specs_68 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_multipleCORESET_value2enum_70[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_multipleCORESET_enum2value_70[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_multipleCORESET_specs_70 = { + asn_MAP_multipleCORESET_value2enum_70, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_multipleCORESET_70 = { + "multipleCORESET", + "multipleCORESET", + &asn_OP_NativeEnumerated, + asn_DEF_multipleCORESET_tags_70, + sizeof(asn_DEF_multipleCORESET_tags_70) + /sizeof(asn_DEF_multipleCORESET_tags_70[0]) - 1, /* 1 */ + asn_DEF_multipleCORESET_tags_70, /* Same as above */ + sizeof(asn_DEF_multipleCORESET_tags_70) + /sizeof(asn_DEF_multipleCORESET_tags_70[0]), /* 2 */ + { &asn_OER_type_multipleCORESET_constr_70, &asn_PER_type_multipleCORESET_constr_70, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_multipleCORESET_specs_70 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersFRX_Diff_1[] = { + { ATF_POINTER, 37, offsetof(struct Phy_ParametersFRX_Diff, dynamicSFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicSFI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSFI" + }, + { ATF_POINTER, 36, offsetof(struct Phy_ParametersFRX_Diff, oneFL_DMRS_TwoAdditionalDMRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_oneFL_DMRS_TwoAdditionalDMRS_constr_4, &asn_PER_memb_oneFL_DMRS_TwoAdditionalDMRS_constr_4, memb_oneFL_DMRS_TwoAdditionalDMRS_constraint_1 }, + 0, 0, /* No default value */ + "oneFL-DMRS-TwoAdditionalDMRS" + }, + { ATF_POINTER, 35, offsetof(struct Phy_ParametersFRX_Diff, twoFL_DMRS), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_twoFL_DMRS_constr_5, &asn_PER_memb_twoFL_DMRS_constr_5, memb_twoFL_DMRS_constraint_1 }, + 0, 0, /* No default value */ + "twoFL-DMRS" + }, + { ATF_POINTER, 34, offsetof(struct Phy_ParametersFRX_Diff, twoFL_DMRS_TwoAdditionalDMRS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_twoFL_DMRS_TwoAdditionalDMRS_constr_6, &asn_PER_memb_twoFL_DMRS_TwoAdditionalDMRS_constr_6, memb_twoFL_DMRS_TwoAdditionalDMRS_constraint_1 }, + 0, 0, /* No default value */ + "twoFL-DMRS-TwoAdditionalDMRS" + }, + { ATF_POINTER, 33, offsetof(struct Phy_ParametersFRX_Diff, oneFL_DMRS_ThreeAdditionalDMRS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_oneFL_DMRS_ThreeAdditionalDMRS_constr_7, &asn_PER_memb_oneFL_DMRS_ThreeAdditionalDMRS_constr_7, memb_oneFL_DMRS_ThreeAdditionalDMRS_constraint_1 }, + 0, 0, /* No default value */ + "oneFL-DMRS-ThreeAdditionalDMRS" + }, + { ATF_POINTER, 32, offsetof(struct Phy_ParametersFRX_Diff, supportedDMRS_TypeDL), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedDMRS_TypeDL_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedDMRS-TypeDL" + }, + { ATF_POINTER, 31, offsetof(struct Phy_ParametersFRX_Diff, supportedDMRS_TypeUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedDMRS_TypeUL_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedDMRS-TypeUL" + }, + { ATF_POINTER, 30, offsetof(struct Phy_ParametersFRX_Diff, semiOpenLoopCSI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_semiOpenLoopCSI_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiOpenLoopCSI" + }, + { ATF_POINTER, 29, offsetof(struct Phy_ParametersFRX_Diff, csi_ReportWithoutPMI), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_ReportWithoutPMI_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportWithoutPMI" + }, + { ATF_POINTER, 28, offsetof(struct Phy_ParametersFRX_Diff, csi_ReportWithoutCQI), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_csi_ReportWithoutCQI_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-ReportWithoutCQI" + }, + { ATF_POINTER, 27, offsetof(struct Phy_ParametersFRX_Diff, onePortsPTRS), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_onePortsPTRS_constr_20, &asn_PER_memb_onePortsPTRS_constr_20, memb_onePortsPTRS_constraint_1 }, + 0, 0, /* No default value */ + "onePortsPTRS" + }, + { ATF_POINTER, 26, offsetof(struct Phy_ParametersFRX_Diff, twoPUCCH_F0_2_ConsecSymbols), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUCCH_F0_2_ConsecSymbols_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-F0-2-ConsecSymbols" + }, + { ATF_POINTER, 25, offsetof(struct Phy_ParametersFRX_Diff, pucch_F2_WithFH), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_F2_WithFH_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F2-WithFH" + }, + { ATF_POINTER, 24, offsetof(struct Phy_ParametersFRX_Diff, pucch_F3_WithFH), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_F3_WithFH_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F3-WithFH" + }, + { ATF_POINTER, 23, offsetof(struct Phy_ParametersFRX_Diff, pucch_F4_WithFH), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_F4_WithFH_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F4-WithFH" + }, + { ATF_POINTER, 22, offsetof(struct Phy_ParametersFRX_Diff, freqHoppingPUCCH_F0_2), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_freqHoppingPUCCH_F0_2_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHoppingPUCCH-F0-2" + }, + { ATF_POINTER, 21, offsetof(struct Phy_ParametersFRX_Diff, freqHoppingPUCCH_F1_3_4), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_freqHoppingPUCCH_F1_3_4_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHoppingPUCCH-F1-3-4" + }, + { ATF_POINTER, 20, offsetof(struct Phy_ParametersFRX_Diff, mux_SR_HARQ_ACK_CSI_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mux-SR-HARQ-ACK-CSI-PUCCH" + }, + { ATF_POINTER, 19, offsetof(struct Phy_ParametersFRX_Diff, uci_CodeBlockSegmentation), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_uci_CodeBlockSegmentation_35, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uci-CodeBlockSegmentation" + }, + { ATF_POINTER, 18, offsetof(struct Phy_ParametersFRX_Diff, onePUCCH_LongAndShortFormat), + (ASN_TAG_CLASS_CONTEXT | (19 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_onePUCCH_LongAndShortFormat_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "onePUCCH-LongAndShortFormat" + }, + { ATF_POINTER, 17, offsetof(struct Phy_ParametersFRX_Diff, twoPUCCH_AnyOthersInSlot), + (ASN_TAG_CLASS_CONTEXT | (20 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUCCH_AnyOthersInSlot_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-AnyOthersInSlot" + }, + { ATF_POINTER, 16, offsetof(struct Phy_ParametersFRX_Diff, intraSlotFreqHopping_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (21 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_intraSlotFreqHopping_PUSCH_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraSlotFreqHopping-PUSCH" + }, + { ATF_POINTER, 15, offsetof(struct Phy_ParametersFRX_Diff, pusch_LBRM), + (ASN_TAG_CLASS_CONTEXT | (22 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_LBRM_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-LBRM" + }, + { ATF_POINTER, 14, offsetof(struct Phy_ParametersFRX_Diff, pdcch_BlindDetectionCA), + (ASN_TAG_CLASS_CONTEXT | (23 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_pdcch_BlindDetectionCA_constr_45, &asn_PER_memb_pdcch_BlindDetectionCA_constr_45, memb_pdcch_BlindDetectionCA_constraint_1 }, + 0, 0, /* No default value */ + "pdcch-BlindDetectionCA" + }, + { ATF_POINTER, 13, offsetof(struct Phy_ParametersFRX_Diff, tpc_PUSCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (24 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tpc_PUSCH_RNTI_46, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH-RNTI" + }, + { ATF_POINTER, 12, offsetof(struct Phy_ParametersFRX_Diff, tpc_PUCCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (25 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tpc_PUCCH_RNTI_48, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH-RNTI" + }, + { ATF_POINTER, 11, offsetof(struct Phy_ParametersFRX_Diff, tpc_SRS_RNTI), + (ASN_TAG_CLASS_CONTEXT | (26 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tpc_SRS_RNTI_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS-RNTI" + }, + { ATF_POINTER, 10, offsetof(struct Phy_ParametersFRX_Diff, absoluteTPC_Command), + (ASN_TAG_CLASS_CONTEXT | (27 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_absoluteTPC_Command_52, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absoluteTPC-Command" + }, + { ATF_POINTER, 9, offsetof(struct Phy_ParametersFRX_Diff, twoDifferentTPC_Loop_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (28 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoDifferentTPC_Loop_PUSCH_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUSCH" + }, + { ATF_POINTER, 8, offsetof(struct Phy_ParametersFRX_Diff, twoDifferentTPC_Loop_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (29 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoDifferentTPC_Loop_PUCCH_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUCCH" + }, + { ATF_POINTER, 7, offsetof(struct Phy_ParametersFRX_Diff, pusch_HalfPi_BPSK), + (ASN_TAG_CLASS_CONTEXT | (30 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pusch_HalfPi_BPSK_58, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-HalfPi-BPSK" + }, + { ATF_POINTER, 6, offsetof(struct Phy_ParametersFRX_Diff, pucch_F3_4_HalfPi_BPSK), + (ASN_TAG_CLASS_CONTEXT | (31 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pucch_F3_4_HalfPi_BPSK_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pucch-F3-4-HalfPi-BPSK" + }, + { ATF_POINTER, 5, offsetof(struct Phy_ParametersFRX_Diff, almostContiguousCP_OFDM_UL), + (ASN_TAG_CLASS_CONTEXT | (32 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_almostContiguousCP_OFDM_UL_62, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "almostContiguousCP-OFDM-UL" + }, + { ATF_POINTER, 4, offsetof(struct Phy_ParametersFRX_Diff, sp_CSI_RS), + (ASN_TAG_CLASS_CONTEXT | (33 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_CSI_RS_64, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-RS" + }, + { ATF_POINTER, 3, offsetof(struct Phy_ParametersFRX_Diff, sp_CSI_IM), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sp_CSI_IM_66, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-IM" + }, + { ATF_POINTER, 2, offsetof(struct Phy_ParametersFRX_Diff, tdd_MultiDL_UL_SwitchPerSlot), + (ASN_TAG_CLASS_CONTEXT | (35 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-MultiDL-UL-SwitchPerSlot" + }, + { ATF_POINTER, 1, offsetof(struct Phy_ParametersFRX_Diff, multipleCORESET), + (ASN_TAG_CLASS_CONTEXT | (36 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_multipleCORESET_70, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "multipleCORESET" + }, +}; +static const int asn_MAP_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 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersFRX_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Phy_ParametersFRX_Diff_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* dynamicSFI */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* oneFL-DMRS-TwoAdditionalDMRS */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* twoFL-DMRS */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* twoFL-DMRS-TwoAdditionalDMRS */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* oneFL-DMRS-ThreeAdditionalDMRS */ + { (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 */ + { (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_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFRX_Diff_specs_1 = { + sizeof(struct Phy_ParametersFRX_Diff), + offsetof(struct Phy_ParametersFRX_Diff, _asn_ctx), + asn_MAP_Phy_ParametersFRX_Diff_tag2el_1, + 37, /* Count of tags in the map */ + asn_MAP_Phy_ParametersFRX_Diff_oms_1, /* Optional members */ + 37, 0, /* Root/Additions */ + 37, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFRX_Diff = { + "Phy-ParametersFRX-Diff", + "Phy-ParametersFRX-Diff", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersFRX_Diff_tags_1, + sizeof(asn_DEF_Phy_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_Phy_ParametersFRX_Diff_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersFRX_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersFRX_Diff_tags_1) + /sizeof(asn_DEF_Phy_ParametersFRX_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersFRX_Diff_1, + 37, /* Elements count */ + &asn_SPC_Phy_ParametersFRX_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersFRX-Diff.h b/src/codec_utils/RRC/Phy-ParametersFRX-Diff.h new file mode 100644 index 000000000..03ab49bca --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersFRX-Diff.h @@ -0,0 +1,210 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersFRX_Diff_H_ +#define _Phy_ParametersFRX_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Phy_ParametersFRX_Diff__dynamicSFI { + Phy_ParametersFRX_Diff__dynamicSFI_supported = 0 +} e_Phy_ParametersFRX_Diff__dynamicSFI; +typedef enum Phy_ParametersFRX_Diff__supportedDMRS_TypeDL { + Phy_ParametersFRX_Diff__supportedDMRS_TypeDL_type1 = 0, + Phy_ParametersFRX_Diff__supportedDMRS_TypeDL_type1And2 = 1 +} e_Phy_ParametersFRX_Diff__supportedDMRS_TypeDL; +typedef enum Phy_ParametersFRX_Diff__supportedDMRS_TypeUL { + Phy_ParametersFRX_Diff__supportedDMRS_TypeUL_type1 = 0, + Phy_ParametersFRX_Diff__supportedDMRS_TypeUL_type1And2 = 1 +} e_Phy_ParametersFRX_Diff__supportedDMRS_TypeUL; +typedef enum Phy_ParametersFRX_Diff__semiOpenLoopCSI { + Phy_ParametersFRX_Diff__semiOpenLoopCSI_supported = 0 +} e_Phy_ParametersFRX_Diff__semiOpenLoopCSI; +typedef enum Phy_ParametersFRX_Diff__csi_ReportWithoutPMI { + Phy_ParametersFRX_Diff__csi_ReportWithoutPMI_supported = 0 +} e_Phy_ParametersFRX_Diff__csi_ReportWithoutPMI; +typedef enum Phy_ParametersFRX_Diff__csi_ReportWithoutCQI { + Phy_ParametersFRX_Diff__csi_ReportWithoutCQI_supported = 0 +} e_Phy_ParametersFRX_Diff__csi_ReportWithoutCQI; +typedef enum Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols { + Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols_supported = 0 +} e_Phy_ParametersFRX_Diff__twoPUCCH_F0_2_ConsecSymbols; +typedef enum Phy_ParametersFRX_Diff__pucch_F2_WithFH { + Phy_ParametersFRX_Diff__pucch_F2_WithFH_supported = 0 +} e_Phy_ParametersFRX_Diff__pucch_F2_WithFH; +typedef enum Phy_ParametersFRX_Diff__pucch_F3_WithFH { + Phy_ParametersFRX_Diff__pucch_F3_WithFH_supported = 0 +} e_Phy_ParametersFRX_Diff__pucch_F3_WithFH; +typedef enum Phy_ParametersFRX_Diff__pucch_F4_WithFH { + Phy_ParametersFRX_Diff__pucch_F4_WithFH_supported = 0 +} e_Phy_ParametersFRX_Diff__pucch_F4_WithFH; +typedef enum Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2 { + Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2_notSupported = 0 +} e_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F0_2; +typedef enum Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4 { + Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4_notSupported = 0 +} e_Phy_ParametersFRX_Diff__freqHoppingPUCCH_F1_3_4; +typedef enum Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH { + Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH_supported = 0 +} e_Phy_ParametersFRX_Diff__mux_SR_HARQ_ACK_CSI_PUCCH; +typedef enum Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation { + Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation_supported = 0 +} e_Phy_ParametersFRX_Diff__uci_CodeBlockSegmentation; +typedef enum Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat { + Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat_supported = 0 +} e_Phy_ParametersFRX_Diff__onePUCCH_LongAndShortFormat; +typedef enum Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot { + Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot_supported = 0 +} e_Phy_ParametersFRX_Diff__twoPUCCH_AnyOthersInSlot; +typedef enum Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH { + Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH_supported = 0 +} e_Phy_ParametersFRX_Diff__intraSlotFreqHopping_PUSCH; +typedef enum Phy_ParametersFRX_Diff__pusch_LBRM { + Phy_ParametersFRX_Diff__pusch_LBRM_supported = 0 +} e_Phy_ParametersFRX_Diff__pusch_LBRM; +typedef enum Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI { + Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI_supported = 0 +} e_Phy_ParametersFRX_Diff__tpc_PUSCH_RNTI; +typedef enum Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI { + Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI_supported = 0 +} e_Phy_ParametersFRX_Diff__tpc_PUCCH_RNTI; +typedef enum Phy_ParametersFRX_Diff__tpc_SRS_RNTI { + Phy_ParametersFRX_Diff__tpc_SRS_RNTI_supported = 0 +} e_Phy_ParametersFRX_Diff__tpc_SRS_RNTI; +typedef enum Phy_ParametersFRX_Diff__absoluteTPC_Command { + Phy_ParametersFRX_Diff__absoluteTPC_Command_supported = 0 +} e_Phy_ParametersFRX_Diff__absoluteTPC_Command; +typedef enum Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH { + Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH_supported = 0 +} e_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUSCH; +typedef enum Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH { + Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH_supported = 0 +} e_Phy_ParametersFRX_Diff__twoDifferentTPC_Loop_PUCCH; +typedef enum Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK { + Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK_supported = 0 +} e_Phy_ParametersFRX_Diff__pusch_HalfPi_BPSK; +typedef enum Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK { + Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK_supported = 0 +} e_Phy_ParametersFRX_Diff__pucch_F3_4_HalfPi_BPSK; +typedef enum Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL { + Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL_supported = 0 +} e_Phy_ParametersFRX_Diff__almostContiguousCP_OFDM_UL; +typedef enum Phy_ParametersFRX_Diff__sp_CSI_RS { + Phy_ParametersFRX_Diff__sp_CSI_RS_supported = 0 +} e_Phy_ParametersFRX_Diff__sp_CSI_RS; +typedef enum Phy_ParametersFRX_Diff__sp_CSI_IM { + Phy_ParametersFRX_Diff__sp_CSI_IM_supported = 0 +} e_Phy_ParametersFRX_Diff__sp_CSI_IM; +typedef enum Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot { + Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot_supported = 0 +} e_Phy_ParametersFRX_Diff__tdd_MultiDL_UL_SwitchPerSlot; +typedef enum Phy_ParametersFRX_Diff__multipleCORESET { + Phy_ParametersFRX_Diff__multipleCORESET_supported = 0 +} e_Phy_ParametersFRX_Diff__multipleCORESET; + +/* Phy-ParametersFRX-Diff */ +typedef struct Phy_ParametersFRX_Diff { + long *dynamicSFI; /* OPTIONAL */ + BIT_STRING_t *oneFL_DMRS_TwoAdditionalDMRS; /* OPTIONAL */ + BIT_STRING_t *twoFL_DMRS; /* OPTIONAL */ + BIT_STRING_t *twoFL_DMRS_TwoAdditionalDMRS; /* OPTIONAL */ + BIT_STRING_t *oneFL_DMRS_ThreeAdditionalDMRS; /* 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; /* 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. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Phy_ParametersFRX_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicSFI_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedDMRS_TypeDL_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedDMRS_TypeUL_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_semiOpenLoopCSI_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_ReportWithoutPMI_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_csi_ReportWithoutCQI_18; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUCCH_F0_2_ConsecSymbols_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_F2_WithFH_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_F3_WithFH_25; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_F4_WithFH_27; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_freqHoppingPUCCH_F0_2_29; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_freqHoppingPUCCH_F1_3_4_31; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mux_SR_HARQ_ACK_CSI_PUCCH_33; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_uci_CodeBlockSegmentation_35; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_onePUCCH_LongAndShortFormat_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUCCH_AnyOthersInSlot_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_intraSlotFreqHopping_PUSCH_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_LBRM_43; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tpc_PUSCH_RNTI_46; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tpc_PUCCH_RNTI_48; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tpc_SRS_RNTI_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_absoluteTPC_Command_52; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoDifferentTPC_Loop_PUSCH_54; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoDifferentTPC_Loop_PUCCH_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pusch_HalfPi_BPSK_58; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pucch_F3_4_HalfPi_BPSK_60; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_almostContiguousCP_OFDM_UL_62; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_CSI_RS_64; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sp_CSI_IM_66; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_tdd_MultiDL_UL_SwitchPerSlot_68; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_multipleCORESET_70; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersFRX_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersFRX_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersFRX_Diff_1[37]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersFRX_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersMRDC.c b/src/codec_utils/RRC/Phy-ParametersMRDC.c new file mode 100644 index 000000000..6895787f1 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersMRDC.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Phy-ParametersMRDC.h" + +#include "NAICS-Capability-Entry.h" +static int +memb_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_oer_constraints_t asn_OER_type_naics_Capability_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_naics_Capability_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_naics_Capability_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_NAICS_Capability_Entry, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_naics_Capability_List_specs_2 = { + sizeof(struct Phy_ParametersMRDC__naics_Capability_List), + offsetof(struct 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_naics_Capability_List_2 = { + "naics-Capability-List", + "naics-Capability-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_naics_Capability_List_tags_2, + sizeof(asn_DEF_naics_Capability_List_tags_2) + /sizeof(asn_DEF_naics_Capability_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_naics_Capability_List_tags_2, /* Same as above */ + sizeof(asn_DEF_naics_Capability_List_tags_2) + /sizeof(asn_DEF_naics_Capability_List_tags_2[0]), /* 2 */ + { &asn_OER_type_naics_Capability_List_constr_2, &asn_PER_type_naics_Capability_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_naics_Capability_List_2, + 1, /* Single element */ + &asn_SPC_naics_Capability_List_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersMRDC_1[] = { + { ATF_POINTER, 1, offsetof(struct Phy_ParametersMRDC, naics_Capability_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_naics_Capability_List_2, + 0, + { &asn_OER_memb_naics_Capability_List_constr_2, &asn_PER_memb_naics_Capability_List_constr_2, memb_naics_Capability_List_constraint_1 }, + 0, 0, /* No default value */ + "naics-Capability-List" + }, +}; +static const int asn_MAP_Phy_ParametersMRDC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_Phy_ParametersMRDC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* naics-Capability-List */ +}; +asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersMRDC_specs_1 = { + sizeof(struct Phy_ParametersMRDC), + offsetof(struct Phy_ParametersMRDC, _asn_ctx), + asn_MAP_Phy_ParametersMRDC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_Phy_ParametersMRDC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersMRDC = { + "Phy-ParametersMRDC", + "Phy-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersMRDC_tags_1, + sizeof(asn_DEF_Phy_ParametersMRDC_tags_1) + /sizeof(asn_DEF_Phy_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersMRDC_tags_1) + /sizeof(asn_DEF_Phy_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersMRDC_1, + 1, /* Elements count */ + &asn_SPC_Phy_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersMRDC.h b/src/codec_utils/RRC/Phy-ParametersMRDC.h new file mode 100644 index 000000000..8621b3930 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersMRDC_H_ +#define _Phy_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct NAICS_Capability_Entry; + +/* Phy-ParametersMRDC */ +typedef struct Phy_ParametersMRDC { + struct Phy_ParametersMRDC__naics_Capability_List { + A_SEQUENCE_OF(struct 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; +} Phy_ParametersMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersMRDC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersMRDC_H_ */ +#include diff --git a/src/codec_utils/RRC/Phy-ParametersXDD-Diff.c b/src/codec_utils/RRC/Phy-ParametersXDD-Diff.c new file mode 100644 index 000000000..e59e73150 --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersXDD-Diff.c @@ -0,0 +1,270 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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. + */ +static asn_oer_constraints_t asn_OER_type_dynamicSFI_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoPUCCH_F0_2_ConsecSymbols_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoDifferentTPC_Loop_PUSCH_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_twoDifferentTPC_Loop_PUCCH_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 const asn_INTEGER_enum_map_t asn_MAP_dynamicSFI_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_dynamicSFI_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dynamicSFI_specs_2 = { + asn_MAP_dynamicSFI_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dynamicSFI_2 = { + "dynamicSFI", + "dynamicSFI", + &asn_OP_NativeEnumerated, + asn_DEF_dynamicSFI_tags_2, + sizeof(asn_DEF_dynamicSFI_tags_2) + /sizeof(asn_DEF_dynamicSFI_tags_2[0]) - 1, /* 1 */ + asn_DEF_dynamicSFI_tags_2, /* Same as above */ + sizeof(asn_DEF_dynamicSFI_tags_2) + /sizeof(asn_DEF_dynamicSFI_tags_2[0]), /* 2 */ + { &asn_OER_type_dynamicSFI_constr_2, &asn_PER_type_dynamicSFI_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dynamicSFI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoPUCCH_F0_2_ConsecSymbols_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoPUCCH_F0_2_ConsecSymbols_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoPUCCH_F0_2_ConsecSymbols_specs_4 = { + asn_MAP_twoPUCCH_F0_2_ConsecSymbols_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoPUCCH_F0_2_ConsecSymbols_4 = { + "twoPUCCH-F0-2-ConsecSymbols", + "twoPUCCH-F0-2-ConsecSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4, + sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4) + /sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4[0]) - 1, /* 1 */ + asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4, /* Same as above */ + sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4) + /sizeof(asn_DEF_twoPUCCH_F0_2_ConsecSymbols_tags_4[0]), /* 2 */ + { &asn_OER_type_twoPUCCH_F0_2_ConsecSymbols_constr_4, &asn_PER_type_twoPUCCH_F0_2_ConsecSymbols_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoPUCCH_F0_2_ConsecSymbols_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoDifferentTPC_Loop_PUSCH_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoDifferentTPC_Loop_PUSCH_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoDifferentTPC_Loop_PUSCH_specs_6 = { + asn_MAP_twoDifferentTPC_Loop_PUSCH_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoDifferentTPC_Loop_PUSCH_6 = { + "twoDifferentTPC-Loop-PUSCH", + "twoDifferentTPC-Loop-PUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6, + sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6[0]) - 1, /* 1 */ + asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6, /* Same as above */ + sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUSCH_tags_6[0]), /* 2 */ + { &asn_OER_type_twoDifferentTPC_Loop_PUSCH_constr_6, &asn_PER_type_twoDifferentTPC_Loop_PUSCH_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoDifferentTPC_Loop_PUSCH_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_twoDifferentTPC_Loop_PUCCH_value2enum_8[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_twoDifferentTPC_Loop_PUCCH_enum2value_8[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_twoDifferentTPC_Loop_PUCCH_specs_8 = { + asn_MAP_twoDifferentTPC_Loop_PUCCH_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_twoDifferentTPC_Loop_PUCCH_8 = { + "twoDifferentTPC-Loop-PUCCH", + "twoDifferentTPC-Loop-PUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8, + sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8[0]) - 1, /* 1 */ + asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8, /* Same as above */ + sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8) + /sizeof(asn_DEF_twoDifferentTPC_Loop_PUCCH_tags_8[0]), /* 2 */ + { &asn_OER_type_twoDifferentTPC_Loop_PUCCH_constr_8, &asn_PER_type_twoDifferentTPC_Loop_PUCCH_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_twoDifferentTPC_Loop_PUCCH_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_Phy_ParametersXDD_Diff_1[] = { + { ATF_POINTER, 4, offsetof(struct Phy_ParametersXDD_Diff, dynamicSFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dynamicSFI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dynamicSFI" + }, + { ATF_POINTER, 3, offsetof(struct Phy_ParametersXDD_Diff, twoPUCCH_F0_2_ConsecSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoPUCCH_F0_2_ConsecSymbols_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoPUCCH-F0-2-ConsecSymbols" + }, + { ATF_POINTER, 2, offsetof(struct Phy_ParametersXDD_Diff, twoDifferentTPC_Loop_PUSCH), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoDifferentTPC_Loop_PUSCH_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUSCH" + }, + { ATF_POINTER, 1, offsetof(struct Phy_ParametersXDD_Diff, twoDifferentTPC_Loop_PUCCH), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_twoDifferentTPC_Loop_PUCCH_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "twoDifferentTPC-Loop-PUCCH" + }, +}; +static const int asn_MAP_Phy_ParametersXDD_Diff_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_Phy_ParametersXDD_Diff_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_Phy_ParametersXDD_Diff_specs_1 = { + sizeof(struct Phy_ParametersXDD_Diff), + offsetof(struct Phy_ParametersXDD_Diff, _asn_ctx), + asn_MAP_Phy_ParametersXDD_Diff_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_Phy_ParametersXDD_Diff_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Phy_ParametersXDD_Diff = { + "Phy-ParametersXDD-Diff", + "Phy-ParametersXDD-Diff", + &asn_OP_SEQUENCE, + asn_DEF_Phy_ParametersXDD_Diff_tags_1, + sizeof(asn_DEF_Phy_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_Phy_ParametersXDD_Diff_tags_1[0]), /* 1 */ + asn_DEF_Phy_ParametersXDD_Diff_tags_1, /* Same as above */ + sizeof(asn_DEF_Phy_ParametersXDD_Diff_tags_1) + /sizeof(asn_DEF_Phy_ParametersXDD_Diff_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Phy_ParametersXDD_Diff_1, + 4, /* Elements count */ + &asn_SPC_Phy_ParametersXDD_Diff_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Phy-ParametersXDD-Diff.h b/src/codec_utils/RRC/Phy-ParametersXDD-Diff.h new file mode 100644 index 000000000..60bf45e8c --- /dev/null +++ b/src/codec_utils/RRC/Phy-ParametersXDD-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Phy_ParametersXDD_Diff_H_ +#define _Phy_ParametersXDD_Diff_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Phy_ParametersXDD_Diff__dynamicSFI { + Phy_ParametersXDD_Diff__dynamicSFI_supported = 0 +} e_Phy_ParametersXDD_Diff__dynamicSFI; +typedef enum Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols { + Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols_supported = 0 +} e_Phy_ParametersXDD_Diff__twoPUCCH_F0_2_ConsecSymbols; +typedef enum Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH { + Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH_supported = 0 +} e_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUSCH; +typedef enum Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH { + Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH_supported = 0 +} e_Phy_ParametersXDD_Diff__twoDifferentTPC_Loop_PUCCH; + +/* Phy-ParametersXDD-Diff */ +typedef struct 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. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Phy_ParametersXDD_Diff_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dynamicSFI_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoPUCCH_F0_2_ConsecSymbols_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoDifferentTPC_Loop_PUSCH_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_twoDifferentTPC_Loop_PUCCH_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_Phy_ParametersXDD_Diff; +extern asn_SEQUENCE_specifics_t asn_SPC_Phy_ParametersXDD_Diff_specs_1; +extern asn_TYPE_member_t asn_MBR_Phy_ParametersXDD_Diff_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Phy_ParametersXDD_Diff_H_ */ +#include diff --git a/src/codec_utils/RRC/PhysCellId.c b/src/codec_utils/RRC/PhysCellId.c new file mode 100644 index 000000000..7ce017c92 --- /dev/null +++ b/src/codec_utils/RRC/PhysCellId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PhysCellId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PhysCellId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1007) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PhysCellId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PhysCellId = { + "PhysCellId", + "PhysCellId", + &asn_OP_NativeInteger, + asn_DEF_PhysCellId_tags_1, + sizeof(asn_DEF_PhysCellId_tags_1) + /sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */ + asn_DEF_PhysCellId_tags_1, /* Same as above */ + sizeof(asn_DEF_PhysCellId_tags_1) + /sizeof(asn_DEF_PhysCellId_tags_1[0]), /* 1 */ + { &asn_OER_type_PhysCellId_constr_1, &asn_PER_type_PhysCellId_constr_1, PhysCellId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PhysCellId.h b/src/codec_utils/RRC/PhysCellId.h new file mode 100644 index 000000000..23e0f3a00 --- /dev/null +++ b/src/codec_utils/RRC/PhysCellId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PhysCellId_H_ +#define _PhysCellId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PhysCellId */ +typedef long PhysCellId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PhysCellId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PhysCellId; +asn_struct_free_f PhysCellId_free; +asn_struct_print_f PhysCellId_print; +asn_constr_check_f PhysCellId_constraint; +ber_type_decoder_f PhysCellId_decode_ber; +der_type_encoder_f PhysCellId_encode_der; +xer_type_decoder_f PhysCellId_decode_xer; +xer_type_encoder_f PhysCellId_encode_xer; +oer_type_decoder_f PhysCellId_decode_oer; +oer_type_encoder_f PhysCellId_encode_oer; +per_type_decoder_f PhysCellId_decode_uper; +per_type_encoder_f PhysCellId_encode_uper; +per_type_decoder_f PhysCellId_decode_aper; +per_type_encoder_f PhysCellId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhysCellId_H_ */ +#include diff --git a/src/codec_utils/RRC/PhysicalCellGroupConfig.c b/src/codec_utils/RRC/PhysicalCellGroupConfig.c new file mode 100644 index 000000000..c78000a20 --- /dev/null +++ b/src/codec_utils/RRC/PhysicalCellGroupConfig.c @@ -0,0 +1,505 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PhysicalCellGroupConfig.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_oer_constraints_t asn_OER_type_harq_ACK_SpatialBundlingPUCCH_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_harq_ACK_SpatialBundlingPUSCH_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdsch_HARQ_ACK_Codebook_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cs_RNTI_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_cs_RNTI_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_oer_constraints_t asn_OER_type_xScale_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_xScale_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 const asn_INTEGER_enum_map_t asn_MAP_harq_ACK_SpatialBundlingPUCCH_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_harq_ACK_SpatialBundlingPUCCH_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_harq_ACK_SpatialBundlingPUCCH_specs_2 = { + asn_MAP_harq_ACK_SpatialBundlingPUCCH_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_harq_ACK_SpatialBundlingPUCCH_2 = { + "harq-ACK-SpatialBundlingPUCCH", + "harq-ACK-SpatialBundlingPUCCH", + &asn_OP_NativeEnumerated, + asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2, + sizeof(asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2) + /sizeof(asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2[0]) - 1, /* 1 */ + asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2, /* Same as above */ + sizeof(asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2) + /sizeof(asn_DEF_harq_ACK_SpatialBundlingPUCCH_tags_2[0]), /* 2 */ + { &asn_OER_type_harq_ACK_SpatialBundlingPUCCH_constr_2, &asn_PER_type_harq_ACK_SpatialBundlingPUCCH_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_harq_ACK_SpatialBundlingPUCCH_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_harq_ACK_SpatialBundlingPUSCH_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_harq_ACK_SpatialBundlingPUSCH_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_harq_ACK_SpatialBundlingPUSCH_specs_4 = { + asn_MAP_harq_ACK_SpatialBundlingPUSCH_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_harq_ACK_SpatialBundlingPUSCH_4 = { + "harq-ACK-SpatialBundlingPUSCH", + "harq-ACK-SpatialBundlingPUSCH", + &asn_OP_NativeEnumerated, + asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4, + sizeof(asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4) + /sizeof(asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4[0]) - 1, /* 1 */ + asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4, /* Same as above */ + sizeof(asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4) + /sizeof(asn_DEF_harq_ACK_SpatialBundlingPUSCH_tags_4[0]), /* 2 */ + { &asn_OER_type_harq_ACK_SpatialBundlingPUSCH_constr_4, &asn_PER_type_harq_ACK_SpatialBundlingPUSCH_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_harq_ACK_SpatialBundlingPUSCH_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pdsch_HARQ_ACK_Codebook_value2enum_7[] = { + { 0, 10, "semiStatic" }, + { 1, 7, "dynamic" } +}; +static const unsigned int asn_MAP_pdsch_HARQ_ACK_Codebook_enum2value_7[] = { + 1, /* dynamic(1) */ + 0 /* semiStatic(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pdsch_HARQ_ACK_Codebook_specs_7 = { + asn_MAP_pdsch_HARQ_ACK_Codebook_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_pdsch_HARQ_ACK_Codebook_7 = { + "pdsch-HARQ-ACK-Codebook", + "pdsch-HARQ-ACK-Codebook", + &asn_OP_NativeEnumerated, + asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7, + sizeof(asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7) + /sizeof(asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7[0]) - 1, /* 1 */ + asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7, /* Same as above */ + sizeof(asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7) + /sizeof(asn_DEF_pdsch_HARQ_ACK_Codebook_tags_7[0]), /* 2 */ + { &asn_OER_type_pdsch_HARQ_ACK_Codebook_constr_7, &asn_PER_type_pdsch_HARQ_ACK_Codebook_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pdsch_HARQ_ACK_Codebook_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cs_RNTI_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct PhysicalCellGroupConfig__cs_RNTI, 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 PhysicalCellGroupConfig__cs_RNTI, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_cs_RNTI_tag2el_14[] = { + { (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_cs_RNTI_specs_14 = { + sizeof(struct PhysicalCellGroupConfig__cs_RNTI), + offsetof(struct PhysicalCellGroupConfig__cs_RNTI, _asn_ctx), + offsetof(struct PhysicalCellGroupConfig__cs_RNTI, present), + sizeof(((struct PhysicalCellGroupConfig__cs_RNTI *)0)->present), + asn_MAP_cs_RNTI_tag2el_14, + 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_cs_RNTI_14 = { + "cs-RNTI", + "cs-RNTI", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_cs_RNTI_constr_14, &asn_PER_type_cs_RNTI_constr_14, CHOICE_constraint }, + asn_MBR_cs_RNTI_14, + 2, /* Elements count */ + &asn_SPC_cs_RNTI_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_18[] = { + { ATF_POINTER, 2, offsetof(struct PhysicalCellGroupConfig__ext1, mcs_C_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-C-RNTI" + }, + { ATF_POINTER, 1, offsetof(struct PhysicalCellGroupConfig__ext1, p_UE_FR1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-UE-FR1" + }, +}; +static const int asn_MAP_ext1_oms_18[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_18[] = { + { (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_ext1_specs_18 = { + sizeof(struct PhysicalCellGroupConfig__ext1), + offsetof(struct PhysicalCellGroupConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_18, + 2, /* Count of tags in the map */ + asn_MAP_ext1_oms_18, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_18 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_18, + sizeof(asn_DEF_ext1_tags_18) + /sizeof(asn_DEF_ext1_tags_18[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_18, /* Same as above */ + sizeof(asn_DEF_ext1_tags_18) + /sizeof(asn_DEF_ext1_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_18, + 2, /* Elements count */ + &asn_SPC_ext1_specs_18 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_xScale_value2enum_22[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB6" }, + { 2, 6, "spare2" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_xScale_enum2value_22[] = { + 0, /* dB0(0) */ + 1, /* dB6(1) */ + 3, /* spare1(3) */ + 2 /* spare2(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_xScale_specs_22 = { + asn_MAP_xScale_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_xScale_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_xScale_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_xScale_22 = { + "xScale", + "xScale", + &asn_OP_NativeEnumerated, + asn_DEF_xScale_tags_22, + sizeof(asn_DEF_xScale_tags_22) + /sizeof(asn_DEF_xScale_tags_22[0]) - 1, /* 1 */ + asn_DEF_xScale_tags_22, /* Same as above */ + sizeof(asn_DEF_xScale_tags_22) + /sizeof(asn_DEF_xScale_tags_22[0]), /* 2 */ + { &asn_OER_type_xScale_constr_22, &asn_PER_type_xScale_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_xScale_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext2_21[] = { + { ATF_POINTER, 1, offsetof(struct PhysicalCellGroupConfig__ext2, xScale), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_xScale_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "xScale" + }, +}; +static const int asn_MAP_ext2_oms_21[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext2_tags_21[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext2_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* xScale */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext2_specs_21 = { + sizeof(struct PhysicalCellGroupConfig__ext2), + offsetof(struct PhysicalCellGroupConfig__ext2, _asn_ctx), + asn_MAP_ext2_tag2el_21, + 1, /* Count of tags in the map */ + asn_MAP_ext2_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_ext2_21 = { + "ext2", + "ext2", + &asn_OP_SEQUENCE, + asn_DEF_ext2_tags_21, + sizeof(asn_DEF_ext2_tags_21) + /sizeof(asn_DEF_ext2_tags_21[0]) - 1, /* 1 */ + asn_DEF_ext2_tags_21, /* Same as above */ + sizeof(asn_DEF_ext2_tags_21) + /sizeof(asn_DEF_ext2_tags_21[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext2_21, + 1, /* Elements count */ + &asn_SPC_ext2_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PhysicalCellGroupConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct PhysicalCellGroupConfig, harq_ACK_SpatialBundlingPUCCH), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_harq_ACK_SpatialBundlingPUCCH_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "harq-ACK-SpatialBundlingPUCCH" + }, + { ATF_POINTER, 2, offsetof(struct PhysicalCellGroupConfig, harq_ACK_SpatialBundlingPUSCH), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_harq_ACK_SpatialBundlingPUSCH_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "harq-ACK-SpatialBundlingPUSCH" + }, + { ATF_POINTER, 1, offsetof(struct PhysicalCellGroupConfig, p_NR_FR1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-NR-FR1" + }, + { ATF_NOFLAGS, 0, offsetof(struct PhysicalCellGroupConfig, pdsch_HARQ_ACK_Codebook), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pdsch_HARQ_ACK_Codebook_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-HARQ-ACK-Codebook" + }, + { ATF_POINTER, 7, offsetof(struct PhysicalCellGroupConfig, tpc_SRS_RNTI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-SRS-RNTI" + }, + { ATF_POINTER, 6, offsetof(struct PhysicalCellGroupConfig, tpc_PUCCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUCCH-RNTI" + }, + { ATF_POINTER, 5, offsetof(struct PhysicalCellGroupConfig, tpc_PUSCH_RNTI), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-PUSCH-RNTI" + }, + { ATF_POINTER, 4, offsetof(struct PhysicalCellGroupConfig, sp_CSI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sp-CSI-RNTI" + }, + { ATF_POINTER, 3, offsetof(struct PhysicalCellGroupConfig, cs_RNTI), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_cs_RNTI_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cs-RNTI" + }, + { ATF_POINTER, 2, offsetof(struct PhysicalCellGroupConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_ext1_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, + { ATF_POINTER, 1, offsetof(struct PhysicalCellGroupConfig, ext2), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_ext2_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext2" + }, +}; +static const int asn_MAP_PhysicalCellGroupConfig_oms_1[] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10 }; +static const ber_tlv_tag_t asn_DEF_PhysicalCellGroupConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_PhysicalCellGroupConfig_specs_1 = { + sizeof(struct PhysicalCellGroupConfig), + offsetof(struct PhysicalCellGroupConfig, _asn_ctx), + asn_MAP_PhysicalCellGroupConfig_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_PhysicalCellGroupConfig_oms_1, /* Optional members */ + 8, 2, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_PhysicalCellGroupConfig = { + "PhysicalCellGroupConfig", + "PhysicalCellGroupConfig", + &asn_OP_SEQUENCE, + asn_DEF_PhysicalCellGroupConfig_tags_1, + sizeof(asn_DEF_PhysicalCellGroupConfig_tags_1) + /sizeof(asn_DEF_PhysicalCellGroupConfig_tags_1[0]), /* 1 */ + asn_DEF_PhysicalCellGroupConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_PhysicalCellGroupConfig_tags_1) + /sizeof(asn_DEF_PhysicalCellGroupConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_PhysicalCellGroupConfig_1, + 11, /* Elements count */ + &asn_SPC_PhysicalCellGroupConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PhysicalCellGroupConfig.h b/src/codec_utils/RRC/PhysicalCellGroupConfig.h new file mode 100644 index 000000000..50797559c --- /dev/null +++ b/src/codec_utils/RRC/PhysicalCellGroupConfig.h @@ -0,0 +1,105 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PhysicalCellGroupConfig_H_ +#define _PhysicalCellGroupConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "P-Max.h" +#include "RNTI-Value.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH { + PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH_true = 0 +} e_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUCCH; +typedef enum PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH { + PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH_true = 0 +} e_PhysicalCellGroupConfig__harq_ACK_SpatialBundlingPUSCH; +typedef enum PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook { + PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook_semiStatic = 0, + PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook_dynamic = 1 +} e_PhysicalCellGroupConfig__pdsch_HARQ_ACK_Codebook; +typedef enum PhysicalCellGroupConfig__cs_RNTI_PR { + PhysicalCellGroupConfig__cs_RNTI_PR_NOTHING, /* No components present */ + PhysicalCellGroupConfig__cs_RNTI_PR_release, + PhysicalCellGroupConfig__cs_RNTI_PR_setup +} PhysicalCellGroupConfig__cs_RNTI_PR; +typedef enum PhysicalCellGroupConfig__ext2__xScale { + PhysicalCellGroupConfig__ext2__xScale_dB0 = 0, + PhysicalCellGroupConfig__ext2__xScale_dB6 = 1, + PhysicalCellGroupConfig__ext2__xScale_spare2 = 2, + PhysicalCellGroupConfig__ext2__xScale_spare1 = 3 +} e_PhysicalCellGroupConfig__ext2__xScale; + +/* PhysicalCellGroupConfig */ +typedef struct PhysicalCellGroupConfig { + long *harq_ACK_SpatialBundlingPUCCH; /* OPTIONAL */ + long *harq_ACK_SpatialBundlingPUSCH; /* OPTIONAL */ + P_Max_t *p_NR_FR1; /* OPTIONAL */ + long pdsch_HARQ_ACK_Codebook; + RNTI_Value_t *tpc_SRS_RNTI; /* OPTIONAL */ + RNTI_Value_t *tpc_PUCCH_RNTI; /* OPTIONAL */ + RNTI_Value_t *tpc_PUSCH_RNTI; /* OPTIONAL */ + RNTI_Value_t *sp_CSI_RNTI; /* OPTIONAL */ + struct PhysicalCellGroupConfig__cs_RNTI { + PhysicalCellGroupConfig__cs_RNTI_PR present; + union PhysicalCellGroupConfig__cs_RNTI_u { + NULL_t release; + RNTI_Value_t setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cs_RNTI; + /* + * This type is extensible, + * possible extensions are below. + */ + struct PhysicalCellGroupConfig__ext1 { + RNTI_Value_t *mcs_C_RNTI; /* OPTIONAL */ + P_Max_t *p_UE_FR1; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ext1; + struct PhysicalCellGroupConfig__ext2 { + long *xScale; /* 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; +} PhysicalCellGroupConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_harq_ACK_SpatialBundlingPUCCH_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_harq_ACK_SpatialBundlingPUSCH_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pdsch_HARQ_ACK_Codebook_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_xScale_22; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_PhysicalCellGroupConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_PhysicalCellGroupConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_PhysicalCellGroupConfig_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _PhysicalCellGroupConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/PollByte.c b/src/codec_utils/RRC/PollByte.c new file mode 100644 index 000000000..df9c54c0f --- /dev/null +++ b/src/codec_utils/RRC/PollByte.c @@ -0,0 +1,180 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PollByte.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PollByte_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_PollByte_specs_1 = { + asn_MAP_PollByte_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_PollByte_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PollByte = { + "PollByte", + "PollByte", + &asn_OP_NativeEnumerated, + asn_DEF_PollByte_tags_1, + sizeof(asn_DEF_PollByte_tags_1) + /sizeof(asn_DEF_PollByte_tags_1[0]), /* 1 */ + asn_DEF_PollByte_tags_1, /* Same as above */ + sizeof(asn_DEF_PollByte_tags_1) + /sizeof(asn_DEF_PollByte_tags_1[0]), /* 1 */ + { &asn_OER_type_PollByte_constr_1, &asn_PER_type_PollByte_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PollByte_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PollByte.h b/src/codec_utils/RRC/PollByte.h new file mode 100644 index 000000000..58b7756c3 --- /dev/null +++ b/src/codec_utils/RRC/PollByte.h @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PollByte_H_ +#define _PollByte_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PollByte { + PollByte_kB1 = 0, + PollByte_kB2 = 1, + PollByte_kB5 = 2, + PollByte_kB8 = 3, + PollByte_kB10 = 4, + PollByte_kB15 = 5, + PollByte_kB25 = 6, + PollByte_kB50 = 7, + PollByte_kB75 = 8, + PollByte_kB100 = 9, + PollByte_kB125 = 10, + PollByte_kB250 = 11, + PollByte_kB375 = 12, + PollByte_kB500 = 13, + PollByte_kB750 = 14, + PollByte_kB1000 = 15, + PollByte_kB1250 = 16, + PollByte_kB1500 = 17, + PollByte_kB2000 = 18, + PollByte_kB3000 = 19, + PollByte_kB4000 = 20, + PollByte_kB4500 = 21, + PollByte_kB5000 = 22, + PollByte_kB5500 = 23, + PollByte_kB6000 = 24, + PollByte_kB6500 = 25, + PollByte_kB7000 = 26, + PollByte_kB7500 = 27, + PollByte_mB8 = 28, + PollByte_mB9 = 29, + PollByte_mB10 = 30, + PollByte_mB11 = 31, + PollByte_mB12 = 32, + PollByte_mB13 = 33, + PollByte_mB14 = 34, + PollByte_mB15 = 35, + PollByte_mB16 = 36, + PollByte_mB17 = 37, + PollByte_mB18 = 38, + PollByte_mB20 = 39, + PollByte_mB25 = 40, + PollByte_mB30 = 41, + PollByte_mB40 = 42, + PollByte_infinity = 43, + PollByte_spare20 = 44, + PollByte_spare19 = 45, + PollByte_spare18 = 46, + PollByte_spare17 = 47, + PollByte_spare16 = 48, + PollByte_spare15 = 49, + PollByte_spare14 = 50, + PollByte_spare13 = 51, + PollByte_spare12 = 52, + PollByte_spare11 = 53, + PollByte_spare10 = 54, + PollByte_spare9 = 55, + PollByte_spare8 = 56, + PollByte_spare7 = 57, + PollByte_spare6 = 58, + PollByte_spare5 = 59, + PollByte_spare4 = 60, + PollByte_spare3 = 61, + PollByte_spare2 = 62, + PollByte_spare1 = 63 +} e_PollByte; + +/* PollByte */ +typedef long PollByte_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PollByte_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PollByte; +extern const asn_INTEGER_specifics_t asn_SPC_PollByte_specs_1; +asn_struct_free_f PollByte_free; +asn_struct_print_f PollByte_print; +asn_constr_check_f PollByte_constraint; +ber_type_decoder_f PollByte_decode_ber; +der_type_encoder_f PollByte_encode_der; +xer_type_decoder_f PollByte_decode_xer; +xer_type_encoder_f PollByte_encode_xer; +oer_type_decoder_f PollByte_decode_oer; +oer_type_encoder_f PollByte_encode_oer; +per_type_decoder_f PollByte_decode_uper; +per_type_encoder_f PollByte_encode_uper; +per_type_decoder_f PollByte_decode_aper; +per_type_encoder_f PollByte_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PollByte_H_ */ +#include diff --git a/src/codec_utils/RRC/PollPDU.c b/src/codec_utils/RRC/PollPDU.c new file mode 100644 index 000000000..fa8054887 --- /dev/null +++ b/src/codec_utils/RRC/PollPDU.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PollPDU.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_PollPDU_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_PollPDU_specs_1 = { + asn_MAP_PollPDU_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_PollPDU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PollPDU = { + "PollPDU", + "PollPDU", + &asn_OP_NativeEnumerated, + asn_DEF_PollPDU_tags_1, + sizeof(asn_DEF_PollPDU_tags_1) + /sizeof(asn_DEF_PollPDU_tags_1[0]), /* 1 */ + asn_DEF_PollPDU_tags_1, /* Same as above */ + sizeof(asn_DEF_PollPDU_tags_1) + /sizeof(asn_DEF_PollPDU_tags_1[0]), /* 1 */ + { &asn_OER_type_PollPDU_constr_1, &asn_PER_type_PollPDU_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_PollPDU_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PollPDU.h b/src/codec_utils/RRC/PollPDU.h new file mode 100644 index 000000000..237b58bef --- /dev/null +++ b/src/codec_utils/RRC/PollPDU.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PollPDU_H_ +#define _PollPDU_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PollPDU { + PollPDU_p4 = 0, + PollPDU_p8 = 1, + PollPDU_p16 = 2, + PollPDU_p32 = 3, + PollPDU_p64 = 4, + PollPDU_p128 = 5, + PollPDU_p256 = 6, + PollPDU_p512 = 7, + PollPDU_p1024 = 8, + PollPDU_p2048 = 9, + PollPDU_p4096 = 10, + PollPDU_p6144 = 11, + PollPDU_p8192 = 12, + PollPDU_p12288 = 13, + PollPDU_p16384 = 14, + PollPDU_p20480 = 15, + PollPDU_p24576 = 16, + PollPDU_p28672 = 17, + PollPDU_p32768 = 18, + PollPDU_p40960 = 19, + PollPDU_p49152 = 20, + PollPDU_p57344 = 21, + PollPDU_p65536 = 22, + PollPDU_infinity = 23, + PollPDU_spare8 = 24, + PollPDU_spare7 = 25, + PollPDU_spare6 = 26, + PollPDU_spare5 = 27, + PollPDU_spare4 = 28, + PollPDU_spare3 = 29, + PollPDU_spare2 = 30, + PollPDU_spare1 = 31 +} e_PollPDU; + +/* PollPDU */ +typedef long PollPDU_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PollPDU_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PollPDU; +extern const asn_INTEGER_specifics_t asn_SPC_PollPDU_specs_1; +asn_struct_free_f PollPDU_free; +asn_struct_print_f PollPDU_print; +asn_constr_check_f PollPDU_constraint; +ber_type_decoder_f PollPDU_decode_ber; +der_type_encoder_f PollPDU_encode_der; +xer_type_decoder_f PollPDU_decode_xer; +xer_type_encoder_f PollPDU_encode_xer; +oer_type_decoder_f PollPDU_decode_oer; +oer_type_encoder_f PollPDU_encode_oer; +per_type_decoder_f PollPDU_decode_uper; +per_type_encoder_f PollPDU_encode_uper; +per_type_decoder_f PollPDU_decode_aper; +per_type_encoder_f PollPDU_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PollPDU_H_ */ +#include diff --git a/src/codec_utils/RRC/PortIndex2.c b/src/codec_utils/RRC/PortIndex2.c new file mode 100644 index 000000000..c5dd7afd6 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex2.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PortIndex2.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PortIndex2_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PortIndex2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PortIndex2 = { + "PortIndex2", + "PortIndex2", + &asn_OP_NativeInteger, + asn_DEF_PortIndex2_tags_1, + sizeof(asn_DEF_PortIndex2_tags_1) + /sizeof(asn_DEF_PortIndex2_tags_1[0]), /* 1 */ + asn_DEF_PortIndex2_tags_1, /* Same as above */ + sizeof(asn_DEF_PortIndex2_tags_1) + /sizeof(asn_DEF_PortIndex2_tags_1[0]), /* 1 */ + { &asn_OER_type_PortIndex2_constr_1, &asn_PER_type_PortIndex2_constr_1, PortIndex2_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PortIndex2.h b/src/codec_utils/RRC/PortIndex2.h new file mode 100644 index 000000000..cbfd88589 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex2.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PortIndex2_H_ +#define _PortIndex2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PortIndex2 */ +typedef long PortIndex2_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PortIndex2_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PortIndex2; +asn_struct_free_f PortIndex2_free; +asn_struct_print_f PortIndex2_print; +asn_constr_check_f PortIndex2_constraint; +ber_type_decoder_f PortIndex2_decode_ber; +der_type_encoder_f PortIndex2_encode_der; +xer_type_decoder_f PortIndex2_decode_xer; +xer_type_encoder_f PortIndex2_encode_xer; +oer_type_decoder_f PortIndex2_decode_oer; +oer_type_encoder_f PortIndex2_encode_oer; +per_type_decoder_f PortIndex2_decode_uper; +per_type_encoder_f PortIndex2_encode_uper; +per_type_decoder_f PortIndex2_decode_aper; +per_type_encoder_f PortIndex2_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PortIndex2_H_ */ +#include diff --git a/src/codec_utils/RRC/PortIndex4.c b/src/codec_utils/RRC/PortIndex4.c new file mode 100644 index 000000000..310a0da94 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex4.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PortIndex4.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PortIndex4_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PortIndex4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PortIndex4 = { + "PortIndex4", + "PortIndex4", + &asn_OP_NativeInteger, + asn_DEF_PortIndex4_tags_1, + sizeof(asn_DEF_PortIndex4_tags_1) + /sizeof(asn_DEF_PortIndex4_tags_1[0]), /* 1 */ + asn_DEF_PortIndex4_tags_1, /* Same as above */ + sizeof(asn_DEF_PortIndex4_tags_1) + /sizeof(asn_DEF_PortIndex4_tags_1[0]), /* 1 */ + { &asn_OER_type_PortIndex4_constr_1, &asn_PER_type_PortIndex4_constr_1, PortIndex4_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PortIndex4.h b/src/codec_utils/RRC/PortIndex4.h new file mode 100644 index 000000000..bd92b5212 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex4.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PortIndex4_H_ +#define _PortIndex4_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PortIndex4 */ +typedef long PortIndex4_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PortIndex4_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PortIndex4; +asn_struct_free_f PortIndex4_free; +asn_struct_print_f PortIndex4_print; +asn_constr_check_f PortIndex4_constraint; +ber_type_decoder_f PortIndex4_decode_ber; +der_type_encoder_f PortIndex4_encode_der; +xer_type_decoder_f PortIndex4_decode_xer; +xer_type_encoder_f PortIndex4_encode_xer; +oer_type_decoder_f PortIndex4_decode_oer; +oer_type_encoder_f PortIndex4_encode_oer; +per_type_decoder_f PortIndex4_decode_uper; +per_type_encoder_f PortIndex4_encode_uper; +per_type_decoder_f PortIndex4_decode_aper; +per_type_encoder_f PortIndex4_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PortIndex4_H_ */ +#include diff --git a/src/codec_utils/RRC/PortIndex8.c b/src/codec_utils/RRC/PortIndex8.c new file mode 100644 index 000000000..c35efdfd6 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex8.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PortIndex8.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_PortIndex8_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_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_PortIndex8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_PortIndex8 = { + "PortIndex8", + "PortIndex8", + &asn_OP_NativeInteger, + asn_DEF_PortIndex8_tags_1, + sizeof(asn_DEF_PortIndex8_tags_1) + /sizeof(asn_DEF_PortIndex8_tags_1[0]), /* 1 */ + asn_DEF_PortIndex8_tags_1, /* Same as above */ + sizeof(asn_DEF_PortIndex8_tags_1) + /sizeof(asn_DEF_PortIndex8_tags_1[0]), /* 1 */ + { &asn_OER_type_PortIndex8_constr_1, &asn_PER_type_PortIndex8_constr_1, PortIndex8_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/PortIndex8.h b/src/codec_utils/RRC/PortIndex8.h new file mode 100644 index 000000000..243da0425 --- /dev/null +++ b/src/codec_utils/RRC/PortIndex8.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PortIndex8_H_ +#define _PortIndex8_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PortIndex8 */ +typedef long PortIndex8_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PortIndex8_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PortIndex8; +asn_struct_free_f PortIndex8_free; +asn_struct_print_f PortIndex8_print; +asn_constr_check_f PortIndex8_constraint; +ber_type_decoder_f PortIndex8_decode_ber; +der_type_encoder_f PortIndex8_encode_der; +xer_type_decoder_f PortIndex8_decode_xer; +xer_type_encoder_f PortIndex8_encode_xer; +oer_type_decoder_f PortIndex8_decode_oer; +oer_type_encoder_f PortIndex8_encode_oer; +per_type_decoder_f PortIndex8_decode_uper; +per_type_encoder_f PortIndex8_encode_uper; +per_type_decoder_f PortIndex8_decode_aper; +per_type_encoder_f PortIndex8_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PortIndex8_H_ */ +#include diff --git a/src/codec_utils/RRC/PortIndexFor8Ranks.c b/src/codec_utils/RRC/PortIndexFor8Ranks.c new file mode 100644 index 000000000..5b87a0307 --- /dev/null +++ b/src/codec_utils/RRC/PortIndexFor8Ranks.c @@ -0,0 +1,1199 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "PortIndexFor8Ranks.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_rank2_8_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank3_8_constr_6 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank4_8_constr_8 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank5_8_constr_10 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank6_8_constr_12 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank7_8_constr_14 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank8_8_constr_16 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_rank2_8_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank3_8_constr_6 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank4_8_constr_8 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank5_8_constr_10 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank6_8_constr_12 CC_NOTUSED = { + { 0, 0 }, + 6 /* (SIZE(6..6)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank7_8_constr_14 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank8_8_constr_16 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_rank2_4_constr_20 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank3_4_constr_22 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rank4_4_constr_24 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_rank2_4_constr_20 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank3_4_constr_22 CC_NOTUSED = { + { 0, 0 }, + 3 /* (SIZE(3..3)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_rank4_4_constr_24 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_rank2_2_constr_28 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_rank2_2_constr_28 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_PortIndexFor8Ranks_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_rank2_8_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank2_8_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank2_8_specs_4 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank2_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank2_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank2_8_4 = { + "rank2-8", + "rank2-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank2_8_tags_4, + sizeof(asn_DEF_rank2_8_tags_4) + /sizeof(asn_DEF_rank2_8_tags_4[0]) - 1, /* 1 */ + asn_DEF_rank2_8_tags_4, /* Same as above */ + sizeof(asn_DEF_rank2_8_tags_4) + /sizeof(asn_DEF_rank2_8_tags_4[0]), /* 2 */ + { &asn_OER_type_rank2_8_constr_4, &asn_PER_type_rank2_8_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_rank2_8_4, + 1, /* Single element */ + &asn_SPC_rank2_8_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank3_8_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank3_8_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank3_8_specs_6 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank3_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank3_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank3_8_6 = { + "rank3-8", + "rank3-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank3_8_tags_6, + sizeof(asn_DEF_rank3_8_tags_6) + /sizeof(asn_DEF_rank3_8_tags_6[0]) - 1, /* 1 */ + asn_DEF_rank3_8_tags_6, /* Same as above */ + sizeof(asn_DEF_rank3_8_tags_6) + /sizeof(asn_DEF_rank3_8_tags_6[0]), /* 2 */ + { &asn_OER_type_rank3_8_constr_6, &asn_PER_type_rank3_8_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_rank3_8_6, + 1, /* Single element */ + &asn_SPC_rank3_8_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank4_8_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank4_8_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank4_8_specs_8 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank4_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank4_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank4_8_8 = { + "rank4-8", + "rank4-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank4_8_tags_8, + sizeof(asn_DEF_rank4_8_tags_8) + /sizeof(asn_DEF_rank4_8_tags_8[0]) - 1, /* 1 */ + asn_DEF_rank4_8_tags_8, /* Same as above */ + sizeof(asn_DEF_rank4_8_tags_8) + /sizeof(asn_DEF_rank4_8_tags_8[0]), /* 2 */ + { &asn_OER_type_rank4_8_constr_8, &asn_PER_type_rank4_8_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_rank4_8_8, + 1, /* Single element */ + &asn_SPC_rank4_8_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank5_8_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank5_8_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank5_8_specs_10 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank5_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank5_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank5_8_10 = { + "rank5-8", + "rank5-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank5_8_tags_10, + sizeof(asn_DEF_rank5_8_tags_10) + /sizeof(asn_DEF_rank5_8_tags_10[0]) - 1, /* 1 */ + asn_DEF_rank5_8_tags_10, /* Same as above */ + sizeof(asn_DEF_rank5_8_tags_10) + /sizeof(asn_DEF_rank5_8_tags_10[0]), /* 2 */ + { &asn_OER_type_rank5_8_constr_10, &asn_PER_type_rank5_8_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_rank5_8_10, + 1, /* Single element */ + &asn_SPC_rank5_8_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank6_8_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank6_8_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank6_8_specs_12 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank6_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank6_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank6_8_12 = { + "rank6-8", + "rank6-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank6_8_tags_12, + sizeof(asn_DEF_rank6_8_tags_12) + /sizeof(asn_DEF_rank6_8_tags_12[0]) - 1, /* 1 */ + asn_DEF_rank6_8_tags_12, /* Same as above */ + sizeof(asn_DEF_rank6_8_tags_12) + /sizeof(asn_DEF_rank6_8_tags_12[0]), /* 2 */ + { &asn_OER_type_rank6_8_constr_12, &asn_PER_type_rank6_8_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_rank6_8_12, + 1, /* Single element */ + &asn_SPC_rank6_8_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank7_8_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank7_8_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank7_8_specs_14 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank7_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank7_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank7_8_14 = { + "rank7-8", + "rank7-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank7_8_tags_14, + sizeof(asn_DEF_rank7_8_tags_14) + /sizeof(asn_DEF_rank7_8_tags_14[0]) - 1, /* 1 */ + asn_DEF_rank7_8_tags_14, /* Same as above */ + sizeof(asn_DEF_rank7_8_tags_14) + /sizeof(asn_DEF_rank7_8_tags_14[0]), /* 2 */ + { &asn_OER_type_rank7_8_constr_14, &asn_PER_type_rank7_8_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_rank7_8_14, + 1, /* Single element */ + &asn_SPC_rank7_8_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank8_8_16[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank8_8_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank8_8_specs_16 = { + sizeof(struct PortIndexFor8Ranks__portIndex8__rank8_8), + offsetof(struct PortIndexFor8Ranks__portIndex8__rank8_8, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank8_8_16 = { + "rank8-8", + "rank8-8", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank8_8_tags_16, + sizeof(asn_DEF_rank8_8_tags_16) + /sizeof(asn_DEF_rank8_8_tags_16[0]) - 1, /* 1 */ + asn_DEF_rank8_8_tags_16, /* Same as above */ + sizeof(asn_DEF_rank8_8_tags_16) + /sizeof(asn_DEF_rank8_8_tags_16[0]), /* 2 */ + { &asn_OER_type_rank8_8_constr_16, &asn_PER_type_rank8_8_constr_16, SEQUENCE_OF_constraint }, + asn_MBR_rank8_8_16, + 1, /* Single element */ + &asn_SPC_rank8_8_specs_16 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_portIndex8_2[] = { + { ATF_POINTER, 8, offsetof(struct PortIndexFor8Ranks__portIndex8, rank1_8), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PortIndex8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-8" + }, + { ATF_POINTER, 7, offsetof(struct PortIndexFor8Ranks__portIndex8, rank2_8), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rank2_8_4, + 0, + { &asn_OER_memb_rank2_8_constr_4, &asn_PER_memb_rank2_8_constr_4, memb_rank2_8_constraint_2 }, + 0, 0, /* No default value */ + "rank2-8" + }, + { ATF_POINTER, 6, offsetof(struct PortIndexFor8Ranks__portIndex8, rank3_8), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_rank3_8_6, + 0, + { &asn_OER_memb_rank3_8_constr_6, &asn_PER_memb_rank3_8_constr_6, memb_rank3_8_constraint_2 }, + 0, 0, /* No default value */ + "rank3-8" + }, + { ATF_POINTER, 5, offsetof(struct PortIndexFor8Ranks__portIndex8, rank4_8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_rank4_8_8, + 0, + { &asn_OER_memb_rank4_8_constr_8, &asn_PER_memb_rank4_8_constr_8, memb_rank4_8_constraint_2 }, + 0, 0, /* No default value */ + "rank4-8" + }, + { ATF_POINTER, 4, offsetof(struct PortIndexFor8Ranks__portIndex8, rank5_8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_rank5_8_10, + 0, + { &asn_OER_memb_rank5_8_constr_10, &asn_PER_memb_rank5_8_constr_10, memb_rank5_8_constraint_2 }, + 0, 0, /* No default value */ + "rank5-8" + }, + { ATF_POINTER, 3, offsetof(struct PortIndexFor8Ranks__portIndex8, rank6_8), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_rank6_8_12, + 0, + { &asn_OER_memb_rank6_8_constr_12, &asn_PER_memb_rank6_8_constr_12, memb_rank6_8_constraint_2 }, + 0, 0, /* No default value */ + "rank6-8" + }, + { ATF_POINTER, 2, offsetof(struct PortIndexFor8Ranks__portIndex8, rank7_8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_rank7_8_14, + 0, + { &asn_OER_memb_rank7_8_constr_14, &asn_PER_memb_rank7_8_constr_14, memb_rank7_8_constraint_2 }, + 0, 0, /* No default value */ + "rank7-8" + }, + { ATF_POINTER, 1, offsetof(struct PortIndexFor8Ranks__portIndex8, rank8_8), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_rank8_8_16, + 0, + { &asn_OER_memb_rank8_8_constr_16, &asn_PER_memb_rank8_8_constr_16, memb_rank8_8_constraint_2 }, + 0, 0, /* No default value */ + "rank8-8" + }, +}; +static const int asn_MAP_portIndex8_oms_2[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_portIndex8_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_portIndex8_specs_2 = { + sizeof(struct PortIndexFor8Ranks__portIndex8), + offsetof(struct PortIndexFor8Ranks__portIndex8, _asn_ctx), + asn_MAP_portIndex8_tag2el_2, + 8, /* Count of tags in the map */ + asn_MAP_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_portIndex8_2 = { + "portIndex8", + "portIndex8", + &asn_OP_SEQUENCE, + asn_DEF_portIndex8_tags_2, + sizeof(asn_DEF_portIndex8_tags_2) + /sizeof(asn_DEF_portIndex8_tags_2[0]) - 1, /* 1 */ + asn_DEF_portIndex8_tags_2, /* Same as above */ + sizeof(asn_DEF_portIndex8_tags_2) + /sizeof(asn_DEF_portIndex8_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_portIndex8_2, + 8, /* Elements count */ + &asn_SPC_portIndex8_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank2_4_20[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank2_4_tags_20[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank2_4_specs_20 = { + sizeof(struct PortIndexFor8Ranks__portIndex4__rank2_4), + offsetof(struct PortIndexFor8Ranks__portIndex4__rank2_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank2_4_20 = { + "rank2-4", + "rank2-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank2_4_tags_20, + sizeof(asn_DEF_rank2_4_tags_20) + /sizeof(asn_DEF_rank2_4_tags_20[0]) - 1, /* 1 */ + asn_DEF_rank2_4_tags_20, /* Same as above */ + sizeof(asn_DEF_rank2_4_tags_20) + /sizeof(asn_DEF_rank2_4_tags_20[0]), /* 2 */ + { &asn_OER_type_rank2_4_constr_20, &asn_PER_type_rank2_4_constr_20, SEQUENCE_OF_constraint }, + asn_MBR_rank2_4_20, + 1, /* Single element */ + &asn_SPC_rank2_4_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank3_4_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank3_4_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank3_4_specs_22 = { + sizeof(struct PortIndexFor8Ranks__portIndex4__rank3_4), + offsetof(struct PortIndexFor8Ranks__portIndex4__rank3_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank3_4_22 = { + "rank3-4", + "rank3-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank3_4_tags_22, + sizeof(asn_DEF_rank3_4_tags_22) + /sizeof(asn_DEF_rank3_4_tags_22[0]) - 1, /* 1 */ + asn_DEF_rank3_4_tags_22, /* Same as above */ + sizeof(asn_DEF_rank3_4_tags_22) + /sizeof(asn_DEF_rank3_4_tags_22[0]), /* 2 */ + { &asn_OER_type_rank3_4_constr_22, &asn_PER_type_rank3_4_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_rank3_4_22, + 1, /* Single element */ + &asn_SPC_rank3_4_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank4_4_24[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank4_4_tags_24[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank4_4_specs_24 = { + sizeof(struct PortIndexFor8Ranks__portIndex4__rank4_4), + offsetof(struct PortIndexFor8Ranks__portIndex4__rank4_4, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank4_4_24 = { + "rank4-4", + "rank4-4", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank4_4_tags_24, + sizeof(asn_DEF_rank4_4_tags_24) + /sizeof(asn_DEF_rank4_4_tags_24[0]) - 1, /* 1 */ + asn_DEF_rank4_4_tags_24, /* Same as above */ + sizeof(asn_DEF_rank4_4_tags_24) + /sizeof(asn_DEF_rank4_4_tags_24[0]), /* 2 */ + { &asn_OER_type_rank4_4_constr_24, &asn_PER_type_rank4_4_constr_24, SEQUENCE_OF_constraint }, + asn_MBR_rank4_4_24, + 1, /* Single element */ + &asn_SPC_rank4_4_specs_24 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_portIndex4_18[] = { + { ATF_POINTER, 4, offsetof(struct PortIndexFor8Ranks__portIndex4, rank1_4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PortIndex4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-4" + }, + { ATF_POINTER, 3, offsetof(struct PortIndexFor8Ranks__portIndex4, rank2_4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rank2_4_20, + 0, + { &asn_OER_memb_rank2_4_constr_20, &asn_PER_memb_rank2_4_constr_20, memb_rank2_4_constraint_18 }, + 0, 0, /* No default value */ + "rank2-4" + }, + { ATF_POINTER, 2, offsetof(struct PortIndexFor8Ranks__portIndex4, rank3_4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_rank3_4_22, + 0, + { &asn_OER_memb_rank3_4_constr_22, &asn_PER_memb_rank3_4_constr_22, memb_rank3_4_constraint_18 }, + 0, 0, /* No default value */ + "rank3-4" + }, + { ATF_POINTER, 1, offsetof(struct PortIndexFor8Ranks__portIndex4, rank4_4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_rank4_4_24, + 0, + { &asn_OER_memb_rank4_4_constr_24, &asn_PER_memb_rank4_4_constr_24, memb_rank4_4_constraint_18 }, + 0, 0, /* No default value */ + "rank4-4" + }, +}; +static const int asn_MAP_portIndex4_oms_18[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_portIndex4_tags_18[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_portIndex4_specs_18 = { + sizeof(struct PortIndexFor8Ranks__portIndex4), + offsetof(struct PortIndexFor8Ranks__portIndex4, _asn_ctx), + asn_MAP_portIndex4_tag2el_18, + 4, /* Count of tags in the map */ + asn_MAP_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_portIndex4_18 = { + "portIndex4", + "portIndex4", + &asn_OP_SEQUENCE, + asn_DEF_portIndex4_tags_18, + sizeof(asn_DEF_portIndex4_tags_18) + /sizeof(asn_DEF_portIndex4_tags_18[0]) - 1, /* 1 */ + asn_DEF_portIndex4_tags_18, /* Same as above */ + sizeof(asn_DEF_portIndex4_tags_18) + /sizeof(asn_DEF_portIndex4_tags_18[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_portIndex4_18, + 4, /* Elements count */ + &asn_SPC_portIndex4_specs_18 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rank2_2_28[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PortIndex2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rank2_2_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rank2_2_specs_28 = { + sizeof(struct PortIndexFor8Ranks__portIndex2__rank2_2), + offsetof(struct PortIndexFor8Ranks__portIndex2__rank2_2, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rank2_2_28 = { + "rank2-2", + "rank2-2", + &asn_OP_SEQUENCE_OF, + asn_DEF_rank2_2_tags_28, + sizeof(asn_DEF_rank2_2_tags_28) + /sizeof(asn_DEF_rank2_2_tags_28[0]) - 1, /* 1 */ + asn_DEF_rank2_2_tags_28, /* Same as above */ + sizeof(asn_DEF_rank2_2_tags_28) + /sizeof(asn_DEF_rank2_2_tags_28[0]), /* 2 */ + { &asn_OER_type_rank2_2_constr_28, &asn_PER_type_rank2_2_constr_28, SEQUENCE_OF_constraint }, + asn_MBR_rank2_2_28, + 1, /* Single element */ + &asn_SPC_rank2_2_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_portIndex2_26[] = { + { ATF_POINTER, 2, offsetof(struct PortIndexFor8Ranks__portIndex2, rank1_2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PortIndex2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rank1-2" + }, + { ATF_POINTER, 1, offsetof(struct PortIndexFor8Ranks__portIndex2, rank2_2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rank2_2_28, + 0, + { &asn_OER_memb_rank2_2_constr_28, &asn_PER_memb_rank2_2_constr_28, memb_rank2_2_constraint_26 }, + 0, 0, /* No default value */ + "rank2-2" + }, +}; +static const int asn_MAP_portIndex2_oms_26[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_portIndex2_tags_26[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_portIndex2_specs_26 = { + sizeof(struct PortIndexFor8Ranks__portIndex2), + offsetof(struct PortIndexFor8Ranks__portIndex2, _asn_ctx), + asn_MAP_portIndex2_tag2el_26, + 2, /* Count of tags in the map */ + asn_MAP_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_portIndex2_26 = { + "portIndex2", + "portIndex2", + &asn_OP_SEQUENCE, + asn_DEF_portIndex2_tags_26, + sizeof(asn_DEF_portIndex2_tags_26) + /sizeof(asn_DEF_portIndex2_tags_26[0]) - 1, /* 1 */ + asn_DEF_portIndex2_tags_26, /* Same as above */ + sizeof(asn_DEF_portIndex2_tags_26) + /sizeof(asn_DEF_portIndex2_tags_26[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_portIndex2_26, + 2, /* Elements count */ + &asn_SPC_portIndex2_specs_26 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_PortIndexFor8Ranks_1[] = { + { ATF_POINTER, 0, offsetof(struct PortIndexFor8Ranks, choice.portIndex8), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_portIndex8_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex8" + }, + { ATF_POINTER, 0, offsetof(struct PortIndexFor8Ranks, choice.portIndex4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_portIndex4_18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex4" + }, + { ATF_POINTER, 0, offsetof(struct PortIndexFor8Ranks, choice.portIndex2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_portIndex2_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "portIndex2" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_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_PortIndexFor8Ranks_specs_1 = { + sizeof(struct PortIndexFor8Ranks), + offsetof(struct PortIndexFor8Ranks, _asn_ctx), + offsetof(struct PortIndexFor8Ranks, present), + sizeof(((struct PortIndexFor8Ranks *)0)->present), + asn_MAP_PortIndexFor8Ranks_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_PortIndexFor8Ranks = { + "PortIndexFor8Ranks", + "PortIndexFor8Ranks", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_PortIndexFor8Ranks_constr_1, &asn_PER_type_PortIndexFor8Ranks_constr_1, CHOICE_constraint }, + asn_MBR_PortIndexFor8Ranks_1, + 4, /* Elements count */ + &asn_SPC_PortIndexFor8Ranks_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/PortIndexFor8Ranks.h b/src/codec_utils/RRC/PortIndexFor8Ranks.h new file mode 100644 index 000000000..719fb03c0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PortIndexFor8Ranks_H_ +#define _PortIndexFor8Ranks_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PortIndex8.h" +#include +#include +#include +#include "PortIndex4.h" +#include "PortIndex2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum PortIndexFor8Ranks_PR { + PortIndexFor8Ranks_PR_NOTHING, /* No components present */ + PortIndexFor8Ranks_PR_portIndex8, + PortIndexFor8Ranks_PR_portIndex4, + PortIndexFor8Ranks_PR_portIndex2, + PortIndexFor8Ranks_PR_portIndex1 +} PortIndexFor8Ranks_PR; + +/* PortIndexFor8Ranks */ +typedef struct PortIndexFor8Ranks { + PortIndexFor8Ranks_PR present; + union PortIndexFor8Ranks_u { + struct PortIndexFor8Ranks__portIndex8 { + PortIndex8_t *rank1_8; /* OPTIONAL */ + struct PortIndexFor8Ranks__portIndex8__rank2_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank2_8; + struct PortIndexFor8Ranks__portIndex8__rank3_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank3_8; + struct PortIndexFor8Ranks__portIndex8__rank4_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank4_8; + struct PortIndexFor8Ranks__portIndex8__rank5_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank5_8; + struct PortIndexFor8Ranks__portIndex8__rank6_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank6_8; + struct PortIndexFor8Ranks__portIndex8__rank7_8 { + A_SEQUENCE_OF(PortIndex8_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank7_8; + struct PortIndexFor8Ranks__portIndex8__rank8_8 { + A_SEQUENCE_OF(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 PortIndexFor8Ranks__portIndex4 { + PortIndex4_t *rank1_4; /* OPTIONAL */ + struct PortIndexFor8Ranks__portIndex4__rank2_4 { + A_SEQUENCE_OF(PortIndex4_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank2_4; + struct PortIndexFor8Ranks__portIndex4__rank3_4 { + A_SEQUENCE_OF(PortIndex4_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rank3_4; + struct PortIndexFor8Ranks__portIndex4__rank4_4 { + A_SEQUENCE_OF(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 PortIndexFor8Ranks__portIndex2 { + PortIndex2_t *rank1_2; /* OPTIONAL */ + struct PortIndexFor8Ranks__portIndex2__rank2_2 { + A_SEQUENCE_OF(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; +} PortIndexFor8Ranks_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_PortIndexFor8Ranks; +extern asn_CHOICE_specifics_t asn_SPC_PortIndexFor8Ranks_specs_1; +extern asn_TYPE_member_t asn_MBR_PortIndexFor8Ranks_1[4]; +extern asn_per_constraints_t asn_PER_type_PortIndexFor8Ranks_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _PortIndexFor8Ranks_H_ */ +#include diff --git a/src/codec_utils/RRC/Q-OffsetRange.c b/src/codec_utils/RRC/Q-OffsetRange.c new file mode 100644 index 000000000..137d365f1 --- /dev/null +++ b/src/codec_utils/RRC/Q-OffsetRange.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Q-OffsetRange.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_Q_OffsetRange_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_Q_OffsetRange_specs_1 = { + asn_MAP_Q_OffsetRange_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_Q_OffsetRange_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Q_OffsetRange = { + "Q-OffsetRange", + "Q-OffsetRange", + &asn_OP_NativeEnumerated, + asn_DEF_Q_OffsetRange_tags_1, + sizeof(asn_DEF_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_Q_OffsetRange_tags_1[0]), /* 1 */ + asn_DEF_Q_OffsetRange_tags_1, /* Same as above */ + sizeof(asn_DEF_Q_OffsetRange_tags_1) + /sizeof(asn_DEF_Q_OffsetRange_tags_1[0]), /* 1 */ + { &asn_OER_type_Q_OffsetRange_constr_1, &asn_PER_type_Q_OffsetRange_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Q-OffsetRange.h b/src/codec_utils/RRC/Q-OffsetRange.h new file mode 100644 index 000000000..4f0c65561 --- /dev/null +++ b/src/codec_utils/RRC/Q-OffsetRange.h @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Q_OffsetRange_H_ +#define _Q_OffsetRange_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum Q_OffsetRange { + Q_OffsetRange_dB_24 = 0, + Q_OffsetRange_dB_22 = 1, + Q_OffsetRange_dB_20 = 2, + Q_OffsetRange_dB_18 = 3, + Q_OffsetRange_dB_16 = 4, + Q_OffsetRange_dB_14 = 5, + Q_OffsetRange_dB_12 = 6, + Q_OffsetRange_dB_10 = 7, + Q_OffsetRange_dB_8 = 8, + Q_OffsetRange_dB_6 = 9, + Q_OffsetRange_dB_5 = 10, + Q_OffsetRange_dB_4 = 11, + Q_OffsetRange_dB_3 = 12, + Q_OffsetRange_dB_2 = 13, + Q_OffsetRange_dB_1 = 14, + Q_OffsetRange_dB0 = 15, + Q_OffsetRange_dB1 = 16, + Q_OffsetRange_dB2 = 17, + Q_OffsetRange_dB3 = 18, + Q_OffsetRange_dB4 = 19, + Q_OffsetRange_dB5 = 20, + Q_OffsetRange_dB6 = 21, + Q_OffsetRange_dB8 = 22, + Q_OffsetRange_dB10 = 23, + Q_OffsetRange_dB12 = 24, + Q_OffsetRange_dB14 = 25, + Q_OffsetRange_dB16 = 26, + Q_OffsetRange_dB18 = 27, + Q_OffsetRange_dB20 = 28, + Q_OffsetRange_dB22 = 29, + Q_OffsetRange_dB24 = 30 +} e_Q_OffsetRange; + +/* Q-OffsetRange */ +typedef long Q_OffsetRange_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Q_OffsetRange_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Q_OffsetRange; +extern const asn_INTEGER_specifics_t asn_SPC_Q_OffsetRange_specs_1; +asn_struct_free_f Q_OffsetRange_free; +asn_struct_print_f Q_OffsetRange_print; +asn_constr_check_f Q_OffsetRange_constraint; +ber_type_decoder_f Q_OffsetRange_decode_ber; +der_type_encoder_f Q_OffsetRange_encode_der; +xer_type_decoder_f Q_OffsetRange_decode_xer; +xer_type_encoder_f Q_OffsetRange_encode_xer; +oer_type_decoder_f Q_OffsetRange_decode_oer; +oer_type_encoder_f Q_OffsetRange_encode_oer; +per_type_decoder_f Q_OffsetRange_decode_uper; +per_type_encoder_f Q_OffsetRange_encode_uper; +per_type_decoder_f Q_OffsetRange_decode_aper; +per_type_encoder_f Q_OffsetRange_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Q_OffsetRange_H_ */ +#include diff --git a/src/codec_utils/RRC/Q-OffsetRangeList.c b/src/codec_utils/RRC/Q-OffsetRangeList.c new file mode 100644 index 000000000..f2fe9588e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Q-OffsetRangeList.h" + +static int asn_DFL_2_cmp_15(const void *sptr) { + const 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) { + 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 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) { + 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 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) { + 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 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) { + 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 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) { + 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 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) { + 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_Q_OffsetRangeList_1[] = { + { ATF_POINTER, 6, offsetof(struct Q_OffsetRangeList, rsrpOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 Q_OffsetRangeList, rsrqOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 Q_OffsetRangeList, sinrOffsetSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 Q_OffsetRangeList, rsrpOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 Q_OffsetRangeList, rsrqOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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 Q_OffsetRangeList, sinrOffsetCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_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_Q_OffsetRangeList_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_Q_OffsetRangeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Q_OffsetRangeList_specs_1 = { + sizeof(struct Q_OffsetRangeList), + offsetof(struct Q_OffsetRangeList, _asn_ctx), + asn_MAP_Q_OffsetRangeList_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_Q_OffsetRangeList_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_Q_OffsetRangeList = { + "Q-OffsetRangeList", + "Q-OffsetRangeList", + &asn_OP_SEQUENCE, + asn_DEF_Q_OffsetRangeList_tags_1, + sizeof(asn_DEF_Q_OffsetRangeList_tags_1) + /sizeof(asn_DEF_Q_OffsetRangeList_tags_1[0]), /* 1 */ + asn_DEF_Q_OffsetRangeList_tags_1, /* Same as above */ + sizeof(asn_DEF_Q_OffsetRangeList_tags_1) + /sizeof(asn_DEF_Q_OffsetRangeList_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_Q_OffsetRangeList_1, + 6, /* Elements count */ + &asn_SPC_Q_OffsetRangeList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/Q-OffsetRangeList.h b/src/codec_utils/RRC/Q-OffsetRangeList.h new file mode 100644 index 000000000..cb3d5e757 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Q_OffsetRangeList_H_ +#define _Q_OffsetRangeList_H_ + + +#include + +/* Including external dependencies */ +#include "Q-OffsetRange.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Q-OffsetRangeList */ +typedef struct Q_OffsetRangeList { + Q_OffsetRange_t *rsrpOffsetSSB; /* DEFAULT 15 */ + Q_OffsetRange_t *rsrqOffsetSSB; /* DEFAULT 15 */ + Q_OffsetRange_t *sinrOffsetSSB; /* DEFAULT 15 */ + Q_OffsetRange_t *rsrpOffsetCSI_RS; /* DEFAULT 15 */ + Q_OffsetRange_t *rsrqOffsetCSI_RS; /* DEFAULT 15 */ + Q_OffsetRange_t *sinrOffsetCSI_RS; /* DEFAULT 15 */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} Q_OffsetRangeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_Q_OffsetRangeList; +extern asn_SEQUENCE_specifics_t asn_SPC_Q_OffsetRangeList_specs_1; +extern asn_TYPE_member_t asn_MBR_Q_OffsetRangeList_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _Q_OffsetRangeList_H_ */ +#include diff --git a/src/codec_utils/RRC/Q-QualMin.c b/src/codec_utils/RRC/Q-QualMin.c new file mode 100644 index 000000000..87da260da --- /dev/null +++ b/src/codec_utils/RRC/Q-QualMin.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Q-QualMin.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_Q_QualMin_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-43..-12) */, + -1}; +asn_per_constraints_t asn_PER_type_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_Q_QualMin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Q_QualMin = { + "Q-QualMin", + "Q-QualMin", + &asn_OP_NativeInteger, + asn_DEF_Q_QualMin_tags_1, + sizeof(asn_DEF_Q_QualMin_tags_1) + /sizeof(asn_DEF_Q_QualMin_tags_1[0]), /* 1 */ + asn_DEF_Q_QualMin_tags_1, /* Same as above */ + sizeof(asn_DEF_Q_QualMin_tags_1) + /sizeof(asn_DEF_Q_QualMin_tags_1[0]), /* 1 */ + { &asn_OER_type_Q_QualMin_constr_1, &asn_PER_type_Q_QualMin_constr_1, Q_QualMin_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/Q-QualMin.h b/src/codec_utils/RRC/Q-QualMin.h new file mode 100644 index 000000000..0cbdd275b --- /dev/null +++ b/src/codec_utils/RRC/Q-QualMin.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Q_QualMin_H_ +#define _Q_QualMin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Q-QualMin */ +typedef long Q_QualMin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Q_QualMin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Q_QualMin; +asn_struct_free_f Q_QualMin_free; +asn_struct_print_f Q_QualMin_print; +asn_constr_check_f Q_QualMin_constraint; +ber_type_decoder_f Q_QualMin_decode_ber; +der_type_encoder_f Q_QualMin_encode_der; +xer_type_decoder_f Q_QualMin_decode_xer; +xer_type_encoder_f Q_QualMin_encode_xer; +oer_type_decoder_f Q_QualMin_decode_oer; +oer_type_encoder_f Q_QualMin_encode_oer; +per_type_decoder_f Q_QualMin_decode_uper; +per_type_encoder_f Q_QualMin_encode_uper; +per_type_decoder_f Q_QualMin_decode_aper; +per_type_encoder_f Q_QualMin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Q_QualMin_H_ */ +#include diff --git a/src/codec_utils/RRC/Q-RxLevMin.c b/src/codec_utils/RRC/Q-RxLevMin.c new file mode 100644 index 000000000..90e9a53e3 --- /dev/null +++ b/src/codec_utils/RRC/Q-RxLevMin.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "Q-RxLevMin.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_Q_RxLevMin_constr_1 CC_NOTUSED = { + { 1, 0 } /* (-70..-22) */, + -1}; +asn_per_constraints_t asn_PER_type_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_Q_RxLevMin_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_Q_RxLevMin = { + "Q-RxLevMin", + "Q-RxLevMin", + &asn_OP_NativeInteger, + asn_DEF_Q_RxLevMin_tags_1, + sizeof(asn_DEF_Q_RxLevMin_tags_1) + /sizeof(asn_DEF_Q_RxLevMin_tags_1[0]), /* 1 */ + asn_DEF_Q_RxLevMin_tags_1, /* Same as above */ + sizeof(asn_DEF_Q_RxLevMin_tags_1) + /sizeof(asn_DEF_Q_RxLevMin_tags_1[0]), /* 1 */ + { &asn_OER_type_Q_RxLevMin_constr_1, &asn_PER_type_Q_RxLevMin_constr_1, Q_RxLevMin_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/Q-RxLevMin.h b/src/codec_utils/RRC/Q-RxLevMin.h new file mode 100644 index 000000000..b9561902d --- /dev/null +++ b/src/codec_utils/RRC/Q-RxLevMin.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _Q_RxLevMin_H_ +#define _Q_RxLevMin_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Q-RxLevMin */ +typedef long Q_RxLevMin_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_Q_RxLevMin_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_Q_RxLevMin; +asn_struct_free_f Q_RxLevMin_free; +asn_struct_print_f Q_RxLevMin_print; +asn_constr_check_f Q_RxLevMin_constraint; +ber_type_decoder_f Q_RxLevMin_decode_ber; +der_type_encoder_f Q_RxLevMin_encode_der; +xer_type_decoder_f Q_RxLevMin_decode_xer; +xer_type_encoder_f Q_RxLevMin_encode_xer; +oer_type_decoder_f Q_RxLevMin_decode_oer; +oer_type_encoder_f Q_RxLevMin_encode_oer; +per_type_decoder_f Q_RxLevMin_decode_uper; +per_type_encoder_f Q_RxLevMin_encode_uper; +per_type_decoder_f Q_RxLevMin_decode_aper; +per_type_encoder_f Q_RxLevMin_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _Q_RxLevMin_H_ */ +#include diff --git a/src/codec_utils/RRC/QCL-Info.c b/src/codec_utils/RRC/QCL-Info.c new file mode 100644 index 000000000..61933a39d --- /dev/null +++ b/src/codec_utils/RRC/QCL-Info.c @@ -0,0 +1,192 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QCL-Info.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_referenceSignal_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_qcl_Type_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_referenceSignal_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct QCL_Info__referenceSignal, choice.csi_rs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs" + }, + { ATF_NOFLAGS, 0, offsetof(struct QCL_Info__referenceSignal, choice.ssb), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_referenceSignal_specs_4 = { + sizeof(struct QCL_Info__referenceSignal), + offsetof(struct QCL_Info__referenceSignal, _asn_ctx), + offsetof(struct QCL_Info__referenceSignal, present), + sizeof(((struct QCL_Info__referenceSignal *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_referenceSignal_constr_4, &asn_PER_type_referenceSignal_constr_4, CHOICE_constraint }, + asn_MBR_referenceSignal_4, + 2, /* Elements count */ + &asn_SPC_referenceSignal_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_qcl_Type_value2enum_7[] = { + { 0, 5, "typeA" }, + { 1, 5, "typeB" }, + { 2, 5, "typeC" }, + { 3, 5, "typeD" } +}; +static const unsigned int asn_MAP_qcl_Type_enum2value_7[] = { + 0, /* typeA(0) */ + 1, /* typeB(1) */ + 2, /* typeC(2) */ + 3 /* typeD(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_qcl_Type_specs_7 = { + asn_MAP_qcl_Type_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_qcl_Type_7 = { + "qcl-Type", + "qcl-Type", + &asn_OP_NativeEnumerated, + asn_DEF_qcl_Type_tags_7, + sizeof(asn_DEF_qcl_Type_tags_7) + /sizeof(asn_DEF_qcl_Type_tags_7[0]) - 1, /* 1 */ + asn_DEF_qcl_Type_tags_7, /* Same as above */ + sizeof(asn_DEF_qcl_Type_tags_7) + /sizeof(asn_DEF_qcl_Type_tags_7[0]), /* 2 */ + { &asn_OER_type_qcl_Type_constr_7, &asn_PER_type_qcl_Type_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_qcl_Type_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QCL_Info_1[] = { + { ATF_POINTER, 2, offsetof(struct QCL_Info, cell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cell" + }, + { ATF_POINTER, 1, offsetof(struct QCL_Info, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct QCL_Info, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_referenceSignal_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, + { ATF_NOFLAGS, 0, offsetof(struct QCL_Info, qcl_Type), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_qcl_Type_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type" + }, +}; +static const int asn_MAP_QCL_Info_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_QCL_Info_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_QCL_Info_specs_1 = { + sizeof(struct QCL_Info), + offsetof(struct QCL_Info, _asn_ctx), + asn_MAP_QCL_Info_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_QCL_Info_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QCL_Info = { + "QCL-Info", + "QCL-Info", + &asn_OP_SEQUENCE, + asn_DEF_QCL_Info_tags_1, + sizeof(asn_DEF_QCL_Info_tags_1) + /sizeof(asn_DEF_QCL_Info_tags_1[0]), /* 1 */ + asn_DEF_QCL_Info_tags_1, /* Same as above */ + sizeof(asn_DEF_QCL_Info_tags_1) + /sizeof(asn_DEF_QCL_Info_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QCL_Info_1, + 4, /* Elements count */ + &asn_SPC_QCL_Info_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/QCL-Info.h b/src/codec_utils/RRC/QCL-Info.h new file mode 100644 index 000000000..e3d852e89 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QCL_Info_H_ +#define _QCL_Info_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include "BWP-Id.h" +#include +#include "NZP-CSI-RS-ResourceId.h" +#include "SSB-Index.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum QCL_Info__referenceSignal_PR { + QCL_Info__referenceSignal_PR_NOTHING, /* No components present */ + QCL_Info__referenceSignal_PR_csi_rs, + QCL_Info__referenceSignal_PR_ssb +} QCL_Info__referenceSignal_PR; +typedef enum QCL_Info__qcl_Type { + QCL_Info__qcl_Type_typeA = 0, + QCL_Info__qcl_Type_typeB = 1, + QCL_Info__qcl_Type_typeC = 2, + QCL_Info__qcl_Type_typeD = 3 +} e_QCL_Info__qcl_Type; + +/* QCL-Info */ +typedef struct QCL_Info { + ServCellIndex_t *cell; /* OPTIONAL */ + BWP_Id_t *bwp_Id; /* OPTIONAL */ + struct QCL_Info__referenceSignal { + QCL_Info__referenceSignal_PR present; + union QCL_Info__referenceSignal_u { + NZP_CSI_RS_ResourceId_t csi_rs; + 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; +} QCL_Info_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_qcl_Type_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_QCL_Info; +extern asn_SEQUENCE_specifics_t asn_SPC_QCL_Info_specs_1; +extern asn_TYPE_member_t asn_MBR_QCL_Info_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _QCL_Info_H_ */ +#include diff --git a/src/codec_utils/RRC/QFI.c b/src/codec_utils/RRC/QFI.c new file mode 100644 index 000000000..b31154eef --- /dev/null +++ b/src/codec_utils/RRC/QFI.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QFI.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_QFI_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_QFI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_QFI = { + "QFI", + "QFI", + &asn_OP_NativeInteger, + asn_DEF_QFI_tags_1, + sizeof(asn_DEF_QFI_tags_1) + /sizeof(asn_DEF_QFI_tags_1[0]), /* 1 */ + asn_DEF_QFI_tags_1, /* Same as above */ + sizeof(asn_DEF_QFI_tags_1) + /sizeof(asn_DEF_QFI_tags_1[0]), /* 1 */ + { &asn_OER_type_QFI_constr_1, &asn_PER_type_QFI_constr_1, QFI_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/QFI.h b/src/codec_utils/RRC/QFI.h new file mode 100644 index 000000000..cdc6a4ada --- /dev/null +++ b/src/codec_utils/RRC/QFI.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QFI_H_ +#define _QFI_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* QFI */ +typedef long QFI_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_QFI_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_QFI; +asn_struct_free_f QFI_free; +asn_struct_print_f QFI_print; +asn_constr_check_f QFI_constraint; +ber_type_decoder_f QFI_decode_ber; +der_type_encoder_f QFI_encode_der; +xer_type_decoder_f QFI_decode_xer; +xer_type_encoder_f QFI_encode_xer; +oer_type_decoder_f QFI_decode_oer; +oer_type_encoder_f QFI_encode_oer; +per_type_decoder_f QFI_decode_uper; +per_type_encoder_f QFI_encode_uper; +per_type_decoder_f QFI_decode_aper; +per_type_encoder_f QFI_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _QFI_H_ */ +#include diff --git a/src/codec_utils/RRC/QuantityConfig.c b/src/codec_utils/RRC/QuantityConfig.c new file mode 100644 index 000000000..46617907d --- /dev/null +++ b/src/codec_utils/RRC/QuantityConfig.c @@ -0,0 +1,188 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QuantityConfig.h" + +#include "QuantityConfigNR.h" +#include "FilterConfig.h" +static int +memb_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_oer_constraints_t asn_OER_type_quantityConfigNR_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_quantityConfigNR_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_quantityConfigNR_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_QuantityConfigNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_quantityConfigNR_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_quantityConfigNR_List_specs_2 = { + sizeof(struct QuantityConfig__quantityConfigNR_List), + offsetof(struct QuantityConfig__quantityConfigNR_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_quantityConfigNR_List_2 = { + "quantityConfigNR-List", + "quantityConfigNR-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_quantityConfigNR_List_tags_2, + sizeof(asn_DEF_quantityConfigNR_List_tags_2) + /sizeof(asn_DEF_quantityConfigNR_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_quantityConfigNR_List_tags_2, /* Same as above */ + sizeof(asn_DEF_quantityConfigNR_List_tags_2) + /sizeof(asn_DEF_quantityConfigNR_List_tags_2[0]), /* 2 */ + { &asn_OER_type_quantityConfigNR_List_constr_2, &asn_PER_type_quantityConfigNR_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_quantityConfigNR_List_2, + 1, /* Single element */ + &asn_SPC_quantityConfigNR_List_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct QuantityConfig__ext1, quantityConfigEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigEUTRA" + }, +}; +static const int asn_MAP_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* quantityConfigEUTRA */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_5 = { + sizeof(struct QuantityConfig__ext1), + offsetof(struct QuantityConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_5, + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_5, + 1, /* Elements count */ + &asn_SPC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_QuantityConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct QuantityConfig, quantityConfigNR_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_quantityConfigNR_List_2, + 0, + { &asn_OER_memb_quantityConfigNR_List_constr_2, &asn_PER_memb_quantityConfigNR_List_constr_2, memb_quantityConfigNR_List_constraint_1 }, + 0, 0, /* No default value */ + "quantityConfigNR-List" + }, + { ATF_POINTER, 1, offsetof(struct QuantityConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_QuantityConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_QuantityConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_QuantityConfig_specs_1 = { + sizeof(struct QuantityConfig), + offsetof(struct QuantityConfig, _asn_ctx), + asn_MAP_QuantityConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_QuantityConfig_oms_1, /* Optional members */ + 1, 1, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QuantityConfig = { + "QuantityConfig", + "QuantityConfig", + &asn_OP_SEQUENCE, + asn_DEF_QuantityConfig_tags_1, + sizeof(asn_DEF_QuantityConfig_tags_1) + /sizeof(asn_DEF_QuantityConfig_tags_1[0]), /* 1 */ + asn_DEF_QuantityConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_QuantityConfig_tags_1) + /sizeof(asn_DEF_QuantityConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QuantityConfig_1, + 2, /* Elements count */ + &asn_SPC_QuantityConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/QuantityConfig.h b/src/codec_utils/RRC/QuantityConfig.h new file mode 100644 index 000000000..ab14696a1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QuantityConfig_H_ +#define _QuantityConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct QuantityConfigNR; +struct FilterConfig; + +/* QuantityConfig */ +typedef struct QuantityConfig { + struct QuantityConfig__quantityConfigNR_List { + A_SEQUENCE_OF(struct 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 QuantityConfig__ext1 { + struct 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; +} QuantityConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QuantityConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_QuantityConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_QuantityConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _QuantityConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/QuantityConfigNR.c b/src/codec_utils/RRC/QuantityConfigNR.c new file mode 100644 index 000000000..a7e941c14 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QuantityConfigNR.h" + +#include "QuantityConfigRS.h" +asn_TYPE_member_t asn_MBR_QuantityConfigNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct QuantityConfigNR, quantityConfigCell), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QuantityConfigRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigCell" + }, + { ATF_POINTER, 1, offsetof(struct QuantityConfigNR, quantityConfigRS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QuantityConfigRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfigRS-Index" + }, +}; +static const int asn_MAP_QuantityConfigNR_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_QuantityConfigNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_QuantityConfigNR_specs_1 = { + sizeof(struct QuantityConfigNR), + offsetof(struct QuantityConfigNR, _asn_ctx), + asn_MAP_QuantityConfigNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_QuantityConfigNR_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_QuantityConfigNR = { + "QuantityConfigNR", + "QuantityConfigNR", + &asn_OP_SEQUENCE, + asn_DEF_QuantityConfigNR_tags_1, + sizeof(asn_DEF_QuantityConfigNR_tags_1) + /sizeof(asn_DEF_QuantityConfigNR_tags_1[0]), /* 1 */ + asn_DEF_QuantityConfigNR_tags_1, /* Same as above */ + sizeof(asn_DEF_QuantityConfigNR_tags_1) + /sizeof(asn_DEF_QuantityConfigNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QuantityConfigNR_1, + 2, /* Elements count */ + &asn_SPC_QuantityConfigNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/QuantityConfigNR.h b/src/codec_utils/RRC/QuantityConfigNR.h new file mode 100644 index 000000000..4ab293c92 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QuantityConfigNR_H_ +#define _QuantityConfigNR_H_ + + +#include + +/* Including external dependencies */ +#include "QuantityConfigRS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct QuantityConfigRS; + +/* QuantityConfigNR */ +typedef struct QuantityConfigNR { + QuantityConfigRS_t quantityConfigCell; + struct QuantityConfigRS *quantityConfigRS_Index; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QuantityConfigNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QuantityConfigNR; +extern asn_SEQUENCE_specifics_t asn_SPC_QuantityConfigNR_specs_1; +extern asn_TYPE_member_t asn_MBR_QuantityConfigNR_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _QuantityConfigNR_H_ */ +#include diff --git a/src/codec_utils/RRC/QuantityConfigRS.c b/src/codec_utils/RRC/QuantityConfigRS.c new file mode 100644 index 000000000..caf22ad53 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "QuantityConfigRS.h" + +asn_TYPE_member_t asn_MBR_QuantityConfigRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct QuantityConfigRS, ssb_FilterConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-FilterConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct QuantityConfigRS, csi_RS_FilterConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FilterConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-FilterConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_QuantityConfigRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_QuantityConfigRS_specs_1 = { + sizeof(struct QuantityConfigRS), + offsetof(struct QuantityConfigRS, _asn_ctx), + asn_MAP_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_QuantityConfigRS = { + "QuantityConfigRS", + "QuantityConfigRS", + &asn_OP_SEQUENCE, + asn_DEF_QuantityConfigRS_tags_1, + sizeof(asn_DEF_QuantityConfigRS_tags_1) + /sizeof(asn_DEF_QuantityConfigRS_tags_1[0]), /* 1 */ + asn_DEF_QuantityConfigRS_tags_1, /* Same as above */ + sizeof(asn_DEF_QuantityConfigRS_tags_1) + /sizeof(asn_DEF_QuantityConfigRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_QuantityConfigRS_1, + 2, /* Elements count */ + &asn_SPC_QuantityConfigRS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/QuantityConfigRS.h b/src/codec_utils/RRC/QuantityConfigRS.h new file mode 100644 index 000000000..5c1359a0c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _QuantityConfigRS_H_ +#define _QuantityConfigRS_H_ + + +#include + +/* Including external dependencies */ +#include "FilterConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* QuantityConfigRS */ +typedef struct QuantityConfigRS { + FilterConfig_t ssb_FilterConfig; + FilterConfig_t csi_RS_FilterConfig; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} QuantityConfigRS_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_QuantityConfigRS; +extern asn_SEQUENCE_specifics_t asn_SPC_QuantityConfigRS_specs_1; +extern asn_TYPE_member_t asn_MBR_QuantityConfigRS_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _QuantityConfigRS_H_ */ +#include diff --git a/src/codec_utils/RRC/RA-Prioritization.c b/src/codec_utils/RRC/RA-Prioritization.c new file mode 100644 index 000000000..843fa1242 --- /dev/null +++ b/src/codec_utils/RRC/RA-Prioritization.c @@ -0,0 +1,168 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_powerRampingStepHighPriority_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scalingFactorBI_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_powerRampingStepHighPriority_value2enum_2[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB2" }, + { 2, 3, "dB4" }, + { 3, 3, "dB6" } +}; +static const unsigned int asn_MAP_powerRampingStepHighPriority_enum2value_2[] = { + 0, /* dB0(0) */ + 1, /* dB2(1) */ + 2, /* dB4(2) */ + 3 /* dB6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_powerRampingStepHighPriority_specs_2 = { + asn_MAP_powerRampingStepHighPriority_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_powerRampingStepHighPriority_2 = { + "powerRampingStepHighPriority", + "powerRampingStepHighPriority", + &asn_OP_NativeEnumerated, + asn_DEF_powerRampingStepHighPriority_tags_2, + sizeof(asn_DEF_powerRampingStepHighPriority_tags_2) + /sizeof(asn_DEF_powerRampingStepHighPriority_tags_2[0]) - 1, /* 1 */ + asn_DEF_powerRampingStepHighPriority_tags_2, /* Same as above */ + sizeof(asn_DEF_powerRampingStepHighPriority_tags_2) + /sizeof(asn_DEF_powerRampingStepHighPriority_tags_2[0]), /* 2 */ + { &asn_OER_type_powerRampingStepHighPriority_constr_2, &asn_PER_type_powerRampingStepHighPriority_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_powerRampingStepHighPriority_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scalingFactorBI_value2enum_7[] = { + { 0, 4, "zero" }, + { 1, 5, "dot25" }, + { 2, 4, "dot5" }, + { 3, 5, "dot75" } +}; +static const unsigned int asn_MAP_scalingFactorBI_enum2value_7[] = { + 1, /* dot25(1) */ + 2, /* dot5(2) */ + 3, /* dot75(3) */ + 0 /* zero(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scalingFactorBI_specs_7 = { + asn_MAP_scalingFactorBI_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scalingFactorBI_7 = { + "scalingFactorBI", + "scalingFactorBI", + &asn_OP_NativeEnumerated, + asn_DEF_scalingFactorBI_tags_7, + sizeof(asn_DEF_scalingFactorBI_tags_7) + /sizeof(asn_DEF_scalingFactorBI_tags_7[0]) - 1, /* 1 */ + asn_DEF_scalingFactorBI_tags_7, /* Same as above */ + sizeof(asn_DEF_scalingFactorBI_tags_7) + /sizeof(asn_DEF_scalingFactorBI_tags_7[0]), /* 2 */ + { &asn_OER_type_scalingFactorBI_constr_7, &asn_PER_type_scalingFactorBI_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scalingFactorBI_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RA_Prioritization_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RA_Prioritization, powerRampingStepHighPriority), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_powerRampingStepHighPriority_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerRampingStepHighPriority" + }, + { ATF_POINTER, 1, offsetof(struct RA_Prioritization, scalingFactorBI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scalingFactorBI_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scalingFactorBI" + }, +}; +static const int asn_MAP_RA_Prioritization_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RA_Prioritization_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RA_Prioritization_specs_1 = { + sizeof(struct RA_Prioritization), + offsetof(struct RA_Prioritization, _asn_ctx), + asn_MAP_RA_Prioritization_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RA_Prioritization_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RA_Prioritization = { + "RA-Prioritization", + "RA-Prioritization", + &asn_OP_SEQUENCE, + asn_DEF_RA_Prioritization_tags_1, + sizeof(asn_DEF_RA_Prioritization_tags_1) + /sizeof(asn_DEF_RA_Prioritization_tags_1[0]), /* 1 */ + asn_DEF_RA_Prioritization_tags_1, /* Same as above */ + sizeof(asn_DEF_RA_Prioritization_tags_1) + /sizeof(asn_DEF_RA_Prioritization_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RA_Prioritization_1, + 2, /* Elements count */ + &asn_SPC_RA_Prioritization_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RA-Prioritization.h b/src/codec_utils/RRC/RA-Prioritization.h new file mode 100644 index 000000000..1fe01a5a6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RA_Prioritization_H_ +#define _RA_Prioritization_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RA_Prioritization__powerRampingStepHighPriority { + RA_Prioritization__powerRampingStepHighPriority_dB0 = 0, + RA_Prioritization__powerRampingStepHighPriority_dB2 = 1, + RA_Prioritization__powerRampingStepHighPriority_dB4 = 2, + RA_Prioritization__powerRampingStepHighPriority_dB6 = 3 +} e_RA_Prioritization__powerRampingStepHighPriority; +typedef enum RA_Prioritization__scalingFactorBI { + RA_Prioritization__scalingFactorBI_zero = 0, + RA_Prioritization__scalingFactorBI_dot25 = 1, + RA_Prioritization__scalingFactorBI_dot5 = 2, + RA_Prioritization__scalingFactorBI_dot75 = 3 +} e_RA_Prioritization__scalingFactorBI; + +/* RA-Prioritization */ +typedef struct 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; +} RA_Prioritization_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_powerRampingStepHighPriority_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_scalingFactorBI_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RA_Prioritization; +extern asn_SEQUENCE_specifics_t asn_SPC_RA_Prioritization_specs_1; +extern asn_TYPE_member_t asn_MBR_RA_Prioritization_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RA_Prioritization_H_ */ +#include diff --git a/src/codec_utils/RRC/RACH-ConfigCommon.c b/src/codec_utils/RRC/RACH-ConfigCommon.c new file mode 100644 index 000000000..104e02515 --- /dev/null +++ b/src/codec_utils/RRC/RACH-ConfigCommon.c @@ -0,0 +1,1286 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_oneEighth_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_oneFourth_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_oneHalf_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_one_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_two_constr_73 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_four_constr_82 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_constr_83 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sixteen_constr_84 CC_NOTUSED = { + { 1, 1 } /* (1..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ra_Msg3SizeGroupA_constr_86 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_messagePowerOffsetGroupB_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ra_ContentionResolutionTimer_constr_113 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_l839_constr_125 CC_NOTUSED = { + { 2, 1 } /* (0..837) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_l139_constr_126 CC_NOTUSED = { + { 1, 1 } /* (0..137) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_prach_RootSequenceIndex_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_restrictedSetConfig_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_msg3_transformPrecoder_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_totalNumberOfRA_Preambles_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_oneEighth_specs_5 = { + asn_MAP_oneEighth_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_oneEighth_5 = { + "oneEighth", + "oneEighth", + &asn_OP_NativeEnumerated, + asn_DEF_oneEighth_tags_5, + sizeof(asn_DEF_oneEighth_tags_5) + /sizeof(asn_DEF_oneEighth_tags_5[0]) - 1, /* 1 */ + asn_DEF_oneEighth_tags_5, /* Same as above */ + sizeof(asn_DEF_oneEighth_tags_5) + /sizeof(asn_DEF_oneEighth_tags_5[0]), /* 2 */ + { &asn_OER_type_oneEighth_constr_5, &asn_PER_type_oneEighth_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneEighth_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_oneFourth_specs_22 = { + asn_MAP_oneFourth_value2enum_22, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_oneFourth_22 = { + "oneFourth", + "oneFourth", + &asn_OP_NativeEnumerated, + asn_DEF_oneFourth_tags_22, + sizeof(asn_DEF_oneFourth_tags_22) + /sizeof(asn_DEF_oneFourth_tags_22[0]) - 1, /* 1 */ + asn_DEF_oneFourth_tags_22, /* Same as above */ + sizeof(asn_DEF_oneFourth_tags_22) + /sizeof(asn_DEF_oneFourth_tags_22[0]), /* 2 */ + { &asn_OER_type_oneFourth_constr_22, &asn_PER_type_oneFourth_constr_22, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneFourth_specs_22 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_oneHalf_specs_39 = { + asn_MAP_oneHalf_value2enum_39, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_oneHalf_39 = { + "oneHalf", + "oneHalf", + &asn_OP_NativeEnumerated, + asn_DEF_oneHalf_tags_39, + sizeof(asn_DEF_oneHalf_tags_39) + /sizeof(asn_DEF_oneHalf_tags_39[0]) - 1, /* 1 */ + asn_DEF_oneHalf_tags_39, /* Same as above */ + sizeof(asn_DEF_oneHalf_tags_39) + /sizeof(asn_DEF_oneHalf_tags_39[0]), /* 2 */ + { &asn_OER_type_oneHalf_constr_39, &asn_PER_type_oneHalf_constr_39, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_oneHalf_specs_39 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_one_specs_56 = { + asn_MAP_one_value2enum_56, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_one_56 = { + "one", + "one", + &asn_OP_NativeEnumerated, + asn_DEF_one_tags_56, + sizeof(asn_DEF_one_tags_56) + /sizeof(asn_DEF_one_tags_56[0]) - 1, /* 1 */ + asn_DEF_one_tags_56, /* Same as above */ + sizeof(asn_DEF_one_tags_56) + /sizeof(asn_DEF_one_tags_56[0]), /* 2 */ + { &asn_OER_type_one_constr_56, &asn_PER_type_one_constr_56, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_one_specs_56 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_two_specs_73 = { + asn_MAP_two_value2enum_73, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_two_73 = { + "two", + "two", + &asn_OP_NativeEnumerated, + asn_DEF_two_tags_73, + sizeof(asn_DEF_two_tags_73) + /sizeof(asn_DEF_two_tags_73[0]) - 1, /* 1 */ + asn_DEF_two_tags_73, /* Same as above */ + sizeof(asn_DEF_two_tags_73) + /sizeof(asn_DEF_two_tags_73[0]), /* 2 */ + { &asn_OER_type_two_constr_73, &asn_PER_type_two_constr_73, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_two_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneEighth), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneEighth_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneEighth" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneFourth), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneFourth_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneFourth" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneHalf), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_oneHalf_39, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "oneHalf" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.one), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_one_56, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "one" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.two), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_two_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "two" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.four), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_four_constr_82, &asn_PER_memb_four_constr_82, memb_four_constraint_4 }, + 0, 0, /* No default value */ + "four" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.eight), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_eight_constr_83, &asn_PER_memb_eight_constr_83, memb_eight_constraint_4 }, + 0, 0, /* No default value */ + "eight" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.sixteen), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sixteen_constr_84, &asn_PER_memb_sixteen_constr_84, memb_sixteen_constraint_4 }, + 0, 0, /* No default value */ + "sixteen" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 = { + sizeof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, _asn_ctx), + offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, present), + sizeof(((struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, &asn_PER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, CHOICE_constraint }, + asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 8, /* Elements count */ + &asn_SPC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_Msg3SizeGroupA_specs_86 = { + asn_MAP_ra_Msg3SizeGroupA_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ra_Msg3SizeGroupA_86 = { + "ra-Msg3SizeGroupA", + "ra-Msg3SizeGroupA", + &asn_OP_NativeEnumerated, + asn_DEF_ra_Msg3SizeGroupA_tags_86, + sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]) - 1, /* 1 */ + asn_DEF_ra_Msg3SizeGroupA_tags_86, /* Same as above */ + sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) + /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]), /* 2 */ + { &asn_OER_type_ra_Msg3SizeGroupA_constr_86, &asn_PER_type_ra_Msg3SizeGroupA_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_Msg3SizeGroupA_specs_86 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_messagePowerOffsetGroupB_specs_103 = { + asn_MAP_messagePowerOffsetGroupB_value2enum_103, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_messagePowerOffsetGroupB_103 = { + "messagePowerOffsetGroupB", + "messagePowerOffsetGroupB", + &asn_OP_NativeEnumerated, + asn_DEF_messagePowerOffsetGroupB_tags_103, + sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]) - 1, /* 1 */ + asn_DEF_messagePowerOffsetGroupB_tags_103, /* Same as above */ + sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) + /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]), /* 2 */ + { &asn_OER_type_messagePowerOffsetGroupB_constr_103, &asn_PER_type_messagePowerOffsetGroupB_constr_103, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_messagePowerOffsetGroupB_specs_103 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_groupBconfigured_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, ra_Msg3SizeGroupA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_Msg3SizeGroupA_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Msg3SizeGroupA" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, messagePowerOffsetGroupB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_messagePowerOffsetGroupB_103, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messagePowerOffsetGroupB" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, numberOfRA_PreamblesGroupA), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112, &asn_PER_memb_numberOfRA_PreamblesGroupA_constr_112, memb_numberOfRA_PreamblesGroupA_constraint_85 }, + 0, 0, /* No default value */ + "numberOfRA-PreamblesGroupA" + }, +}; +static const ber_tlv_tag_t asn_DEF_groupBconfigured_tags_85[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_groupBconfigured_specs_85 = { + sizeof(struct RACH_ConfigCommon__groupBconfigured), + offsetof(struct RACH_ConfigCommon__groupBconfigured, _asn_ctx), + asn_MAP_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_groupBconfigured_85 = { + "groupBconfigured", + "groupBconfigured", + &asn_OP_SEQUENCE, + asn_DEF_groupBconfigured_tags_85, + sizeof(asn_DEF_groupBconfigured_tags_85) + /sizeof(asn_DEF_groupBconfigured_tags_85[0]) - 1, /* 1 */ + asn_DEF_groupBconfigured_tags_85, /* Same as above */ + sizeof(asn_DEF_groupBconfigured_tags_85) + /sizeof(asn_DEF_groupBconfigured_tags_85[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_groupBconfigured_85, + 3, /* Elements count */ + &asn_SPC_groupBconfigured_specs_85 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_ContentionResolutionTimer_specs_113 = { + asn_MAP_ra_ContentionResolutionTimer_value2enum_113, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ra_ContentionResolutionTimer_113 = { + "ra-ContentionResolutionTimer", + "ra-ContentionResolutionTimer", + &asn_OP_NativeEnumerated, + asn_DEF_ra_ContentionResolutionTimer_tags_113, + sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]) - 1, /* 1 */ + asn_DEF_ra_ContentionResolutionTimer_tags_113, /* Same as above */ + sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) + /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]), /* 2 */ + { &asn_OER_type_ra_ContentionResolutionTimer_constr_113, &asn_PER_type_ra_ContentionResolutionTimer_constr_113, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_ContentionResolutionTimer_specs_113 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_prach_RootSequenceIndex_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l839), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_l839_constr_125, &asn_PER_memb_l839_constr_125, memb_l839_constraint_124 }, + 0, 0, /* No default value */ + "l839" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l139), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_l139_constr_126, &asn_PER_memb_l139_constr_126, memb_l139_constraint_124 }, + 0, 0, /* No default value */ + "l139" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_prach_RootSequenceIndex_specs_124 = { + sizeof(struct RACH_ConfigCommon__prach_RootSequenceIndex), + offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, _asn_ctx), + offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, present), + sizeof(((struct RACH_ConfigCommon__prach_RootSequenceIndex *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_prach_RootSequenceIndex_constr_124, &asn_PER_type_prach_RootSequenceIndex_constr_124, CHOICE_constraint }, + asn_MBR_prach_RootSequenceIndex_124, + 2, /* Elements count */ + &asn_SPC_prach_RootSequenceIndex_specs_124 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_restrictedSetConfig_value2enum_128[] = { + { 0, 15, "unrestrictedSet" }, + { 1, 18, "restrictedSetTypeA" }, + { 2, 18, "restrictedSetTypeB" } +}; +static const unsigned int asn_MAP_restrictedSetConfig_enum2value_128[] = { + 1, /* restrictedSetTypeA(1) */ + 2, /* restrictedSetTypeB(2) */ + 0 /* unrestrictedSet(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_restrictedSetConfig_specs_128 = { + asn_MAP_restrictedSetConfig_value2enum_128, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_restrictedSetConfig_128 = { + "restrictedSetConfig", + "restrictedSetConfig", + &asn_OP_NativeEnumerated, + asn_DEF_restrictedSetConfig_tags_128, + sizeof(asn_DEF_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]) - 1, /* 1 */ + asn_DEF_restrictedSetConfig_tags_128, /* Same as above */ + sizeof(asn_DEF_restrictedSetConfig_tags_128) + /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]), /* 2 */ + { &asn_OER_type_restrictedSetConfig_constr_128, &asn_PER_type_restrictedSetConfig_constr_128, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_restrictedSetConfig_specs_128 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_msg3_transformPrecoder_value2enum_132[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_msg3_transformPrecoder_enum2value_132[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_msg3_transformPrecoder_specs_132 = { + asn_MAP_msg3_transformPrecoder_value2enum_132, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_msg3_transformPrecoder_132 = { + "msg3-transformPrecoder", + "msg3-transformPrecoder", + &asn_OP_NativeEnumerated, + asn_DEF_msg3_transformPrecoder_tags_132, + sizeof(asn_DEF_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]) - 1, /* 1 */ + asn_DEF_msg3_transformPrecoder_tags_132, /* Same as above */ + sizeof(asn_DEF_msg3_transformPrecoder_tags_132) + /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]), /* 2 */ + { &asn_OER_type_msg3_transformPrecoder_constr_132, &asn_PER_type_msg3_transformPrecoder_constr_132, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_msg3_transformPrecoder_specs_132 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RACH_ConfigCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, rach_ConfigGeneric), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigGeneric" + }, + { ATF_POINTER, 3, offsetof(struct RACH_ConfigCommon, totalNumberOfRA_Preambles), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberOfRA_Preambles_constr_3, &asn_PER_memb_totalNumberOfRA_Preambles_constr_3, memb_totalNumberOfRA_Preambles_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberOfRA-Preambles" + }, + { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, ssb_perRACH_OccasionAndCB_PreamblesPerSSB), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-OccasionAndCB-PreamblesPerSSB" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, groupBconfigured), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_groupBconfigured_85, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupBconfigured" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, ra_ContentionResolutionTimer), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_ContentionResolutionTimer_113, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-ContentionResolutionTimer" + }, + { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB_SUL), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rsrp-ThresholdSSB-SUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, prach_RootSequenceIndex), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_prach_RootSequenceIndex_124, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "prach-RootSequenceIndex" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg1_SubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-SubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, restrictedSetConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_restrictedSetConfig_128, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "restrictedSetConfig" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg3_transformPrecoder), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_msg3_transformPrecoder_132, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg3-transformPrecoder" + }, +}; +static const int asn_MAP_RACH_ConfigCommon_oms_1[] = { 1, 2, 3, 5, 6, 8, 10 }; +static const ber_tlv_tag_t asn_DEF_RACH_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RACH_ConfigCommon_specs_1 = { + sizeof(struct RACH_ConfigCommon), + offsetof(struct RACH_ConfigCommon, _asn_ctx), + asn_MAP_RACH_ConfigCommon_tag2el_1, + 11, /* Count of tags in the map */ + asn_MAP_RACH_ConfigCommon_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 11, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RACH_ConfigCommon = { + "RACH-ConfigCommon", + "RACH-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_RACH_ConfigCommon_tags_1, + sizeof(asn_DEF_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_RACH_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_RACH_ConfigCommon_tags_1) + /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RACH_ConfigCommon_1, + 11, /* Elements count */ + &asn_SPC_RACH_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RACH-ConfigCommon.h b/src/codec_utils/RRC/RACH-ConfigCommon.h new file mode 100644 index 000000000..7647b1884 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RACH_ConfigCommon_H_ +#define _RACH_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "RACH-ConfigGeneric.h" +#include +#include +#include "RSRP-Range.h" +#include "SubcarrierSpacing.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_NOTHING, /* No components present */ + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneEighth, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneFourth, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneHalf, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_one, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_two, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_four, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_eight, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_sixteen +} RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR; +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n4 = 0, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n8 = 1, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n12 = 2, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n16 = 3, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n20 = 4, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n24 = 5, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n28 = 6, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n32 = 7, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n36 = 8, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n40 = 9, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n44 = 10, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n48 = 11, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n52 = 12, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n56 = 13, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n60 = 14, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n64 = 15 +} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth; +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n4 = 0, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n8 = 1, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n12 = 2, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n16 = 3, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n20 = 4, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n24 = 5, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n28 = 6, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n32 = 7, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n36 = 8, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n40 = 9, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n44 = 10, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n48 = 11, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n52 = 12, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n56 = 13, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n60 = 14, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n64 = 15 +} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth; +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n4 = 0, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n8 = 1, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n12 = 2, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n16 = 3, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n20 = 4, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n24 = 5, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n28 = 6, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n32 = 7, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n36 = 8, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n40 = 9, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n44 = 10, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n48 = 11, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n52 = 12, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n56 = 13, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n60 = 14, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n64 = 15 +} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf; +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n4 = 0, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n8 = 1, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n12 = 2, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n16 = 3, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n20 = 4, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n24 = 5, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n28 = 6, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n32 = 7, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n36 = 8, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n40 = 9, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n44 = 10, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n48 = 11, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n52 = 12, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n56 = 13, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n60 = 14, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n64 = 15 +} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one; +typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n4 = 0, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n8 = 1, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n12 = 2, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n16 = 3, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n20 = 4, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n24 = 5, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n28 = 6, + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n32 = 7 +} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two; +typedef enum RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA { + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b56 = 0, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b144 = 1, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b208 = 2, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b256 = 3, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b282 = 4, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b480 = 5, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b640 = 6, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b800 = 7, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b1000 = 8, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b72 = 9, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare6 = 10, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare5 = 11, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare4 = 12, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare3 = 13, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare2 = 14, + RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare1 = 15 +} e_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA; +typedef enum RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB { + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_minusinfinity = 0, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB0 = 1, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB5 = 2, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB8 = 3, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB10 = 4, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB12 = 5, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB15 = 6, + RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB18 = 7 +} e_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB; +typedef enum RACH_ConfigCommon__ra_ContentionResolutionTimer { + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf8 = 0, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf16 = 1, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf24 = 2, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf32 = 3, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf40 = 4, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf48 = 5, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf56 = 6, + RACH_ConfigCommon__ra_ContentionResolutionTimer_sf64 = 7 +} e_RACH_ConfigCommon__ra_ContentionResolutionTimer; +typedef enum RACH_ConfigCommon__prach_RootSequenceIndex_PR { + RACH_ConfigCommon__prach_RootSequenceIndex_PR_NOTHING, /* No components present */ + RACH_ConfigCommon__prach_RootSequenceIndex_PR_l839, + RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139 +} RACH_ConfigCommon__prach_RootSequenceIndex_PR; +typedef enum RACH_ConfigCommon__restrictedSetConfig { + RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet = 0, + RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeA = 1, + RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeB = 2 +} e_RACH_ConfigCommon__restrictedSetConfig; +typedef enum RACH_ConfigCommon__msg3_transformPrecoder { + RACH_ConfigCommon__msg3_transformPrecoder_enabled = 0 +} e_RACH_ConfigCommon__msg3_transformPrecoder; + +/* RACH-ConfigCommon */ +typedef struct RACH_ConfigCommon { + RACH_ConfigGeneric_t rach_ConfigGeneric; + long *totalNumberOfRA_Preambles; /* OPTIONAL */ + struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB { + RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR present; + union RACH_ConfigCommon__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 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; + RSRP_Range_t *rsrp_ThresholdSSB; /* OPTIONAL */ + RSRP_Range_t *rsrp_ThresholdSSB_SUL; /* OPTIONAL */ + struct RACH_ConfigCommon__prach_RootSequenceIndex { + RACH_ConfigCommon__prach_RootSequenceIndex_PR present; + union RACH_ConfigCommon__prach_RootSequenceIndex_u { + long l839; + long l139; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } prach_RootSequenceIndex; + 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; +} RACH_ConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_oneEighth_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_oneFourth_22; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_oneHalf_39; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_one_56; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_two_73; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ra_Msg3SizeGroupA_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_messagePowerOffsetGroupB_103; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ra_ContentionResolutionTimer_113; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_restrictedSetConfig_128; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_msg3_transformPrecoder_132; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RACH_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_RACH_ConfigCommon_1[11]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RACH_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/RACH-ConfigDedicated.c b/src/codec_utils/RRC/RACH-ConfigDedicated.c new file mode 100644 index 000000000..87f1fcee3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RACH-ConfigDedicated.h" + +#include "CFRA.h" +#include "RA-Prioritization.h" +asn_TYPE_member_t asn_MBR_RACH_ConfigDedicated_1[] = { + { ATF_POINTER, 2, offsetof(struct RACH_ConfigDedicated, cfra), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CFRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cfra" + }, + { ATF_POINTER, 1, offsetof(struct RACH_ConfigDedicated, ra_Prioritization), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RA_Prioritization, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-Prioritization" + }, +}; +static const int asn_MAP_RACH_ConfigDedicated_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RACH_ConfigDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RACH_ConfigDedicated_specs_1 = { + sizeof(struct RACH_ConfigDedicated), + offsetof(struct RACH_ConfigDedicated, _asn_ctx), + asn_MAP_RACH_ConfigDedicated_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RACH_ConfigDedicated_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RACH_ConfigDedicated = { + "RACH-ConfigDedicated", + "RACH-ConfigDedicated", + &asn_OP_SEQUENCE, + asn_DEF_RACH_ConfigDedicated_tags_1, + sizeof(asn_DEF_RACH_ConfigDedicated_tags_1) + /sizeof(asn_DEF_RACH_ConfigDedicated_tags_1[0]), /* 1 */ + asn_DEF_RACH_ConfigDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_RACH_ConfigDedicated_tags_1) + /sizeof(asn_DEF_RACH_ConfigDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RACH_ConfigDedicated_1, + 2, /* Elements count */ + &asn_SPC_RACH_ConfigDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RACH-ConfigDedicated.h b/src/codec_utils/RRC/RACH-ConfigDedicated.h new file mode 100644 index 000000000..88a2d673a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RACH_ConfigDedicated_H_ +#define _RACH_ConfigDedicated_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CFRA; +struct RA_Prioritization; + +/* RACH-ConfigDedicated */ +typedef struct RACH_ConfigDedicated { + struct CFRA *cfra; /* OPTIONAL */ + struct 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; +} RACH_ConfigDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RACH_ConfigDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_RACH_ConfigDedicated_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RACH_ConfigDedicated_H_ */ +#include diff --git a/src/codec_utils/RRC/RACH-ConfigGeneric.c b/src/codec_utils/RRC/RACH-ConfigGeneric.c new file mode 100644 index 000000000..f6b804c6b --- /dev/null +++ b/src/codec_utils/RRC/RACH-ConfigGeneric.c @@ -0,0 +1,486 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_oer_constraints_t asn_OER_type_msg1_FDM_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_preambleTransMax_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_powerRampingStep_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ra_ResponseWindow_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_prach_ConfigurationIndex_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_msg1_FrequencyStart_constr_8 CC_NOTUSED = { + { 2, 1 } /* (0..274) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_zeroCorrelationZoneConfig_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_preambleReceivedTargetPower_constr_10 CC_NOTUSED = { + { 2, 0 } /* (-202..-60) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_msg1_FDM_value2enum_3[] = { + { 0, 3, "one" }, + { 1, 3, "two" }, + { 2, 4, "four" }, + { 3, 5, "eight" } +}; +static const unsigned int asn_MAP_msg1_FDM_enum2value_3[] = { + 3, /* eight(3) */ + 2, /* four(2) */ + 0, /* one(0) */ + 1 /* two(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_msg1_FDM_specs_3 = { + asn_MAP_msg1_FDM_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_msg1_FDM_3 = { + "msg1-FDM", + "msg1-FDM", + &asn_OP_NativeEnumerated, + asn_DEF_msg1_FDM_tags_3, + sizeof(asn_DEF_msg1_FDM_tags_3) + /sizeof(asn_DEF_msg1_FDM_tags_3[0]) - 1, /* 1 */ + asn_DEF_msg1_FDM_tags_3, /* Same as above */ + sizeof(asn_DEF_msg1_FDM_tags_3) + /sizeof(asn_DEF_msg1_FDM_tags_3[0]), /* 2 */ + { &asn_OER_type_msg1_FDM_constr_3, &asn_PER_type_msg1_FDM_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_msg1_FDM_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_preambleTransMax_specs_11 = { + asn_MAP_preambleTransMax_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_preambleTransMax_11 = { + "preambleTransMax", + "preambleTransMax", + &asn_OP_NativeEnumerated, + asn_DEF_preambleTransMax_tags_11, + sizeof(asn_DEF_preambleTransMax_tags_11) + /sizeof(asn_DEF_preambleTransMax_tags_11[0]) - 1, /* 1 */ + asn_DEF_preambleTransMax_tags_11, /* Same as above */ + sizeof(asn_DEF_preambleTransMax_tags_11) + /sizeof(asn_DEF_preambleTransMax_tags_11[0]), /* 2 */ + { &asn_OER_type_preambleTransMax_constr_11, &asn_PER_type_preambleTransMax_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_preambleTransMax_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_powerRampingStep_value2enum_23[] = { + { 0, 3, "dB0" }, + { 1, 3, "dB2" }, + { 2, 3, "dB4" }, + { 3, 3, "dB6" } +}; +static const unsigned int asn_MAP_powerRampingStep_enum2value_23[] = { + 0, /* dB0(0) */ + 1, /* dB2(1) */ + 2, /* dB4(2) */ + 3 /* dB6(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_powerRampingStep_specs_23 = { + asn_MAP_powerRampingStep_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_powerRampingStep_23 = { + "powerRampingStep", + "powerRampingStep", + &asn_OP_NativeEnumerated, + asn_DEF_powerRampingStep_tags_23, + sizeof(asn_DEF_powerRampingStep_tags_23) + /sizeof(asn_DEF_powerRampingStep_tags_23[0]) - 1, /* 1 */ + asn_DEF_powerRampingStep_tags_23, /* Same as above */ + sizeof(asn_DEF_powerRampingStep_tags_23) + /sizeof(asn_DEF_powerRampingStep_tags_23[0]), /* 2 */ + { &asn_OER_type_powerRampingStep_constr_23, &asn_PER_type_powerRampingStep_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_powerRampingStep_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_ResponseWindow_specs_28 = { + asn_MAP_ra_ResponseWindow_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ra_ResponseWindow_28 = { + "ra-ResponseWindow", + "ra-ResponseWindow", + &asn_OP_NativeEnumerated, + asn_DEF_ra_ResponseWindow_tags_28, + sizeof(asn_DEF_ra_ResponseWindow_tags_28) + /sizeof(asn_DEF_ra_ResponseWindow_tags_28[0]) - 1, /* 1 */ + asn_DEF_ra_ResponseWindow_tags_28, /* Same as above */ + sizeof(asn_DEF_ra_ResponseWindow_tags_28) + /sizeof(asn_DEF_ra_ResponseWindow_tags_28[0]), /* 2 */ + { &asn_OER_type_ra_ResponseWindow_constr_28, &asn_PER_type_ra_ResponseWindow_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ra_ResponseWindow_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RACH_ConfigGeneric_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, prach_ConfigurationIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_prach_ConfigurationIndex_constr_2, &asn_PER_memb_prach_ConfigurationIndex_constr_2, memb_prach_ConfigurationIndex_constraint_1 }, + 0, 0, /* No default value */ + "prach-ConfigurationIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, msg1_FDM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_msg1_FDM_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "msg1-FDM" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, msg1_FrequencyStart), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_msg1_FrequencyStart_constr_8, &asn_PER_memb_msg1_FrequencyStart_constr_8, memb_msg1_FrequencyStart_constraint_1 }, + 0, 0, /* No default value */ + "msg1-FrequencyStart" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, zeroCorrelationZoneConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_zeroCorrelationZoneConfig_constr_9, &asn_PER_memb_zeroCorrelationZoneConfig_constr_9, memb_zeroCorrelationZoneConfig_constraint_1 }, + 0, 0, /* No default value */ + "zeroCorrelationZoneConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, preambleReceivedTargetPower), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_preambleReceivedTargetPower_constr_10, &asn_PER_memb_preambleReceivedTargetPower_constr_10, memb_preambleReceivedTargetPower_constraint_1 }, + 0, 0, /* No default value */ + "preambleReceivedTargetPower" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, preambleTransMax), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_preambleTransMax_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "preambleTransMax" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, powerRampingStep), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_powerRampingStep_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "powerRampingStep" + }, + { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, ra_ResponseWindow), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ra_ResponseWindow_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ra-ResponseWindow" + }, +}; +static const ber_tlv_tag_t asn_DEF_RACH_ConfigGeneric_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RACH_ConfigGeneric_specs_1 = { + sizeof(struct RACH_ConfigGeneric), + offsetof(struct RACH_ConfigGeneric, _asn_ctx), + asn_MAP_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_RACH_ConfigGeneric = { + "RACH-ConfigGeneric", + "RACH-ConfigGeneric", + &asn_OP_SEQUENCE, + asn_DEF_RACH_ConfigGeneric_tags_1, + sizeof(asn_DEF_RACH_ConfigGeneric_tags_1) + /sizeof(asn_DEF_RACH_ConfigGeneric_tags_1[0]), /* 1 */ + asn_DEF_RACH_ConfigGeneric_tags_1, /* Same as above */ + sizeof(asn_DEF_RACH_ConfigGeneric_tags_1) + /sizeof(asn_DEF_RACH_ConfigGeneric_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RACH_ConfigGeneric_1, + 8, /* Elements count */ + &asn_SPC_RACH_ConfigGeneric_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RACH-ConfigGeneric.h b/src/codec_utils/RRC/RACH-ConfigGeneric.h new file mode 100644 index 000000000..2375f2e05 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RACH_ConfigGeneric_H_ +#define _RACH_ConfigGeneric_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RACH_ConfigGeneric__msg1_FDM { + RACH_ConfigGeneric__msg1_FDM_one = 0, + RACH_ConfigGeneric__msg1_FDM_two = 1, + RACH_ConfigGeneric__msg1_FDM_four = 2, + RACH_ConfigGeneric__msg1_FDM_eight = 3 +} e_RACH_ConfigGeneric__msg1_FDM; +typedef enum RACH_ConfigGeneric__preambleTransMax { + RACH_ConfigGeneric__preambleTransMax_n3 = 0, + RACH_ConfigGeneric__preambleTransMax_n4 = 1, + RACH_ConfigGeneric__preambleTransMax_n5 = 2, + RACH_ConfigGeneric__preambleTransMax_n6 = 3, + RACH_ConfigGeneric__preambleTransMax_n7 = 4, + RACH_ConfigGeneric__preambleTransMax_n8 = 5, + RACH_ConfigGeneric__preambleTransMax_n10 = 6, + RACH_ConfigGeneric__preambleTransMax_n20 = 7, + RACH_ConfigGeneric__preambleTransMax_n50 = 8, + RACH_ConfigGeneric__preambleTransMax_n100 = 9, + RACH_ConfigGeneric__preambleTransMax_n200 = 10 +} e_RACH_ConfigGeneric__preambleTransMax; +typedef enum RACH_ConfigGeneric__powerRampingStep { + RACH_ConfigGeneric__powerRampingStep_dB0 = 0, + RACH_ConfigGeneric__powerRampingStep_dB2 = 1, + RACH_ConfigGeneric__powerRampingStep_dB4 = 2, + RACH_ConfigGeneric__powerRampingStep_dB6 = 3 +} e_RACH_ConfigGeneric__powerRampingStep; +typedef enum RACH_ConfigGeneric__ra_ResponseWindow { + RACH_ConfigGeneric__ra_ResponseWindow_sl1 = 0, + RACH_ConfigGeneric__ra_ResponseWindow_sl2 = 1, + RACH_ConfigGeneric__ra_ResponseWindow_sl4 = 2, + RACH_ConfigGeneric__ra_ResponseWindow_sl8 = 3, + RACH_ConfigGeneric__ra_ResponseWindow_sl10 = 4, + RACH_ConfigGeneric__ra_ResponseWindow_sl20 = 5, + RACH_ConfigGeneric__ra_ResponseWindow_sl40 = 6, + RACH_ConfigGeneric__ra_ResponseWindow_sl80 = 7 +} e_RACH_ConfigGeneric__ra_ResponseWindow; + +/* RACH-ConfigGeneric */ +typedef struct 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; +} RACH_ConfigGeneric_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_msg1_FDM_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_preambleTransMax_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_powerRampingStep_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ra_ResponseWindow_28; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RACH_ConfigGeneric; +extern asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigGeneric_specs_1; +extern asn_TYPE_member_t asn_MBR_RACH_ConfigGeneric_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RACH_ConfigGeneric_H_ */ +#include diff --git a/src/codec_utils/RRC/RAN-AreaCode.c b/src/codec_utils/RRC/RAN-AreaCode.c new file mode 100644 index 000000000..bfa852f5f --- /dev/null +++ b/src/codec_utils/RRC/RAN-AreaCode.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAN-AreaCode.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RAN_AreaCode_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RAN_AreaCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RAN_AreaCode = { + "RAN-AreaCode", + "RAN-AreaCode", + &asn_OP_NativeInteger, + asn_DEF_RAN_AreaCode_tags_1, + sizeof(asn_DEF_RAN_AreaCode_tags_1) + /sizeof(asn_DEF_RAN_AreaCode_tags_1[0]), /* 1 */ + asn_DEF_RAN_AreaCode_tags_1, /* Same as above */ + sizeof(asn_DEF_RAN_AreaCode_tags_1) + /sizeof(asn_DEF_RAN_AreaCode_tags_1[0]), /* 1 */ + { &asn_OER_type_RAN_AreaCode_constr_1, &asn_PER_type_RAN_AreaCode_constr_1, RAN_AreaCode_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RAN-AreaCode.h b/src/codec_utils/RRC/RAN-AreaCode.h new file mode 100644 index 000000000..fb588b77d --- /dev/null +++ b/src/codec_utils/RRC/RAN-AreaCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAN_AreaCode_H_ +#define _RAN_AreaCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RAN-AreaCode */ +typedef long RAN_AreaCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RAN_AreaCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RAN_AreaCode; +asn_struct_free_f RAN_AreaCode_free; +asn_struct_print_f RAN_AreaCode_print; +asn_constr_check_f RAN_AreaCode_constraint; +ber_type_decoder_f RAN_AreaCode_decode_ber; +der_type_encoder_f RAN_AreaCode_encode_der; +xer_type_decoder_f RAN_AreaCode_decode_xer; +xer_type_encoder_f RAN_AreaCode_encode_xer; +oer_type_decoder_f RAN_AreaCode_decode_oer; +oer_type_encoder_f RAN_AreaCode_encode_oer; +per_type_decoder_f RAN_AreaCode_decode_uper; +per_type_encoder_f RAN_AreaCode_encode_uper; +per_type_decoder_f RAN_AreaCode_decode_aper; +per_type_encoder_f RAN_AreaCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAN_AreaCode_H_ */ +#include diff --git a/src/codec_utils/RRC/RAN-AreaConfig.c b/src/codec_utils/RRC/RAN-AreaConfig.c new file mode 100644 index 000000000..b4f66cd41 --- /dev/null +++ b/src/codec_utils/RRC/RAN-AreaConfig.c @@ -0,0 +1,141 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAN-AreaConfig.h" + +static int +memb_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_oer_constraints_t asn_OER_type_ran_AreaCodeList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ran_AreaCodeList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_ran_AreaCodeList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RAN_AreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ran_AreaCodeList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_ran_AreaCodeList_specs_3 = { + sizeof(struct RAN_AreaConfig__ran_AreaCodeList), + offsetof(struct RAN_AreaConfig__ran_AreaCodeList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ran_AreaCodeList_3 = { + "ran-AreaCodeList", + "ran-AreaCodeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ran_AreaCodeList_tags_3, + sizeof(asn_DEF_ran_AreaCodeList_tags_3) + /sizeof(asn_DEF_ran_AreaCodeList_tags_3[0]) - 1, /* 1 */ + asn_DEF_ran_AreaCodeList_tags_3, /* Same as above */ + sizeof(asn_DEF_ran_AreaCodeList_tags_3) + /sizeof(asn_DEF_ran_AreaCodeList_tags_3[0]), /* 2 */ + { &asn_OER_type_ran_AreaCodeList_constr_3, &asn_PER_type_ran_AreaCodeList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ran_AreaCodeList_3, + 1, /* Single element */ + &asn_SPC_ran_AreaCodeList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RAN_AreaConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RAN_AreaConfig, trackingAreaCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TrackingAreaCode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "trackingAreaCode" + }, + { ATF_POINTER, 1, offsetof(struct RAN_AreaConfig, ran_AreaCodeList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ran_AreaCodeList_3, + 0, + { &asn_OER_memb_ran_AreaCodeList_constr_3, &asn_PER_memb_ran_AreaCodeList_constr_3, memb_ran_AreaCodeList_constraint_1 }, + 0, 0, /* No default value */ + "ran-AreaCodeList" + }, +}; +static const int asn_MAP_RAN_AreaConfig_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RAN_AreaConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RAN_AreaConfig_specs_1 = { + sizeof(struct RAN_AreaConfig), + offsetof(struct RAN_AreaConfig, _asn_ctx), + asn_MAP_RAN_AreaConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RAN_AreaConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RAN_AreaConfig = { + "RAN-AreaConfig", + "RAN-AreaConfig", + &asn_OP_SEQUENCE, + asn_DEF_RAN_AreaConfig_tags_1, + sizeof(asn_DEF_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_RAN_AreaConfig_tags_1[0]), /* 1 */ + asn_DEF_RAN_AreaConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_RAN_AreaConfig_tags_1) + /sizeof(asn_DEF_RAN_AreaConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RAN_AreaConfig_1, + 2, /* Elements count */ + &asn_SPC_RAN_AreaConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RAN-AreaConfig.h b/src/codec_utils/RRC/RAN-AreaConfig.h new file mode 100644 index 000000000..7ba551df6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAN_AreaConfig_H_ +#define _RAN_AreaConfig_H_ + + +#include + +/* Including external dependencies */ +#include "TrackingAreaCode.h" +#include "RAN-AreaCode.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RAN-AreaConfig */ +typedef struct RAN_AreaConfig { + TrackingAreaCode_t trackingAreaCode; + struct RAN_AreaConfig__ran_AreaCodeList { + A_SEQUENCE_OF(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; +} RAN_AreaConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RAN_AreaConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_RAN_AreaConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_RAN_AreaConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAN_AreaConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/RAN-NotificationAreaInfo.c b/src/codec_utils/RRC/RAN-NotificationAreaInfo.c new file mode 100644 index 000000000..217f6c38b --- /dev/null +++ b/src/codec_utils/RRC/RAN-NotificationAreaInfo.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAN-NotificationAreaInfo.h" + +#include "PLMN-RAN-AreaCellList.h" +#include "PLMN-RAN-AreaConfigList.h" +static asn_oer_constraints_t asn_OER_type_RAN_NotificationAreaInfo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_RAN_NotificationAreaInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct RAN_NotificationAreaInfo, choice.cellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_RAN_AreaCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellList" + }, + { ATF_POINTER, 0, offsetof(struct RAN_NotificationAreaInfo, choice.ran_AreaConfigList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_RAN_AreaConfigList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-AreaConfigList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RAN_NotificationAreaInfo_specs_1 = { + sizeof(struct RAN_NotificationAreaInfo), + offsetof(struct RAN_NotificationAreaInfo, _asn_ctx), + offsetof(struct RAN_NotificationAreaInfo, present), + sizeof(((struct RAN_NotificationAreaInfo *)0)->present), + asn_MAP_RAN_NotificationAreaInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_RAN_NotificationAreaInfo_constr_1, &asn_PER_type_RAN_NotificationAreaInfo_constr_1, CHOICE_constraint }, + asn_MBR_RAN_NotificationAreaInfo_1, + 2, /* Elements count */ + &asn_SPC_RAN_NotificationAreaInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RAN-NotificationAreaInfo.h b/src/codec_utils/RRC/RAN-NotificationAreaInfo.h new file mode 100644 index 000000000..f709d7a6d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAN_NotificationAreaInfo_H_ +#define _RAN_NotificationAreaInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RAN_NotificationAreaInfo_PR { + RAN_NotificationAreaInfo_PR_NOTHING, /* No components present */ + RAN_NotificationAreaInfo_PR_cellList, + RAN_NotificationAreaInfo_PR_ran_AreaConfigList + /* Extensions may appear below */ + +} RAN_NotificationAreaInfo_PR; + +/* Forward declarations */ +struct PLMN_RAN_AreaCellList; +struct PLMN_RAN_AreaConfigList; + +/* RAN-NotificationAreaInfo */ +typedef struct RAN_NotificationAreaInfo { + RAN_NotificationAreaInfo_PR present; + union RAN_NotificationAreaInfo_u { + struct PLMN_RAN_AreaCellList *cellList; + struct 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; +} RAN_NotificationAreaInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RAN_NotificationAreaInfo; +extern asn_CHOICE_specifics_t asn_SPC_RAN_NotificationAreaInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_RAN_NotificationAreaInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_RAN_NotificationAreaInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAN_NotificationAreaInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/RAT-Type.c b/src/codec_utils/RRC/RAT-Type.c new file mode 100644 index 000000000..30123eaae --- /dev/null +++ b/src/codec_utils/RRC/RAT-Type.c @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RAT-Type.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RAT_Type_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_RAT_Type_specs_1 = { + asn_MAP_RAT_Type_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_RAT_Type_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RAT_Type = { + "RAT-Type", + "RAT-Type", + &asn_OP_NativeEnumerated, + asn_DEF_RAT_Type_tags_1, + sizeof(asn_DEF_RAT_Type_tags_1) + /sizeof(asn_DEF_RAT_Type_tags_1[0]), /* 1 */ + asn_DEF_RAT_Type_tags_1, /* Same as above */ + sizeof(asn_DEF_RAT_Type_tags_1) + /sizeof(asn_DEF_RAT_Type_tags_1[0]), /* 1 */ + { &asn_OER_type_RAT_Type_constr_1, &asn_PER_type_RAT_Type_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_RAT_Type_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RAT-Type.h b/src/codec_utils/RRC/RAT-Type.h new file mode 100644 index 000000000..40e344e11 --- /dev/null +++ b/src/codec_utils/RRC/RAT-Type.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RAT_Type_H_ +#define _RAT_Type_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RAT_Type { + RAT_Type_nr = 0, + RAT_Type_eutra_nr = 1, + RAT_Type_eutra = 2, + RAT_Type_spare1 = 3 + /* + * Enumeration is extensible + */ +} e_RAT_Type; + +/* RAT-Type */ +typedef long RAT_Type_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RAT_Type_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RAT_Type; +extern const asn_INTEGER_specifics_t asn_SPC_RAT_Type_specs_1; +asn_struct_free_f RAT_Type_free; +asn_struct_print_f RAT_Type_print; +asn_constr_check_f RAT_Type_constraint; +ber_type_decoder_f RAT_Type_decode_ber; +der_type_encoder_f RAT_Type_encode_der; +xer_type_decoder_f RAT_Type_decode_xer; +xer_type_encoder_f RAT_Type_encode_xer; +oer_type_decoder_f RAT_Type_decode_oer; +oer_type_encoder_f RAT_Type_encode_oer; +per_type_decoder_f RAT_Type_decode_uper; +per_type_encoder_f RAT_Type_encode_uper; +per_type_decoder_f RAT_Type_decode_aper; +per_type_encoder_f RAT_Type_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RAT_Type_H_ */ +#include diff --git a/src/codec_utils/RRC/RF-Parameters.c b/src/codec_utils/RRC/RF-Parameters.c new file mode 100644 index 000000000..c77d8d31c --- /dev/null +++ b/src/codec_utils/RRC/RF-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RF-Parameters.h" + +#include "BandCombinationList.h" +#include "FreqBandList.h" +#include "BandNR.h" +static int +memb_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_oer_constraints_t asn_OER_type_supportedBandListNR_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_supportedBandListNR_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_supportedBandListNR_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BandNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_supportedBandListNR_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_supportedBandListNR_specs_2 = { + sizeof(struct RF_Parameters__supportedBandListNR), + offsetof(struct RF_Parameters__supportedBandListNR, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_supportedBandListNR_2 = { + "supportedBandListNR", + "supportedBandListNR", + &asn_OP_SEQUENCE_OF, + asn_DEF_supportedBandListNR_tags_2, + sizeof(asn_DEF_supportedBandListNR_tags_2) + /sizeof(asn_DEF_supportedBandListNR_tags_2[0]) - 1, /* 1 */ + asn_DEF_supportedBandListNR_tags_2, /* Same as above */ + sizeof(asn_DEF_supportedBandListNR_tags_2) + /sizeof(asn_DEF_supportedBandListNR_tags_2[0]), /* 2 */ + { &asn_OER_type_supportedBandListNR_constr_2, &asn_PER_type_supportedBandListNR_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_supportedBandListNR_2, + 1, /* Single element */ + &asn_SPC_supportedBandListNR_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RF_Parameters_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RF_Parameters, supportedBandListNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_supportedBandListNR_2, + 0, + { &asn_OER_memb_supportedBandListNR_constr_2, &asn_PER_memb_supportedBandListNR_constr_2, memb_supportedBandListNR_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListNR" + }, + { ATF_POINTER, 2, offsetof(struct RF_Parameters, supportedBandCombinationList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList" + }, + { ATF_POINTER, 1, offsetof(struct RF_Parameters, appliedFreqBandListFilter), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "appliedFreqBandListFilter" + }, +}; +static const int asn_MAP_RF_Parameters_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RF_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_RF_Parameters_specs_1 = { + sizeof(struct RF_Parameters), + offsetof(struct RF_Parameters, _asn_ctx), + asn_MAP_RF_Parameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RF_Parameters_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RF_Parameters = { + "RF-Parameters", + "RF-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_RF_Parameters_tags_1, + sizeof(asn_DEF_RF_Parameters_tags_1) + /sizeof(asn_DEF_RF_Parameters_tags_1[0]), /* 1 */ + asn_DEF_RF_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_RF_Parameters_tags_1) + /sizeof(asn_DEF_RF_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RF_Parameters_1, + 3, /* Elements count */ + &asn_SPC_RF_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RF-Parameters.h b/src/codec_utils/RRC/RF-Parameters.h new file mode 100644 index 000000000..e68398c34 --- /dev/null +++ b/src/codec_utils/RRC/RF-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RF_Parameters_H_ +#define _RF_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombinationList; +struct FreqBandList; +struct BandNR; + +/* RF-Parameters */ +typedef struct RF_Parameters { + struct RF_Parameters__supportedBandListNR { + A_SEQUENCE_OF(struct BandNR) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } supportedBandListNR; + struct BandCombinationList *supportedBandCombinationList; /* OPTIONAL */ + struct FreqBandList *appliedFreqBandListFilter; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RF_Parameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RF_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_RF_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_RF_Parameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RF_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/RF-ParametersMRDC.c b/src/codec_utils/RRC/RF-ParametersMRDC.c new file mode 100644 index 000000000..49bd681f4 --- /dev/null +++ b/src/codec_utils/RRC/RF-ParametersMRDC.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RF-ParametersMRDC.h" + +#include "BandCombinationList.h" +#include "FreqBandList.h" +asn_TYPE_member_t asn_MBR_RF_ParametersMRDC_1[] = { + { ATF_POINTER, 2, offsetof(struct RF_ParametersMRDC, supportedBandCombinationList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BandCombinationList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedBandCombinationList" + }, + { ATF_POINTER, 1, offsetof(struct RF_ParametersMRDC, appliedFreqBandListFilter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "appliedFreqBandListFilter" + }, +}; +static const int asn_MAP_RF_ParametersMRDC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RF_ParametersMRDC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_RF_ParametersMRDC_specs_1 = { + sizeof(struct RF_ParametersMRDC), + offsetof(struct RF_ParametersMRDC, _asn_ctx), + asn_MAP_RF_ParametersMRDC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RF_ParametersMRDC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RF_ParametersMRDC = { + "RF-ParametersMRDC", + "RF-ParametersMRDC", + &asn_OP_SEQUENCE, + asn_DEF_RF_ParametersMRDC_tags_1, + sizeof(asn_DEF_RF_ParametersMRDC_tags_1) + /sizeof(asn_DEF_RF_ParametersMRDC_tags_1[0]), /* 1 */ + asn_DEF_RF_ParametersMRDC_tags_1, /* Same as above */ + sizeof(asn_DEF_RF_ParametersMRDC_tags_1) + /sizeof(asn_DEF_RF_ParametersMRDC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RF_ParametersMRDC_1, + 2, /* Elements count */ + &asn_SPC_RF_ParametersMRDC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RF-ParametersMRDC.h b/src/codec_utils/RRC/RF-ParametersMRDC.h new file mode 100644 index 000000000..15b57a39f --- /dev/null +++ b/src/codec_utils/RRC/RF-ParametersMRDC.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RF_ParametersMRDC_H_ +#define _RF_ParametersMRDC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct BandCombinationList; +struct FreqBandList; + +/* RF-ParametersMRDC */ +typedef struct RF_ParametersMRDC { + struct BandCombinationList *supportedBandCombinationList; /* OPTIONAL */ + struct FreqBandList *appliedFreqBandListFilter; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RF_ParametersMRDC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RF_ParametersMRDC; +extern asn_SEQUENCE_specifics_t asn_SPC_RF_ParametersMRDC_specs_1; +extern asn_TYPE_member_t asn_MBR_RF_ParametersMRDC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RF_ParametersMRDC_H_ */ +#include diff --git a/src/codec_utils/RRC/RLC-BearerConfig.c b/src/codec_utils/RRC/RLC-BearerConfig.c new file mode 100644 index 000000000..18c7fabdd --- /dev/null +++ b/src/codec_utils/RRC/RLC-BearerConfig.c @@ -0,0 +1,198 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RLC-BearerConfig.h" + +#include "RLC-Config.h" +#include "LogicalChannelConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_servedRadioBearer_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_reestablishRLC_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_servedRadioBearer_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_BearerConfig__servedRadioBearer, choice.srb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLC_BearerConfig__servedRadioBearer, choice.drb_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-Identity" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_servedRadioBearer_specs_3 = { + sizeof(struct RLC_BearerConfig__servedRadioBearer), + offsetof(struct RLC_BearerConfig__servedRadioBearer, _asn_ctx), + offsetof(struct RLC_BearerConfig__servedRadioBearer, present), + sizeof(((struct RLC_BearerConfig__servedRadioBearer *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_servedRadioBearer_constr_3, &asn_PER_type_servedRadioBearer_constr_3, CHOICE_constraint }, + asn_MBR_servedRadioBearer_3, + 2, /* Elements count */ + &asn_SPC_servedRadioBearer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_reestablishRLC_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_reestablishRLC_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reestablishRLC_specs_6 = { + asn_MAP_reestablishRLC_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reestablishRLC_6 = { + "reestablishRLC", + "reestablishRLC", + &asn_OP_NativeEnumerated, + asn_DEF_reestablishRLC_tags_6, + sizeof(asn_DEF_reestablishRLC_tags_6) + /sizeof(asn_DEF_reestablishRLC_tags_6[0]) - 1, /* 1 */ + asn_DEF_reestablishRLC_tags_6, /* Same as above */ + sizeof(asn_DEF_reestablishRLC_tags_6) + /sizeof(asn_DEF_reestablishRLC_tags_6[0]), /* 2 */ + { &asn_OER_type_reestablishRLC_constr_6, &asn_PER_type_reestablishRLC_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reestablishRLC_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLC_BearerConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_BearerConfig, logicalChannelIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalChannelIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "logicalChannelIdentity" + }, + { ATF_POINTER, 4, offsetof(struct RLC_BearerConfig, servedRadioBearer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_servedRadioBearer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servedRadioBearer" + }, + { ATF_POINTER, 3, offsetof(struct RLC_BearerConfig, reestablishRLC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reestablishRLC_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishRLC" + }, + { ATF_POINTER, 2, offsetof(struct RLC_BearerConfig, rlc_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RLC_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlc-Config" + }, + { ATF_POINTER, 1, offsetof(struct RLC_BearerConfig, mac_LogicalChannelConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LogicalChannelConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-LogicalChannelConfig" + }, +}; +static const int asn_MAP_RLC_BearerConfig_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RLC_BearerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RLC_BearerConfig_specs_1 = { + sizeof(struct RLC_BearerConfig), + offsetof(struct RLC_BearerConfig, _asn_ctx), + asn_MAP_RLC_BearerConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RLC_BearerConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLC_BearerConfig = { + "RLC-BearerConfig", + "RLC-BearerConfig", + &asn_OP_SEQUENCE, + asn_DEF_RLC_BearerConfig_tags_1, + sizeof(asn_DEF_RLC_BearerConfig_tags_1) + /sizeof(asn_DEF_RLC_BearerConfig_tags_1[0]), /* 1 */ + asn_DEF_RLC_BearerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_RLC_BearerConfig_tags_1) + /sizeof(asn_DEF_RLC_BearerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLC_BearerConfig_1, + 5, /* Elements count */ + &asn_SPC_RLC_BearerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RLC-BearerConfig.h b/src/codec_utils/RRC/RLC-BearerConfig.h new file mode 100644 index 000000000..3a86e75ba --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLC_BearerConfig_H_ +#define _RLC_BearerConfig_H_ + + +#include + +/* Including external dependencies */ +#include "LogicalChannelIdentity.h" +#include +#include "SRB-Identity.h" +#include "DRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RLC_BearerConfig__servedRadioBearer_PR { + RLC_BearerConfig__servedRadioBearer_PR_NOTHING, /* No components present */ + RLC_BearerConfig__servedRadioBearer_PR_srb_Identity, + RLC_BearerConfig__servedRadioBearer_PR_drb_Identity +} RLC_BearerConfig__servedRadioBearer_PR; +typedef enum RLC_BearerConfig__reestablishRLC { + RLC_BearerConfig__reestablishRLC_true = 0 +} e_RLC_BearerConfig__reestablishRLC; + +/* Forward declarations */ +struct RLC_Config; +struct LogicalChannelConfig; + +/* RLC-BearerConfig */ +typedef struct RLC_BearerConfig { + LogicalChannelIdentity_t logicalChannelIdentity; + struct RLC_BearerConfig__servedRadioBearer { + RLC_BearerConfig__servedRadioBearer_PR present; + union RLC_BearerConfig__servedRadioBearer_u { + SRB_Identity_t srb_Identity; + DRB_Identity_t drb_Identity; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *servedRadioBearer; + long *reestablishRLC; /* OPTIONAL */ + struct RLC_Config *rlc_Config; /* OPTIONAL */ + struct LogicalChannelConfig *mac_LogicalChannelConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RLC_BearerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reestablishRLC_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RLC_BearerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_RLC_BearerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_RLC_BearerConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLC_BearerConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/RLC-Config.c b/src/codec_utils/RRC/RLC-Config.c new file mode 100644 index 000000000..8f2271bcb --- /dev/null +++ b/src/codec_utils/RRC/RLC-Config.c @@ -0,0 +1,277 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RLC-Config.h" + +static asn_oer_constraints_t asn_OER_type_RLC_Config_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_am_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__am, ul_AM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UL_AM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-AM-RLC" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__am, dl_AM_RLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DL_AM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-AM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_am_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_am_specs_2 = { + sizeof(struct RLC_Config__am), + offsetof(struct RLC_Config__am, _asn_ctx), + asn_MAP_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_am_2 = { + "am", + "am", + &asn_OP_SEQUENCE, + asn_DEF_am_tags_2, + sizeof(asn_DEF_am_tags_2) + /sizeof(asn_DEF_am_tags_2[0]) - 1, /* 1 */ + asn_DEF_am_tags_2, /* Same as above */ + sizeof(asn_DEF_am_tags_2) + /sizeof(asn_DEF_am_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_am_2, + 2, /* Elements count */ + &asn_SPC_am_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_um_Bi_Directional_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__um_Bi_Directional, ul_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-UM-RLC" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__um_Bi_Directional, dl_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_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_um_Bi_Directional_specs_5 = { + sizeof(struct RLC_Config__um_Bi_Directional), + offsetof(struct RLC_Config__um_Bi_Directional, _asn_ctx), + asn_MAP_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_um_Bi_Directional_5 = { + "um-Bi-Directional", + "um-Bi-Directional", + &asn_OP_SEQUENCE, + asn_DEF_um_Bi_Directional_tags_5, + sizeof(asn_DEF_um_Bi_Directional_tags_5) + /sizeof(asn_DEF_um_Bi_Directional_tags_5[0]) - 1, /* 1 */ + asn_DEF_um_Bi_Directional_tags_5, /* Same as above */ + sizeof(asn_DEF_um_Bi_Directional_tags_5) + /sizeof(asn_DEF_um_Bi_Directional_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_um_Bi_Directional_5, + 2, /* Elements count */ + &asn_SPC_um_Bi_Directional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_um_Uni_Directional_UL_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__um_Uni_Directional_UL, ul_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ul-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_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_um_Uni_Directional_UL_specs_8 = { + sizeof(struct RLC_Config__um_Uni_Directional_UL), + offsetof(struct RLC_Config__um_Uni_Directional_UL, _asn_ctx), + asn_MAP_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_um_Uni_Directional_UL_8 = { + "um-Uni-Directional-UL", + "um-Uni-Directional-UL", + &asn_OP_SEQUENCE, + asn_DEF_um_Uni_Directional_UL_tags_8, + sizeof(asn_DEF_um_Uni_Directional_UL_tags_8) + /sizeof(asn_DEF_um_Uni_Directional_UL_tags_8[0]) - 1, /* 1 */ + asn_DEF_um_Uni_Directional_UL_tags_8, /* Same as above */ + sizeof(asn_DEF_um_Uni_Directional_UL_tags_8) + /sizeof(asn_DEF_um_Uni_Directional_UL_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_um_Uni_Directional_UL_8, + 1, /* Elements count */ + &asn_SPC_um_Uni_Directional_UL_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_um_Uni_Directional_DL_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLC_Config__um_Uni_Directional_DL, dl_UM_RLC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DL_UM_RLC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UM-RLC" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_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_um_Uni_Directional_DL_specs_10 = { + sizeof(struct RLC_Config__um_Uni_Directional_DL), + offsetof(struct RLC_Config__um_Uni_Directional_DL, _asn_ctx), + asn_MAP_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_um_Uni_Directional_DL_10 = { + "um-Uni-Directional-DL", + "um-Uni-Directional-DL", + &asn_OP_SEQUENCE, + asn_DEF_um_Uni_Directional_DL_tags_10, + sizeof(asn_DEF_um_Uni_Directional_DL_tags_10) + /sizeof(asn_DEF_um_Uni_Directional_DL_tags_10[0]) - 1, /* 1 */ + asn_DEF_um_Uni_Directional_DL_tags_10, /* Same as above */ + sizeof(asn_DEF_um_Uni_Directional_DL_tags_10) + /sizeof(asn_DEF_um_Uni_Directional_DL_tags_10[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_um_Uni_Directional_DL_10, + 1, /* Elements count */ + &asn_SPC_um_Uni_Directional_DL_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLC_Config_1[] = { + { ATF_POINTER, 0, offsetof(struct RLC_Config, choice.am), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_am_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "am" + }, + { ATF_POINTER, 0, offsetof(struct RLC_Config, choice.um_Bi_Directional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_um_Bi_Directional_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-Bi-Directional" + }, + { ATF_POINTER, 0, offsetof(struct RLC_Config, choice.um_Uni_Directional_UL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_um_Uni_Directional_UL_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-Uni-Directional-UL" + }, + { ATF_POINTER, 0, offsetof(struct RLC_Config, choice.um_Uni_Directional_DL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_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_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_RLC_Config_specs_1 = { + sizeof(struct RLC_Config), + offsetof(struct RLC_Config, _asn_ctx), + offsetof(struct RLC_Config, present), + sizeof(((struct RLC_Config *)0)->present), + asn_MAP_RLC_Config_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, + 4 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_RLC_Config_constr_1, &asn_PER_type_RLC_Config_constr_1, CHOICE_constraint }, + asn_MBR_RLC_Config_1, + 4, /* Elements count */ + &asn_SPC_RLC_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RLC-Config.h b/src/codec_utils/RRC/RLC-Config.h new file mode 100644 index 000000000..a752f871f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLC_Config_H_ +#define _RLC_Config_H_ + + +#include + +/* Including external dependencies */ +#include "UL-AM-RLC.h" +#include "DL-AM-RLC.h" +#include +#include "UL-UM-RLC.h" +#include "DL-UM-RLC.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RLC_Config_PR { + RLC_Config_PR_NOTHING, /* No components present */ + RLC_Config_PR_am, + RLC_Config_PR_um_Bi_Directional, + RLC_Config_PR_um_Uni_Directional_UL, + RLC_Config_PR_um_Uni_Directional_DL + /* Extensions may appear below */ + +} RLC_Config_PR; + +/* RLC-Config */ +typedef struct RLC_Config { + RLC_Config_PR present; + union RLC_Config_u { + struct RLC_Config__am { + UL_AM_RLC_t ul_AM_RLC; + DL_AM_RLC_t dl_AM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *am; + struct RLC_Config__um_Bi_Directional { + UL_UM_RLC_t ul_UM_RLC; + DL_UM_RLC_t dl_UM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *um_Bi_Directional; + struct RLC_Config__um_Uni_Directional_UL { + UL_UM_RLC_t ul_UM_RLC; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *um_Uni_Directional_UL; + struct RLC_Config__um_Uni_Directional_DL { + 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; +} RLC_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RLC_Config; +extern asn_CHOICE_specifics_t asn_SPC_RLC_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_RLC_Config_1[4]; +extern asn_per_constraints_t asn_PER_type_RLC_Config_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLC_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/RLC-Parameters.c b/src/codec_utils/RRC/RLC-Parameters.c new file mode 100644 index 000000000..96501249c --- /dev/null +++ b/src/codec_utils/RRC/RLC-Parameters.c @@ -0,0 +1,213 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_am_WithShortSN_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_um_WithShortSN_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_um_WithLongSN_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_am_WithShortSN_value2enum_2[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_am_WithShortSN_enum2value_2[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_am_WithShortSN_specs_2 = { + asn_MAP_am_WithShortSN_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_am_WithShortSN_2 = { + "am-WithShortSN", + "am-WithShortSN", + &asn_OP_NativeEnumerated, + asn_DEF_am_WithShortSN_tags_2, + sizeof(asn_DEF_am_WithShortSN_tags_2) + /sizeof(asn_DEF_am_WithShortSN_tags_2[0]) - 1, /* 1 */ + asn_DEF_am_WithShortSN_tags_2, /* Same as above */ + sizeof(asn_DEF_am_WithShortSN_tags_2) + /sizeof(asn_DEF_am_WithShortSN_tags_2[0]), /* 2 */ + { &asn_OER_type_am_WithShortSN_constr_2, &asn_PER_type_am_WithShortSN_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_am_WithShortSN_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_um_WithShortSN_value2enum_4[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_um_WithShortSN_enum2value_4[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_um_WithShortSN_specs_4 = { + asn_MAP_um_WithShortSN_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_um_WithShortSN_4 = { + "um-WithShortSN", + "um-WithShortSN", + &asn_OP_NativeEnumerated, + asn_DEF_um_WithShortSN_tags_4, + sizeof(asn_DEF_um_WithShortSN_tags_4) + /sizeof(asn_DEF_um_WithShortSN_tags_4[0]) - 1, /* 1 */ + asn_DEF_um_WithShortSN_tags_4, /* Same as above */ + sizeof(asn_DEF_um_WithShortSN_tags_4) + /sizeof(asn_DEF_um_WithShortSN_tags_4[0]), /* 2 */ + { &asn_OER_type_um_WithShortSN_constr_4, &asn_PER_type_um_WithShortSN_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_um_WithShortSN_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_um_WithLongSN_value2enum_6[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_um_WithLongSN_enum2value_6[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_um_WithLongSN_specs_6 = { + asn_MAP_um_WithLongSN_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_um_WithLongSN_6 = { + "um-WithLongSN", + "um-WithLongSN", + &asn_OP_NativeEnumerated, + asn_DEF_um_WithLongSN_tags_6, + sizeof(asn_DEF_um_WithLongSN_tags_6) + /sizeof(asn_DEF_um_WithLongSN_tags_6[0]) - 1, /* 1 */ + asn_DEF_um_WithLongSN_tags_6, /* Same as above */ + sizeof(asn_DEF_um_WithLongSN_tags_6) + /sizeof(asn_DEF_um_WithLongSN_tags_6[0]), /* 2 */ + { &asn_OER_type_um_WithLongSN_constr_6, &asn_PER_type_um_WithLongSN_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_um_WithLongSN_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLC_Parameters_1[] = { + { ATF_POINTER, 3, offsetof(struct RLC_Parameters, am_WithShortSN), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_am_WithShortSN_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "am-WithShortSN" + }, + { ATF_POINTER, 2, offsetof(struct RLC_Parameters, um_WithShortSN), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_um_WithShortSN_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-WithShortSN" + }, + { ATF_POINTER, 1, offsetof(struct RLC_Parameters, um_WithLongSN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_um_WithLongSN_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "um-WithLongSN" + }, +}; +static const int asn_MAP_RLC_Parameters_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RLC_Parameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RLC_Parameters_specs_1 = { + sizeof(struct RLC_Parameters), + offsetof(struct RLC_Parameters, _asn_ctx), + asn_MAP_RLC_Parameters_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RLC_Parameters_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLC_Parameters = { + "RLC-Parameters", + "RLC-Parameters", + &asn_OP_SEQUENCE, + asn_DEF_RLC_Parameters_tags_1, + sizeof(asn_DEF_RLC_Parameters_tags_1) + /sizeof(asn_DEF_RLC_Parameters_tags_1[0]), /* 1 */ + asn_DEF_RLC_Parameters_tags_1, /* Same as above */ + sizeof(asn_DEF_RLC_Parameters_tags_1) + /sizeof(asn_DEF_RLC_Parameters_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLC_Parameters_1, + 3, /* Elements count */ + &asn_SPC_RLC_Parameters_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RLC-Parameters.h b/src/codec_utils/RRC/RLC-Parameters.h new file mode 100644 index 000000000..705b405c5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLC_Parameters_H_ +#define _RLC_Parameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RLC_Parameters__am_WithShortSN { + RLC_Parameters__am_WithShortSN_supported = 0 +} e_RLC_Parameters__am_WithShortSN; +typedef enum RLC_Parameters__um_WithShortSN { + RLC_Parameters__um_WithShortSN_supported = 0 +} e_RLC_Parameters__um_WithShortSN; +typedef enum RLC_Parameters__um_WithLongSN { + RLC_Parameters__um_WithLongSN_supported = 0 +} e_RLC_Parameters__um_WithLongSN; + +/* RLC-Parameters */ +typedef struct 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; +} RLC_Parameters_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_am_WithShortSN_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_um_WithShortSN_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_um_WithLongSN_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RLC_Parameters; +extern asn_SEQUENCE_specifics_t asn_SPC_RLC_Parameters_specs_1; +extern asn_TYPE_member_t asn_MBR_RLC_Parameters_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLC_Parameters_H_ */ +#include diff --git a/src/codec_utils/RRC/RLF-TimersAndConstants.c b/src/codec_utils/RRC/RLF-TimersAndConstants.c new file mode 100644 index 000000000..a9e798191 --- /dev/null +++ b/src/codec_utils/RRC/RLF-TimersAndConstants.c @@ -0,0 +1,369 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_t310_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n310_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n311_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t311_v1530_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_t310_specs_2 = { + asn_MAP_t310_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t310_2 = { + "t310", + "t310", + &asn_OP_NativeEnumerated, + asn_DEF_t310_tags_2, + sizeof(asn_DEF_t310_tags_2) + /sizeof(asn_DEF_t310_tags_2[0]) - 1, /* 1 */ + asn_DEF_t310_tags_2, /* Same as above */ + sizeof(asn_DEF_t310_tags_2) + /sizeof(asn_DEF_t310_tags_2[0]), /* 2 */ + { &asn_OER_type_t310_constr_2, &asn_PER_type_t310_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t310_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_n310_specs_12 = { + asn_MAP_n310_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n310_12 = { + "n310", + "n310", + &asn_OP_NativeEnumerated, + asn_DEF_n310_tags_12, + sizeof(asn_DEF_n310_tags_12) + /sizeof(asn_DEF_n310_tags_12[0]) - 1, /* 1 */ + asn_DEF_n310_tags_12, /* Same as above */ + sizeof(asn_DEF_n310_tags_12) + /sizeof(asn_DEF_n310_tags_12[0]), /* 2 */ + { &asn_OER_type_n310_constr_12, &asn_PER_type_n310_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n310_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_n311_specs_21 = { + asn_MAP_n311_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n311_21 = { + "n311", + "n311", + &asn_OP_NativeEnumerated, + asn_DEF_n311_tags_21, + sizeof(asn_DEF_n311_tags_21) + /sizeof(asn_DEF_n311_tags_21[0]) - 1, /* 1 */ + asn_DEF_n311_tags_21, /* Same as above */ + sizeof(asn_DEF_n311_tags_21) + /sizeof(asn_DEF_n311_tags_21[0]), /* 2 */ + { &asn_OER_type_n311_constr_21, &asn_PER_type_n311_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n311_specs_21 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t311_v1530_specs_32 = { + asn_MAP_t311_v1530_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t311_v1530_32 = { + "t311-v1530", + "t311-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_t311_v1530_tags_32, + sizeof(asn_DEF_t311_v1530_tags_32) + /sizeof(asn_DEF_t311_v1530_tags_32[0]) - 1, /* 1 */ + asn_DEF_t311_v1530_tags_32, /* Same as above */ + sizeof(asn_DEF_t311_v1530_tags_32) + /sizeof(asn_DEF_t311_v1530_tags_32[0]), /* 2 */ + { &asn_OER_type_t311_v1530_constr_32, &asn_PER_type_t311_v1530_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t311_v1530_specs_32 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLF_TimersAndConstants__ext1, t311_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t311_v1530_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t311-v1530" + }, +}; +static const ber_tlv_tag_t asn_DEF_ext1_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_31[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* t311-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_31 = { + sizeof(struct RLF_TimersAndConstants__ext1), + offsetof(struct RLF_TimersAndConstants__ext1, _asn_ctx), + asn_MAP_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_ext1_31 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_31, + sizeof(asn_DEF_ext1_tags_31) + /sizeof(asn_DEF_ext1_tags_31[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_31, /* Same as above */ + sizeof(asn_DEF_ext1_tags_31) + /sizeof(asn_DEF_ext1_tags_31[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_31, + 1, /* Elements count */ + &asn_SPC_ext1_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RLF_TimersAndConstants_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RLF_TimersAndConstants, t310), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t310_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t310" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLF_TimersAndConstants, n310), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n310_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n310" + }, + { ATF_NOFLAGS, 0, offsetof(struct RLF_TimersAndConstants, n311), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n311_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n311" + }, + { ATF_POINTER, 1, offsetof(struct RLF_TimersAndConstants, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_RLF_TimersAndConstants_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_RLF_TimersAndConstants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RLF_TimersAndConstants_specs_1 = { + sizeof(struct RLF_TimersAndConstants), + offsetof(struct RLF_TimersAndConstants, _asn_ctx), + asn_MAP_RLF_TimersAndConstants_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RLF_TimersAndConstants_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RLF_TimersAndConstants = { + "RLF-TimersAndConstants", + "RLF-TimersAndConstants", + &asn_OP_SEQUENCE, + asn_DEF_RLF_TimersAndConstants_tags_1, + sizeof(asn_DEF_RLF_TimersAndConstants_tags_1) + /sizeof(asn_DEF_RLF_TimersAndConstants_tags_1[0]), /* 1 */ + asn_DEF_RLF_TimersAndConstants_tags_1, /* Same as above */ + sizeof(asn_DEF_RLF_TimersAndConstants_tags_1) + /sizeof(asn_DEF_RLF_TimersAndConstants_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RLF_TimersAndConstants_1, + 4, /* Elements count */ + &asn_SPC_RLF_TimersAndConstants_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RLF-TimersAndConstants.h b/src/codec_utils/RRC/RLF-TimersAndConstants.h new file mode 100644 index 000000000..7decc465f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RLF_TimersAndConstants_H_ +#define _RLF_TimersAndConstants_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RLF_TimersAndConstants__t310 { + RLF_TimersAndConstants__t310_ms0 = 0, + RLF_TimersAndConstants__t310_ms50 = 1, + RLF_TimersAndConstants__t310_ms100 = 2, + RLF_TimersAndConstants__t310_ms200 = 3, + RLF_TimersAndConstants__t310_ms500 = 4, + RLF_TimersAndConstants__t310_ms1000 = 5, + RLF_TimersAndConstants__t310_ms2000 = 6, + RLF_TimersAndConstants__t310_ms4000 = 7, + RLF_TimersAndConstants__t310_ms6000 = 8 +} e_RLF_TimersAndConstants__t310; +typedef enum RLF_TimersAndConstants__n310 { + RLF_TimersAndConstants__n310_n1 = 0, + RLF_TimersAndConstants__n310_n2 = 1, + RLF_TimersAndConstants__n310_n3 = 2, + RLF_TimersAndConstants__n310_n4 = 3, + RLF_TimersAndConstants__n310_n6 = 4, + RLF_TimersAndConstants__n310_n8 = 5, + RLF_TimersAndConstants__n310_n10 = 6, + RLF_TimersAndConstants__n310_n20 = 7 +} e_RLF_TimersAndConstants__n310; +typedef enum RLF_TimersAndConstants__n311 { + RLF_TimersAndConstants__n311_n1 = 0, + RLF_TimersAndConstants__n311_n2 = 1, + RLF_TimersAndConstants__n311_n3 = 2, + RLF_TimersAndConstants__n311_n4 = 3, + RLF_TimersAndConstants__n311_n5 = 4, + RLF_TimersAndConstants__n311_n6 = 5, + RLF_TimersAndConstants__n311_n8 = 6, + RLF_TimersAndConstants__n311_n10 = 7 +} e_RLF_TimersAndConstants__n311; +typedef enum RLF_TimersAndConstants__ext1__t311_v1530 { + RLF_TimersAndConstants__ext1__t311_v1530_ms1000 = 0, + RLF_TimersAndConstants__ext1__t311_v1530_ms3000 = 1, + RLF_TimersAndConstants__ext1__t311_v1530_ms5000 = 2, + RLF_TimersAndConstants__ext1__t311_v1530_ms10000 = 3, + RLF_TimersAndConstants__ext1__t311_v1530_ms15000 = 4, + RLF_TimersAndConstants__ext1__t311_v1530_ms20000 = 5, + RLF_TimersAndConstants__ext1__t311_v1530_ms30000 = 6 +} e_RLF_TimersAndConstants__ext1__t311_v1530; + +/* RLF-TimersAndConstants */ +typedef struct RLF_TimersAndConstants { + long t310; + long n310; + long n311; + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} RLF_TimersAndConstants_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_t310_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_n310_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_n311_21; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t311_v1530_32; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RLF_TimersAndConstants; +extern asn_SEQUENCE_specifics_t asn_SPC_RLF_TimersAndConstants_specs_1; +extern asn_TYPE_member_t asn_MBR_RLF_TimersAndConstants_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RLF_TimersAndConstants_H_ */ +#include diff --git a/src/codec_utils/RRC/RNTI-Value.c b/src/codec_utils/RRC/RNTI-Value.c new file mode 100644 index 000000000..0c8954f64 --- /dev/null +++ b/src/codec_utils/RRC/RNTI-Value.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RNTI-Value.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RNTI_Value_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RNTI_Value = { + "RNTI-Value", + "RNTI-Value", + &asn_OP_NativeInteger, + asn_DEF_RNTI_Value_tags_1, + sizeof(asn_DEF_RNTI_Value_tags_1) + /sizeof(asn_DEF_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_RNTI_Value_tags_1) + /sizeof(asn_DEF_RNTI_Value_tags_1[0]), /* 1 */ + { &asn_OER_type_RNTI_Value_constr_1, &asn_PER_type_RNTI_Value_constr_1, RNTI_Value_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RNTI-Value.h b/src/codec_utils/RRC/RNTI-Value.h new file mode 100644 index 000000000..c7767fd40 --- /dev/null +++ b/src/codec_utils/RRC/RNTI-Value.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RNTI_Value_H_ +#define _RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RNTI-Value */ +typedef long RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RNTI_Value; +asn_struct_free_f RNTI_Value_free; +asn_struct_print_f RNTI_Value_print; +asn_constr_check_f RNTI_Value_constraint; +ber_type_decoder_f RNTI_Value_decode_ber; +der_type_encoder_f RNTI_Value_encode_der; +xer_type_decoder_f RNTI_Value_decode_xer; +xer_type_encoder_f RNTI_Value_encode_xer; +oer_type_decoder_f RNTI_Value_decode_oer; +oer_type_encoder_f RNTI_Value_encode_oer; +per_type_decoder_f RNTI_Value_decode_uper; +per_type_encoder_f RNTI_Value_encode_uper; +per_type_decoder_f RNTI_Value_decode_aper; +per_type_encoder_f RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RNTI_Value_H_ */ +#include diff --git a/src/codec_utils/RRC/RRC-TransactionIdentifier.c b/src/codec_utils/RRC/RRC-TransactionIdentifier.c new file mode 100644 index 000000000..0496ed99f --- /dev/null +++ b/src/codec_utils/RRC/RRC-TransactionIdentifier.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRC-TransactionIdentifier.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RRC_TransactionIdentifier_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RRC_TransactionIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RRC_TransactionIdentifier = { + "RRC-TransactionIdentifier", + "RRC-TransactionIdentifier", + &asn_OP_NativeInteger, + asn_DEF_RRC_TransactionIdentifier_tags_1, + sizeof(asn_DEF_RRC_TransactionIdentifier_tags_1) + /sizeof(asn_DEF_RRC_TransactionIdentifier_tags_1[0]), /* 1 */ + asn_DEF_RRC_TransactionIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_RRC_TransactionIdentifier_tags_1) + /sizeof(asn_DEF_RRC_TransactionIdentifier_tags_1[0]), /* 1 */ + { &asn_OER_type_RRC_TransactionIdentifier_constr_1, &asn_PER_type_RRC_TransactionIdentifier_constr_1, RRC_TransactionIdentifier_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RRC-TransactionIdentifier.h b/src/codec_utils/RRC/RRC-TransactionIdentifier.h new file mode 100644 index 000000000..de4b508ca --- /dev/null +++ b/src/codec_utils/RRC/RRC-TransactionIdentifier.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRC_TransactionIdentifier_H_ +#define _RRC_TransactionIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRC-TransactionIdentifier */ +typedef long RRC_TransactionIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RRC_TransactionIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RRC_TransactionIdentifier; +asn_struct_free_f RRC_TransactionIdentifier_free; +asn_struct_print_f RRC_TransactionIdentifier_print; +asn_constr_check_f RRC_TransactionIdentifier_constraint; +ber_type_decoder_f RRC_TransactionIdentifier_decode_ber; +der_type_encoder_f RRC_TransactionIdentifier_encode_der; +xer_type_decoder_f RRC_TransactionIdentifier_decode_xer; +xer_type_encoder_f RRC_TransactionIdentifier_encode_xer; +oer_type_decoder_f RRC_TransactionIdentifier_decode_oer; +oer_type_encoder_f RRC_TransactionIdentifier_encode_oer; +per_type_decoder_f RRC_TransactionIdentifier_decode_uper; +per_type_encoder_f RRC_TransactionIdentifier_encode_uper; +per_type_decoder_f RRC_TransactionIdentifier_decode_aper; +per_type_encoder_f RRC_TransactionIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRC_TransactionIdentifier_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfiguration-IEs.c b/src/codec_utils/RRC/RRCReconfiguration-IEs.c new file mode 100644 index 000000000..96d5ddb02 --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfiguration-IEs.c @@ -0,0 +1,124 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfiguration-IEs.h" + +#include "RadioBearerConfig.h" +#include "MeasConfig.h" +#include "RRCReconfiguration-v1530-IEs.h" +static int +memb_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_oer_constraints_t asn_OER_memb_secondaryCellGroup_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCReconfiguration_IEs_1[] = { + { ATF_POINTER, 5, offsetof(struct RRCReconfiguration_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_POINTER, 4, offsetof(struct RRCReconfiguration_IEs, secondaryCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_secondaryCellGroup_constr_3, &asn_PER_memb_secondaryCellGroup_constr_3, memb_secondaryCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "secondaryCellGroup" + }, + { ATF_POINTER, 3, offsetof(struct RRCReconfiguration_IEs, measConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfig" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCReconfiguration_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfiguration_v1530_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReconfiguration_IEs_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RRCReconfiguration_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfiguration_IEs_specs_1 = { + sizeof(struct RRCReconfiguration_IEs), + offsetof(struct RRCReconfiguration_IEs, _asn_ctx), + asn_MAP_RRCReconfiguration_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RRCReconfiguration_IEs_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReconfiguration_IEs = { + "RRCReconfiguration-IEs", + "RRCReconfiguration-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfiguration_IEs_tags_1, + sizeof(asn_DEF_RRCReconfiguration_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfiguration_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfiguration_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfiguration_IEs_1, + 5, /* Elements count */ + &asn_SPC_RRCReconfiguration_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfiguration-IEs.h b/src/codec_utils/RRC/RRCReconfiguration-IEs.h new file mode 100644 index 000000000..d98acc83a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfiguration_IEs_H_ +#define _RRCReconfiguration_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RadioBearerConfig; +struct MeasConfig; +struct RRCReconfiguration_v1530_IEs; + +/* RRCReconfiguration-IEs */ +typedef struct RRCReconfiguration_IEs { + struct RadioBearerConfig *radioBearerConfig; /* OPTIONAL */ + OCTET_STRING_t *secondaryCellGroup; /* OPTIONAL */ + struct MeasConfig *measConfig; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct RRCReconfiguration_v1530_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCReconfiguration_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfiguration_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfiguration_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfiguration_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfiguration_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.c b/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.c new file mode 100644 index 000000000..554c4c0ee --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.c @@ -0,0 +1,365 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfiguration-v1530-IEs.h" + +#include "MasterKeyUpdate.h" +#include "OtherConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_fullConfig_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dedicatedNAS_MessageList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..29)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_masterCellGroup_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dedicatedNAS_MessageList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..29)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dedicatedSIB1_Delivery_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dedicatedSystemInformationDelivery_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_fullConfig_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_fullConfig_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_fullConfig_specs_3 = { + asn_MAP_fullConfig_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_fullConfig_3 = { + "fullConfig", + "fullConfig", + &asn_OP_NativeEnumerated, + asn_DEF_fullConfig_tags_3, + sizeof(asn_DEF_fullConfig_tags_3) + /sizeof(asn_DEF_fullConfig_tags_3[0]) - 1, /* 1 */ + asn_DEF_fullConfig_tags_3, /* Same as above */ + sizeof(asn_DEF_fullConfig_tags_3) + /sizeof(asn_DEF_fullConfig_tags_3[0]), /* 2 */ + { &asn_OER_type_fullConfig_constr_3, &asn_PER_type_fullConfig_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fullConfig_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dedicatedNAS_MessageList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_dedicatedNAS_MessageList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_dedicatedNAS_MessageList_specs_5 = { + sizeof(struct RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList), + offsetof(struct 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_dedicatedNAS_MessageList_5 = { + "dedicatedNAS-MessageList", + "dedicatedNAS-MessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_dedicatedNAS_MessageList_tags_5, + sizeof(asn_DEF_dedicatedNAS_MessageList_tags_5) + /sizeof(asn_DEF_dedicatedNAS_MessageList_tags_5[0]) - 1, /* 1 */ + asn_DEF_dedicatedNAS_MessageList_tags_5, /* Same as above */ + sizeof(asn_DEF_dedicatedNAS_MessageList_tags_5) + /sizeof(asn_DEF_dedicatedNAS_MessageList_tags_5[0]), /* 2 */ + { &asn_OER_type_dedicatedNAS_MessageList_constr_5, &asn_PER_type_dedicatedNAS_MessageList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_dedicatedNAS_MessageList_5, + 1, /* Single element */ + &asn_SPC_dedicatedNAS_MessageList_specs_5 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_11 = { + sizeof(struct RRCReconfiguration_v1530_IEs__nonCriticalExtension), + offsetof(struct RRCReconfiguration_v1530_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_nonCriticalExtension_11 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_11, + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_11, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_11) + /sizeof(asn_DEF_nonCriticalExtension_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReconfiguration_v1530_IEs_1[] = { + { ATF_POINTER, 8, offsetof(struct RRCReconfiguration_v1530_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_masterCellGroup_constr_2, &asn_PER_memb_masterCellGroup_constr_2, memb_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 7, offsetof(struct RRCReconfiguration_v1530_IEs, fullConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fullConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullConfig" + }, + { ATF_POINTER, 6, offsetof(struct RRCReconfiguration_v1530_IEs, dedicatedNAS_MessageList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_dedicatedNAS_MessageList_5, + 0, + { &asn_OER_memb_dedicatedNAS_MessageList_constr_5, &asn_PER_memb_dedicatedNAS_MessageList_constr_5, memb_dedicatedNAS_MessageList_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedNAS-MessageList" + }, + { ATF_POINTER, 5, offsetof(struct RRCReconfiguration_v1530_IEs, masterKeyUpdate), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MasterKeyUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "masterKeyUpdate" + }, + { ATF_POINTER, 4, offsetof(struct RRCReconfiguration_v1530_IEs, dedicatedSIB1_Delivery), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_dedicatedSIB1_Delivery_constr_8, &asn_PER_memb_dedicatedSIB1_Delivery_constr_8, memb_dedicatedSIB1_Delivery_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedSIB1-Delivery" + }, + { ATF_POINTER, 3, offsetof(struct RRCReconfiguration_v1530_IEs, dedicatedSystemInformationDelivery), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_dedicatedSystemInformationDelivery_constr_9, &asn_PER_memb_dedicatedSystemInformationDelivery_constr_9, memb_dedicatedSystemInformationDelivery_constraint_1 }, + 0, 0, /* No default value */ + "dedicatedSystemInformationDelivery" + }, + { ATF_POINTER, 2, offsetof(struct RRCReconfiguration_v1530_IEs, otherConfig), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OtherConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "otherConfig" + }, + { ATF_POINTER, 1, offsetof(struct RRCReconfiguration_v1530_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_nonCriticalExtension_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReconfiguration_v1530_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_RRCReconfiguration_v1530_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfiguration_v1530_IEs_specs_1 = { + sizeof(struct RRCReconfiguration_v1530_IEs), + offsetof(struct RRCReconfiguration_v1530_IEs, _asn_ctx), + asn_MAP_RRCReconfiguration_v1530_IEs_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RRCReconfiguration_v1530_IEs_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReconfiguration_v1530_IEs = { + "RRCReconfiguration-v1530-IEs", + "RRCReconfiguration-v1530-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfiguration_v1530_IEs_tags_1, + sizeof(asn_DEF_RRCReconfiguration_v1530_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_v1530_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfiguration_v1530_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfiguration_v1530_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_v1530_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfiguration_v1530_IEs_1, + 8, /* Elements count */ + &asn_SPC_RRCReconfiguration_v1530_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.h b/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.h new file mode 100644 index 000000000..c191b449d --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfiguration-v1530-IEs.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfiguration_v1530_IEs_H_ +#define _RRCReconfiguration_v1530_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "DedicatedNAS-Message.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReconfiguration_v1530_IEs__fullConfig { + RRCReconfiguration_v1530_IEs__fullConfig_true = 0 +} e_RRCReconfiguration_v1530_IEs__fullConfig; + +/* Forward declarations */ +struct MasterKeyUpdate; +struct OtherConfig; + +/* RRCReconfiguration-v1530-IEs */ +typedef struct RRCReconfiguration_v1530_IEs { + OCTET_STRING_t *masterCellGroup; /* OPTIONAL */ + long *fullConfig; /* OPTIONAL */ + struct RRCReconfiguration_v1530_IEs__dedicatedNAS_MessageList { + A_SEQUENCE_OF(DedicatedNAS_Message_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dedicatedNAS_MessageList; + struct MasterKeyUpdate *masterKeyUpdate; /* OPTIONAL */ + OCTET_STRING_t *dedicatedSIB1_Delivery; /* OPTIONAL */ + OCTET_STRING_t *dedicatedSystemInformationDelivery; /* OPTIONAL */ + struct OtherConfig *otherConfig; /* OPTIONAL */ + struct RRCReconfiguration_v1530_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; +} RRCReconfiguration_v1530_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_fullConfig_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfiguration_v1530_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfiguration_v1530_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfiguration_v1530_IEs_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfiguration_v1530_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfiguration.c b/src/codec_utils/RRC/RRCReconfiguration.c new file mode 100644 index 000000000..02a544722 --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfiguration.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfiguration.h" + +#include "RRCReconfiguration-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCReconfiguration__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCReconfiguration__criticalExtensions, choice.rrcReconfiguration), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfiguration_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfiguration" + }, + { ATF_POINTER, 0, offsetof(struct RRCReconfiguration__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCReconfiguration__criticalExtensions), + offsetof(struct RRCReconfiguration__criticalExtensions, _asn_ctx), + offsetof(struct RRCReconfiguration__criticalExtensions, present), + sizeof(((struct RRCReconfiguration__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReconfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReconfiguration, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReconfiguration, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReconfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfiguration_specs_1 = { + sizeof(struct RRCReconfiguration), + offsetof(struct RRCReconfiguration, _asn_ctx), + asn_MAP_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_RRCReconfiguration = { + "RRCReconfiguration", + "RRCReconfiguration", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfiguration_tags_1, + sizeof(asn_DEF_RRCReconfiguration_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfiguration_tags_1) + /sizeof(asn_DEF_RRCReconfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfiguration_1, + 2, /* Elements count */ + &asn_SPC_RRCReconfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfiguration.h b/src/codec_utils/RRC/RRCReconfiguration.h new file mode 100644 index 000000000..beb2e8bd4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfiguration_H_ +#define _RRCReconfiguration_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReconfiguration__criticalExtensions_PR { + RRCReconfiguration__criticalExtensions_PR_NOTHING, /* No components present */ + RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration, + RRCReconfiguration__criticalExtensions_PR_criticalExtensionsFuture +} RRCReconfiguration__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCReconfiguration_IEs; + +/* RRCReconfiguration */ +typedef struct RRCReconfiguration { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCReconfiguration__criticalExtensions { + RRCReconfiguration__criticalExtensions_PR present; + union RRCReconfiguration__criticalExtensions_u { + struct RRCReconfiguration_IEs *rrcReconfiguration; + struct 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; +} RRCReconfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfiguration_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete-IEs.c b/src/codec_utils/RRC/RRCReconfigurationComplete-IEs.c new file mode 100644 index 000000000..45e0fe819 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfigurationComplete-IEs.h" + +#include "RRCReconfigurationComplete-v1530-IEs.h" +asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct 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 RRCReconfigurationComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfigurationComplete_v1530_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReconfigurationComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RRCReconfigurationComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfigurationComplete_IEs_specs_1 = { + sizeof(struct RRCReconfigurationComplete_IEs), + offsetof(struct RRCReconfigurationComplete_IEs, _asn_ctx), + asn_MAP_RRCReconfigurationComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRCReconfigurationComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationComplete_IEs = { + "RRCReconfigurationComplete-IEs", + "RRCReconfigurationComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfigurationComplete_IEs_tags_1, + sizeof(asn_DEF_RRCReconfigurationComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfigurationComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfigurationComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfigurationComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_RRCReconfigurationComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete-IEs.h b/src/codec_utils/RRC/RRCReconfigurationComplete-IEs.h new file mode 100644 index 000000000..237677b66 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfigurationComplete_IEs_H_ +#define _RRCReconfigurationComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RRCReconfigurationComplete_v1530_IEs; + +/* RRCReconfigurationComplete-IEs */ +typedef struct RRCReconfigurationComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct RRCReconfigurationComplete_v1530_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCReconfigurationComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfigurationComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfigurationComplete_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.c b/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.c new file mode 100644 index 000000000..1b0e2b9f9 --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfigurationComplete-v1530-IEs.h" + +#include "UplinkTxDirectCurrentList.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct RRCReconfigurationComplete_v1530_IEs__nonCriticalExtension), + offsetof(struct RRCReconfigurationComplete_v1530_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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_v1530_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct RRCReconfigurationComplete_v1530_IEs, uplinkTxDirectCurrentList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkTxDirectCurrentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkTxDirectCurrentList" + }, + { ATF_POINTER, 1, offsetof(struct RRCReconfigurationComplete_v1530_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReconfigurationComplete_v1530_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfigurationComplete_v1530_IEs_specs_1 = { + sizeof(struct RRCReconfigurationComplete_v1530_IEs), + offsetof(struct RRCReconfigurationComplete_v1530_IEs, _asn_ctx), + asn_MAP_RRCReconfigurationComplete_v1530_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRCReconfigurationComplete_v1530_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationComplete_v1530_IEs = { + "RRCReconfigurationComplete-v1530-IEs", + "RRCReconfigurationComplete-v1530-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1, + sizeof(asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_v1530_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfigurationComplete_v1530_IEs_1, + 2, /* Elements count */ + &asn_SPC_RRCReconfigurationComplete_v1530_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.h b/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-IEs.h new file mode 100644 index 000000000..272e8cfde --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfigurationComplete-v1530-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfigurationComplete_v1530_IEs_H_ +#define _RRCReconfigurationComplete_v1530_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UplinkTxDirectCurrentList; + +/* RRCReconfigurationComplete-v1530-IEs */ +typedef struct RRCReconfigurationComplete_v1530_IEs { + struct UplinkTxDirectCurrentList *uplinkTxDirectCurrentList; /* OPTIONAL */ + struct RRCReconfigurationComplete_v1530_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; +} RRCReconfigurationComplete_v1530_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationComplete_v1530_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfigurationComplete_v1530_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_v1530_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfigurationComplete_v1530_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete.c b/src/codec_utils/RRC/RRCReconfigurationComplete.c new file mode 100644 index 000000000..bc022a617 --- /dev/null +++ b/src/codec_utils/RRC/RRCReconfigurationComplete.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReconfigurationComplete.h" + +#include "RRCReconfigurationComplete-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCReconfigurationComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCReconfigurationComplete__criticalExtensions, choice.rrcReconfigurationComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfigurationComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfigurationComplete" + }, + { ATF_POINTER, 0, offsetof(struct RRCReconfigurationComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCReconfigurationComplete__criticalExtensions), + offsetof(struct RRCReconfigurationComplete__criticalExtensions, _asn_ctx), + offsetof(struct RRCReconfigurationComplete__criticalExtensions, present), + sizeof(((struct RRCReconfigurationComplete__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReconfigurationComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReconfigurationComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReconfigurationComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReconfigurationComplete_specs_1 = { + sizeof(struct RRCReconfigurationComplete), + offsetof(struct RRCReconfigurationComplete, _asn_ctx), + asn_MAP_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_RRCReconfigurationComplete = { + "RRCReconfigurationComplete", + "RRCReconfigurationComplete", + &asn_OP_SEQUENCE, + asn_DEF_RRCReconfigurationComplete_tags_1, + sizeof(asn_DEF_RRCReconfigurationComplete_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_tags_1[0]), /* 1 */ + asn_DEF_RRCReconfigurationComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReconfigurationComplete_tags_1) + /sizeof(asn_DEF_RRCReconfigurationComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReconfigurationComplete_1, + 2, /* Elements count */ + &asn_SPC_RRCReconfigurationComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReconfigurationComplete.h b/src/codec_utils/RRC/RRCReconfigurationComplete.h new file mode 100644 index 000000000..0660c1715 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReconfigurationComplete_H_ +#define _RRCReconfigurationComplete_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReconfigurationComplete__criticalExtensions_PR { + RRCReconfigurationComplete__criticalExtensions_PR_NOTHING, /* No components present */ + RRCReconfigurationComplete__criticalExtensions_PR_rrcReconfigurationComplete, + RRCReconfigurationComplete__criticalExtensions_PR_criticalExtensionsFuture +} RRCReconfigurationComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCReconfigurationComplete_IEs; + +/* RRCReconfigurationComplete */ +typedef struct RRCReconfigurationComplete { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCReconfigurationComplete__criticalExtensions { + RRCReconfigurationComplete__criticalExtensions_PR present; + union RRCReconfigurationComplete__criticalExtensions_u { + struct RRCReconfigurationComplete_IEs *rrcReconfigurationComplete; + struct 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; +} RRCReconfigurationComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReconfigurationComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReconfigurationComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReconfigurationComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReconfigurationComplete_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishment-IEs.c b/src/codec_utils/RRC/RRCReestablishment-IEs.c new file mode 100644 index 000000000..2aa750b1e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishment-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct RRCReestablishment_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReestablishment_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishment_IEs, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCReestablishment_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReestablishment_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RRCReestablishment_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReestablishment_IEs_specs_1 = { + sizeof(struct RRCReestablishment_IEs), + offsetof(struct RRCReestablishment_IEs, _asn_ctx), + asn_MAP_RRCReestablishment_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RRCReestablishment_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReestablishment_IEs = { + "RRCReestablishment-IEs", + "RRCReestablishment-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishment_IEs_tags_1, + sizeof(asn_DEF_RRCReestablishment_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishment_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishment_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishment_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishment_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishment_IEs_1, + 3, /* Elements count */ + &asn_SPC_RRCReestablishment_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishment-IEs.h b/src/codec_utils/RRC/RRCReestablishment-IEs.h new file mode 100644 index 000000000..6e2f36a9c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishment_IEs_H_ +#define _RRCReestablishment_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "NextHopChainingCount.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCReestablishment-IEs */ +typedef struct RRCReestablishment_IEs { + NextHopChainingCount_t nextHopChainingCount; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} RRCReestablishment_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishment_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishment_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishment_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishment_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishment.c b/src/codec_utils/RRC/RRCReestablishment.c new file mode 100644 index 000000000..7a85c3d51 --- /dev/null +++ b/src/codec_utils/RRC/RRCReestablishment.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishment.h" + +#include "RRCReestablishment-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCReestablishment__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCReestablishment__criticalExtensions, choice.rrcReestablishment), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishment_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishment" + }, + { ATF_POINTER, 0, offsetof(struct RRCReestablishment__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCReestablishment__criticalExtensions), + offsetof(struct RRCReestablishment__criticalExtensions, _asn_ctx), + offsetof(struct RRCReestablishment__criticalExtensions, present), + sizeof(((struct RRCReestablishment__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReestablishment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishment, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishment, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReestablishment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReestablishment_specs_1 = { + sizeof(struct RRCReestablishment), + offsetof(struct RRCReestablishment, _asn_ctx), + asn_MAP_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_RRCReestablishment = { + "RRCReestablishment", + "RRCReestablishment", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishment_tags_1, + sizeof(asn_DEF_RRCReestablishment_tags_1) + /sizeof(asn_DEF_RRCReestablishment_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishment_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishment_tags_1) + /sizeof(asn_DEF_RRCReestablishment_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishment_1, + 2, /* Elements count */ + &asn_SPC_RRCReestablishment_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishment.h b/src/codec_utils/RRC/RRCReestablishment.h new file mode 100644 index 000000000..d70dde8b8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishment_H_ +#define _RRCReestablishment_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReestablishment__criticalExtensions_PR { + RRCReestablishment__criticalExtensions_PR_NOTHING, /* No components present */ + RRCReestablishment__criticalExtensions_PR_rrcReestablishment, + RRCReestablishment__criticalExtensions_PR_criticalExtensionsFuture +} RRCReestablishment__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCReestablishment_IEs; + +/* RRCReestablishment */ +typedef struct RRCReestablishment { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCReestablishment__criticalExtensions { + RRCReestablishment__criticalExtensions_PR present; + union RRCReestablishment__criticalExtensions_u { + struct RRCReestablishment_IEs *rrcReestablishment; + struct 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; +} RRCReestablishment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishment; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishment_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishment_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishmentComplete-IEs.c b/src/codec_utils/RRC/RRCReestablishmentComplete-IEs.c new file mode 100644 index 000000000..d944a28fb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishmentComplete-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct RRCReestablishmentComplete_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReestablishmentComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct 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 RRCReestablishmentComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReestablishmentComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RRCReestablishmentComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReestablishmentComplete_IEs_specs_1 = { + sizeof(struct RRCReestablishmentComplete_IEs), + offsetof(struct RRCReestablishmentComplete_IEs, _asn_ctx), + asn_MAP_RRCReestablishmentComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRCReestablishmentComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReestablishmentComplete_IEs = { + "RRCReestablishmentComplete-IEs", + "RRCReestablishmentComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishmentComplete_IEs_tags_1, + sizeof(asn_DEF_RRCReestablishmentComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishmentComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishmentComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishmentComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishmentComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishmentComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_RRCReestablishmentComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishmentComplete-IEs.h b/src/codec_utils/RRC/RRCReestablishmentComplete-IEs.h new file mode 100644 index 000000000..c2cbf3997 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishmentComplete_IEs_H_ +#define _RRCReestablishmentComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCReestablishmentComplete-IEs */ +typedef struct RRCReestablishmentComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} RRCReestablishmentComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishmentComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishmentComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishmentComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishmentComplete_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishmentComplete.c b/src/codec_utils/RRC/RRCReestablishmentComplete.c new file mode 100644 index 000000000..c6fb27ffa --- /dev/null +++ b/src/codec_utils/RRC/RRCReestablishmentComplete.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishmentComplete.h" + +#include "RRCReestablishmentComplete-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCReestablishmentComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCReestablishmentComplete__criticalExtensions, choice.rrcReestablishmentComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishmentComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentComplete" + }, + { ATF_POINTER, 0, offsetof(struct RRCReestablishmentComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCReestablishmentComplete__criticalExtensions), + offsetof(struct RRCReestablishmentComplete__criticalExtensions, _asn_ctx), + offsetof(struct RRCReestablishmentComplete__criticalExtensions, present), + sizeof(((struct RRCReestablishmentComplete__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReestablishmentComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReestablishmentComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReestablishmentComplete_specs_1 = { + sizeof(struct RRCReestablishmentComplete), + offsetof(struct RRCReestablishmentComplete, _asn_ctx), + asn_MAP_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_RRCReestablishmentComplete = { + "RRCReestablishmentComplete", + "RRCReestablishmentComplete", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishmentComplete_tags_1, + sizeof(asn_DEF_RRCReestablishmentComplete_tags_1) + /sizeof(asn_DEF_RRCReestablishmentComplete_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishmentComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishmentComplete_tags_1) + /sizeof(asn_DEF_RRCReestablishmentComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishmentComplete_1, + 2, /* Elements count */ + &asn_SPC_RRCReestablishmentComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishmentComplete.h b/src/codec_utils/RRC/RRCReestablishmentComplete.h new file mode 100644 index 000000000..35d7755ae --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishmentComplete_H_ +#define _RRCReestablishmentComplete_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReestablishmentComplete__criticalExtensions_PR { + RRCReestablishmentComplete__criticalExtensions_PR_NOTHING, /* No components present */ + RRCReestablishmentComplete__criticalExtensions_PR_rrcReestablishmentComplete, + RRCReestablishmentComplete__criticalExtensions_PR_criticalExtensionsFuture +} RRCReestablishmentComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCReestablishmentComplete_IEs; + +/* RRCReestablishmentComplete */ +typedef struct RRCReestablishmentComplete { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCReestablishmentComplete__criticalExtensions { + RRCReestablishmentComplete__criticalExtensions_PR present; + union RRCReestablishmentComplete__criticalExtensions_u { + struct RRCReestablishmentComplete_IEs *rrcReestablishmentComplete; + struct 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; +} RRCReestablishmentComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishmentComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishmentComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishmentComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishmentComplete_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishmentRequest-IEs.c b/src/codec_utils/RRC/RRCReestablishmentRequest-IEs.c new file mode 100644 index 000000000..6fdab8a2c --- /dev/null +++ b/src/codec_utils/RRC/RRCReestablishmentRequest-IEs.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishmentRequest-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_spare_constr_4 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCReestablishmentRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentRequest_IEs, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReestabUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentRequest_IEs, reestablishmentCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReestablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_4, &asn_PER_memb_spare_constr_4, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReestablishmentRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReestablishmentRequest_IEs_specs_1 = { + sizeof(struct RRCReestablishmentRequest_IEs), + offsetof(struct RRCReestablishmentRequest_IEs, _asn_ctx), + asn_MAP_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_RRCReestablishmentRequest_IEs = { + "RRCReestablishmentRequest-IEs", + "RRCReestablishmentRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishmentRequest_IEs_tags_1, + sizeof(asn_DEF_RRCReestablishmentRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishmentRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishmentRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishmentRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCReestablishmentRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishmentRequest_IEs_1, + 3, /* Elements count */ + &asn_SPC_RRCReestablishmentRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishmentRequest-IEs.h b/src/codec_utils/RRC/RRCReestablishmentRequest-IEs.h new file mode 100644 index 000000000..4a35f0f7e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishmentRequest_IEs_H_ +#define _RRCReestablishmentRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ReestabUE-Identity.h" +#include "ReestablishmentCause.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCReestablishmentRequest-IEs */ +typedef struct RRCReestablishmentRequest_IEs { + ReestabUE_Identity_t ue_Identity; + ReestablishmentCause_t reestablishmentCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCReestablishmentRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishmentRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishmentRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishmentRequest_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishmentRequest_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReestablishmentRequest.c b/src/codec_utils/RRC/RRCReestablishmentRequest.c new file mode 100644 index 000000000..ecea07cf1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReestablishmentRequest.h" + +asn_TYPE_member_t asn_MBR_RRCReestablishmentRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReestablishmentRequest, rrcReestablishmentRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishmentRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReestablishmentRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCReestablishmentRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcReestablishmentRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishmentRequest_specs_1 = { + sizeof(struct RRCReestablishmentRequest), + offsetof(struct RRCReestablishmentRequest, _asn_ctx), + asn_MAP_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_RRCReestablishmentRequest = { + "RRCReestablishmentRequest", + "RRCReestablishmentRequest", + &asn_OP_SEQUENCE, + asn_DEF_RRCReestablishmentRequest_tags_1, + sizeof(asn_DEF_RRCReestablishmentRequest_tags_1) + /sizeof(asn_DEF_RRCReestablishmentRequest_tags_1[0]), /* 1 */ + asn_DEF_RRCReestablishmentRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReestablishmentRequest_tags_1) + /sizeof(asn_DEF_RRCReestablishmentRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReestablishmentRequest_1, + 1, /* Elements count */ + &asn_SPC_RRCReestablishmentRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReestablishmentRequest.h b/src/codec_utils/RRC/RRCReestablishmentRequest.h new file mode 100644 index 000000000..9277b5c7e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReestablishmentRequest_H_ +#define _RRCReestablishmentRequest_H_ + + +#include + +/* Including external dependencies */ +#include "RRCReestablishmentRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCReestablishmentRequest */ +typedef struct RRCReestablishmentRequest { + RRCReestablishmentRequest_IEs_t rrcReestablishmentRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCReestablishmentRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReestablishmentRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReestablishmentRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReestablishmentRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReestablishmentRequest_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReject-IEs.c b/src/codec_utils/RRC/RRCReject-IEs.c new file mode 100644 index 000000000..ff6fa4734 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReject-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct RRCReject_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReject_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct RRCReject_IEs, waitTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectWaitTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitTime" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCReject_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCReject_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_RRCReject_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCReject_IEs_specs_1 = { + sizeof(struct RRCReject_IEs), + offsetof(struct RRCReject_IEs, _asn_ctx), + asn_MAP_RRCReject_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_RRCReject_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCReject_IEs = { + "RRCReject-IEs", + "RRCReject-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCReject_IEs_tags_1, + sizeof(asn_DEF_RRCReject_IEs_tags_1) + /sizeof(asn_DEF_RRCReject_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCReject_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReject_IEs_tags_1) + /sizeof(asn_DEF_RRCReject_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReject_IEs_1, + 3, /* Elements count */ + &asn_SPC_RRCReject_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReject-IEs.h b/src/codec_utils/RRC/RRCReject-IEs.h new file mode 100644 index 000000000..e631e67e4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReject_IEs_H_ +#define _RRCReject_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "RejectWaitTime.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCReject-IEs */ +typedef struct RRCReject_IEs { + RejectWaitTime_t *waitTime; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} RRCReject_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReject_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReject_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReject_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReject_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCReject.c b/src/codec_utils/RRC/RRCReject.c new file mode 100644 index 000000000..5ecbc819b --- /dev/null +++ b/src/codec_utils/RRC/RRCReject.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCReject.h" + +#include "RRCReject-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct RRCReject__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct RRCReject__criticalExtensions, choice.rrcReject), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReject_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReject" + }, + { ATF_POINTER, 0, offsetof(struct RRCReject__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct RRCReject__criticalExtensions), + offsetof(struct RRCReject__criticalExtensions, _asn_ctx), + offsetof(struct RRCReject__criticalExtensions, present), + sizeof(((struct RRCReject__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCReject_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCReject, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCReject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCReject_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCReject_specs_1 = { + sizeof(struct RRCReject), + offsetof(struct RRCReject, _asn_ctx), + asn_MAP_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_RRCReject = { + "RRCReject", + "RRCReject", + &asn_OP_SEQUENCE, + asn_DEF_RRCReject_tags_1, + sizeof(asn_DEF_RRCReject_tags_1) + /sizeof(asn_DEF_RRCReject_tags_1[0]), /* 1 */ + asn_DEF_RRCReject_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCReject_tags_1) + /sizeof(asn_DEF_RRCReject_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCReject_1, + 1, /* Elements count */ + &asn_SPC_RRCReject_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCReject.h b/src/codec_utils/RRC/RRCReject.h new file mode 100644 index 000000000..ef2b34ff0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCReject_H_ +#define _RRCReject_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCReject__criticalExtensions_PR { + RRCReject__criticalExtensions_PR_NOTHING, /* No components present */ + RRCReject__criticalExtensions_PR_rrcReject, + RRCReject__criticalExtensions_PR_criticalExtensionsFuture +} RRCReject__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCReject_IEs; + +/* RRCReject */ +typedef struct RRCReject { + struct RRCReject__criticalExtensions { + RRCReject__criticalExtensions_PR present; + union RRCReject__criticalExtensions_u { + struct RRCReject_IEs *rrcReject; + struct 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; +} RRCReject_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCReject; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCReject_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCReject_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCReject_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCRelease-IEs.c b/src/codec_utils/RRC/RRCRelease-IEs.c new file mode 100644 index 000000000..7c3ea0d72 --- /dev/null +++ b/src/codec_utils/RRC/RRCRelease-IEs.c @@ -0,0 +1,261 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCRelease-IEs.h" + +#include "RedirectedCarrierInfo.h" +#include "CellReselectionPriorities.h" +#include "SuspendConfig.h" +#include "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_oer_constraints_t asn_OER_type_deprioritisationType_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_deprioritisationTimer_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_deprioritisationType_value2enum_6[] = { + { 0, 9, "frequency" }, + { 1, 2, "nr" } +}; +static const unsigned int asn_MAP_deprioritisationType_enum2value_6[] = { + 0, /* frequency(0) */ + 1 /* nr(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_deprioritisationType_specs_6 = { + asn_MAP_deprioritisationType_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_deprioritisationType_6 = { + "deprioritisationType", + "deprioritisationType", + &asn_OP_NativeEnumerated, + asn_DEF_deprioritisationType_tags_6, + sizeof(asn_DEF_deprioritisationType_tags_6) + /sizeof(asn_DEF_deprioritisationType_tags_6[0]) - 1, /* 1 */ + asn_DEF_deprioritisationType_tags_6, /* Same as above */ + sizeof(asn_DEF_deprioritisationType_tags_6) + /sizeof(asn_DEF_deprioritisationType_tags_6[0]), /* 2 */ + { &asn_OER_type_deprioritisationType_constr_6, &asn_PER_type_deprioritisationType_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_deprioritisationType_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_deprioritisationTimer_value2enum_9[] = { + { 0, 4, "min5" }, + { 1, 5, "min10" }, + { 2, 5, "min15" }, + { 3, 5, "min30" } +}; +static const unsigned int asn_MAP_deprioritisationTimer_enum2value_9[] = { + 1, /* min10(1) */ + 2, /* min15(2) */ + 3, /* min30(3) */ + 0 /* min5(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_deprioritisationTimer_specs_9 = { + asn_MAP_deprioritisationTimer_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_deprioritisationTimer_9 = { + "deprioritisationTimer", + "deprioritisationTimer", + &asn_OP_NativeEnumerated, + asn_DEF_deprioritisationTimer_tags_9, + sizeof(asn_DEF_deprioritisationTimer_tags_9) + /sizeof(asn_DEF_deprioritisationTimer_tags_9[0]) - 1, /* 1 */ + asn_DEF_deprioritisationTimer_tags_9, /* Same as above */ + sizeof(asn_DEF_deprioritisationTimer_tags_9) + /sizeof(asn_DEF_deprioritisationTimer_tags_9[0]), /* 2 */ + { &asn_OER_type_deprioritisationTimer_constr_9, &asn_PER_type_deprioritisationTimer_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_deprioritisationTimer_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_deprioritisationReq_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCRelease_IEs__deprioritisationReq, deprioritisationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_deprioritisationType_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCRelease_IEs__deprioritisationReq, deprioritisationTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_deprioritisationTimer_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_deprioritisationReq_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_deprioritisationReq_specs_5 = { + sizeof(struct RRCRelease_IEs__deprioritisationReq), + offsetof(struct RRCRelease_IEs__deprioritisationReq, _asn_ctx), + asn_MAP_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_deprioritisationReq_5 = { + "deprioritisationReq", + "deprioritisationReq", + &asn_OP_SEQUENCE, + asn_DEF_deprioritisationReq_tags_5, + sizeof(asn_DEF_deprioritisationReq_tags_5) + /sizeof(asn_DEF_deprioritisationReq_tags_5[0]) - 1, /* 1 */ + asn_DEF_deprioritisationReq_tags_5, /* Same as above */ + sizeof(asn_DEF_deprioritisationReq_tags_5) + /sizeof(asn_DEF_deprioritisationReq_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_deprioritisationReq_5, + 2, /* Elements count */ + &asn_SPC_deprioritisationReq_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCRelease_IEs_1[] = { + { ATF_POINTER, 6, offsetof(struct RRCRelease_IEs, redirectedCarrierInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RedirectedCarrierInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "redirectedCarrierInfo" + }, + { ATF_POINTER, 5, offsetof(struct RRCRelease_IEs, cellReselectionPriorities), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriorities, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriorities" + }, + { ATF_POINTER, 4, offsetof(struct RRCRelease_IEs, suspendConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SuspendConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "suspendConfig" + }, + { ATF_POINTER, 3, offsetof(struct RRCRelease_IEs, deprioritisationReq), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_deprioritisationReq_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "deprioritisationReq" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCRelease_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCRelease_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCRelease_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RRCRelease_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCRelease_IEs_specs_1 = { + sizeof(struct RRCRelease_IEs), + offsetof(struct RRCRelease_IEs, _asn_ctx), + asn_MAP_RRCRelease_IEs_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RRCRelease_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCRelease_IEs = { + "RRCRelease-IEs", + "RRCRelease-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCRelease_IEs_tags_1, + sizeof(asn_DEF_RRCRelease_IEs_tags_1) + /sizeof(asn_DEF_RRCRelease_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCRelease_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCRelease_IEs_tags_1) + /sizeof(asn_DEF_RRCRelease_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCRelease_IEs_1, + 6, /* Elements count */ + &asn_SPC_RRCRelease_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCRelease-IEs.h b/src/codec_utils/RRC/RRCRelease-IEs.h new file mode 100644 index 000000000..5a0d5b3d9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCRelease_IEs_H_ +#define _RRCRelease_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCRelease_IEs__deprioritisationReq__deprioritisationType { + RRCRelease_IEs__deprioritisationReq__deprioritisationType_frequency = 0, + RRCRelease_IEs__deprioritisationReq__deprioritisationType_nr = 1 +} e_RRCRelease_IEs__deprioritisationReq__deprioritisationType; +typedef enum RRCRelease_IEs__deprioritisationReq__deprioritisationTimer { + RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min5 = 0, + RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min10 = 1, + RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min15 = 2, + RRCRelease_IEs__deprioritisationReq__deprioritisationTimer_min30 = 3 +} e_RRCRelease_IEs__deprioritisationReq__deprioritisationTimer; + +/* Forward declarations */ +struct RedirectedCarrierInfo; +struct CellReselectionPriorities; +struct SuspendConfig; +struct RRCRelease_v1540_IEs; + +/* RRCRelease-IEs */ +typedef struct RRCRelease_IEs { + struct RedirectedCarrierInfo *redirectedCarrierInfo; /* OPTIONAL */ + struct CellReselectionPriorities *cellReselectionPriorities; /* OPTIONAL */ + struct SuspendConfig *suspendConfig; /* OPTIONAL */ + struct 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 RRCRelease_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCRelease_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_deprioritisationType_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_deprioritisationTimer_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RRCRelease_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCRelease_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCRelease_IEs_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCRelease_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCRelease-v1540-IEs.c b/src/codec_utils/RRC/RRCRelease-v1540-IEs.c new file mode 100644 index 000000000..9dfc93894 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCRelease-v1540-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct RRCRelease_v1540_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCRelease_v1540_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct RRCRelease_v1540_IEs, waitTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RejectWaitTime, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "waitTime" + }, + { ATF_POINTER, 1, offsetof(struct RRCRelease_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCRelease_v1540_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RRCRelease_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCRelease_v1540_IEs_specs_1 = { + sizeof(struct RRCRelease_v1540_IEs), + offsetof(struct RRCRelease_v1540_IEs, _asn_ctx), + asn_MAP_RRCRelease_v1540_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRCRelease_v1540_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCRelease_v1540_IEs = { + "RRCRelease-v1540-IEs", + "RRCRelease-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCRelease_v1540_IEs_tags_1, + sizeof(asn_DEF_RRCRelease_v1540_IEs_tags_1) + /sizeof(asn_DEF_RRCRelease_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCRelease_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCRelease_v1540_IEs_tags_1) + /sizeof(asn_DEF_RRCRelease_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCRelease_v1540_IEs_1, + 2, /* Elements count */ + &asn_SPC_RRCRelease_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCRelease-v1540-IEs.h b/src/codec_utils/RRC/RRCRelease-v1540-IEs.h new file mode 100644 index 000000000..5fef2c707 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCRelease_v1540_IEs_H_ +#define _RRCRelease_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "RejectWaitTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCRelease-v1540-IEs */ +typedef struct RRCRelease_v1540_IEs { + RejectWaitTime_t *waitTime; /* OPTIONAL */ + struct 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; +} RRCRelease_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCRelease_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCRelease_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCRelease_v1540_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCRelease_v1540_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCRelease.c b/src/codec_utils/RRC/RRCRelease.c new file mode 100644 index 000000000..86f08e93e --- /dev/null +++ b/src/codec_utils/RRC/RRCRelease.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCRelease.h" + +#include "RRCRelease-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCRelease__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCRelease__criticalExtensions, choice.rrcRelease), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCRelease_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcRelease" + }, + { ATF_POINTER, 0, offsetof(struct RRCRelease__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCRelease__criticalExtensions), + offsetof(struct RRCRelease__criticalExtensions, _asn_ctx), + offsetof(struct RRCRelease__criticalExtensions, present), + sizeof(((struct RRCRelease__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCRelease_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCRelease, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCRelease, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCRelease_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCRelease_specs_1 = { + sizeof(struct RRCRelease), + offsetof(struct RRCRelease, _asn_ctx), + asn_MAP_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_RRCRelease = { + "RRCRelease", + "RRCRelease", + &asn_OP_SEQUENCE, + asn_DEF_RRCRelease_tags_1, + sizeof(asn_DEF_RRCRelease_tags_1) + /sizeof(asn_DEF_RRCRelease_tags_1[0]), /* 1 */ + asn_DEF_RRCRelease_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCRelease_tags_1) + /sizeof(asn_DEF_RRCRelease_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCRelease_1, + 2, /* Elements count */ + &asn_SPC_RRCRelease_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCRelease.h b/src/codec_utils/RRC/RRCRelease.h new file mode 100644 index 000000000..7acc86acc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCRelease_H_ +#define _RRCRelease_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCRelease__criticalExtensions_PR { + RRCRelease__criticalExtensions_PR_NOTHING, /* No components present */ + RRCRelease__criticalExtensions_PR_rrcRelease, + RRCRelease__criticalExtensions_PR_criticalExtensionsFuture +} RRCRelease__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCRelease_IEs; + +/* RRCRelease */ +typedef struct RRCRelease { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCRelease__criticalExtensions { + RRCRelease__criticalExtensions_PR present; + union RRCRelease__criticalExtensions_u { + struct RRCRelease_IEs *rrcRelease; + struct 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; +} RRCRelease_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCRelease; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCRelease_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCRelease_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCRelease_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResume-IEs.c b/src/codec_utils/RRC/RRCResume-IEs.c new file mode 100644 index 000000000..912e033a6 --- /dev/null +++ b/src/codec_utils/RRC/RRCResume-IEs.c @@ -0,0 +1,208 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResume-IEs.h" + +#include "RadioBearerConfig.h" +#include "MeasConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_fullConfig_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_masterCellGroup_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_fullConfig_value2enum_5[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_fullConfig_enum2value_5[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_fullConfig_specs_5 = { + asn_MAP_fullConfig_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_fullConfig_5 = { + "fullConfig", + "fullConfig", + &asn_OP_NativeEnumerated, + asn_DEF_fullConfig_tags_5, + sizeof(asn_DEF_fullConfig_tags_5) + /sizeof(asn_DEF_fullConfig_tags_5[0]) - 1, /* 1 */ + asn_DEF_fullConfig_tags_5, /* Same as above */ + sizeof(asn_DEF_fullConfig_tags_5) + /sizeof(asn_DEF_fullConfig_tags_5[0]), /* 2 */ + { &asn_OER_type_fullConfig_constr_5, &asn_PER_type_fullConfig_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fullConfig_specs_5 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_8 = { + sizeof(struct RRCResume_IEs__nonCriticalExtension), + offsetof(struct RRCResume_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_nonCriticalExtension_8 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_8, + sizeof(asn_DEF_nonCriticalExtension_tags_8) + /sizeof(asn_DEF_nonCriticalExtension_tags_8[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_8, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_8) + /sizeof(asn_DEF_nonCriticalExtension_tags_8[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCResume_IEs_1[] = { + { ATF_POINTER, 6, offsetof(struct RRCResume_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_POINTER, 5, offsetof(struct RRCResume_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_masterCellGroup_constr_3, &asn_PER_memb_masterCellGroup_constr_3, memb_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 4, offsetof(struct RRCResume_IEs, measConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measConfig" + }, + { ATF_POINTER, 3, offsetof(struct RRCResume_IEs, fullConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fullConfig_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullConfig" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCResume_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_nonCriticalExtension_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCResume_IEs_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_RRCResume_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResume_IEs_specs_1 = { + sizeof(struct RRCResume_IEs), + offsetof(struct RRCResume_IEs, _asn_ctx), + asn_MAP_RRCResume_IEs_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_RRCResume_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCResume_IEs = { + "RRCResume-IEs", + "RRCResume-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCResume_IEs_tags_1, + sizeof(asn_DEF_RRCResume_IEs_tags_1) + /sizeof(asn_DEF_RRCResume_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCResume_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResume_IEs_tags_1) + /sizeof(asn_DEF_RRCResume_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResume_IEs_1, + 6, /* Elements count */ + &asn_SPC_RRCResume_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResume-IEs.h b/src/codec_utils/RRC/RRCResume-IEs.h new file mode 100644 index 000000000..ef2cb33ed --- /dev/null +++ b/src/codec_utils/RRC/RRCResume-IEs.h @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResume_IEs_H_ +#define _RRCResume_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCResume_IEs__fullConfig { + RRCResume_IEs__fullConfig_true = 0 +} e_RRCResume_IEs__fullConfig; + +/* Forward declarations */ +struct RadioBearerConfig; +struct MeasConfig; + +/* RRCResume-IEs */ +typedef struct RRCResume_IEs { + struct RadioBearerConfig *radioBearerConfig; /* OPTIONAL */ + OCTET_STRING_t *masterCellGroup; /* OPTIONAL */ + struct MeasConfig *measConfig; /* OPTIONAL */ + long *fullConfig; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct RRCResume_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; +} RRCResume_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_fullConfig_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResume_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResume_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResume_IEs_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResume_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResume.c b/src/codec_utils/RRC/RRCResume.c new file mode 100644 index 000000000..92e94db1a --- /dev/null +++ b/src/codec_utils/RRC/RRCResume.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResume.h" + +#include "RRCResume-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCResume__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCResume__criticalExtensions, choice.rrcResume), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResume_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResume" + }, + { ATF_POINTER, 0, offsetof(struct RRCResume__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCResume__criticalExtensions), + offsetof(struct RRCResume__criticalExtensions, _asn_ctx), + offsetof(struct RRCResume__criticalExtensions, present), + sizeof(((struct RRCResume__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCResume_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResume, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResume, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResume_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResume_specs_1 = { + sizeof(struct RRCResume), + offsetof(struct RRCResume, _asn_ctx), + asn_MAP_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_RRCResume = { + "RRCResume", + "RRCResume", + &asn_OP_SEQUENCE, + asn_DEF_RRCResume_tags_1, + sizeof(asn_DEF_RRCResume_tags_1) + /sizeof(asn_DEF_RRCResume_tags_1[0]), /* 1 */ + asn_DEF_RRCResume_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResume_tags_1) + /sizeof(asn_DEF_RRCResume_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResume_1, + 2, /* Elements count */ + &asn_SPC_RRCResume_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResume.h b/src/codec_utils/RRC/RRCResume.h new file mode 100644 index 000000000..b7375688e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResume_H_ +#define _RRCResume_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCResume__criticalExtensions_PR { + RRCResume__criticalExtensions_PR_NOTHING, /* No components present */ + RRCResume__criticalExtensions_PR_rrcResume, + RRCResume__criticalExtensions_PR_criticalExtensionsFuture +} RRCResume__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCResume_IEs; + +/* RRCResume */ +typedef struct RRCResume { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCResume__criticalExtensions { + RRCResume__criticalExtensions_PR present; + union RRCResume__criticalExtensions_u { + struct RRCResume_IEs *rrcResume; + struct 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; +} RRCResume_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResume; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResume_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResume_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResume_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeComplete-IEs.c b/src/codec_utils/RRC/RRCResumeComplete-IEs.c new file mode 100644 index 000000000..d91b507a2 --- /dev/null +++ b/src/codec_utils/RRC/RRCResumeComplete-IEs.c @@ -0,0 +1,154 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeComplete-IEs.h" + +#include "UplinkTxDirectCurrentList.h" +static int +memb_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_oer_constraints_t asn_OER_memb_selectedPLMN_Identity_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_nonCriticalExtension_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_6 = { + sizeof(struct RRCResumeComplete_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_6 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_6, + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_6, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_6) + /sizeof(asn_DEF_nonCriticalExtension_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCResumeComplete_IEs_1[] = { + { ATF_POINTER, 5, offsetof(struct RRCResumeComplete_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 4, offsetof(struct RRCResumeComplete_IEs, selectedPLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_selectedPLMN_Identity_constr_3, &asn_PER_memb_selectedPLMN_Identity_constr_3, memb_selectedPLMN_Identity_constraint_1 }, + 0, 0, /* No default value */ + "selectedPLMN-Identity" + }, + { ATF_POINTER, 3, offsetof(struct RRCResumeComplete_IEs, uplinkTxDirectCurrentList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkTxDirectCurrentList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkTxDirectCurrentList" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCResumeComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_nonCriticalExtension_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCResumeComplete_IEs_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RRCResumeComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResumeComplete_IEs_specs_1 = { + sizeof(struct RRCResumeComplete_IEs), + offsetof(struct RRCResumeComplete_IEs, _asn_ctx), + asn_MAP_RRCResumeComplete_IEs_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RRCResumeComplete_IEs_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCResumeComplete_IEs = { + "RRCResumeComplete-IEs", + "RRCResumeComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeComplete_IEs_tags_1, + sizeof(asn_DEF_RRCResumeComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeComplete_IEs_1, + 5, /* Elements count */ + &asn_SPC_RRCResumeComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeComplete-IEs.h b/src/codec_utils/RRC/RRCResumeComplete-IEs.h new file mode 100644 index 000000000..476844367 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeComplete_IEs_H_ +#define _RRCResumeComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "DedicatedNAS-Message.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UplinkTxDirectCurrentList; + +/* RRCResumeComplete-IEs */ +typedef struct RRCResumeComplete_IEs { + DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + long *selectedPLMN_Identity; /* OPTIONAL */ + struct UplinkTxDirectCurrentList *uplinkTxDirectCurrentList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} RRCResumeComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeComplete_IEs_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeComplete_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeComplete.c b/src/codec_utils/RRC/RRCResumeComplete.c new file mode 100644 index 000000000..49c7f0770 --- /dev/null +++ b/src/codec_utils/RRC/RRCResumeComplete.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeComplete.h" + +#include "RRCResumeComplete-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCResumeComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCResumeComplete__criticalExtensions, choice.rrcResumeComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeComplete" + }, + { ATF_POINTER, 0, offsetof(struct RRCResumeComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCResumeComplete__criticalExtensions), + offsetof(struct RRCResumeComplete__criticalExtensions, _asn_ctx), + offsetof(struct RRCResumeComplete__criticalExtensions, present), + sizeof(((struct RRCResumeComplete__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCResumeComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResumeComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResumeComplete_specs_1 = { + sizeof(struct RRCResumeComplete), + offsetof(struct RRCResumeComplete, _asn_ctx), + asn_MAP_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_RRCResumeComplete = { + "RRCResumeComplete", + "RRCResumeComplete", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeComplete_tags_1, + sizeof(asn_DEF_RRCResumeComplete_tags_1) + /sizeof(asn_DEF_RRCResumeComplete_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeComplete_tags_1) + /sizeof(asn_DEF_RRCResumeComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeComplete_1, + 2, /* Elements count */ + &asn_SPC_RRCResumeComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeComplete.h b/src/codec_utils/RRC/RRCResumeComplete.h new file mode 100644 index 000000000..a88182406 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeComplete_H_ +#define _RRCResumeComplete_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCResumeComplete__criticalExtensions_PR { + RRCResumeComplete__criticalExtensions_PR_NOTHING, /* No components present */ + RRCResumeComplete__criticalExtensions_PR_rrcResumeComplete, + RRCResumeComplete__criticalExtensions_PR_criticalExtensionsFuture +} RRCResumeComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCResumeComplete_IEs; + +/* RRCResumeComplete */ +typedef struct RRCResumeComplete { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCResumeComplete__criticalExtensions { + RRCResumeComplete__criticalExtensions_PR present; + union RRCResumeComplete__criticalExtensions_u { + struct RRCResumeComplete_IEs *rrcResumeComplete; + struct 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; +} RRCResumeComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeComplete_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeRequest-IEs.c b/src/codec_utils/RRC/RRCResumeRequest-IEs.c new file mode 100644 index 000000000..83fb813da --- /dev/null +++ b/src/codec_utils/RRC/RRCResumeRequest-IEs.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeRequest-IEs.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_resumeMAC_I_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_spare_constr_5 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCResumeRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest_IEs, resumeIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortI_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest_IEs, resumeMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_resumeMAC_I_constr_3, &asn_PER_memb_resumeMAC_I_constr_3, memb_resumeMAC_I_constraint_1 }, + 0, 0, /* No default value */ + "resumeMAC-I" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest_IEs, resumeCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResumeCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_5, &asn_PER_memb_spare_constr_5, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResumeRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResumeRequest_IEs_specs_1 = { + sizeof(struct RRCResumeRequest_IEs), + offsetof(struct RRCResumeRequest_IEs, _asn_ctx), + asn_MAP_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_RRCResumeRequest_IEs = { + "RRCResumeRequest-IEs", + "RRCResumeRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeRequest_IEs_tags_1, + sizeof(asn_DEF_RRCResumeRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeRequest_IEs_1, + 4, /* Elements count */ + &asn_SPC_RRCResumeRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeRequest-IEs.h b/src/codec_utils/RRC/RRCResumeRequest-IEs.h new file mode 100644 index 000000000..f55fd5c26 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeRequest_IEs_H_ +#define _RRCResumeRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "ShortI-RNTI-Value.h" +#include +#include "ResumeCause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCResumeRequest-IEs */ +typedef struct RRCResumeRequest_IEs { + ShortI_RNTI_Value_t resumeIdentity; + BIT_STRING_t resumeMAC_I; + ResumeCause_t resumeCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCResumeRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeRequest_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeRequest_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeRequest.c b/src/codec_utils/RRC/RRCResumeRequest.c new file mode 100644 index 000000000..ed58542c1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeRequest.h" + +asn_TYPE_member_t asn_MBR_RRCResumeRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest, rrcResumeRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResumeRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCResumeRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcResumeRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest_specs_1 = { + sizeof(struct RRCResumeRequest), + offsetof(struct RRCResumeRequest, _asn_ctx), + asn_MAP_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_RRCResumeRequest = { + "RRCResumeRequest", + "RRCResumeRequest", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeRequest_tags_1, + sizeof(asn_DEF_RRCResumeRequest_tags_1) + /sizeof(asn_DEF_RRCResumeRequest_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeRequest_tags_1) + /sizeof(asn_DEF_RRCResumeRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeRequest_1, + 1, /* Elements count */ + &asn_SPC_RRCResumeRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeRequest.h b/src/codec_utils/RRC/RRCResumeRequest.h new file mode 100644 index 000000000..a21f10c45 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeRequest_H_ +#define _RRCResumeRequest_H_ + + +#include + +/* Including external dependencies */ +#include "RRCResumeRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCResumeRequest */ +typedef struct RRCResumeRequest { + RRCResumeRequest_IEs_t rrcResumeRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCResumeRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeRequest_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeRequest1-IEs.c b/src/codec_utils/RRC/RRCResumeRequest1-IEs.c new file mode 100644 index 000000000..26e954c4b --- /dev/null +++ b/src/codec_utils/RRC/RRCResumeRequest1-IEs.c @@ -0,0 +1,158 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeRequest1-IEs.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_resumeMAC_I_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_spare_constr_5 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCResumeRequest1_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest1_IEs, resumeIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest1_IEs, resumeMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_resumeMAC_I_constr_3, &asn_PER_memb_resumeMAC_I_constr_3, memb_resumeMAC_I_constraint_1 }, + 0, 0, /* No default value */ + "resumeMAC-I" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest1_IEs, resumeCause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ResumeCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resumeCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest1_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_5, &asn_PER_memb_spare_constr_5, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResumeRequest1_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCResumeRequest1_IEs_specs_1 = { + sizeof(struct RRCResumeRequest1_IEs), + offsetof(struct RRCResumeRequest1_IEs, _asn_ctx), + asn_MAP_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_RRCResumeRequest1_IEs = { + "RRCResumeRequest1-IEs", + "RRCResumeRequest1-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeRequest1_IEs_tags_1, + sizeof(asn_DEF_RRCResumeRequest1_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeRequest1_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeRequest1_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeRequest1_IEs_tags_1) + /sizeof(asn_DEF_RRCResumeRequest1_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeRequest1_IEs_1, + 4, /* Elements count */ + &asn_SPC_RRCResumeRequest1_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeRequest1-IEs.h b/src/codec_utils/RRC/RRCResumeRequest1-IEs.h new file mode 100644 index 000000000..b38d287a5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeRequest1_IEs_H_ +#define _RRCResumeRequest1_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "I-RNTI-Value.h" +#include +#include "ResumeCause.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCResumeRequest1-IEs */ +typedef struct RRCResumeRequest1_IEs { + I_RNTI_Value_t resumeIdentity; + BIT_STRING_t resumeMAC_I; + ResumeCause_t resumeCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCResumeRequest1_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeRequest1_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest1_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeRequest1_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeRequest1_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCResumeRequest1.c b/src/codec_utils/RRC/RRCResumeRequest1.c new file mode 100644 index 000000000..a4396b1ce --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCResumeRequest1.h" + +asn_TYPE_member_t asn_MBR_RRCResumeRequest1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCResumeRequest1, rrcResumeRequest1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeRequest1_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest1" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCResumeRequest1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCResumeRequest1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcResumeRequest1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest1_specs_1 = { + sizeof(struct RRCResumeRequest1), + offsetof(struct RRCResumeRequest1, _asn_ctx), + asn_MAP_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_RRCResumeRequest1 = { + "RRCResumeRequest1", + "RRCResumeRequest1", + &asn_OP_SEQUENCE, + asn_DEF_RRCResumeRequest1_tags_1, + sizeof(asn_DEF_RRCResumeRequest1_tags_1) + /sizeof(asn_DEF_RRCResumeRequest1_tags_1[0]), /* 1 */ + asn_DEF_RRCResumeRequest1_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCResumeRequest1_tags_1) + /sizeof(asn_DEF_RRCResumeRequest1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCResumeRequest1_1, + 1, /* Elements count */ + &asn_SPC_RRCResumeRequest1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCResumeRequest1.h b/src/codec_utils/RRC/RRCResumeRequest1.h new file mode 100644 index 000000000..d513f58bf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCResumeRequest1_H_ +#define _RRCResumeRequest1_H_ + + +#include + +/* Including external dependencies */ +#include "RRCResumeRequest1-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCResumeRequest1 */ +typedef struct RRCResumeRequest1 { + RRCResumeRequest1_IEs_t rrcResumeRequest1; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCResumeRequest1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCResumeRequest1; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCResumeRequest1_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCResumeRequest1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCResumeRequest1_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetup-IEs.c b/src/codec_utils/RRC/RRCSetup-IEs.c new file mode 100644 index 000000000..8e562e14f --- /dev/null +++ b/src/codec_utils/RRC/RRCSetup-IEs.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetup-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_masterCellGroup_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_nonCriticalExtension_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_5 = { + sizeof(struct RRCSetup_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_5 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_5, + sizeof(asn_DEF_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_nonCriticalExtension_tags_5[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_5, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_5) + /sizeof(asn_DEF_nonCriticalExtension_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCSetup_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetup_IEs, radioBearerConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadioBearerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioBearerConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetup_IEs, masterCellGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_masterCellGroup_constr_3, &asn_PER_memb_masterCellGroup_constr_3, memb_masterCellGroup_constraint_1 }, + 0, 0, /* No default value */ + "masterCellGroup" + }, + { ATF_POINTER, 2, offsetof(struct 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 RRCSetup_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_nonCriticalExtension_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCSetup_IEs_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_RRCSetup_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSetup_IEs_specs_1 = { + sizeof(struct RRCSetup_IEs), + offsetof(struct RRCSetup_IEs, _asn_ctx), + asn_MAP_RRCSetup_IEs_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RRCSetup_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCSetup_IEs = { + "RRCSetup-IEs", + "RRCSetup-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetup_IEs_tags_1, + sizeof(asn_DEF_RRCSetup_IEs_tags_1) + /sizeof(asn_DEF_RRCSetup_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCSetup_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetup_IEs_tags_1) + /sizeof(asn_DEF_RRCSetup_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetup_IEs_1, + 4, /* Elements count */ + &asn_SPC_RRCSetup_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetup-IEs.h b/src/codec_utils/RRC/RRCSetup-IEs.h new file mode 100644 index 000000000..8231358b8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetup_IEs_H_ +#define _RRCSetup_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "RadioBearerConfig.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCSetup-IEs */ +typedef struct RRCSetup_IEs { + RadioBearerConfig_t radioBearerConfig; + OCTET_STRING_t masterCellGroup; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} RRCSetup_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetup_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetup_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetup_IEs_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetup_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetup.c b/src/codec_utils/RRC/RRCSetup.c new file mode 100644 index 000000000..192b96468 --- /dev/null +++ b/src/codec_utils/RRC/RRCSetup.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetup.h" + +#include "RRCSetup-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCSetup__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCSetup__criticalExtensions, choice.rrcSetup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetup_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetup" + }, + { ATF_POINTER, 0, offsetof(struct RRCSetup__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCSetup__criticalExtensions), + offsetof(struct RRCSetup__criticalExtensions, _asn_ctx), + offsetof(struct RRCSetup__criticalExtensions, present), + sizeof(((struct RRCSetup__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCSetup_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetup, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetup, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSetup_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSetup_specs_1 = { + sizeof(struct RRCSetup), + offsetof(struct RRCSetup, _asn_ctx), + asn_MAP_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_RRCSetup = { + "RRCSetup", + "RRCSetup", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetup_tags_1, + sizeof(asn_DEF_RRCSetup_tags_1) + /sizeof(asn_DEF_RRCSetup_tags_1[0]), /* 1 */ + asn_DEF_RRCSetup_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetup_tags_1) + /sizeof(asn_DEF_RRCSetup_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetup_1, + 2, /* Elements count */ + &asn_SPC_RRCSetup_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetup.h b/src/codec_utils/RRC/RRCSetup.h new file mode 100644 index 000000000..cd79c76ca --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetup_H_ +#define _RRCSetup_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCSetup__criticalExtensions_PR { + RRCSetup__criticalExtensions_PR_NOTHING, /* No components present */ + RRCSetup__criticalExtensions_PR_rrcSetup, + RRCSetup__criticalExtensions_PR_criticalExtensionsFuture +} RRCSetup__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCSetup_IEs; + +/* RRCSetup */ +typedef struct RRCSetup { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCSetup__criticalExtensions { + RRCSetup__criticalExtensions_PR present; + union RRCSetup__criticalExtensions_u { + struct RRCSetup_IEs *rrcSetup; + struct 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; +} RRCSetup_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetup; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetup_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetup_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetup_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetupComplete-IEs.c b/src/codec_utils/RRC/RRCSetupComplete-IEs.c new file mode 100644 index 000000000..2fa437fb8 --- /dev/null +++ b/src/codec_utils/RRC/RRCSetupComplete-IEs.c @@ -0,0 +1,409 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetupComplete-IEs.h" + +#include "RegisteredAMF.h" +#include "S-NSSAI.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_oer_constraints_t asn_OER_type_guami_Type_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_s_NSSAI_List_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ng_5G_S_TMSI_Part2_constr_12 CC_NOTUSED = { + { 0, 0 }, + 9 /* (SIZE(9..9)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ng_5G_S_TMSI_Value_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_selectedPLMN_Identity_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_s_NSSAI_List_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_guami_Type_value2enum_4[] = { + { 0, 6, "native" }, + { 1, 6, "mapped" } +}; +static const unsigned int asn_MAP_guami_Type_enum2value_4[] = { + 1, /* mapped(1) */ + 0 /* native(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_guami_Type_specs_4 = { + asn_MAP_guami_Type_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_guami_Type_4 = { + "guami-Type", + "guami-Type", + &asn_OP_NativeEnumerated, + asn_DEF_guami_Type_tags_4, + sizeof(asn_DEF_guami_Type_tags_4) + /sizeof(asn_DEF_guami_Type_tags_4[0]) - 1, /* 1 */ + asn_DEF_guami_Type_tags_4, /* Same as above */ + sizeof(asn_DEF_guami_Type_tags_4) + /sizeof(asn_DEF_guami_Type_tags_4[0]), /* 2 */ + { &asn_OER_type_guami_Type_constr_4, &asn_PER_type_guami_Type_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_guami_Type_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_s_NSSAI_List_7[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_S_NSSAI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_s_NSSAI_List_specs_7 = { + sizeof(struct RRCSetupComplete_IEs__s_NSSAI_List), + offsetof(struct 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_s_NSSAI_List_7 = { + "s-NSSAI-List", + "s-NSSAI-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_s_NSSAI_List_tags_7, + sizeof(asn_DEF_s_NSSAI_List_tags_7) + /sizeof(asn_DEF_s_NSSAI_List_tags_7[0]) - 1, /* 1 */ + asn_DEF_s_NSSAI_List_tags_7, /* Same as above */ + sizeof(asn_DEF_s_NSSAI_List_tags_7) + /sizeof(asn_DEF_s_NSSAI_List_tags_7[0]), /* 2 */ + { &asn_OER_type_s_NSSAI_List_constr_7, &asn_PER_type_s_NSSAI_List_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_s_NSSAI_List_7, + 1, /* Single element */ + &asn_SPC_s_NSSAI_List_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ng_5G_S_TMSI_Value_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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_NG_5G_S_TMSI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-5G-S-TMSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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, + { &asn_OER_memb_ng_5G_S_TMSI_Part2_constr_12, &asn_PER_memb_ng_5G_S_TMSI_Part2_constr_12, memb_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_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_ng_5G_S_TMSI_Value_specs_10 = { + sizeof(struct RRCSetupComplete_IEs__ng_5G_S_TMSI_Value), + offsetof(struct RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, _asn_ctx), + offsetof(struct RRCSetupComplete_IEs__ng_5G_S_TMSI_Value, present), + sizeof(((struct RRCSetupComplete_IEs__ng_5G_S_TMSI_Value *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_ng_5G_S_TMSI_Value_constr_10, &asn_PER_type_ng_5G_S_TMSI_Value_constr_10, CHOICE_constraint }, + asn_MBR_ng_5G_S_TMSI_Value_10, + 2, /* Elements count */ + &asn_SPC_ng_5G_S_TMSI_Value_specs_10 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_14 = { + sizeof(struct RRCSetupComplete_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_14 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_14, + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_14, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCSetupComplete_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupComplete_IEs, selectedPLMN_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_selectedPLMN_Identity_constr_2, &asn_PER_memb_selectedPLMN_Identity_constr_2, memb_selectedPLMN_Identity_constraint_1 }, + 0, 0, /* No default value */ + "selectedPLMN-Identity" + }, + { ATF_POINTER, 3, offsetof(struct RRCSetupComplete_IEs, registeredAMF), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RegisteredAMF, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "registeredAMF" + }, + { ATF_POINTER, 2, offsetof(struct RRCSetupComplete_IEs, guami_Type), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_guami_Type_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "guami-Type" + }, + { ATF_POINTER, 1, offsetof(struct RRCSetupComplete_IEs, s_NSSAI_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_s_NSSAI_List_7, + 0, + { &asn_OER_memb_s_NSSAI_List_constr_7, &asn_PER_memb_s_NSSAI_List_constr_7, memb_s_NSSAI_List_constraint_1 }, + 0, 0, /* No default value */ + "s-NSSAI-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupComplete_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 3, offsetof(struct RRCSetupComplete_IEs, ng_5G_S_TMSI_Value), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_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 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 RRCSetupComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_nonCriticalExtension_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_RRCSetupComplete_IEs_oms_1[] = { 1, 2, 3, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_RRCSetupComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSetupComplete_IEs_specs_1 = { + sizeof(struct RRCSetupComplete_IEs), + offsetof(struct RRCSetupComplete_IEs, _asn_ctx), + asn_MAP_RRCSetupComplete_IEs_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_RRCSetupComplete_IEs_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRCSetupComplete_IEs = { + "RRCSetupComplete-IEs", + "RRCSetupComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetupComplete_IEs_tags_1, + sizeof(asn_DEF_RRCSetupComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCSetupComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCSetupComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetupComplete_IEs_tags_1) + /sizeof(asn_DEF_RRCSetupComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetupComplete_IEs_1, + 8, /* Elements count */ + &asn_SPC_RRCSetupComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetupComplete-IEs.h b/src/codec_utils/RRC/RRCSetupComplete-IEs.h new file mode 100644 index 000000000..32357d0b6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetupComplete_IEs_H_ +#define _RRCSetupComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "DedicatedNAS-Message.h" +#include +#include +#include +#include "NG-5G-S-TMSI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCSetupComplete_IEs__guami_Type { + RRCSetupComplete_IEs__guami_Type_native = 0, + RRCSetupComplete_IEs__guami_Type_mapped = 1 +} e_RRCSetupComplete_IEs__guami_Type; +typedef enum RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR { + RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_NOTHING, /* No components present */ + RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_ng_5G_S_TMSI, + RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR_ng_5G_S_TMSI_Part2 +} RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR; + +/* Forward declarations */ +struct RegisteredAMF; +struct S_NSSAI; + +/* RRCSetupComplete-IEs */ +typedef struct RRCSetupComplete_IEs { + long selectedPLMN_Identity; + struct RegisteredAMF *registeredAMF; /* OPTIONAL */ + long *guami_Type; /* OPTIONAL */ + struct RRCSetupComplete_IEs__s_NSSAI_List { + A_SEQUENCE_OF(struct S_NSSAI) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *s_NSSAI_List; + DedicatedNAS_Message_t dedicatedNAS_Message; + struct RRCSetupComplete_IEs__ng_5G_S_TMSI_Value { + RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_PR present; + union RRCSetupComplete_IEs__ng_5G_S_TMSI_Value_u { + 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 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; +} RRCSetupComplete_IEs_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_guami_Type_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetupComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetupComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetupComplete_IEs_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetupComplete_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetupComplete.c b/src/codec_utils/RRC/RRCSetupComplete.c new file mode 100644 index 000000000..23b25ccc3 --- /dev/null +++ b/src/codec_utils/RRC/RRCSetupComplete.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetupComplete.h" + +#include "RRCSetupComplete-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct RRCSetupComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct RRCSetupComplete__criticalExtensions, choice.rrcSetupComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetupComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupComplete" + }, + { ATF_POINTER, 0, offsetof(struct RRCSetupComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct RRCSetupComplete__criticalExtensions), + offsetof(struct RRCSetupComplete__criticalExtensions, _asn_ctx), + offsetof(struct RRCSetupComplete__criticalExtensions, present), + sizeof(((struct RRCSetupComplete__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCSetupComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSetupComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSetupComplete_specs_1 = { + sizeof(struct RRCSetupComplete), + offsetof(struct RRCSetupComplete, _asn_ctx), + asn_MAP_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_RRCSetupComplete = { + "RRCSetupComplete", + "RRCSetupComplete", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetupComplete_tags_1, + sizeof(asn_DEF_RRCSetupComplete_tags_1) + /sizeof(asn_DEF_RRCSetupComplete_tags_1[0]), /* 1 */ + asn_DEF_RRCSetupComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetupComplete_tags_1) + /sizeof(asn_DEF_RRCSetupComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetupComplete_1, + 2, /* Elements count */ + &asn_SPC_RRCSetupComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetupComplete.h b/src/codec_utils/RRC/RRCSetupComplete.h new file mode 100644 index 000000000..89e83e4da --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetupComplete_H_ +#define _RRCSetupComplete_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCSetupComplete__criticalExtensions_PR { + RRCSetupComplete__criticalExtensions_PR_NOTHING, /* No components present */ + RRCSetupComplete__criticalExtensions_PR_rrcSetupComplete, + RRCSetupComplete__criticalExtensions_PR_criticalExtensionsFuture +} RRCSetupComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCSetupComplete_IEs; + +/* RRCSetupComplete */ +typedef struct RRCSetupComplete { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct RRCSetupComplete__criticalExtensions { + RRCSetupComplete__criticalExtensions_PR present; + union RRCSetupComplete__criticalExtensions_u { + struct RRCSetupComplete_IEs *rrcSetupComplete; + struct 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; +} RRCSetupComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetupComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetupComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetupComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetupComplete_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetupRequest-IEs.c b/src/codec_utils/RRC/RRCSetupRequest-IEs.c new file mode 100644 index 000000000..6566e2b5d --- /dev/null +++ b/src/codec_utils/RRC/RRCSetupRequest-IEs.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetupRequest-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_spare_constr_4 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCSetupRequest_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupRequest_IEs, ue_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_InitialUE_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupRequest_IEs, establishmentCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EstablishmentCause, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "establishmentCause" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupRequest_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_4, &asn_PER_memb_spare_constr_4, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSetupRequest_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSetupRequest_IEs_specs_1 = { + sizeof(struct RRCSetupRequest_IEs), + offsetof(struct RRCSetupRequest_IEs, _asn_ctx), + asn_MAP_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_RRCSetupRequest_IEs = { + "RRCSetupRequest-IEs", + "RRCSetupRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetupRequest_IEs_tags_1, + sizeof(asn_DEF_RRCSetupRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCSetupRequest_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCSetupRequest_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetupRequest_IEs_tags_1) + /sizeof(asn_DEF_RRCSetupRequest_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetupRequest_IEs_1, + 3, /* Elements count */ + &asn_SPC_RRCSetupRequest_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetupRequest-IEs.h b/src/codec_utils/RRC/RRCSetupRequest-IEs.h new file mode 100644 index 000000000..5f749ca25 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetupRequest_IEs_H_ +#define _RRCSetupRequest_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "InitialUE-Identity.h" +#include "EstablishmentCause.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCSetupRequest-IEs */ +typedef struct RRCSetupRequest_IEs { + InitialUE_Identity_t ue_Identity; + EstablishmentCause_t establishmentCause; + BIT_STRING_t spare; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCSetupRequest_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetupRequest_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetupRequest_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetupRequest_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetupRequest_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSetupRequest.c b/src/codec_utils/RRC/RRCSetupRequest.c new file mode 100644 index 000000000..a4213160b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSetupRequest.h" + +asn_TYPE_member_t asn_MBR_RRCSetupRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSetupRequest, rrcSetupRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetupRequest_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupRequest" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSetupRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCSetupRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* rrcSetupRequest */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCSetupRequest_specs_1 = { + sizeof(struct RRCSetupRequest), + offsetof(struct RRCSetupRequest, _asn_ctx), + asn_MAP_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_RRCSetupRequest = { + "RRCSetupRequest", + "RRCSetupRequest", + &asn_OP_SEQUENCE, + asn_DEF_RRCSetupRequest_tags_1, + sizeof(asn_DEF_RRCSetupRequest_tags_1) + /sizeof(asn_DEF_RRCSetupRequest_tags_1[0]), /* 1 */ + asn_DEF_RRCSetupRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSetupRequest_tags_1) + /sizeof(asn_DEF_RRCSetupRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSetupRequest_1, + 1, /* Elements count */ + &asn_SPC_RRCSetupRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSetupRequest.h b/src/codec_utils/RRC/RRCSetupRequest.h new file mode 100644 index 000000000..0b18c9159 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSetupRequest_H_ +#define _RRCSetupRequest_H_ + + +#include + +/* Including external dependencies */ +#include "RRCSetupRequest-IEs.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCSetupRequest */ +typedef struct RRCSetupRequest { + RRCSetupRequest_IEs_t rrcSetupRequest; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRCSetupRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSetupRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSetupRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSetupRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSetupRequest_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.c b/src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.c new file mode 100644 index 000000000..4d3a333b1 --- /dev/null +++ b/src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.c @@ -0,0 +1,138 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSystemInfoRequest-r15-IEs.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_requested_SI_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_spare_constr_3 CC_NOTUSED = { + { 0, 0 }, + 12 /* (SIZE(12..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_RRCSystemInfoRequest_r15_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSystemInfoRequest_r15_IEs, requested_SI_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_requested_SI_List_constr_2, &asn_PER_memb_requested_SI_List_constr_2, memb_requested_SI_List_constraint_1 }, + 0, 0, /* No default value */ + "requested-SI-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RRCSystemInfoRequest_r15_IEs, spare), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_spare_constr_3, &asn_PER_memb_spare_constr_3, memb_spare_constraint_1 }, + 0, 0, /* No default value */ + "spare" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RRCSystemInfoRequest_r15_IEs_specs_1 = { + sizeof(struct RRCSystemInfoRequest_r15_IEs), + offsetof(struct RRCSystemInfoRequest_r15_IEs, _asn_ctx), + asn_MAP_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_RRCSystemInfoRequest_r15_IEs = { + "RRCSystemInfoRequest-r15-IEs", + "RRCSystemInfoRequest-r15-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1, + sizeof(asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1) + /sizeof(asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1[0]), /* 1 */ + asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1) + /sizeof(asn_DEF_RRCSystemInfoRequest_r15_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSystemInfoRequest_r15_IEs_1, + 2, /* Elements count */ + &asn_SPC_RRCSystemInfoRequest_r15_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.h b/src/codec_utils/RRC/RRCSystemInfoRequest-r15-IEs.h new file mode 100644 index 000000000..2282a74cd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSystemInfoRequest_r15_IEs_H_ +#define _RRCSystemInfoRequest_r15_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RRCSystemInfoRequest-r15-IEs */ +typedef struct 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; +} RRCSystemInfoRequest_r15_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSystemInfoRequest_r15_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSystemInfoRequest_r15_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSystemInfoRequest_r15_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSystemInfoRequest_r15_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/RRCSystemInfoRequest.c b/src/codec_utils/RRC/RRCSystemInfoRequest.c new file mode 100644 index 000000000..6caed83d5 --- /dev/null +++ b/src/codec_utils/RRC/RRCSystemInfoRequest.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRCSystemInfoRequest.h" + +#include "RRCSystemInfoRequest-r15-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct RRCSystemInfoRequest__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct RRCSystemInfoRequest__criticalExtensions, choice.rrcSystemInfoRequest_r15), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSystemInfoRequest_r15_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSystemInfoRequest-r15" + }, + { ATF_POINTER, 0, offsetof(struct RRCSystemInfoRequest__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct RRCSystemInfoRequest__criticalExtensions), + offsetof(struct RRCSystemInfoRequest__criticalExtensions, _asn_ctx), + offsetof(struct RRCSystemInfoRequest__criticalExtensions, present), + sizeof(((struct RRCSystemInfoRequest__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRCSystemInfoRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RRCSystemInfoRequest, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_RRCSystemInfoRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RRCSystemInfoRequest_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RRCSystemInfoRequest_specs_1 = { + sizeof(struct RRCSystemInfoRequest), + offsetof(struct RRCSystemInfoRequest, _asn_ctx), + asn_MAP_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_RRCSystemInfoRequest = { + "RRCSystemInfoRequest", + "RRCSystemInfoRequest", + &asn_OP_SEQUENCE, + asn_DEF_RRCSystemInfoRequest_tags_1, + sizeof(asn_DEF_RRCSystemInfoRequest_tags_1) + /sizeof(asn_DEF_RRCSystemInfoRequest_tags_1[0]), /* 1 */ + asn_DEF_RRCSystemInfoRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_RRCSystemInfoRequest_tags_1) + /sizeof(asn_DEF_RRCSystemInfoRequest_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRCSystemInfoRequest_1, + 1, /* Elements count */ + &asn_SPC_RRCSystemInfoRequest_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRCSystemInfoRequest.h b/src/codec_utils/RRC/RRCSystemInfoRequest.h new file mode 100644 index 000000000..b30704770 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRCSystemInfoRequest_H_ +#define _RRCSystemInfoRequest_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRCSystemInfoRequest__criticalExtensions_PR { + RRCSystemInfoRequest__criticalExtensions_PR_NOTHING, /* No components present */ + RRCSystemInfoRequest__criticalExtensions_PR_rrcSystemInfoRequest_r15, + RRCSystemInfoRequest__criticalExtensions_PR_criticalExtensionsFuture +} RRCSystemInfoRequest__criticalExtensions_PR; + +/* Forward declarations */ +struct RRCSystemInfoRequest_r15_IEs; + +/* RRCSystemInfoRequest */ +typedef struct RRCSystemInfoRequest { + struct RRCSystemInfoRequest__criticalExtensions { + RRCSystemInfoRequest__criticalExtensions_PR present; + union RRCSystemInfoRequest__criticalExtensions_u { + struct RRCSystemInfoRequest_r15_IEs *rrcSystemInfoRequest_r15; + struct 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; +} RRCSystemInfoRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RRCSystemInfoRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_RRCSystemInfoRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_RRCSystemInfoRequest_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRCSystemInfoRequest_H_ */ +#include diff --git a/src/codec_utils/RRC/RRM-Config.c b/src/codec_utils/RRC/RRM-Config.c new file mode 100644 index 000000000..2b44c61a2 --- /dev/null +++ b/src/codec_utils/RRC/RRM-Config.c @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RRM-Config.h" + +#include "MeasResultList2NR.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ue_InactiveTime_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_ue_InactiveTime_specs_2 = { + asn_MAP_ue_InactiveTime_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ue_InactiveTime_2 = { + "ue-InactiveTime", + "ue-InactiveTime", + &asn_OP_NativeEnumerated, + asn_DEF_ue_InactiveTime_tags_2, + sizeof(asn_DEF_ue_InactiveTime_tags_2) + /sizeof(asn_DEF_ue_InactiveTime_tags_2[0]) - 1, /* 1 */ + asn_DEF_ue_InactiveTime_tags_2, /* Same as above */ + sizeof(asn_DEF_ue_InactiveTime_tags_2) + /sizeof(asn_DEF_ue_InactiveTime_tags_2[0]), /* 2 */ + { &asn_OER_type_ue_InactiveTime_constr_2, &asn_PER_type_ue_InactiveTime_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ue_InactiveTime_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RRM_Config_1[] = { + { ATF_POINTER, 2, offsetof(struct RRM_Config, ue_InactiveTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ue_InactiveTime_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-InactiveTime" + }, + { ATF_POINTER, 1, offsetof(struct RRM_Config, candidateCellInfoList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasResultList2NR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "candidateCellInfoList" + }, +}; +static const int asn_MAP_RRM_Config_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_RRM_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SEQUENCE_specifics_t asn_SPC_RRM_Config_specs_1 = { + sizeof(struct RRM_Config), + offsetof(struct RRM_Config, _asn_ctx), + asn_MAP_RRM_Config_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RRM_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RRM_Config = { + "RRM-Config", + "RRM-Config", + &asn_OP_SEQUENCE, + asn_DEF_RRM_Config_tags_1, + sizeof(asn_DEF_RRM_Config_tags_1) + /sizeof(asn_DEF_RRM_Config_tags_1[0]), /* 1 */ + asn_DEF_RRM_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_RRM_Config_tags_1) + /sizeof(asn_DEF_RRM_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RRM_Config_1, + 2, /* Elements count */ + &asn_SPC_RRM_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RRM-Config.h b/src/codec_utils/RRC/RRM-Config.h new file mode 100644 index 000000000..344b2817d --- /dev/null +++ b/src/codec_utils/RRC/RRM-Config.h @@ -0,0 +1,117 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RRM_Config_H_ +#define _RRM_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RRM_Config__ue_InactiveTime { + RRM_Config__ue_InactiveTime_s1 = 0, + RRM_Config__ue_InactiveTime_s2 = 1, + RRM_Config__ue_InactiveTime_s3 = 2, + RRM_Config__ue_InactiveTime_s5 = 3, + RRM_Config__ue_InactiveTime_s7 = 4, + RRM_Config__ue_InactiveTime_s10 = 5, + RRM_Config__ue_InactiveTime_s15 = 6, + RRM_Config__ue_InactiveTime_s20 = 7, + RRM_Config__ue_InactiveTime_s25 = 8, + RRM_Config__ue_InactiveTime_s30 = 9, + RRM_Config__ue_InactiveTime_s40 = 10, + RRM_Config__ue_InactiveTime_s50 = 11, + RRM_Config__ue_InactiveTime_min1 = 12, + RRM_Config__ue_InactiveTime_min1s20 = 13, + RRM_Config__ue_InactiveTime_min1s40 = 14, + RRM_Config__ue_InactiveTime_min2 = 15, + RRM_Config__ue_InactiveTime_min2s30 = 16, + RRM_Config__ue_InactiveTime_min3 = 17, + RRM_Config__ue_InactiveTime_min3s30 = 18, + RRM_Config__ue_InactiveTime_min4 = 19, + RRM_Config__ue_InactiveTime_min5 = 20, + RRM_Config__ue_InactiveTime_min6 = 21, + RRM_Config__ue_InactiveTime_min7 = 22, + RRM_Config__ue_InactiveTime_min8 = 23, + RRM_Config__ue_InactiveTime_min9 = 24, + RRM_Config__ue_InactiveTime_min10 = 25, + RRM_Config__ue_InactiveTime_min12 = 26, + RRM_Config__ue_InactiveTime_min14 = 27, + RRM_Config__ue_InactiveTime_min17 = 28, + RRM_Config__ue_InactiveTime_min20 = 29, + RRM_Config__ue_InactiveTime_min24 = 30, + RRM_Config__ue_InactiveTime_min28 = 31, + RRM_Config__ue_InactiveTime_min33 = 32, + RRM_Config__ue_InactiveTime_min38 = 33, + RRM_Config__ue_InactiveTime_min44 = 34, + RRM_Config__ue_InactiveTime_min50 = 35, + RRM_Config__ue_InactiveTime_hr1 = 36, + RRM_Config__ue_InactiveTime_hr1min30 = 37, + RRM_Config__ue_InactiveTime_hr2 = 38, + RRM_Config__ue_InactiveTime_hr2min30 = 39, + RRM_Config__ue_InactiveTime_hr3 = 40, + RRM_Config__ue_InactiveTime_hr3min30 = 41, + RRM_Config__ue_InactiveTime_hr4 = 42, + RRM_Config__ue_InactiveTime_hr5 = 43, + RRM_Config__ue_InactiveTime_hr6 = 44, + RRM_Config__ue_InactiveTime_hr8 = 45, + RRM_Config__ue_InactiveTime_hr10 = 46, + RRM_Config__ue_InactiveTime_hr13 = 47, + RRM_Config__ue_InactiveTime_hr16 = 48, + RRM_Config__ue_InactiveTime_hr20 = 49, + RRM_Config__ue_InactiveTime_day1 = 50, + RRM_Config__ue_InactiveTime_day1hr12 = 51, + RRM_Config__ue_InactiveTime_day2 = 52, + RRM_Config__ue_InactiveTime_day2hr12 = 53, + RRM_Config__ue_InactiveTime_day3 = 54, + RRM_Config__ue_InactiveTime_day4 = 55, + RRM_Config__ue_InactiveTime_day5 = 56, + RRM_Config__ue_InactiveTime_day7 = 57, + RRM_Config__ue_InactiveTime_day10 = 58, + RRM_Config__ue_InactiveTime_day14 = 59, + RRM_Config__ue_InactiveTime_day19 = 60, + RRM_Config__ue_InactiveTime_day24 = 61, + RRM_Config__ue_InactiveTime_day30 = 62, + RRM_Config__ue_InactiveTime_dayMoreThan30 = 63 +} e_RRM_Config__ue_InactiveTime; + +/* Forward declarations */ +struct MeasResultList2NR; + +/* RRM-Config */ +typedef struct RRM_Config { + long *ue_InactiveTime; /* OPTIONAL */ + struct MeasResultList2NR *candidateCellInfoList; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RRM_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ue_InactiveTime_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RRM_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_RRM_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_RRM_Config_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RRM_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/RSRP-Range.c b/src/codec_utils/RRC/RSRP-Range.c new file mode 100644 index 000000000..f7fc7cc48 --- /dev/null +++ b/src/codec_utils/RRC/RSRP-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RSRP-Range.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RSRP_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RSRP_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRP_Range = { + "RSRP-Range", + "RSRP-Range", + &asn_OP_NativeInteger, + asn_DEF_RSRP_Range_tags_1, + sizeof(asn_DEF_RSRP_Range_tags_1) + /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ + asn_DEF_RSRP_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRP_Range_tags_1) + /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRP_Range_constr_1, &asn_PER_type_RSRP_Range_constr_1, RSRP_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RSRP-Range.h b/src/codec_utils/RRC/RSRP-Range.h new file mode 100644 index 000000000..83f6c67c1 --- /dev/null +++ b/src/codec_utils/RRC/RSRP-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RSRP_Range_H_ +#define _RSRP_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRP-Range */ +typedef long RSRP_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRP_Range; +asn_struct_free_f RSRP_Range_free; +asn_struct_print_f RSRP_Range_print; +asn_constr_check_f RSRP_Range_constraint; +ber_type_decoder_f RSRP_Range_decode_ber; +der_type_encoder_f RSRP_Range_encode_der; +xer_type_decoder_f RSRP_Range_decode_xer; +xer_type_encoder_f RSRP_Range_encode_xer; +oer_type_decoder_f RSRP_Range_decode_oer; +oer_type_encoder_f RSRP_Range_encode_oer; +per_type_decoder_f RSRP_Range_decode_uper; +per_type_encoder_f RSRP_Range_encode_uper; +per_type_decoder_f RSRP_Range_decode_aper; +per_type_encoder_f RSRP_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRP_Range_H_ */ +#include diff --git a/src/codec_utils/RRC/RSRP-RangeEUTRA.c b/src/codec_utils/RRC/RSRP-RangeEUTRA.c new file mode 100644 index 000000000..20a578895 --- /dev/null +++ b/src/codec_utils/RRC/RSRP-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RSRP-RangeEUTRA.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RSRP_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..97) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RSRP_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA = { + "RSRP-RangeEUTRA", + "RSRP-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_RSRP_RangeEUTRA_tags_1, + sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_RSRP_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRP_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRP_RangeEUTRA_constr_1, &asn_PER_type_RSRP_RangeEUTRA_constr_1, RSRP_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RSRP-RangeEUTRA.h b/src/codec_utils/RRC/RSRP-RangeEUTRA.h new file mode 100644 index 000000000..0f0b36a0d --- /dev/null +++ b/src/codec_utils/RRC/RSRP-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RSRP_RangeEUTRA_H_ +#define _RSRP_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRP-RangeEUTRA */ +typedef long RSRP_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRP_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRP_RangeEUTRA; +asn_struct_free_f RSRP_RangeEUTRA_free; +asn_struct_print_f RSRP_RangeEUTRA_print; +asn_constr_check_f RSRP_RangeEUTRA_constraint; +ber_type_decoder_f RSRP_RangeEUTRA_decode_ber; +der_type_encoder_f RSRP_RangeEUTRA_encode_der; +xer_type_decoder_f RSRP_RangeEUTRA_decode_xer; +xer_type_encoder_f RSRP_RangeEUTRA_encode_xer; +oer_type_decoder_f RSRP_RangeEUTRA_decode_oer; +oer_type_encoder_f RSRP_RangeEUTRA_encode_oer; +per_type_decoder_f RSRP_RangeEUTRA_decode_uper; +per_type_encoder_f RSRP_RangeEUTRA_encode_uper; +per_type_decoder_f RSRP_RangeEUTRA_decode_aper; +per_type_encoder_f RSRP_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRP_RangeEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/RSRQ-Range.c b/src/codec_utils/RRC/RSRQ-Range.c new file mode 100644 index 000000000..a50c526a1 --- /dev/null +++ b/src/codec_utils/RRC/RSRQ-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RSRQ-Range.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RSRQ_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RSRQ_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRQ_Range = { + "RSRQ-Range", + "RSRQ-Range", + &asn_OP_NativeInteger, + asn_DEF_RSRQ_Range_tags_1, + sizeof(asn_DEF_RSRQ_Range_tags_1) + /sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */ + asn_DEF_RSRQ_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRQ_Range_tags_1) + /sizeof(asn_DEF_RSRQ_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRQ_Range_constr_1, &asn_PER_type_RSRQ_Range_constr_1, RSRQ_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RSRQ-Range.h b/src/codec_utils/RRC/RSRQ-Range.h new file mode 100644 index 000000000..707ee8f49 --- /dev/null +++ b/src/codec_utils/RRC/RSRQ-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RSRQ_Range_H_ +#define _RSRQ_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRQ-Range */ +typedef long RSRQ_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRQ_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRQ_Range; +asn_struct_free_f RSRQ_Range_free; +asn_struct_print_f RSRQ_Range_print; +asn_constr_check_f RSRQ_Range_constraint; +ber_type_decoder_f RSRQ_Range_decode_ber; +der_type_encoder_f RSRQ_Range_encode_der; +xer_type_decoder_f RSRQ_Range_decode_xer; +xer_type_encoder_f RSRQ_Range_encode_xer; +oer_type_decoder_f RSRQ_Range_decode_oer; +oer_type_encoder_f RSRQ_Range_encode_oer; +per_type_decoder_f RSRQ_Range_decode_uper; +per_type_encoder_f RSRQ_Range_encode_uper; +per_type_decoder_f RSRQ_Range_decode_aper; +per_type_encoder_f RSRQ_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRQ_Range_H_ */ +#include diff --git a/src/codec_utils/RRC/RSRQ-RangeEUTRA.c b/src/codec_utils/RRC/RSRQ-RangeEUTRA.c new file mode 100644 index 000000000..2fcaac689 --- /dev/null +++ b/src/codec_utils/RRC/RSRQ-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RSRQ-RangeEUTRA.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RSRQ_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..34) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RSRQ_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA = { + "RSRQ-RangeEUTRA", + "RSRQ-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_RSRQ_RangeEUTRA_tags_1, + sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_RSRQ_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1) + /sizeof(asn_DEF_RSRQ_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_RSRQ_RangeEUTRA_constr_1, &asn_PER_type_RSRQ_RangeEUTRA_constr_1, RSRQ_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RSRQ-RangeEUTRA.h b/src/codec_utils/RRC/RSRQ-RangeEUTRA.h new file mode 100644 index 000000000..4f8a1ebb4 --- /dev/null +++ b/src/codec_utils/RRC/RSRQ-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RSRQ_RangeEUTRA_H_ +#define _RSRQ_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RSRQ-RangeEUTRA */ +typedef long RSRQ_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RSRQ_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RSRQ_RangeEUTRA; +asn_struct_free_f RSRQ_RangeEUTRA_free; +asn_struct_print_f RSRQ_RangeEUTRA_print; +asn_constr_check_f RSRQ_RangeEUTRA_constraint; +ber_type_decoder_f RSRQ_RangeEUTRA_decode_ber; +der_type_encoder_f RSRQ_RangeEUTRA_encode_der; +xer_type_decoder_f RSRQ_RangeEUTRA_decode_xer; +xer_type_encoder_f RSRQ_RangeEUTRA_encode_xer; +oer_type_decoder_f RSRQ_RangeEUTRA_decode_oer; +oer_type_encoder_f RSRQ_RangeEUTRA_encode_oer; +per_type_decoder_f RSRQ_RangeEUTRA_decode_uper; +per_type_encoder_f RSRQ_RangeEUTRA_encode_uper; +per_type_decoder_f RSRQ_RangeEUTRA_decode_aper; +per_type_encoder_f RSRQ_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RSRQ_RangeEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/RadioBearerConfig.c b/src/codec_utils/RRC/RadioBearerConfig.c new file mode 100644 index 000000000..4b95d163b --- /dev/null +++ b/src/codec_utils/RRC/RadioBearerConfig.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RadioBearerConfig.h" + +#include "SRB-ToAddModList.h" +#include "DRB-ToAddModList.h" +#include "DRB-ToReleaseList.h" +#include "SecurityConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_srb3_ToRelease_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_srb3_ToRelease_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_srb3_ToRelease_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_srb3_ToRelease_specs_3 = { + asn_MAP_srb3_ToRelease_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_srb3_ToRelease_3 = { + "srb3-ToRelease", + "srb3-ToRelease", + &asn_OP_NativeEnumerated, + asn_DEF_srb3_ToRelease_tags_3, + sizeof(asn_DEF_srb3_ToRelease_tags_3) + /sizeof(asn_DEF_srb3_ToRelease_tags_3[0]) - 1, /* 1 */ + asn_DEF_srb3_ToRelease_tags_3, /* Same as above */ + sizeof(asn_DEF_srb3_ToRelease_tags_3) + /sizeof(asn_DEF_srb3_ToRelease_tags_3[0]), /* 2 */ + { &asn_OER_type_srb3_ToRelease_constr_3, &asn_PER_type_srb3_ToRelease_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_srb3_ToRelease_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RadioBearerConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct RadioBearerConfig, srb_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRB_ToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-ToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct RadioBearerConfig, srb3_ToRelease), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_srb3_ToRelease_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb3-ToRelease" + }, + { ATF_POINTER, 3, offsetof(struct RadioBearerConfig, drb_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_ToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct RadioBearerConfig, drb_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DRB_ToReleaseList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "drb-ToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct RadioBearerConfig, securityConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityConfig" + }, +}; +static const int asn_MAP_RadioBearerConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_RadioBearerConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RadioBearerConfig_specs_1 = { + sizeof(struct RadioBearerConfig), + offsetof(struct RadioBearerConfig, _asn_ctx), + asn_MAP_RadioBearerConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RadioBearerConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RadioBearerConfig = { + "RadioBearerConfig", + "RadioBearerConfig", + &asn_OP_SEQUENCE, + asn_DEF_RadioBearerConfig_tags_1, + sizeof(asn_DEF_RadioBearerConfig_tags_1) + /sizeof(asn_DEF_RadioBearerConfig_tags_1[0]), /* 1 */ + asn_DEF_RadioBearerConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_RadioBearerConfig_tags_1) + /sizeof(asn_DEF_RadioBearerConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RadioBearerConfig_1, + 5, /* Elements count */ + &asn_SPC_RadioBearerConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RadioBearerConfig.h b/src/codec_utils/RRC/RadioBearerConfig.h new file mode 100644 index 000000000..fd763aafd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RadioBearerConfig_H_ +#define _RadioBearerConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RadioBearerConfig__srb3_ToRelease { + RadioBearerConfig__srb3_ToRelease_true = 0 +} e_RadioBearerConfig__srb3_ToRelease; + +/* Forward declarations */ +struct SRB_ToAddModList; +struct DRB_ToAddModList; +struct DRB_ToReleaseList; +struct SecurityConfig; + +/* RadioBearerConfig */ +typedef struct RadioBearerConfig { + struct SRB_ToAddModList *srb_ToAddModList; /* OPTIONAL */ + long *srb3_ToRelease; /* OPTIONAL */ + struct DRB_ToAddModList *drb_ToAddModList; /* OPTIONAL */ + struct DRB_ToReleaseList *drb_ToReleaseList; /* OPTIONAL */ + struct SecurityConfig *securityConfig; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RadioBearerConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_srb3_ToRelease_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RadioBearerConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_RadioBearerConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_RadioBearerConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RadioBearerConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/RadioLinkMonitoringConfig.c b/src/codec_utils/RRC/RadioLinkMonitoringConfig.c new file mode 100644 index 000000000..236ac2cb6 --- /dev/null +++ b/src/codec_utils/RRC/RadioLinkMonitoringConfig.c @@ -0,0 +1,363 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RadioLinkMonitoringConfig.h" + +#include "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_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_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_oer_constraints_t asn_OER_type_failureDetectionResourcesToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_failureDetectionResourcesToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_beamFailureInstanceMaxCount_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_beamFailureDetectionTimer_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_failureDetectionResourcesToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_failureDetectionResourcesToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_failureDetectionResourcesToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RadioLinkMonitoringRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_failureDetectionResourcesToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_failureDetectionResourcesToAddModList_specs_2 = { + sizeof(struct RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList), + offsetof(struct RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_failureDetectionResourcesToAddModList_2 = { + "failureDetectionResourcesToAddModList", + "failureDetectionResourcesToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_failureDetectionResourcesToAddModList_tags_2, + sizeof(asn_DEF_failureDetectionResourcesToAddModList_tags_2) + /sizeof(asn_DEF_failureDetectionResourcesToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_failureDetectionResourcesToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_failureDetectionResourcesToAddModList_tags_2) + /sizeof(asn_DEF_failureDetectionResourcesToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_failureDetectionResourcesToAddModList_constr_2, &asn_PER_type_failureDetectionResourcesToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_failureDetectionResourcesToAddModList_2, + 1, /* Single element */ + &asn_SPC_failureDetectionResourcesToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_failureDetectionResourcesToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RadioLinkMonitoringRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_failureDetectionResourcesToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_failureDetectionResourcesToReleaseList_specs_4 = { + sizeof(struct RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList), + offsetof(struct RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_failureDetectionResourcesToReleaseList_4 = { + "failureDetectionResourcesToReleaseList", + "failureDetectionResourcesToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_failureDetectionResourcesToReleaseList_tags_4, + sizeof(asn_DEF_failureDetectionResourcesToReleaseList_tags_4) + /sizeof(asn_DEF_failureDetectionResourcesToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_failureDetectionResourcesToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_failureDetectionResourcesToReleaseList_tags_4) + /sizeof(asn_DEF_failureDetectionResourcesToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_failureDetectionResourcesToReleaseList_constr_4, &asn_PER_type_failureDetectionResourcesToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_failureDetectionResourcesToReleaseList_4, + 1, /* Single element */ + &asn_SPC_failureDetectionResourcesToReleaseList_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_beamFailureInstanceMaxCount_specs_6 = { + asn_MAP_beamFailureInstanceMaxCount_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_beamFailureInstanceMaxCount_6 = { + "beamFailureInstanceMaxCount", + "beamFailureInstanceMaxCount", + &asn_OP_NativeEnumerated, + asn_DEF_beamFailureInstanceMaxCount_tags_6, + sizeof(asn_DEF_beamFailureInstanceMaxCount_tags_6) + /sizeof(asn_DEF_beamFailureInstanceMaxCount_tags_6[0]) - 1, /* 1 */ + asn_DEF_beamFailureInstanceMaxCount_tags_6, /* Same as above */ + sizeof(asn_DEF_beamFailureInstanceMaxCount_tags_6) + /sizeof(asn_DEF_beamFailureInstanceMaxCount_tags_6[0]), /* 2 */ + { &asn_OER_type_beamFailureInstanceMaxCount_constr_6, &asn_PER_type_beamFailureInstanceMaxCount_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_beamFailureInstanceMaxCount_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_beamFailureDetectionTimer_specs_15 = { + asn_MAP_beamFailureDetectionTimer_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_beamFailureDetectionTimer_15 = { + "beamFailureDetectionTimer", + "beamFailureDetectionTimer", + &asn_OP_NativeEnumerated, + asn_DEF_beamFailureDetectionTimer_tags_15, + sizeof(asn_DEF_beamFailureDetectionTimer_tags_15) + /sizeof(asn_DEF_beamFailureDetectionTimer_tags_15[0]) - 1, /* 1 */ + asn_DEF_beamFailureDetectionTimer_tags_15, /* Same as above */ + sizeof(asn_DEF_beamFailureDetectionTimer_tags_15) + /sizeof(asn_DEF_beamFailureDetectionTimer_tags_15[0]), /* 2 */ + { &asn_OER_type_beamFailureDetectionTimer_constr_15, &asn_PER_type_beamFailureDetectionTimer_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_beamFailureDetectionTimer_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RadioLinkMonitoringConfig_1[] = { + { ATF_POINTER, 4, offsetof(struct RadioLinkMonitoringConfig, failureDetectionResourcesToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_failureDetectionResourcesToAddModList_2, + 0, + { &asn_OER_memb_failureDetectionResourcesToAddModList_constr_2, &asn_PER_memb_failureDetectionResourcesToAddModList_constr_2, memb_failureDetectionResourcesToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "failureDetectionResourcesToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct RadioLinkMonitoringConfig, failureDetectionResourcesToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_failureDetectionResourcesToReleaseList_4, + 0, + { &asn_OER_memb_failureDetectionResourcesToReleaseList_constr_4, &asn_PER_memb_failureDetectionResourcesToReleaseList_constr_4, memb_failureDetectionResourcesToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "failureDetectionResourcesToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct RadioLinkMonitoringConfig, beamFailureInstanceMaxCount), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_beamFailureInstanceMaxCount_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureInstanceMaxCount" + }, + { ATF_POINTER, 1, offsetof(struct RadioLinkMonitoringConfig, beamFailureDetectionTimer), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_beamFailureDetectionTimer_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "beamFailureDetectionTimer" + }, +}; +static const int asn_MAP_RadioLinkMonitoringConfig_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_RadioLinkMonitoringConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RadioLinkMonitoringConfig_specs_1 = { + sizeof(struct RadioLinkMonitoringConfig), + offsetof(struct RadioLinkMonitoringConfig, _asn_ctx), + asn_MAP_RadioLinkMonitoringConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RadioLinkMonitoringConfig_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RadioLinkMonitoringConfig = { + "RadioLinkMonitoringConfig", + "RadioLinkMonitoringConfig", + &asn_OP_SEQUENCE, + asn_DEF_RadioLinkMonitoringConfig_tags_1, + sizeof(asn_DEF_RadioLinkMonitoringConfig_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringConfig_tags_1[0]), /* 1 */ + asn_DEF_RadioLinkMonitoringConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_RadioLinkMonitoringConfig_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RadioLinkMonitoringConfig_1, + 4, /* Elements count */ + &asn_SPC_RadioLinkMonitoringConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RadioLinkMonitoringConfig.h b/src/codec_utils/RRC/RadioLinkMonitoringConfig.h new file mode 100644 index 000000000..770067c5a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RadioLinkMonitoringConfig_H_ +#define _RadioLinkMonitoringConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include "RadioLinkMonitoringRS-Id.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RadioLinkMonitoringConfig__beamFailureInstanceMaxCount { + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n1 = 0, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n2 = 1, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n3 = 2, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n4 = 3, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n5 = 4, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n6 = 5, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n8 = 6, + RadioLinkMonitoringConfig__beamFailureInstanceMaxCount_n10 = 7 +} e_RadioLinkMonitoringConfig__beamFailureInstanceMaxCount; +typedef enum RadioLinkMonitoringConfig__beamFailureDetectionTimer { + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd1 = 0, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd2 = 1, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd3 = 2, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd4 = 3, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd5 = 4, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd6 = 5, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd8 = 6, + RadioLinkMonitoringConfig__beamFailureDetectionTimer_pbfd10 = 7 +} e_RadioLinkMonitoringConfig__beamFailureDetectionTimer; + +/* Forward declarations */ +struct RadioLinkMonitoringRS; + +/* RadioLinkMonitoringConfig */ +typedef struct RadioLinkMonitoringConfig { + struct RadioLinkMonitoringConfig__failureDetectionResourcesToAddModList { + A_SEQUENCE_OF(struct RadioLinkMonitoringRS) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *failureDetectionResourcesToAddModList; + struct RadioLinkMonitoringConfig__failureDetectionResourcesToReleaseList { + A_SEQUENCE_OF(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; +} RadioLinkMonitoringConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_beamFailureInstanceMaxCount_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_beamFailureDetectionTimer_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RadioLinkMonitoringConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_RadioLinkMonitoringConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_RadioLinkMonitoringConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RadioLinkMonitoringConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.c b/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.c new file mode 100644 index 000000000..4f56abd8b --- /dev/null +++ b/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RadioLinkMonitoringRS-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RadioLinkMonitoringRS_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RadioLinkMonitoringRS_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RadioLinkMonitoringRS_Id = { + "RadioLinkMonitoringRS-Id", + "RadioLinkMonitoringRS-Id", + &asn_OP_NativeInteger, + asn_DEF_RadioLinkMonitoringRS_Id_tags_1, + sizeof(asn_DEF_RadioLinkMonitoringRS_Id_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringRS_Id_tags_1[0]), /* 1 */ + asn_DEF_RadioLinkMonitoringRS_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_RadioLinkMonitoringRS_Id_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringRS_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_RadioLinkMonitoringRS_Id_constr_1, &asn_PER_type_RadioLinkMonitoringRS_Id_constr_1, RadioLinkMonitoringRS_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.h b/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.h new file mode 100644 index 000000000..6a5417903 --- /dev/null +++ b/src/codec_utils/RRC/RadioLinkMonitoringRS-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RadioLinkMonitoringRS_Id_H_ +#define _RadioLinkMonitoringRS_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RadioLinkMonitoringRS-Id */ +typedef long RadioLinkMonitoringRS_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RadioLinkMonitoringRS_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RadioLinkMonitoringRS_Id; +asn_struct_free_f RadioLinkMonitoringRS_Id_free; +asn_struct_print_f RadioLinkMonitoringRS_Id_print; +asn_constr_check_f RadioLinkMonitoringRS_Id_constraint; +ber_type_decoder_f RadioLinkMonitoringRS_Id_decode_ber; +der_type_encoder_f RadioLinkMonitoringRS_Id_encode_der; +xer_type_decoder_f RadioLinkMonitoringRS_Id_decode_xer; +xer_type_encoder_f RadioLinkMonitoringRS_Id_encode_xer; +oer_type_decoder_f RadioLinkMonitoringRS_Id_decode_oer; +oer_type_encoder_f RadioLinkMonitoringRS_Id_encode_oer; +per_type_decoder_f RadioLinkMonitoringRS_Id_decode_uper; +per_type_encoder_f RadioLinkMonitoringRS_Id_encode_uper; +per_type_decoder_f RadioLinkMonitoringRS_Id_decode_aper; +per_type_encoder_f RadioLinkMonitoringRS_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RadioLinkMonitoringRS_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/RadioLinkMonitoringRS.c b/src/codec_utils/RRC/RadioLinkMonitoringRS.c new file mode 100644 index 000000000..c55cc707d --- /dev/null +++ b/src/codec_utils/RRC/RadioLinkMonitoringRS.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RadioLinkMonitoringRS.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_purpose_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_detectionResource_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_purpose_value2enum_3[] = { + { 0, 11, "beamFailure" }, + { 1, 3, "rlf" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_purpose_enum2value_3[] = { + 0, /* beamFailure(0) */ + 2, /* both(2) */ + 1 /* rlf(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_purpose_specs_3 = { + asn_MAP_purpose_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_purpose_3 = { + "purpose", + "purpose", + &asn_OP_NativeEnumerated, + asn_DEF_purpose_tags_3, + sizeof(asn_DEF_purpose_tags_3) + /sizeof(asn_DEF_purpose_tags_3[0]) - 1, /* 1 */ + asn_DEF_purpose_tags_3, /* Same as above */ + sizeof(asn_DEF_purpose_tags_3) + /sizeof(asn_DEF_purpose_tags_3[0]), /* 2 */ + { &asn_OER_type_purpose_constr_3, &asn_PER_type_purpose_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_purpose_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_detectionResource_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct RadioLinkMonitoringRS__detectionResource, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct RadioLinkMonitoringRS__detectionResource, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_detectionResource_specs_7 = { + sizeof(struct RadioLinkMonitoringRS__detectionResource), + offsetof(struct RadioLinkMonitoringRS__detectionResource, _asn_ctx), + offsetof(struct RadioLinkMonitoringRS__detectionResource, present), + sizeof(((struct RadioLinkMonitoringRS__detectionResource *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_detectionResource_constr_7, &asn_PER_type_detectionResource_constr_7, CHOICE_constraint }, + asn_MBR_detectionResource_7, + 2, /* Elements count */ + &asn_SPC_detectionResource_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RadioLinkMonitoringRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RadioLinkMonitoringRS, radioLinkMonitoringRS_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RadioLinkMonitoringRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "radioLinkMonitoringRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RadioLinkMonitoringRS, purpose), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_purpose_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "purpose" + }, + { ATF_NOFLAGS, 0, offsetof(struct RadioLinkMonitoringRS, detectionResource), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_detectionResource_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "detectionResource" + }, +}; +static const ber_tlv_tag_t asn_DEF_RadioLinkMonitoringRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RadioLinkMonitoringRS_specs_1 = { + sizeof(struct RadioLinkMonitoringRS), + offsetof(struct RadioLinkMonitoringRS, _asn_ctx), + asn_MAP_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_RadioLinkMonitoringRS = { + "RadioLinkMonitoringRS", + "RadioLinkMonitoringRS", + &asn_OP_SEQUENCE, + asn_DEF_RadioLinkMonitoringRS_tags_1, + sizeof(asn_DEF_RadioLinkMonitoringRS_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringRS_tags_1[0]), /* 1 */ + asn_DEF_RadioLinkMonitoringRS_tags_1, /* Same as above */ + sizeof(asn_DEF_RadioLinkMonitoringRS_tags_1) + /sizeof(asn_DEF_RadioLinkMonitoringRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RadioLinkMonitoringRS_1, + 3, /* Elements count */ + &asn_SPC_RadioLinkMonitoringRS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RadioLinkMonitoringRS.h b/src/codec_utils/RRC/RadioLinkMonitoringRS.h new file mode 100644 index 000000000..82f5e91b1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RadioLinkMonitoringRS_H_ +#define _RadioLinkMonitoringRS_H_ + + +#include + +/* Including external dependencies */ +#include "RadioLinkMonitoringRS-Id.h" +#include +#include "SSB-Index.h" +#include "NZP-CSI-RS-ResourceId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RadioLinkMonitoringRS__purpose { + RadioLinkMonitoringRS__purpose_beamFailure = 0, + RadioLinkMonitoringRS__purpose_rlf = 1, + RadioLinkMonitoringRS__purpose_both = 2 +} e_RadioLinkMonitoringRS__purpose; +typedef enum RadioLinkMonitoringRS__detectionResource_PR { + RadioLinkMonitoringRS__detectionResource_PR_NOTHING, /* No components present */ + RadioLinkMonitoringRS__detectionResource_PR_ssb_Index, + RadioLinkMonitoringRS__detectionResource_PR_csi_RS_Index +} RadioLinkMonitoringRS__detectionResource_PR; + +/* RadioLinkMonitoringRS */ +typedef struct RadioLinkMonitoringRS { + RadioLinkMonitoringRS_Id_t radioLinkMonitoringRS_Id; + long purpose; + struct RadioLinkMonitoringRS__detectionResource { + RadioLinkMonitoringRS__detectionResource_PR present; + union RadioLinkMonitoringRS__detectionResource_u { + SSB_Index_t ssb_Index; + 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; +} RadioLinkMonitoringRS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_purpose_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RadioLinkMonitoringRS; +extern asn_SEQUENCE_specifics_t asn_SPC_RadioLinkMonitoringRS_specs_1; +extern asn_TYPE_member_t asn_MBR_RadioLinkMonitoringRS_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RadioLinkMonitoringRS_H_ */ +#include diff --git a/src/codec_utils/RRC/RangeToBestCell.c b/src/codec_utils/RRC/RangeToBestCell.c new file mode 100644 index 000000000..58c972904 --- /dev/null +++ b/src/codec_utils/RRC/RangeToBestCell.c @@ -0,0 +1,39 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RangeToBestCell.h" + +/* + * This type is implemented using Q_OffsetRange, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RangeToBestCell_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_RangeToBestCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RangeToBestCell = { + "RangeToBestCell", + "RangeToBestCell", + &asn_OP_NativeEnumerated, + asn_DEF_RangeToBestCell_tags_1, + sizeof(asn_DEF_RangeToBestCell_tags_1) + /sizeof(asn_DEF_RangeToBestCell_tags_1[0]), /* 1 */ + asn_DEF_RangeToBestCell_tags_1, /* Same as above */ + sizeof(asn_DEF_RangeToBestCell_tags_1) + /sizeof(asn_DEF_RangeToBestCell_tags_1[0]), /* 1 */ + { 0, 0, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_Q_OffsetRange_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RangeToBestCell.h b/src/codec_utils/RRC/RangeToBestCell.h new file mode 100644 index 000000000..2fc072c61 --- /dev/null +++ b/src/codec_utils/RRC/RangeToBestCell.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RangeToBestCell_H_ +#define _RangeToBestCell_H_ + + +#include + +/* Including external dependencies */ +#include "Q-OffsetRange.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* RangeToBestCell */ +typedef Q_OffsetRange_t RangeToBestCell_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RangeToBestCell_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RangeToBestCell; +asn_struct_free_f RangeToBestCell_free; +asn_struct_print_f RangeToBestCell_print; +asn_constr_check_f RangeToBestCell_constraint; +ber_type_decoder_f RangeToBestCell_decode_ber; +der_type_encoder_f RangeToBestCell_encode_der; +xer_type_decoder_f RangeToBestCell_decode_xer; +xer_type_encoder_f RangeToBestCell_encode_xer; +oer_type_decoder_f RangeToBestCell_decode_oer; +oer_type_encoder_f RangeToBestCell_encode_oer; +per_type_decoder_f RangeToBestCell_decode_uper; +per_type_encoder_f RangeToBestCell_encode_uper; +per_type_decoder_f RangeToBestCell_decode_aper; +per_type_encoder_f RangeToBestCell_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RangeToBestCell_H_ */ +#include diff --git a/src/codec_utils/RRC/RateMatchPattern.c b/src/codec_utils/RRC/RateMatchPattern.c new file mode 100644 index 000000000..8290a9f5d --- /dev/null +++ b/src/codec_utils/RRC/RateMatchPattern.c @@ -0,0 +1,807 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RateMatchPattern.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_oneSlot_constr_7 CC_NOTUSED = { + { 0, 0 }, + 14 /* (SIZE(14..14)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_twoSlots_constr_8 CC_NOTUSED = { + { 0, 0 }, + 28 /* (SIZE(28..28)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_symbolsInResourceBlock_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_n2_constr_10 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n4_constr_11 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n5_constr_12 CC_NOTUSED = { + { 0, 0 }, + 5 /* (SIZE(5..5)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n8_constr_13 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n10_constr_14 CC_NOTUSED = { + { 0, 0 }, + 10 /* (SIZE(10..10)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n20_constr_15 CC_NOTUSED = { + { 0, 0 }, + 20 /* (SIZE(20..20)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_n40_constr_16 CC_NOTUSED = { + { 0, 0 }, + 40 /* (SIZE(40..40)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_periodicityAndPattern_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_resourceBlocks_constr_5 CC_NOTUSED = { + { 0, 0 }, + 275 /* (SIZE(275..275)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_patternType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_symbolsInResourceBlock_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, choice.oneSlot), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_oneSlot_constr_7, &asn_PER_memb_oneSlot_constr_7, memb_oneSlot_constraint_6 }, + 0, 0, /* No default value */ + "oneSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, choice.twoSlots), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_twoSlots_constr_8, &asn_PER_memb_twoSlots_constr_8, memb_twoSlots_constraint_6 }, + 0, 0, /* No default value */ + "twoSlots" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_symbolsInResourceBlock_specs_6 = { + sizeof(struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock), + offsetof(struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, _asn_ctx), + offsetof(struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock, present), + sizeof(((struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_symbolsInResourceBlock_constr_6, &asn_PER_type_symbolsInResourceBlock_constr_6, CHOICE_constraint }, + asn_MBR_symbolsInResourceBlock_6, + 2, /* Elements count */ + &asn_SPC_symbolsInResourceBlock_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_periodicityAndPattern_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n2_constr_10, &asn_PER_memb_n2_constr_10, memb_n2_constraint_9 }, + 0, 0, /* No default value */ + "n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n4_constr_11, &asn_PER_memb_n4_constr_11, memb_n4_constraint_9 }, + 0, 0, /* No default value */ + "n4" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n5), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n5_constr_12, &asn_PER_memb_n5_constr_12, memb_n5_constraint_9 }, + 0, 0, /* No default value */ + "n5" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n8_constr_13, &asn_PER_memb_n8_constr_13, memb_n8_constraint_9 }, + 0, 0, /* No default value */ + "n8" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n10), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n10_constr_14, &asn_PER_memb_n10_constr_14, memb_n10_constraint_9 }, + 0, 0, /* No default value */ + "n10" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n20), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n20_constr_15, &asn_PER_memb_n20_constr_15, memb_n20_constraint_9 }, + 0, 0, /* No default value */ + "n20" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, choice.n40), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_n40_constr_16, &asn_PER_memb_n40_constr_16, memb_n40_constraint_9 }, + 0, 0, /* No default value */ + "n40" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_periodicityAndPattern_specs_9 = { + sizeof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern), + offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, _asn_ctx), + offsetof(struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern, present), + sizeof(((struct RateMatchPattern__patternType__bitmaps__periodicityAndPattern *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_periodicityAndPattern_constr_9, &asn_PER_type_periodicityAndPattern_constr_9, CHOICE_constraint }, + asn_MBR_periodicityAndPattern_9, + 7, /* Elements count */ + &asn_SPC_periodicityAndPattern_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_bitmaps_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps, resourceBlocks), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_resourceBlocks_constr_5, &asn_PER_memb_resourceBlocks_constr_5, memb_resourceBlocks_constraint_4 }, + 0, 0, /* No default value */ + "resourceBlocks" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType__bitmaps, symbolsInResourceBlock), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_symbolsInResourceBlock_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "symbolsInResourceBlock" + }, + { ATF_POINTER, 1, offsetof(struct RateMatchPattern__patternType__bitmaps, periodicityAndPattern), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_periodicityAndPattern_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndPattern" + }, +}; +static const int asn_MAP_bitmaps_oms_4[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_bitmaps_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_bitmaps_specs_4 = { + sizeof(struct RateMatchPattern__patternType__bitmaps), + offsetof(struct RateMatchPattern__patternType__bitmaps, _asn_ctx), + asn_MAP_bitmaps_tag2el_4, + 3, /* Count of tags in the map */ + asn_MAP_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_bitmaps_4 = { + "bitmaps", + "bitmaps", + &asn_OP_SEQUENCE, + asn_DEF_bitmaps_tags_4, + sizeof(asn_DEF_bitmaps_tags_4) + /sizeof(asn_DEF_bitmaps_tags_4[0]) - 1, /* 1 */ + asn_DEF_bitmaps_tags_4, /* Same as above */ + sizeof(asn_DEF_bitmaps_tags_4) + /sizeof(asn_DEF_bitmaps_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_bitmaps_4, + 3, /* Elements count */ + &asn_SPC_bitmaps_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_patternType_3[] = { + { ATF_POINTER, 0, offsetof(struct RateMatchPattern__patternType, choice.bitmaps), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_bitmaps_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bitmaps" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern__patternType, choice.controlResourceSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSet" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_patternType_specs_3 = { + sizeof(struct RateMatchPattern__patternType), + offsetof(struct RateMatchPattern__patternType, _asn_ctx), + offsetof(struct RateMatchPattern__patternType, present), + sizeof(((struct RateMatchPattern__patternType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_patternType_constr_3, &asn_PER_type_patternType_constr_3, CHOICE_constraint }, + asn_MBR_patternType_3, + 2, /* Elements count */ + &asn_SPC_patternType_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dummy_value2enum_20[] = { + { 0, 7, "dynamic" }, + { 1, 10, "semiStatic" } +}; +static const unsigned int asn_MAP_dummy_enum2value_20[] = { + 0, /* dynamic(0) */ + 1 /* semiStatic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dummy_specs_20 = { + asn_MAP_dummy_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dummy_20 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_dummy_tags_20, + sizeof(asn_DEF_dummy_tags_20) + /sizeof(asn_DEF_dummy_tags_20[0]) - 1, /* 1 */ + asn_DEF_dummy_tags_20, /* Same as above */ + sizeof(asn_DEF_dummy_tags_20) + /sizeof(asn_DEF_dummy_tags_20[0]), /* 2 */ + { &asn_OER_type_dummy_constr_20, &asn_PER_type_dummy_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dummy_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RateMatchPattern_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern, rateMatchPatternId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rateMatchPatternId" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern, patternType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_patternType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "patternType" + }, + { ATF_POINTER, 1, offsetof(struct RateMatchPattern, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPattern, dummy), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dummy_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_RateMatchPattern_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RateMatchPattern_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RateMatchPattern_specs_1 = { + sizeof(struct RateMatchPattern), + offsetof(struct RateMatchPattern, _asn_ctx), + asn_MAP_RateMatchPattern_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_RateMatchPattern_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RateMatchPattern = { + "RateMatchPattern", + "RateMatchPattern", + &asn_OP_SEQUENCE, + asn_DEF_RateMatchPattern_tags_1, + sizeof(asn_DEF_RateMatchPattern_tags_1) + /sizeof(asn_DEF_RateMatchPattern_tags_1[0]), /* 1 */ + asn_DEF_RateMatchPattern_tags_1, /* Same as above */ + sizeof(asn_DEF_RateMatchPattern_tags_1) + /sizeof(asn_DEF_RateMatchPattern_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RateMatchPattern_1, + 4, /* Elements count */ + &asn_SPC_RateMatchPattern_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RateMatchPattern.h b/src/codec_utils/RRC/RateMatchPattern.h new file mode 100644 index 000000000..e1678de26 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RateMatchPattern_H_ +#define _RateMatchPattern_H_ + + +#include + +/* Including external dependencies */ +#include "RateMatchPatternId.h" +#include "SubcarrierSpacing.h" +#include +#include "ControlResourceSetId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RateMatchPattern__patternType_PR { + RateMatchPattern__patternType_PR_NOTHING, /* No components present */ + RateMatchPattern__patternType_PR_bitmaps, + RateMatchPattern__patternType_PR_controlResourceSet +} RateMatchPattern__patternType_PR; +typedef enum RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR { + RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_NOTHING, /* No components present */ + RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_oneSlot, + RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR_twoSlots +} RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR; +typedef enum RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR { + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_NOTHING, /* No components present */ + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n2, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n4, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n5, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n8, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n10, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n20, + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR_n40 +} RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR; +typedef enum RateMatchPattern__dummy { + RateMatchPattern__dummy_dynamic = 0, + RateMatchPattern__dummy_semiStatic = 1 +} e_RateMatchPattern__dummy; + +/* RateMatchPattern */ +typedef struct RateMatchPattern { + RateMatchPatternId_t rateMatchPatternId; + struct RateMatchPattern__patternType { + RateMatchPattern__patternType_PR present; + union RateMatchPattern__patternType_u { + struct RateMatchPattern__patternType__bitmaps { + BIT_STRING_t resourceBlocks; + struct RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock { + RateMatchPattern__patternType__bitmaps__symbolsInResourceBlock_PR present; + union RateMatchPattern__patternType__bitmaps__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 RateMatchPattern__patternType__bitmaps__periodicityAndPattern { + RateMatchPattern__patternType__bitmaps__periodicityAndPattern_PR present; + union RateMatchPattern__patternType__bitmaps__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; + ControlResourceSetId_t controlResourceSet; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } patternType; + 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; +} RateMatchPattern_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dummy_20; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RateMatchPattern; +extern asn_SEQUENCE_specifics_t asn_SPC_RateMatchPattern_specs_1; +extern asn_TYPE_member_t asn_MBR_RateMatchPattern_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RateMatchPattern_H_ */ +#include diff --git a/src/codec_utils/RRC/RateMatchPatternGroup.c b/src/codec_utils/RRC/RateMatchPatternGroup.c new file mode 100644 index 000000000..369b6e1eb --- /dev/null +++ b/src/codec_utils/RRC/RateMatchPatternGroup.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RateMatchPatternGroup.h" + +static asn_oer_constraints_t asn_OER_type_Member_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_RateMatchPatternGroup_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_Member_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternGroup__Member, choice.cellLevel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellLevel" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternGroup__Member, choice.bwpLevel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwpLevel" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Member_specs_2 = { + sizeof(struct RateMatchPatternGroup__Member), + offsetof(struct RateMatchPatternGroup__Member, _asn_ctx), + offsetof(struct RateMatchPatternGroup__Member, present), + sizeof(((struct RateMatchPatternGroup__Member *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_Member_constr_2, &asn_PER_type_Member_constr_2, CHOICE_constraint }, + asn_MBR_Member_2, + 2, /* Elements count */ + &asn_SPC_Member_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RateMatchPatternGroup_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Member_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RateMatchPatternGroup_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_RateMatchPatternGroup_specs_1 = { + sizeof(struct RateMatchPatternGroup), + offsetof(struct RateMatchPatternGroup, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_RateMatchPatternGroup = { + "RateMatchPatternGroup", + "RateMatchPatternGroup", + &asn_OP_SEQUENCE_OF, + asn_DEF_RateMatchPatternGroup_tags_1, + sizeof(asn_DEF_RateMatchPatternGroup_tags_1) + /sizeof(asn_DEF_RateMatchPatternGroup_tags_1[0]), /* 1 */ + asn_DEF_RateMatchPatternGroup_tags_1, /* Same as above */ + sizeof(asn_DEF_RateMatchPatternGroup_tags_1) + /sizeof(asn_DEF_RateMatchPatternGroup_tags_1[0]), /* 1 */ + { &asn_OER_type_RateMatchPatternGroup_constr_1, &asn_PER_type_RateMatchPatternGroup_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RateMatchPatternGroup_1, + 1, /* Single element */ + &asn_SPC_RateMatchPatternGroup_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RateMatchPatternGroup.h b/src/codec_utils/RRC/RateMatchPatternGroup.h new file mode 100644 index 000000000..e260edf5d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RateMatchPatternGroup_H_ +#define _RateMatchPatternGroup_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RateMatchPatternId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RateMatchPatternGroup__Member_PR { + RateMatchPatternGroup__Member_PR_NOTHING, /* No components present */ + RateMatchPatternGroup__Member_PR_cellLevel, + RateMatchPatternGroup__Member_PR_bwpLevel +} RateMatchPatternGroup__Member_PR; + +/* Forward definitions */ +typedef struct RateMatchPatternGroup__Member { + RateMatchPatternGroup__Member_PR present; + union RateMatchPatternGroup__Member_u { + RateMatchPatternId_t cellLevel; + RateMatchPatternId_t bwpLevel; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RateMatchPatternGroup__Member; + +/* RateMatchPatternGroup */ +typedef struct RateMatchPatternGroup { + A_SEQUENCE_OF(RateMatchPatternGroup__Member) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RateMatchPatternGroup_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RateMatchPatternGroup; +extern asn_SET_OF_specifics_t asn_SPC_RateMatchPatternGroup_specs_1; +extern asn_TYPE_member_t asn_MBR_RateMatchPatternGroup_1[1]; +extern asn_per_constraints_t asn_PER_type_RateMatchPatternGroup_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RateMatchPatternGroup_H_ */ +#include diff --git a/src/codec_utils/RRC/RateMatchPatternId.c b/src/codec_utils/RRC/RateMatchPatternId.c new file mode 100644 index 000000000..eeaf6022b --- /dev/null +++ b/src/codec_utils/RRC/RateMatchPatternId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RateMatchPatternId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RateMatchPatternId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RateMatchPatternId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RateMatchPatternId = { + "RateMatchPatternId", + "RateMatchPatternId", + &asn_OP_NativeInteger, + asn_DEF_RateMatchPatternId_tags_1, + sizeof(asn_DEF_RateMatchPatternId_tags_1) + /sizeof(asn_DEF_RateMatchPatternId_tags_1[0]), /* 1 */ + asn_DEF_RateMatchPatternId_tags_1, /* Same as above */ + sizeof(asn_DEF_RateMatchPatternId_tags_1) + /sizeof(asn_DEF_RateMatchPatternId_tags_1[0]), /* 1 */ + { &asn_OER_type_RateMatchPatternId_constr_1, &asn_PER_type_RateMatchPatternId_constr_1, RateMatchPatternId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RateMatchPatternId.h b/src/codec_utils/RRC/RateMatchPatternId.h new file mode 100644 index 000000000..d091fc7e9 --- /dev/null +++ b/src/codec_utils/RRC/RateMatchPatternId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RateMatchPatternId_H_ +#define _RateMatchPatternId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RateMatchPatternId */ +typedef long RateMatchPatternId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RateMatchPatternId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RateMatchPatternId; +asn_struct_free_f RateMatchPatternId_free; +asn_struct_print_f RateMatchPatternId_print; +asn_constr_check_f RateMatchPatternId_constraint; +ber_type_decoder_f RateMatchPatternId_decode_ber; +der_type_encoder_f RateMatchPatternId_encode_der; +xer_type_decoder_f RateMatchPatternId_decode_xer; +xer_type_encoder_f RateMatchPatternId_encode_xer; +oer_type_decoder_f RateMatchPatternId_decode_oer; +oer_type_encoder_f RateMatchPatternId_encode_oer; +per_type_decoder_f RateMatchPatternId_decode_uper; +per_type_encoder_f RateMatchPatternId_encode_uper; +per_type_decoder_f RateMatchPatternId_decode_aper; +per_type_encoder_f RateMatchPatternId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RateMatchPatternId_H_ */ +#include diff --git a/src/codec_utils/RRC/RateMatchPatternLTE-CRS.c b/src/codec_utils/RRC/RateMatchPatternLTE-CRS.c new file mode 100644 index 000000000..3e127d0fe --- /dev/null +++ b/src/codec_utils/RRC/RateMatchPatternLTE-CRS.c @@ -0,0 +1,295 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RateMatchPatternLTE-CRS.h" + +#include "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_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_oer_constraints_t asn_OER_type_carrierBandwidthDL_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofCRS_Ports_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_v_Shift_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_carrierFreqDL_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..16383) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_carrierBandwidthDL_specs_3 = { + asn_MAP_carrierBandwidthDL_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_carrierBandwidthDL_3 = { + "carrierBandwidthDL", + "carrierBandwidthDL", + &asn_OP_NativeEnumerated, + asn_DEF_carrierBandwidthDL_tags_3, + sizeof(asn_DEF_carrierBandwidthDL_tags_3) + /sizeof(asn_DEF_carrierBandwidthDL_tags_3[0]) - 1, /* 1 */ + asn_DEF_carrierBandwidthDL_tags_3, /* Same as above */ + sizeof(asn_DEF_carrierBandwidthDL_tags_3) + /sizeof(asn_DEF_carrierBandwidthDL_tags_3[0]), /* 2 */ + { &asn_OER_type_carrierBandwidthDL_constr_3, &asn_PER_type_carrierBandwidthDL_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_carrierBandwidthDL_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nrofCRS_Ports_value2enum_13[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_nrofCRS_Ports_enum2value_13[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nrofCRS_Ports_specs_13 = { + asn_MAP_nrofCRS_Ports_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofCRS_Ports_13 = { + "nrofCRS-Ports", + "nrofCRS-Ports", + &asn_OP_NativeEnumerated, + asn_DEF_nrofCRS_Ports_tags_13, + sizeof(asn_DEF_nrofCRS_Ports_tags_13) + /sizeof(asn_DEF_nrofCRS_Ports_tags_13[0]) - 1, /* 1 */ + asn_DEF_nrofCRS_Ports_tags_13, /* Same as above */ + sizeof(asn_DEF_nrofCRS_Ports_tags_13) + /sizeof(asn_DEF_nrofCRS_Ports_tags_13[0]), /* 2 */ + { &asn_OER_type_nrofCRS_Ports_constr_13, &asn_PER_type_nrofCRS_Ports_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofCRS_Ports_specs_13 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_v_Shift_specs_17 = { + asn_MAP_v_Shift_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_v_Shift_17 = { + "v-Shift", + "v-Shift", + &asn_OP_NativeEnumerated, + asn_DEF_v_Shift_tags_17, + sizeof(asn_DEF_v_Shift_tags_17) + /sizeof(asn_DEF_v_Shift_tags_17[0]) - 1, /* 1 */ + asn_DEF_v_Shift_tags_17, /* Same as above */ + sizeof(asn_DEF_v_Shift_tags_17) + /sizeof(asn_DEF_v_Shift_tags_17[0]), /* 2 */ + { &asn_OER_type_v_Shift_constr_17, &asn_PER_type_v_Shift_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_v_Shift_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RateMatchPatternLTE_CRS_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternLTE_CRS, carrierFreqDL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_carrierFreqDL_constr_2, &asn_PER_memb_carrierFreqDL_constr_2, memb_carrierFreqDL_constraint_1 }, + 0, 0, /* No default value */ + "carrierFreqDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternLTE_CRS, carrierBandwidthDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_carrierBandwidthDL_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierBandwidthDL" + }, + { ATF_POINTER, 1, offsetof(struct RateMatchPatternLTE_CRS, mbsfn_SubframeConfigList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_MBSFN_SubframeConfigList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mbsfn-SubframeConfigList" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternLTE_CRS, nrofCRS_Ports), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofCRS_Ports_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCRS-Ports" + }, + { ATF_NOFLAGS, 0, offsetof(struct RateMatchPatternLTE_CRS, v_Shift), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_v_Shift_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "v-Shift" + }, +}; +static const int asn_MAP_RateMatchPatternLTE_CRS_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_RateMatchPatternLTE_CRS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RateMatchPatternLTE_CRS_specs_1 = { + sizeof(struct RateMatchPatternLTE_CRS), + offsetof(struct RateMatchPatternLTE_CRS, _asn_ctx), + asn_MAP_RateMatchPatternLTE_CRS_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_RateMatchPatternLTE_CRS_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RateMatchPatternLTE_CRS = { + "RateMatchPatternLTE-CRS", + "RateMatchPatternLTE-CRS", + &asn_OP_SEQUENCE, + asn_DEF_RateMatchPatternLTE_CRS_tags_1, + sizeof(asn_DEF_RateMatchPatternLTE_CRS_tags_1) + /sizeof(asn_DEF_RateMatchPatternLTE_CRS_tags_1[0]), /* 1 */ + asn_DEF_RateMatchPatternLTE_CRS_tags_1, /* Same as above */ + sizeof(asn_DEF_RateMatchPatternLTE_CRS_tags_1) + /sizeof(asn_DEF_RateMatchPatternLTE_CRS_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RateMatchPatternLTE_CRS_1, + 5, /* Elements count */ + &asn_SPC_RateMatchPatternLTE_CRS_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RateMatchPatternLTE-CRS.h b/src/codec_utils/RRC/RateMatchPatternLTE-CRS.h new file mode 100644 index 000000000..c1d4449b7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RateMatchPatternLTE_CRS_H_ +#define _RateMatchPatternLTE_CRS_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RateMatchPatternLTE_CRS__carrierBandwidthDL { + RateMatchPatternLTE_CRS__carrierBandwidthDL_n6 = 0, + RateMatchPatternLTE_CRS__carrierBandwidthDL_n15 = 1, + RateMatchPatternLTE_CRS__carrierBandwidthDL_n25 = 2, + RateMatchPatternLTE_CRS__carrierBandwidthDL_n50 = 3, + RateMatchPatternLTE_CRS__carrierBandwidthDL_n75 = 4, + RateMatchPatternLTE_CRS__carrierBandwidthDL_n100 = 5, + RateMatchPatternLTE_CRS__carrierBandwidthDL_spare2 = 6, + RateMatchPatternLTE_CRS__carrierBandwidthDL_spare1 = 7 +} e_RateMatchPatternLTE_CRS__carrierBandwidthDL; +typedef enum RateMatchPatternLTE_CRS__nrofCRS_Ports { + RateMatchPatternLTE_CRS__nrofCRS_Ports_n1 = 0, + RateMatchPatternLTE_CRS__nrofCRS_Ports_n2 = 1, + RateMatchPatternLTE_CRS__nrofCRS_Ports_n4 = 2 +} e_RateMatchPatternLTE_CRS__nrofCRS_Ports; +typedef enum RateMatchPatternLTE_CRS__v_Shift { + RateMatchPatternLTE_CRS__v_Shift_n0 = 0, + RateMatchPatternLTE_CRS__v_Shift_n1 = 1, + RateMatchPatternLTE_CRS__v_Shift_n2 = 2, + RateMatchPatternLTE_CRS__v_Shift_n3 = 3, + RateMatchPatternLTE_CRS__v_Shift_n4 = 4, + RateMatchPatternLTE_CRS__v_Shift_n5 = 5 +} e_RateMatchPatternLTE_CRS__v_Shift; + +/* Forward declarations */ +struct EUTRA_MBSFN_SubframeConfigList; + +/* RateMatchPatternLTE-CRS */ +typedef struct RateMatchPatternLTE_CRS { + long carrierFreqDL; + long carrierBandwidthDL; + struct EUTRA_MBSFN_SubframeConfigList *mbsfn_SubframeConfigList; /* OPTIONAL */ + long nrofCRS_Ports; + long v_Shift; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RateMatchPatternLTE_CRS_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_carrierBandwidthDL_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofCRS_Ports_13; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_v_Shift_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RateMatchPatternLTE_CRS; +extern asn_SEQUENCE_specifics_t asn_SPC_RateMatchPatternLTE_CRS_specs_1; +extern asn_TYPE_member_t asn_MBR_RateMatchPatternLTE_CRS_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RateMatchPatternLTE_CRS_H_ */ +#include diff --git a/src/codec_utils/RRC/ReconfigurationWithSync.c b/src/codec_utils/RRC/ReconfigurationWithSync.c new file mode 100644 index 000000000..97aeec43c --- /dev/null +++ b/src/codec_utils/RRC/ReconfigurationWithSync.c @@ -0,0 +1,258 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReconfigurationWithSync.h" + +#include "ServingCellConfigCommon.h" +#include "RACH-ConfigDedicated.h" +#include "SSB-MTC.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_t304_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_rach_ConfigDedicated_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_t304_specs_4 = { + asn_MAP_t304_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t304_4 = { + "t304", + "t304", + &asn_OP_NativeEnumerated, + asn_DEF_t304_tags_4, + sizeof(asn_DEF_t304_tags_4) + /sizeof(asn_DEF_t304_tags_4[0]) - 1, /* 1 */ + asn_DEF_t304_tags_4, /* Same as above */ + sizeof(asn_DEF_t304_tags_4) + /sizeof(asn_DEF_t304_tags_4[0]), /* 2 */ + { &asn_OER_type_t304_constr_4, &asn_PER_type_t304_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t304_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rach_ConfigDedicated_13[] = { + { ATF_POINTER, 0, offsetof(struct ReconfigurationWithSync__rach_ConfigDedicated, choice.uplink), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplink" + }, + { ATF_POINTER, 0, offsetof(struct ReconfigurationWithSync__rach_ConfigDedicated, choice.supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_rach_ConfigDedicated_specs_13 = { + sizeof(struct ReconfigurationWithSync__rach_ConfigDedicated), + offsetof(struct ReconfigurationWithSync__rach_ConfigDedicated, _asn_ctx), + offsetof(struct ReconfigurationWithSync__rach_ConfigDedicated, present), + sizeof(((struct ReconfigurationWithSync__rach_ConfigDedicated *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_rach_ConfigDedicated_constr_13, &asn_PER_type_rach_ConfigDedicated_constr_13, CHOICE_constraint }, + asn_MBR_rach_ConfigDedicated_13, + 2, /* Elements count */ + &asn_SPC_rach_ConfigDedicated_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_17[] = { + { ATF_POINTER, 1, offsetof(struct ReconfigurationWithSync__ext1, smtc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_ext1_oms_17[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* smtc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_17 = { + sizeof(struct ReconfigurationWithSync__ext1), + offsetof(struct ReconfigurationWithSync__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_17, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_17 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_17, + sizeof(asn_DEF_ext1_tags_17) + /sizeof(asn_DEF_ext1_tags_17[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_17, /* Same as above */ + sizeof(asn_DEF_ext1_tags_17) + /sizeof(asn_DEF_ext1_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_17, + 1, /* Elements count */ + &asn_SPC_ext1_specs_17 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ReconfigurationWithSync_1[] = { + { ATF_POINTER, 1, offsetof(struct ReconfigurationWithSync, spCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServingCellConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfigCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReconfigurationWithSync, newUE_Identity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "newUE-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReconfigurationWithSync, t304), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t304_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t304" + }, + { ATF_POINTER, 2, offsetof(struct ReconfigurationWithSync, rach_ConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_rach_ConfigDedicated_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigDedicated" + }, + { ATF_POINTER, 1, offsetof(struct ReconfigurationWithSync, ext1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ext1_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_ReconfigurationWithSync_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_ReconfigurationWithSync_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReconfigurationWithSync_specs_1 = { + sizeof(struct ReconfigurationWithSync), + offsetof(struct ReconfigurationWithSync, _asn_ctx), + asn_MAP_ReconfigurationWithSync_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_ReconfigurationWithSync_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReconfigurationWithSync = { + "ReconfigurationWithSync", + "ReconfigurationWithSync", + &asn_OP_SEQUENCE, + asn_DEF_ReconfigurationWithSync_tags_1, + sizeof(asn_DEF_ReconfigurationWithSync_tags_1) + /sizeof(asn_DEF_ReconfigurationWithSync_tags_1[0]), /* 1 */ + asn_DEF_ReconfigurationWithSync_tags_1, /* Same as above */ + sizeof(asn_DEF_ReconfigurationWithSync_tags_1) + /sizeof(asn_DEF_ReconfigurationWithSync_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReconfigurationWithSync_1, + 5, /* Elements count */ + &asn_SPC_ReconfigurationWithSync_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReconfigurationWithSync.h b/src/codec_utils/RRC/ReconfigurationWithSync.h new file mode 100644 index 000000000..af0c36cb5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReconfigurationWithSync_H_ +#define _ReconfigurationWithSync_H_ + + +#include + +/* Including external dependencies */ +#include "RNTI-Value.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReconfigurationWithSync__t304 { + ReconfigurationWithSync__t304_ms50 = 0, + ReconfigurationWithSync__t304_ms100 = 1, + ReconfigurationWithSync__t304_ms150 = 2, + ReconfigurationWithSync__t304_ms200 = 3, + ReconfigurationWithSync__t304_ms500 = 4, + ReconfigurationWithSync__t304_ms1000 = 5, + ReconfigurationWithSync__t304_ms2000 = 6, + ReconfigurationWithSync__t304_ms10000 = 7 +} e_ReconfigurationWithSync__t304; +typedef enum ReconfigurationWithSync__rach_ConfigDedicated_PR { + ReconfigurationWithSync__rach_ConfigDedicated_PR_NOTHING, /* No components present */ + ReconfigurationWithSync__rach_ConfigDedicated_PR_uplink, + ReconfigurationWithSync__rach_ConfigDedicated_PR_supplementaryUplink +} ReconfigurationWithSync__rach_ConfigDedicated_PR; + +/* Forward declarations */ +struct ServingCellConfigCommon; +struct RACH_ConfigDedicated; +struct SSB_MTC; + +/* ReconfigurationWithSync */ +typedef struct ReconfigurationWithSync { + struct ServingCellConfigCommon *spCellConfigCommon; /* OPTIONAL */ + RNTI_Value_t newUE_Identity; + long t304; + struct ReconfigurationWithSync__rach_ConfigDedicated { + ReconfigurationWithSync__rach_ConfigDedicated_PR present; + union ReconfigurationWithSync__rach_ConfigDedicated_u { + struct RACH_ConfigDedicated *uplink; + struct 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 ReconfigurationWithSync__ext1 { + struct 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; +} ReconfigurationWithSync_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_t304_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ReconfigurationWithSync; +extern asn_SEQUENCE_specifics_t asn_SPC_ReconfigurationWithSync_specs_1; +extern asn_TYPE_member_t asn_MBR_ReconfigurationWithSync_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReconfigurationWithSync_H_ */ +#include diff --git a/src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.c b/src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.c new file mode 100644 index 000000000..92868c9bd --- /dev/null +++ b/src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.c @@ -0,0 +1,111 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RedirectedCarrierInfo-EUTRA.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_cnType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_cnType_value2enum_3[] = { + { 0, 3, "epc" }, + { 1, 6, "fiveGC" } +}; +static const unsigned int asn_MAP_cnType_enum2value_3[] = { + 0, /* epc(0) */ + 1 /* fiveGC(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_cnType_specs_3 = { + asn_MAP_cnType_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_cnType_3 = { + "cnType", + "cnType", + &asn_OP_NativeEnumerated, + asn_DEF_cnType_tags_3, + sizeof(asn_DEF_cnType_tags_3) + /sizeof(asn_DEF_cnType_tags_3[0]) - 1, /* 1 */ + asn_DEF_cnType_tags_3, /* Same as above */ + sizeof(asn_DEF_cnType_tags_3) + /sizeof(asn_DEF_cnType_tags_3[0]), /* 2 */ + { &asn_OER_type_cnType_constr_3, &asn_PER_type_cnType_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_cnType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RedirectedCarrierInfo_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RedirectedCarrierInfo_EUTRA, eutraFrequency), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ARFCN_ValueEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutraFrequency" + }, + { ATF_POINTER, 1, offsetof(struct RedirectedCarrierInfo_EUTRA, cnType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_cnType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cnType" + }, +}; +static const int asn_MAP_RedirectedCarrierInfo_EUTRA_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RedirectedCarrierInfo_EUTRA_specs_1 = { + sizeof(struct RedirectedCarrierInfo_EUTRA), + offsetof(struct RedirectedCarrierInfo_EUTRA, _asn_ctx), + asn_MAP_RedirectedCarrierInfo_EUTRA_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RedirectedCarrierInfo_EUTRA_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RedirectedCarrierInfo_EUTRA = { + "RedirectedCarrierInfo-EUTRA", + "RedirectedCarrierInfo-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1, + sizeof(asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1) + /sizeof(asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1) + /sizeof(asn_DEF_RedirectedCarrierInfo_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RedirectedCarrierInfo_EUTRA_1, + 2, /* Elements count */ + &asn_SPC_RedirectedCarrierInfo_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.h b/src/codec_utils/RRC/RedirectedCarrierInfo-EUTRA.h new file mode 100644 index 000000000..5f558fb84 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RedirectedCarrierInfo_EUTRA_H_ +#define _RedirectedCarrierInfo_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "ARFCN-ValueEUTRA.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RedirectedCarrierInfo_EUTRA__cnType { + RedirectedCarrierInfo_EUTRA__cnType_epc = 0, + RedirectedCarrierInfo_EUTRA__cnType_fiveGC = 1 +} e_RedirectedCarrierInfo_EUTRA__cnType; + +/* RedirectedCarrierInfo-EUTRA */ +typedef struct RedirectedCarrierInfo_EUTRA { + ARFCN_ValueEUTRA_t eutraFrequency; + long *cnType; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RedirectedCarrierInfo_EUTRA_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_cnType_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_RedirectedCarrierInfo_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_RedirectedCarrierInfo_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_RedirectedCarrierInfo_EUTRA_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RedirectedCarrierInfo_EUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/RedirectedCarrierInfo.c b/src/codec_utils/RRC/RedirectedCarrierInfo.c new file mode 100644 index 000000000..d7c78f35b --- /dev/null +++ b/src/codec_utils/RRC/RedirectedCarrierInfo.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RedirectedCarrierInfo.h" + +#include "CarrierInfoNR.h" +#include "RedirectedCarrierInfo-EUTRA.h" +static asn_oer_constraints_t asn_OER_type_RedirectedCarrierInfo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_RedirectedCarrierInfo_1[] = { + { ATF_POINTER, 0, offsetof(struct RedirectedCarrierInfo, choice.nr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CarrierInfoNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nr" + }, + { ATF_POINTER, 0, offsetof(struct RedirectedCarrierInfo, choice.eutra), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RedirectedCarrierInfo_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eutra" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RedirectedCarrierInfo_specs_1 = { + sizeof(struct RedirectedCarrierInfo), + offsetof(struct RedirectedCarrierInfo, _asn_ctx), + offsetof(struct RedirectedCarrierInfo, present), + sizeof(((struct RedirectedCarrierInfo *)0)->present), + asn_MAP_RedirectedCarrierInfo_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_RedirectedCarrierInfo = { + "RedirectedCarrierInfo", + "RedirectedCarrierInfo", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_RedirectedCarrierInfo_constr_1, &asn_PER_type_RedirectedCarrierInfo_constr_1, CHOICE_constraint }, + asn_MBR_RedirectedCarrierInfo_1, + 2, /* Elements count */ + &asn_SPC_RedirectedCarrierInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RedirectedCarrierInfo.h b/src/codec_utils/RRC/RedirectedCarrierInfo.h new file mode 100644 index 000000000..ccab2f2bb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RedirectedCarrierInfo_H_ +#define _RedirectedCarrierInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum RedirectedCarrierInfo_PR { + RedirectedCarrierInfo_PR_NOTHING, /* No components present */ + RedirectedCarrierInfo_PR_nr, + RedirectedCarrierInfo_PR_eutra + /* Extensions may appear below */ + +} RedirectedCarrierInfo_PR; + +/* Forward declarations */ +struct CarrierInfoNR; +struct RedirectedCarrierInfo_EUTRA; + +/* RedirectedCarrierInfo */ +typedef struct RedirectedCarrierInfo { + RedirectedCarrierInfo_PR present; + union RedirectedCarrierInfo_u { + struct CarrierInfoNR *nr; + struct RedirectedCarrierInfo_EUTRA *eutra; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RedirectedCarrierInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RedirectedCarrierInfo; +extern asn_CHOICE_specifics_t asn_SPC_RedirectedCarrierInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_RedirectedCarrierInfo_1[2]; +extern asn_per_constraints_t asn_PER_type_RedirectedCarrierInfo_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _RedirectedCarrierInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/ReducedAggregatedBandwidth.c b/src/codec_utils/RRC/ReducedAggregatedBandwidth.c new file mode 100644 index 000000000..80008a368 --- /dev/null +++ b/src/codec_utils/RRC/ReducedAggregatedBandwidth.c @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReducedAggregatedBandwidth.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ReducedAggregatedBandwidth_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_ReducedAggregatedBandwidth_specs_1 = { + asn_MAP_ReducedAggregatedBandwidth_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_ReducedAggregatedBandwidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReducedAggregatedBandwidth = { + "ReducedAggregatedBandwidth", + "ReducedAggregatedBandwidth", + &asn_OP_NativeEnumerated, + asn_DEF_ReducedAggregatedBandwidth_tags_1, + sizeof(asn_DEF_ReducedAggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ReducedAggregatedBandwidth_tags_1[0]), /* 1 */ + asn_DEF_ReducedAggregatedBandwidth_tags_1, /* Same as above */ + sizeof(asn_DEF_ReducedAggregatedBandwidth_tags_1) + /sizeof(asn_DEF_ReducedAggregatedBandwidth_tags_1[0]), /* 1 */ + { &asn_OER_type_ReducedAggregatedBandwidth_constr_1, &asn_PER_type_ReducedAggregatedBandwidth_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReducedAggregatedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReducedAggregatedBandwidth.h b/src/codec_utils/RRC/ReducedAggregatedBandwidth.h new file mode 100644 index 000000000..a7bdb2c83 --- /dev/null +++ b/src/codec_utils/RRC/ReducedAggregatedBandwidth.h @@ -0,0 +1,63 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReducedAggregatedBandwidth_H_ +#define _ReducedAggregatedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReducedAggregatedBandwidth { + ReducedAggregatedBandwidth_mhz0 = 0, + ReducedAggregatedBandwidth_mhz10 = 1, + ReducedAggregatedBandwidth_mhz20 = 2, + ReducedAggregatedBandwidth_mhz30 = 3, + ReducedAggregatedBandwidth_mhz40 = 4, + ReducedAggregatedBandwidth_mhz50 = 5, + ReducedAggregatedBandwidth_mhz60 = 6, + ReducedAggregatedBandwidth_mhz80 = 7, + ReducedAggregatedBandwidth_mhz100 = 8, + ReducedAggregatedBandwidth_mhz200 = 9, + ReducedAggregatedBandwidth_mhz300 = 10, + ReducedAggregatedBandwidth_mhz400 = 11 +} e_ReducedAggregatedBandwidth; + +/* ReducedAggregatedBandwidth */ +typedef long ReducedAggregatedBandwidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReducedAggregatedBandwidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReducedAggregatedBandwidth; +extern const asn_INTEGER_specifics_t asn_SPC_ReducedAggregatedBandwidth_specs_1; +asn_struct_free_f ReducedAggregatedBandwidth_free; +asn_struct_print_f ReducedAggregatedBandwidth_print; +asn_constr_check_f ReducedAggregatedBandwidth_constraint; +ber_type_decoder_f ReducedAggregatedBandwidth_decode_ber; +der_type_encoder_f ReducedAggregatedBandwidth_encode_der; +xer_type_decoder_f ReducedAggregatedBandwidth_decode_xer; +xer_type_encoder_f ReducedAggregatedBandwidth_encode_xer; +oer_type_decoder_f ReducedAggregatedBandwidth_decode_oer; +oer_type_encoder_f ReducedAggregatedBandwidth_encode_oer; +per_type_decoder_f ReducedAggregatedBandwidth_decode_uper; +per_type_encoder_f ReducedAggregatedBandwidth_encode_uper; +per_type_decoder_f ReducedAggregatedBandwidth_decode_aper; +per_type_encoder_f ReducedAggregatedBandwidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReducedAggregatedBandwidth_H_ */ +#include diff --git a/src/codec_utils/RRC/ReestabNCellInfo.c b/src/codec_utils/RRC/ReestabNCellInfo.c new file mode 100644 index 000000000..c2f177793 --- /dev/null +++ b/src/codec_utils/RRC/ReestabNCellInfo.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReestabNCellInfo.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_key_gNodeB_Star_constr_3 CC_NOTUSED = { + { 0, 0 }, + 256 /* (SIZE(256..256)) */}; +static asn_per_constraints_t asn_PER_memb_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_ReestabNCellInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReestabNCellInfo, cellIdentity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReestabNCellInfo, key_gNodeB_Star), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_key_gNodeB_Star_constr_3, &asn_PER_memb_key_gNodeB_Star_constr_3, memb_key_gNodeB_Star_constraint_1 }, + 0, 0, /* No default value */ + "key-gNodeB-Star" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReestabNCellInfo, shortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortMAC-I" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReestabNCellInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReestabNCellInfo_specs_1 = { + sizeof(struct ReestabNCellInfo), + offsetof(struct ReestabNCellInfo, _asn_ctx), + asn_MAP_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_ReestabNCellInfo = { + "ReestabNCellInfo", + "ReestabNCellInfo", + &asn_OP_SEQUENCE, + asn_DEF_ReestabNCellInfo_tags_1, + sizeof(asn_DEF_ReestabNCellInfo_tags_1) + /sizeof(asn_DEF_ReestabNCellInfo_tags_1[0]), /* 1 */ + asn_DEF_ReestabNCellInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ReestabNCellInfo_tags_1) + /sizeof(asn_DEF_ReestabNCellInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReestabNCellInfo_1, + 3, /* Elements count */ + &asn_SPC_ReestabNCellInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReestabNCellInfo.h b/src/codec_utils/RRC/ReestabNCellInfo.h new file mode 100644 index 000000000..b101169bd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReestabNCellInfo_H_ +#define _ReestabNCellInfo_H_ + + +#include + +/* Including external dependencies */ +#include "CellIdentity.h" +#include +#include "ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReestabNCellInfo */ +typedef struct ReestabNCellInfo { + CellIdentity_t cellIdentity; + BIT_STRING_t key_gNodeB_Star; + ShortMAC_I_t shortMAC_I; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReestabNCellInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReestabNCellInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ReestabNCellInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ReestabNCellInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReestabNCellInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/ReestabNCellInfoList.c b/src/codec_utils/RRC/ReestabNCellInfoList.c new file mode 100644 index 000000000..27d816cc7 --- /dev/null +++ b/src/codec_utils/RRC/ReestabNCellInfoList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReestabNCellInfoList.h" + +#include "ReestabNCellInfo.h" +static asn_oer_constraints_t asn_OER_type_ReestabNCellInfoList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_ReestabNCellInfoList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReestabNCellInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReestabNCellInfoList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ReestabNCellInfoList_specs_1 = { + sizeof(struct ReestabNCellInfoList), + offsetof(struct ReestabNCellInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ReestabNCellInfoList = { + "ReestabNCellInfoList", + "ReestabNCellInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ReestabNCellInfoList_tags_1, + sizeof(asn_DEF_ReestabNCellInfoList_tags_1) + /sizeof(asn_DEF_ReestabNCellInfoList_tags_1[0]), /* 1 */ + asn_DEF_ReestabNCellInfoList_tags_1, /* Same as above */ + sizeof(asn_DEF_ReestabNCellInfoList_tags_1) + /sizeof(asn_DEF_ReestabNCellInfoList_tags_1[0]), /* 1 */ + { &asn_OER_type_ReestabNCellInfoList_constr_1, &asn_PER_type_ReestabNCellInfoList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ReestabNCellInfoList_1, + 1, /* Single element */ + &asn_SPC_ReestabNCellInfoList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReestabNCellInfoList.h b/src/codec_utils/RRC/ReestabNCellInfoList.h new file mode 100644 index 000000000..1734cd85f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReestabNCellInfoList_H_ +#define _ReestabNCellInfoList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReestabNCellInfo; + +/* ReestabNCellInfoList */ +typedef struct ReestabNCellInfoList { + A_SEQUENCE_OF(struct ReestabNCellInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReestabNCellInfoList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReestabNCellInfoList; +extern asn_SET_OF_specifics_t asn_SPC_ReestabNCellInfoList_specs_1; +extern asn_TYPE_member_t asn_MBR_ReestabNCellInfoList_1[1]; +extern asn_per_constraints_t asn_PER_type_ReestabNCellInfoList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReestabNCellInfoList_H_ */ +#include diff --git a/src/codec_utils/RRC/ReestabUE-Identity.c b/src/codec_utils/RRC/ReestabUE-Identity.c new file mode 100644 index 000000000..442a25750 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReestabUE-Identity.h" + +asn_TYPE_member_t asn_MBR_ReestabUE_Identity_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReestabUE_Identity, c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReestabUE_Identity, physCellId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReestabUE_Identity, shortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortMAC-I" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReestabUE_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReestabUE_Identity_specs_1 = { + sizeof(struct ReestabUE_Identity), + offsetof(struct ReestabUE_Identity, _asn_ctx), + asn_MAP_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_ReestabUE_Identity = { + "ReestabUE-Identity", + "ReestabUE-Identity", + &asn_OP_SEQUENCE, + asn_DEF_ReestabUE_Identity_tags_1, + sizeof(asn_DEF_ReestabUE_Identity_tags_1) + /sizeof(asn_DEF_ReestabUE_Identity_tags_1[0]), /* 1 */ + asn_DEF_ReestabUE_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_ReestabUE_Identity_tags_1) + /sizeof(asn_DEF_ReestabUE_Identity_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReestabUE_Identity_1, + 3, /* Elements count */ + &asn_SPC_ReestabUE_Identity_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReestabUE-Identity.h b/src/codec_utils/RRC/ReestabUE-Identity.h new file mode 100644 index 000000000..5176a5070 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReestabUE_Identity_H_ +#define _ReestabUE_Identity_H_ + + +#include + +/* Including external dependencies */ +#include "RNTI-Value.h" +#include "PhysCellId.h" +#include "ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReestabUE-Identity */ +typedef struct ReestabUE_Identity { + RNTI_Value_t c_RNTI; + PhysCellId_t physCellId; + ShortMAC_I_t shortMAC_I; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReestabUE_Identity_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReestabUE_Identity; +extern asn_SEQUENCE_specifics_t asn_SPC_ReestabUE_Identity_specs_1; +extern asn_TYPE_member_t asn_MBR_ReestabUE_Identity_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReestabUE_Identity_H_ */ +#include diff --git a/src/codec_utils/RRC/ReestablishmentCause.c b/src/codec_utils/RRC/ReestablishmentCause.c new file mode 100644 index 000000000..215cfbcb7 --- /dev/null +++ b/src/codec_utils/RRC/ReestablishmentCause.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReestablishmentCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ReestablishmentCause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_ReestablishmentCause_value2enum_1[] = { + { 0, 22, "reconfigurationFailure" }, + { 1, 15, "handoverFailure" }, + { 2, 12, "otherFailure" }, + { 3, 6, "spare1" } +}; +static const unsigned int asn_MAP_ReestablishmentCause_enum2value_1[] = { + 1, /* handoverFailure(1) */ + 2, /* otherFailure(2) */ + 0, /* reconfigurationFailure(0) */ + 3 /* spare1(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_ReestablishmentCause_specs_1 = { + asn_MAP_ReestablishmentCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_ReestablishmentCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReestablishmentCause = { + "ReestablishmentCause", + "ReestablishmentCause", + &asn_OP_NativeEnumerated, + asn_DEF_ReestablishmentCause_tags_1, + sizeof(asn_DEF_ReestablishmentCause_tags_1) + /sizeof(asn_DEF_ReestablishmentCause_tags_1[0]), /* 1 */ + asn_DEF_ReestablishmentCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ReestablishmentCause_tags_1) + /sizeof(asn_DEF_ReestablishmentCause_tags_1[0]), /* 1 */ + { &asn_OER_type_ReestablishmentCause_constr_1, &asn_PER_type_ReestablishmentCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReestablishmentCause_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReestablishmentCause.h b/src/codec_utils/RRC/ReestablishmentCause.h new file mode 100644 index 000000000..6e4781b47 --- /dev/null +++ b/src/codec_utils/RRC/ReestablishmentCause.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReestablishmentCause_H_ +#define _ReestablishmentCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReestablishmentCause { + ReestablishmentCause_reconfigurationFailure = 0, + ReestablishmentCause_handoverFailure = 1, + ReestablishmentCause_otherFailure = 2, + ReestablishmentCause_spare1 = 3 +} e_ReestablishmentCause; + +/* ReestablishmentCause */ +typedef long ReestablishmentCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReestablishmentCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReestablishmentCause; +extern const asn_INTEGER_specifics_t asn_SPC_ReestablishmentCause_specs_1; +asn_struct_free_f ReestablishmentCause_free; +asn_struct_print_f ReestablishmentCause_print; +asn_constr_check_f ReestablishmentCause_constraint; +ber_type_decoder_f ReestablishmentCause_decode_ber; +der_type_encoder_f ReestablishmentCause_encode_der; +xer_type_decoder_f ReestablishmentCause_decode_xer; +xer_type_encoder_f ReestablishmentCause_encode_xer; +oer_type_decoder_f ReestablishmentCause_decode_oer; +oer_type_encoder_f ReestablishmentCause_encode_oer; +per_type_decoder_f ReestablishmentCause_decode_uper; +per_type_encoder_f ReestablishmentCause_encode_uper; +per_type_decoder_f ReestablishmentCause_decode_aper; +per_type_encoder_f ReestablishmentCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReestablishmentCause_H_ */ +#include diff --git a/src/codec_utils/RRC/ReestablishmentInfo.c b/src/codec_utils/RRC/ReestablishmentInfo.c new file mode 100644 index 000000000..028064e85 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReestablishmentInfo.h" + +#include "ReestabNCellInfoList.h" +asn_TYPE_member_t asn_MBR_ReestablishmentInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReestablishmentInfo, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReestablishmentInfo, targetCellShortMAC_I), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortMAC_I, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellShortMAC-I" + }, + { ATF_POINTER, 1, offsetof(struct ReestablishmentInfo, additionalReestabInfoList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReestabNCellInfoList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "additionalReestabInfoList" + }, +}; +static const int asn_MAP_ReestablishmentInfo_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ReestablishmentInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReestablishmentInfo_specs_1 = { + sizeof(struct ReestablishmentInfo), + offsetof(struct ReestablishmentInfo, _asn_ctx), + asn_MAP_ReestablishmentInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ReestablishmentInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReestablishmentInfo = { + "ReestablishmentInfo", + "ReestablishmentInfo", + &asn_OP_SEQUENCE, + asn_DEF_ReestablishmentInfo_tags_1, + sizeof(asn_DEF_ReestablishmentInfo_tags_1) + /sizeof(asn_DEF_ReestablishmentInfo_tags_1[0]), /* 1 */ + asn_DEF_ReestablishmentInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_ReestablishmentInfo_tags_1) + /sizeof(asn_DEF_ReestablishmentInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReestablishmentInfo_1, + 3, /* Elements count */ + &asn_SPC_ReestablishmentInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReestablishmentInfo.h b/src/codec_utils/RRC/ReestablishmentInfo.h new file mode 100644 index 000000000..95e62252b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReestablishmentInfo_H_ +#define _ReestablishmentInfo_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "ShortMAC-I.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReestabNCellInfoList; + +/* ReestablishmentInfo */ +typedef struct ReestablishmentInfo { + PhysCellId_t sourcePhysCellId; + ShortMAC_I_t targetCellShortMAC_I; + struct ReestabNCellInfoList *additionalReestabInfoList; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReestablishmentInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReestablishmentInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_ReestablishmentInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_ReestablishmentInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReestablishmentInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/ReferenceSignalConfig.c b/src/codec_utils/RRC/ReferenceSignalConfig.c new file mode 100644 index 000000000..484e35c58 --- /dev/null +++ b/src/codec_utils/RRC/ReferenceSignalConfig.c @@ -0,0 +1,121 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReferenceSignalConfig.h" + +#include "SSB-ConfigMobility.h" +#include "CSI-RS-ResourceConfigMobility.h" +static asn_oer_constraints_t asn_OER_type_csi_rs_ResourceConfigMobility_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_csi_rs_ResourceConfigMobility_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_csi_rs_ResourceConfigMobility_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReferenceSignalConfig__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 ReferenceSignalConfig__csi_rs_ResourceConfigMobility, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_ResourceConfigMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_csi_rs_ResourceConfigMobility_tag2el_3[] = { + { (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_csi_rs_ResourceConfigMobility_specs_3 = { + sizeof(struct ReferenceSignalConfig__csi_rs_ResourceConfigMobility), + offsetof(struct ReferenceSignalConfig__csi_rs_ResourceConfigMobility, _asn_ctx), + offsetof(struct ReferenceSignalConfig__csi_rs_ResourceConfigMobility, present), + sizeof(((struct ReferenceSignalConfig__csi_rs_ResourceConfigMobility *)0)->present), + asn_MAP_csi_rs_ResourceConfigMobility_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_csi_rs_ResourceConfigMobility_3 = { + "csi-rs-ResourceConfigMobility", + "csi-rs-ResourceConfigMobility", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_csi_rs_ResourceConfigMobility_constr_3, &asn_PER_type_csi_rs_ResourceConfigMobility_constr_3, CHOICE_constraint }, + asn_MBR_csi_rs_ResourceConfigMobility_3, + 2, /* Elements count */ + &asn_SPC_csi_rs_ResourceConfigMobility_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ReferenceSignalConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct ReferenceSignalConfig, ssb_ConfigMobility), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_ConfigMobility, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ConfigMobility" + }, + { ATF_POINTER, 1, offsetof(struct ReferenceSignalConfig, csi_rs_ResourceConfigMobility), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_csi_rs_ResourceConfigMobility_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-rs-ResourceConfigMobility" + }, +}; +static const int asn_MAP_ReferenceSignalConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ReferenceSignalConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReferenceSignalConfig_specs_1 = { + sizeof(struct ReferenceSignalConfig), + offsetof(struct ReferenceSignalConfig, _asn_ctx), + asn_MAP_ReferenceSignalConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ReferenceSignalConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ReferenceSignalConfig = { + "ReferenceSignalConfig", + "ReferenceSignalConfig", + &asn_OP_SEQUENCE, + asn_DEF_ReferenceSignalConfig_tags_1, + sizeof(asn_DEF_ReferenceSignalConfig_tags_1) + /sizeof(asn_DEF_ReferenceSignalConfig_tags_1[0]), /* 1 */ + asn_DEF_ReferenceSignalConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ReferenceSignalConfig_tags_1) + /sizeof(asn_DEF_ReferenceSignalConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReferenceSignalConfig_1, + 2, /* Elements count */ + &asn_SPC_ReferenceSignalConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReferenceSignalConfig.h b/src/codec_utils/RRC/ReferenceSignalConfig.h new file mode 100644 index 000000000..ca20207f8 --- /dev/null +++ b/src/codec_utils/RRC/ReferenceSignalConfig.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReferenceSignalConfig_H_ +#define _ReferenceSignalConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR { + ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR_NOTHING, /* No components present */ + ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR_release, + ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR_setup +} ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR; + +/* Forward declarations */ +struct SSB_ConfigMobility; +struct CSI_RS_ResourceConfigMobility; + +/* ReferenceSignalConfig */ +typedef struct ReferenceSignalConfig { + struct SSB_ConfigMobility *ssb_ConfigMobility; /* OPTIONAL */ + struct ReferenceSignalConfig__csi_rs_ResourceConfigMobility { + ReferenceSignalConfig__csi_rs_ResourceConfigMobility_PR present; + union ReferenceSignalConfig__csi_rs_ResourceConfigMobility_u { + NULL_t release; + struct CSI_RS_ResourceConfigMobility *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_rs_ResourceConfigMobility; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReferenceSignalConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReferenceSignalConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ReferenceSignalConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ReferenceSignalConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReferenceSignalConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/RegisteredAMF.c b/src/codec_utils/RRC/RegisteredAMF.c new file mode 100644 index 000000000..7e1f3eb6b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RegisteredAMF.h" + +#include "PLMN-IdentitY.h" +asn_TYPE_member_t asn_MBR_RegisteredAMF_1[] = { + { ATF_POINTER, 1, offsetof(struct RegisteredAMF, plmn_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PLMN_IdentitY, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmn-Identity" + }, + { ATF_NOFLAGS, 0, offsetof(struct RegisteredAMF, amf_Identifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMF_Identifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amf-Identifier" + }, +}; +static const int asn_MAP_RegisteredAMF_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_RegisteredAMF_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_RegisteredAMF_specs_1 = { + sizeof(struct RegisteredAMF), + offsetof(struct RegisteredAMF, _asn_ctx), + asn_MAP_RegisteredAMF_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_RegisteredAMF_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RegisteredAMF = { + "RegisteredAMF", + "RegisteredAMF", + &asn_OP_SEQUENCE, + asn_DEF_RegisteredAMF_tags_1, + sizeof(asn_DEF_RegisteredAMF_tags_1) + /sizeof(asn_DEF_RegisteredAMF_tags_1[0]), /* 1 */ + asn_DEF_RegisteredAMF_tags_1, /* Same as above */ + sizeof(asn_DEF_RegisteredAMF_tags_1) + /sizeof(asn_DEF_RegisteredAMF_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RegisteredAMF_1, + 2, /* Elements count */ + &asn_SPC_RegisteredAMF_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/RegisteredAMF.h b/src/codec_utils/RRC/RegisteredAMF.h new file mode 100644 index 000000000..434c42ea2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RegisteredAMF_H_ +#define _RegisteredAMF_H_ + + +#include + +/* Including external dependencies */ +#include "AMF-Identifier.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct PLMN_IdentitY; + +/* RegisteredAMF */ +typedef struct RegisteredAMF { + struct PLMN_IdentitY *plmn_Identity; /* OPTIONAL */ + AMF_Identifier_t amf_Identifier; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RegisteredAMF_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RegisteredAMF; +extern asn_SEQUENCE_specifics_t asn_SPC_RegisteredAMF_specs_1; +extern asn_TYPE_member_t asn_MBR_RegisteredAMF_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RegisteredAMF_H_ */ +#include diff --git a/src/codec_utils/RRC/RejectWaitTime.c b/src/codec_utils/RRC/RejectWaitTime.c new file mode 100644 index 000000000..f6f2fc84f --- /dev/null +++ b/src/codec_utils/RRC/RejectWaitTime.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RejectWaitTime.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_RejectWaitTime_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..16) */, + -1}; +asn_per_constraints_t asn_PER_type_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_RejectWaitTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RejectWaitTime = { + "RejectWaitTime", + "RejectWaitTime", + &asn_OP_NativeInteger, + asn_DEF_RejectWaitTime_tags_1, + sizeof(asn_DEF_RejectWaitTime_tags_1) + /sizeof(asn_DEF_RejectWaitTime_tags_1[0]), /* 1 */ + asn_DEF_RejectWaitTime_tags_1, /* Same as above */ + sizeof(asn_DEF_RejectWaitTime_tags_1) + /sizeof(asn_DEF_RejectWaitTime_tags_1[0]), /* 1 */ + { &asn_OER_type_RejectWaitTime_constr_1, &asn_PER_type_RejectWaitTime_constr_1, RejectWaitTime_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/RejectWaitTime.h b/src/codec_utils/RRC/RejectWaitTime.h new file mode 100644 index 000000000..ae389100c --- /dev/null +++ b/src/codec_utils/RRC/RejectWaitTime.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RejectWaitTime_H_ +#define _RejectWaitTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RejectWaitTime */ +typedef long RejectWaitTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RejectWaitTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RejectWaitTime; +asn_struct_free_f RejectWaitTime_free; +asn_struct_print_f RejectWaitTime_print; +asn_constr_check_f RejectWaitTime_constraint; +ber_type_decoder_f RejectWaitTime_decode_ber; +der_type_encoder_f RejectWaitTime_encode_der; +xer_type_decoder_f RejectWaitTime_decode_xer; +xer_type_encoder_f RejectWaitTime_encode_xer; +oer_type_decoder_f RejectWaitTime_decode_oer; +oer_type_encoder_f RejectWaitTime_encode_oer; +per_type_decoder_f RejectWaitTime_decode_uper; +per_type_encoder_f RejectWaitTime_encode_uper; +per_type_decoder_f RejectWaitTime_decode_aper; +per_type_encoder_f RejectWaitTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RejectWaitTime_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportCGI-EUTRA.c b/src/codec_utils/RRC/ReportCGI-EUTRA.c new file mode 100644 index 000000000..99b91e053 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportCGI-EUTRA.h" + +asn_TYPE_member_t asn_MBR_ReportCGI_EUTRA_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReportCGI_EUTRA, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUTRA_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportCGI_EUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReportCGI_EUTRA_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellForWhichToReportCGI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReportCGI_EUTRA_specs_1 = { + sizeof(struct ReportCGI_EUTRA), + offsetof(struct ReportCGI_EUTRA, _asn_ctx), + asn_MAP_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_ReportCGI_EUTRA = { + "ReportCGI-EUTRA", + "ReportCGI-EUTRA", + &asn_OP_SEQUENCE, + asn_DEF_ReportCGI_EUTRA_tags_1, + sizeof(asn_DEF_ReportCGI_EUTRA_tags_1) + /sizeof(asn_DEF_ReportCGI_EUTRA_tags_1[0]), /* 1 */ + asn_DEF_ReportCGI_EUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportCGI_EUTRA_tags_1) + /sizeof(asn_DEF_ReportCGI_EUTRA_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReportCGI_EUTRA_1, + 1, /* Elements count */ + &asn_SPC_ReportCGI_EUTRA_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportCGI-EUTRA.h b/src/codec_utils/RRC/ReportCGI-EUTRA.h new file mode 100644 index 000000000..826be0d7a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportCGI_EUTRA_H_ +#define _ReportCGI_EUTRA_H_ + + +#include + +/* Including external dependencies */ +#include "EUTRA-PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReportCGI-EUTRA */ +typedef struct ReportCGI_EUTRA { + EUTRA_PhysCellId_t cellForWhichToReportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReportCGI_EUTRA_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportCGI_EUTRA; +extern asn_SEQUENCE_specifics_t asn_SPC_ReportCGI_EUTRA_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportCGI_EUTRA_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportCGI_EUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportCGI.c b/src/codec_utils/RRC/ReportCGI.c new file mode 100644 index 000000000..a3cbb9341 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportCGI.h" + +asn_TYPE_member_t asn_MBR_ReportCGI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReportCGI, cellForWhichToReportCGI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellForWhichToReportCGI" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportCGI_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReportCGI_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* cellForWhichToReportCGI */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReportCGI_specs_1 = { + sizeof(struct ReportCGI), + offsetof(struct ReportCGI, _asn_ctx), + asn_MAP_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_ReportCGI = { + "ReportCGI", + "ReportCGI", + &asn_OP_SEQUENCE, + asn_DEF_ReportCGI_tags_1, + sizeof(asn_DEF_ReportCGI_tags_1) + /sizeof(asn_DEF_ReportCGI_tags_1[0]), /* 1 */ + asn_DEF_ReportCGI_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportCGI_tags_1) + /sizeof(asn_DEF_ReportCGI_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReportCGI_1, + 1, /* Elements count */ + &asn_SPC_ReportCGI_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportCGI.h b/src/codec_utils/RRC/ReportCGI.h new file mode 100644 index 000000000..f65807d26 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportCGI_H_ +#define _ReportCGI_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReportCGI */ +typedef struct ReportCGI { + PhysCellId_t cellForWhichToReportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReportCGI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportCGI; +extern asn_SEQUENCE_specifics_t asn_SPC_ReportCGI_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportCGI_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportCGI_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigId.c b/src/codec_utils/RRC/ReportConfigId.c new file mode 100644 index 000000000..f5ed104af --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ReportConfigId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ReportConfigId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReportConfigId = { + "ReportConfigId", + "ReportConfigId", + &asn_OP_NativeInteger, + asn_DEF_ReportConfigId_tags_1, + sizeof(asn_DEF_ReportConfigId_tags_1) + /sizeof(asn_DEF_ReportConfigId_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigId_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigId_tags_1) + /sizeof(asn_DEF_ReportConfigId_tags_1[0]), /* 1 */ + { &asn_OER_type_ReportConfigId_constr_1, &asn_PER_type_ReportConfigId_constr_1, ReportConfigId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigId.h b/src/codec_utils/RRC/ReportConfigId.h new file mode 100644 index 000000000..c9a9ad5c4 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigId_H_ +#define _ReportConfigId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReportConfigId */ +typedef long ReportConfigId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReportConfigId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigId; +asn_struct_free_f ReportConfigId_free; +asn_struct_print_f ReportConfigId_print; +asn_constr_check_f ReportConfigId_constraint; +ber_type_decoder_f ReportConfigId_decode_ber; +der_type_encoder_f ReportConfigId_encode_der; +xer_type_decoder_f ReportConfigId_decode_xer; +xer_type_encoder_f ReportConfigId_encode_xer; +oer_type_decoder_f ReportConfigId_decode_oer; +oer_type_encoder_f ReportConfigId_encode_oer; +per_type_decoder_f ReportConfigId_decode_uper; +per_type_encoder_f ReportConfigId_encode_uper; +per_type_decoder_f ReportConfigId_decode_aper; +per_type_encoder_f ReportConfigId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigId_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigInterRAT.c b/src/codec_utils/RRC/ReportConfigInterRAT.c new file mode 100644 index 000000000..4be492ca3 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigInterRAT.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigInterRAT.h" + +#include "PeriodicalReportConfigInterRAT.h" +#include "EventTriggerConfigInterRAT.h" +#include "ReportCGI-EUTRA.h" +static asn_oer_constraints_t asn_OER_type_reportType_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_reportType_2[] = { + { ATF_POINTER, 0, offsetof(struct ReportConfigInterRAT__reportType, choice.periodical), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PeriodicalReportConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodical" + }, + { ATF_POINTER, 0, offsetof(struct ReportConfigInterRAT__reportType, choice.eventTriggered), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EventTriggerConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventTriggered" + }, + { ATF_POINTER, 0, offsetof(struct ReportConfigInterRAT__reportType, choice.reportCGI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportCGI_EUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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 */ +}; +static asn_CHOICE_specifics_t asn_SPC_reportType_specs_2 = { + sizeof(struct ReportConfigInterRAT__reportType), + offsetof(struct ReportConfigInterRAT__reportType, _asn_ctx), + offsetof(struct ReportConfigInterRAT__reportType, present), + sizeof(((struct ReportConfigInterRAT__reportType *)0)->present), + asn_MAP_reportType_tag2el_2, + 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_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) */ + { &asn_OER_type_reportType_constr_2, &asn_PER_type_reportType_constr_2, CHOICE_constraint }, + asn_MBR_reportType_2, + 3, /* Elements count */ + &asn_SPC_reportType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ReportConfigInterRAT_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReportConfigInterRAT, reportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_reportType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportConfigInterRAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReportConfigInterRAT_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReportConfigInterRAT_specs_1 = { + sizeof(struct ReportConfigInterRAT), + offsetof(struct ReportConfigInterRAT, _asn_ctx), + asn_MAP_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_ReportConfigInterRAT = { + "ReportConfigInterRAT", + "ReportConfigInterRAT", + &asn_OP_SEQUENCE, + asn_DEF_ReportConfigInterRAT_tags_1, + sizeof(asn_DEF_ReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ReportConfigInterRAT_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigInterRAT_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigInterRAT_tags_1) + /sizeof(asn_DEF_ReportConfigInterRAT_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReportConfigInterRAT_1, + 1, /* Elements count */ + &asn_SPC_ReportConfigInterRAT_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigInterRAT.h b/src/codec_utils/RRC/ReportConfigInterRAT.h new file mode 100644 index 000000000..d3d0a50e9 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigInterRAT.h @@ -0,0 +1,69 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigInterRAT_H_ +#define _ReportConfigInterRAT_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReportConfigInterRAT__reportType_PR { + ReportConfigInterRAT__reportType_PR_NOTHING, /* No components present */ + ReportConfigInterRAT__reportType_PR_periodical, + ReportConfigInterRAT__reportType_PR_eventTriggered, + ReportConfigInterRAT__reportType_PR_reportCGI + /* Extensions may appear below */ + +} ReportConfigInterRAT__reportType_PR; + +/* Forward declarations */ +struct PeriodicalReportConfigInterRAT; +struct EventTriggerConfigInterRAT; +struct ReportCGI_EUTRA; + +/* ReportConfigInterRAT */ +typedef struct ReportConfigInterRAT { + struct ReportConfigInterRAT__reportType { + ReportConfigInterRAT__reportType_PR present; + union ReportConfigInterRAT__reportType_u { + struct PeriodicalReportConfigInterRAT *periodical; + struct EventTriggerConfigInterRAT *eventTriggered; + struct ReportCGI_EUTRA *reportCGI; + /* + * This type is extensible, + * possible extensions are below. + */ + } 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; +} ReportConfigInterRAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigInterRAT; +extern asn_SEQUENCE_specifics_t asn_SPC_ReportConfigInterRAT_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportConfigInterRAT_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigInterRAT_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigNR.c b/src/codec_utils/RRC/ReportConfigNR.c new file mode 100644 index 000000000..9af2d3256 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigNR.c @@ -0,0 +1,120 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigNR.h" + +#include "PeriodicalReportConfig.h" +#include "EventTriggerConfig.h" +#include "ReportCGI.h" +static asn_oer_constraints_t asn_OER_type_reportType_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_reportType_2[] = { + { ATF_POINTER, 0, offsetof(struct ReportConfigNR__reportType, choice.periodical), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PeriodicalReportConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodical" + }, + { ATF_POINTER, 0, offsetof(struct ReportConfigNR__reportType, choice.eventTriggered), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EventTriggerConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eventTriggered" + }, + { ATF_POINTER, 0, offsetof(struct ReportConfigNR__reportType, choice.reportCGI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportCGI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportCGI" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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 */ +}; +static asn_CHOICE_specifics_t asn_SPC_reportType_specs_2 = { + sizeof(struct ReportConfigNR__reportType), + offsetof(struct ReportConfigNR__reportType, _asn_ctx), + offsetof(struct ReportConfigNR__reportType, present), + sizeof(((struct ReportConfigNR__reportType *)0)->present), + asn_MAP_reportType_tag2el_2, + 3, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_reportType_constr_2, &asn_PER_type_reportType_constr_2, CHOICE_constraint }, + asn_MBR_reportType_2, + 3, /* Elements count */ + &asn_SPC_reportType_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ReportConfigNR_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReportConfigNR, reportType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_reportType_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportType" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportConfigNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ReportConfigNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportType */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ReportConfigNR_specs_1 = { + sizeof(struct ReportConfigNR), + offsetof(struct ReportConfigNR, _asn_ctx), + asn_MAP_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_ReportConfigNR = { + "ReportConfigNR", + "ReportConfigNR", + &asn_OP_SEQUENCE, + asn_DEF_ReportConfigNR_tags_1, + sizeof(asn_DEF_ReportConfigNR_tags_1) + /sizeof(asn_DEF_ReportConfigNR_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigNR_tags_1) + /sizeof(asn_DEF_ReportConfigNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReportConfigNR_1, + 1, /* Elements count */ + &asn_SPC_ReportConfigNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigNR.h b/src/codec_utils/RRC/ReportConfigNR.h new file mode 100644 index 000000000..190f85777 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigNR.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigNR_H_ +#define _ReportConfigNR_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReportConfigNR__reportType_PR { + ReportConfigNR__reportType_PR_NOTHING, /* No components present */ + ReportConfigNR__reportType_PR_periodical, + ReportConfigNR__reportType_PR_eventTriggered, + /* Extensions may appear below */ + ReportConfigNR__reportType_PR_reportCGI +} ReportConfigNR__reportType_PR; + +/* Forward declarations */ +struct PeriodicalReportConfig; +struct EventTriggerConfig; +struct ReportCGI; + +/* ReportConfigNR */ +typedef struct ReportConfigNR { + struct ReportConfigNR__reportType { + ReportConfigNR__reportType_PR present; + union ReportConfigNR__reportType_u { + struct PeriodicalReportConfig *periodical; + struct EventTriggerConfig *eventTriggered; + /* + * This type is extensible, + * possible extensions are below. + */ + struct ReportCGI *reportCGI; + } 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; +} ReportConfigNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ReportConfigNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportConfigNR_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigNR_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigToAddMod.c b/src/codec_utils/RRC/ReportConfigToAddMod.c new file mode 100644 index 000000000..55b061cec --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigToAddMod.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigToAddMod.h" + +#include "ReportConfigNR.h" +#include "ReportConfigInterRAT.h" +static asn_oer_constraints_t asn_OER_type_reportConfig_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_reportConfig_3[] = { + { ATF_POINTER, 0, offsetof(struct ReportConfigToAddMod__reportConfig, choice.reportConfigNR), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigNR" + }, + { ATF_POINTER, 0, offsetof(struct ReportConfigToAddMod__reportConfig, choice.reportConfigInterRAT), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigInterRAT, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigInterRAT" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_reportConfig_specs_3 = { + sizeof(struct ReportConfigToAddMod__reportConfig), + offsetof(struct ReportConfigToAddMod__reportConfig, _asn_ctx), + offsetof(struct ReportConfigToAddMod__reportConfig, present), + sizeof(((struct ReportConfigToAddMod__reportConfig *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_reportConfig_constr_3, &asn_PER_type_reportConfig_constr_3, CHOICE_constraint }, + asn_MBR_reportConfig_3, + 2, /* Elements count */ + &asn_SPC_reportConfig_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ReportConfigToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ReportConfigToAddMod, reportConfigId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ReportConfigToAddMod, reportConfig), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_reportConfig_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportConfigToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ReportConfigToAddMod_specs_1 = { + sizeof(struct ReportConfigToAddMod), + offsetof(struct ReportConfigToAddMod, _asn_ctx), + asn_MAP_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_ReportConfigToAddMod = { + "ReportConfigToAddMod", + "ReportConfigToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_ReportConfigToAddMod_tags_1, + sizeof(asn_DEF_ReportConfigToAddMod_tags_1) + /sizeof(asn_DEF_ReportConfigToAddMod_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigToAddMod_tags_1) + /sizeof(asn_DEF_ReportConfigToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ReportConfigToAddMod_1, + 2, /* Elements count */ + &asn_SPC_ReportConfigToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigToAddMod.h b/src/codec_utils/RRC/ReportConfigToAddMod.h new file mode 100644 index 000000000..07901712f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigToAddMod_H_ +#define _ReportConfigToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "ReportConfigId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReportConfigToAddMod__reportConfig_PR { + ReportConfigToAddMod__reportConfig_PR_NOTHING, /* No components present */ + ReportConfigToAddMod__reportConfig_PR_reportConfigNR, + /* Extensions may appear below */ + ReportConfigToAddMod__reportConfig_PR_reportConfigInterRAT +} ReportConfigToAddMod__reportConfig_PR; + +/* Forward declarations */ +struct ReportConfigNR; +struct ReportConfigInterRAT; + +/* ReportConfigToAddMod */ +typedef struct ReportConfigToAddMod { + ReportConfigId_t reportConfigId; + struct ReportConfigToAddMod__reportConfig { + ReportConfigToAddMod__reportConfig_PR present; + union ReportConfigToAddMod__reportConfig_u { + struct ReportConfigNR *reportConfigNR; + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} ReportConfigToAddMod_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_ReportConfigToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportConfigToAddMod_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigToAddModList.c b/src/codec_utils/RRC/ReportConfigToAddModList.c new file mode 100644 index 000000000..947c41441 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigToAddModList.h" + +#include "ReportConfigToAddMod.h" +static asn_oer_constraints_t asn_OER_type_ReportConfigToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_ReportConfigToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ReportConfigToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportConfigToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ReportConfigToAddModList_specs_1 = { + sizeof(struct ReportConfigToAddModList), + offsetof(struct ReportConfigToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ReportConfigToAddModList = { + "ReportConfigToAddModList", + "ReportConfigToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ReportConfigToAddModList_tags_1, + sizeof(asn_DEF_ReportConfigToAddModList_tags_1) + /sizeof(asn_DEF_ReportConfigToAddModList_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigToAddModList_tags_1) + /sizeof(asn_DEF_ReportConfigToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_ReportConfigToAddModList_constr_1, &asn_PER_type_ReportConfigToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ReportConfigToAddModList_1, + 1, /* Single element */ + &asn_SPC_ReportConfigToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigToAddModList.h b/src/codec_utils/RRC/ReportConfigToAddModList.h new file mode 100644 index 000000000..ac433edbf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigToAddModList_H_ +#define _ReportConfigToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ReportConfigToAddMod; + +/* ReportConfigToAddModList */ +typedef struct ReportConfigToAddModList { + A_SEQUENCE_OF(struct ReportConfigToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReportConfigToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_ReportConfigToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportConfigToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_ReportConfigToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportConfigToRemoveList.c b/src/codec_utils/RRC/ReportConfigToRemoveList.c new file mode 100644 index 000000000..b6e153d53 --- /dev/null +++ b/src/codec_utils/RRC/ReportConfigToRemoveList.c @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportConfigToRemoveList.h" + +static asn_oer_constraints_t asn_OER_type_ReportConfigToRemoveList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_ReportConfigToRemoveList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ReportConfigId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ReportConfigToRemoveList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ReportConfigToRemoveList_specs_1 = { + sizeof(struct ReportConfigToRemoveList), + offsetof(struct ReportConfigToRemoveList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ReportConfigToRemoveList = { + "ReportConfigToRemoveList", + "ReportConfigToRemoveList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ReportConfigToRemoveList_tags_1, + sizeof(asn_DEF_ReportConfigToRemoveList_tags_1) + /sizeof(asn_DEF_ReportConfigToRemoveList_tags_1[0]), /* 1 */ + asn_DEF_ReportConfigToRemoveList_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportConfigToRemoveList_tags_1) + /sizeof(asn_DEF_ReportConfigToRemoveList_tags_1[0]), /* 1 */ + { &asn_OER_type_ReportConfigToRemoveList_constr_1, &asn_PER_type_ReportConfigToRemoveList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ReportConfigToRemoveList_1, + 1, /* Single element */ + &asn_SPC_ReportConfigToRemoveList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportConfigToRemoveList.h b/src/codec_utils/RRC/ReportConfigToRemoveList.h new file mode 100644 index 000000000..5c12ed1c4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportConfigToRemoveList_H_ +#define _ReportConfigToRemoveList_H_ + + +#include + +/* Including external dependencies */ +#include "ReportConfigId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReportConfigToRemoveList */ +typedef struct ReportConfigToRemoveList { + A_SEQUENCE_OF(ReportConfigId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ReportConfigToRemoveList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ReportConfigToRemoveList; +extern asn_SET_OF_specifics_t asn_SPC_ReportConfigToRemoveList_specs_1; +extern asn_TYPE_member_t asn_MBR_ReportConfigToRemoveList_1[1]; +extern asn_per_constraints_t asn_PER_type_ReportConfigToRemoveList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportConfigToRemoveList_H_ */ +#include diff --git a/src/codec_utils/RRC/ReportInterval.c b/src/codec_utils/RRC/ReportInterval.c new file mode 100644 index 000000000..b9a996ffa --- /dev/null +++ b/src/codec_utils/RRC/ReportInterval.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReportInterval.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ReportInterval_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_ReportInterval_specs_1 = { + asn_MAP_ReportInterval_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_ReportInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReportInterval = { + "ReportInterval", + "ReportInterval", + &asn_OP_NativeEnumerated, + asn_DEF_ReportInterval_tags_1, + sizeof(asn_DEF_ReportInterval_tags_1) + /sizeof(asn_DEF_ReportInterval_tags_1[0]), /* 1 */ + asn_DEF_ReportInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_ReportInterval_tags_1) + /sizeof(asn_DEF_ReportInterval_tags_1[0]), /* 1 */ + { &asn_OER_type_ReportInterval_constr_1, &asn_PER_type_ReportInterval_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ReportInterval_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ReportInterval.h b/src/codec_utils/RRC/ReportInterval.h new file mode 100644 index 000000000..c52e84e7a --- /dev/null +++ b/src/codec_utils/RRC/ReportInterval.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReportInterval_H_ +#define _ReportInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ReportInterval { + ReportInterval_ms120 = 0, + ReportInterval_ms240 = 1, + ReportInterval_ms480 = 2, + ReportInterval_ms640 = 3, + ReportInterval_ms1024 = 4, + ReportInterval_ms2048 = 5, + ReportInterval_ms5120 = 6, + ReportInterval_ms10240 = 7, + ReportInterval_ms20480 = 8, + ReportInterval_ms40960 = 9, + ReportInterval_min1 = 10, + ReportInterval_min6 = 11, + ReportInterval_min12 = 12, + ReportInterval_min30 = 13 +} e_ReportInterval; + +/* ReportInterval */ +typedef long ReportInterval_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReportInterval_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReportInterval; +extern const asn_INTEGER_specifics_t asn_SPC_ReportInterval_specs_1; +asn_struct_free_f ReportInterval_free; +asn_struct_print_f ReportInterval_print; +asn_constr_check_f ReportInterval_constraint; +ber_type_decoder_f ReportInterval_decode_ber; +der_type_encoder_f ReportInterval_encode_der; +xer_type_decoder_f ReportInterval_decode_xer; +xer_type_encoder_f ReportInterval_encode_xer; +oer_type_decoder_f ReportInterval_decode_oer; +oer_type_encoder_f ReportInterval_encode_oer; +per_type_decoder_f ReportInterval_decode_uper; +per_type_encoder_f ReportInterval_encode_uper; +per_type_decoder_f ReportInterval_decode_aper; +per_type_encoder_f ReportInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReportInterval_H_ */ +#include diff --git a/src/codec_utils/RRC/ReselectionThreshold.c b/src/codec_utils/RRC/ReselectionThreshold.c new file mode 100644 index 000000000..51b9837f3 --- /dev/null +++ b/src/codec_utils/RRC/ReselectionThreshold.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReselectionThreshold.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ReselectionThreshold_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ReselectionThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReselectionThreshold = { + "ReselectionThreshold", + "ReselectionThreshold", + &asn_OP_NativeInteger, + asn_DEF_ReselectionThreshold_tags_1, + sizeof(asn_DEF_ReselectionThreshold_tags_1) + /sizeof(asn_DEF_ReselectionThreshold_tags_1[0]), /* 1 */ + asn_DEF_ReselectionThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_ReselectionThreshold_tags_1) + /sizeof(asn_DEF_ReselectionThreshold_tags_1[0]), /* 1 */ + { &asn_OER_type_ReselectionThreshold_constr_1, &asn_PER_type_ReselectionThreshold_constr_1, ReselectionThreshold_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ReselectionThreshold.h b/src/codec_utils/RRC/ReselectionThreshold.h new file mode 100644 index 000000000..54cd48d63 --- /dev/null +++ b/src/codec_utils/RRC/ReselectionThreshold.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReselectionThreshold_H_ +#define _ReselectionThreshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReselectionThreshold */ +typedef long ReselectionThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReselectionThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReselectionThreshold; +asn_struct_free_f ReselectionThreshold_free; +asn_struct_print_f ReselectionThreshold_print; +asn_constr_check_f ReselectionThreshold_constraint; +ber_type_decoder_f ReselectionThreshold_decode_ber; +der_type_encoder_f ReselectionThreshold_encode_der; +xer_type_decoder_f ReselectionThreshold_decode_xer; +xer_type_encoder_f ReselectionThreshold_encode_xer; +oer_type_decoder_f ReselectionThreshold_decode_oer; +oer_type_encoder_f ReselectionThreshold_encode_oer; +per_type_decoder_f ReselectionThreshold_decode_uper; +per_type_encoder_f ReselectionThreshold_encode_uper; +per_type_decoder_f ReselectionThreshold_decode_aper; +per_type_encoder_f ReselectionThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReselectionThreshold_H_ */ +#include diff --git a/src/codec_utils/RRC/ReselectionThresholdQ.c b/src/codec_utils/RRC/ReselectionThresholdQ.c new file mode 100644 index 000000000..0f7a3f987 --- /dev/null +++ b/src/codec_utils/RRC/ReselectionThresholdQ.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ReselectionThresholdQ.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ReselectionThresholdQ_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ReselectionThresholdQ_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ReselectionThresholdQ = { + "ReselectionThresholdQ", + "ReselectionThresholdQ", + &asn_OP_NativeInteger, + asn_DEF_ReselectionThresholdQ_tags_1, + sizeof(asn_DEF_ReselectionThresholdQ_tags_1) + /sizeof(asn_DEF_ReselectionThresholdQ_tags_1[0]), /* 1 */ + asn_DEF_ReselectionThresholdQ_tags_1, /* Same as above */ + sizeof(asn_DEF_ReselectionThresholdQ_tags_1) + /sizeof(asn_DEF_ReselectionThresholdQ_tags_1[0]), /* 1 */ + { &asn_OER_type_ReselectionThresholdQ_constr_1, &asn_PER_type_ReselectionThresholdQ_constr_1, ReselectionThresholdQ_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ReselectionThresholdQ.h b/src/codec_utils/RRC/ReselectionThresholdQ.h new file mode 100644 index 000000000..77e2045df --- /dev/null +++ b/src/codec_utils/RRC/ReselectionThresholdQ.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ReselectionThresholdQ_H_ +#define _ReselectionThresholdQ_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ReselectionThresholdQ */ +typedef long ReselectionThresholdQ_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ReselectionThresholdQ_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ReselectionThresholdQ; +asn_struct_free_f ReselectionThresholdQ_free; +asn_struct_print_f ReselectionThresholdQ_print; +asn_constr_check_f ReselectionThresholdQ_constraint; +ber_type_decoder_f ReselectionThresholdQ_decode_ber; +der_type_encoder_f ReselectionThresholdQ_encode_der; +xer_type_decoder_f ReselectionThresholdQ_decode_xer; +xer_type_encoder_f ReselectionThresholdQ_encode_xer; +oer_type_decoder_f ReselectionThresholdQ_decode_oer; +oer_type_encoder_f ReselectionThresholdQ_encode_oer; +per_type_decoder_f ReselectionThresholdQ_decode_uper; +per_type_encoder_f ReselectionThresholdQ_encode_uper; +per_type_decoder_f ReselectionThresholdQ_decode_aper; +per_type_encoder_f ReselectionThresholdQ_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ReselectionThresholdQ_H_ */ +#include diff --git a/src/codec_utils/RRC/ResultsPerCSI-RS-Index.c b/src/codec_utils/RRC/ResultsPerCSI-RS-Index.c new file mode 100644 index 000000000..706beca52 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResultsPerCSI-RS-Index.h" + +#include "MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 1, offsetof(struct ResultsPerCSI_RS_Index, csi_RS_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Results" + }, +}; +static const int asn_MAP_ResultsPerCSI_RS_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ResultsPerCSI_RS_Index_specs_1 = { + sizeof(struct ResultsPerCSI_RS_Index), + offsetof(struct ResultsPerCSI_RS_Index, _asn_ctx), + asn_MAP_ResultsPerCSI_RS_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ResultsPerCSI_RS_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index = { + "ResultsPerCSI-RS-Index", + "ResultsPerCSI-RS-Index", + &asn_OP_SEQUENCE, + asn_DEF_ResultsPerCSI_RS_Index_tags_1, + sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerCSI_RS_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResultsPerCSI_RS_Index_1, + 2, /* Elements count */ + &asn_SPC_ResultsPerCSI_RS_Index_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ResultsPerCSI-RS-Index.h b/src/codec_utils/RRC/ResultsPerCSI-RS-Index.h new file mode 100644 index 000000000..9d3e48775 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResultsPerCSI_RS_Index_H_ +#define _ResultsPerCSI_RS_Index_H_ + + +#include + +/* Including external dependencies */ +#include "CSI-RS-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; + +/* ResultsPerCSI-RS-Index */ +typedef struct ResultsPerCSI_RS_Index { + CSI_RS_Index_t csi_RS_Index; + struct MeasQuantityResults *csi_RS_Results; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerCSI_RS_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerCSI_RS_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerCSI_RS_Index_H_ */ +#include diff --git a/src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.c b/src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.c new file mode 100644 index 000000000..cada45cb8 --- /dev/null +++ b/src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResultsPerCSI-RS-IndexList.h" + +#include "ResultsPerCSI-RS-Index.h" +static asn_oer_constraints_t asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_ResultsPerCSI_RS_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResultsPerCSI_RS_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1 = { + sizeof(struct ResultsPerCSI_RS_IndexList), + offsetof(struct ResultsPerCSI_RS_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList = { + "ResultsPerCSI-RS-IndexList", + "ResultsPerCSI-RS-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ResultsPerCSI_RS_IndexList_tags_1, + sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerCSI_RS_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerCSI_RS_IndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultsPerCSI_RS_IndexList_constr_1, &asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ResultsPerCSI_RS_IndexList_1, + 1, /* Single element */ + &asn_SPC_ResultsPerCSI_RS_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.h b/src/codec_utils/RRC/ResultsPerCSI-RS-IndexList.h new file mode 100644 index 000000000..d4ec7b65f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResultsPerCSI_RS_IndexList_H_ +#define _ResultsPerCSI_RS_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResultsPerCSI_RS_Index; + +/* ResultsPerCSI-RS-IndexList */ +typedef struct ResultsPerCSI_RS_IndexList { + A_SEQUENCE_OF(struct ResultsPerCSI_RS_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerCSI_RS_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerCSI_RS_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ResultsPerCSI_RS_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerCSI_RS_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ResultsPerCSI_RS_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerCSI_RS_IndexList_H_ */ +#include diff --git a/src/codec_utils/RRC/ResultsPerSSB-Index.c b/src/codec_utils/RRC/ResultsPerSSB-Index.c new file mode 100644 index 000000000..123edad28 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResultsPerSSB-Index.h" + +#include "MeasQuantityResults.h" +asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResultsPerSSB_Index, ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_POINTER, 1, offsetof(struct ResultsPerSSB_Index, ssb_Results), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasQuantityResults, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Results" + }, +}; +static const int asn_MAP_ResultsPerSSB_Index_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ResultsPerSSB_Index_specs_1 = { + sizeof(struct ResultsPerSSB_Index), + offsetof(struct ResultsPerSSB_Index, _asn_ctx), + asn_MAP_ResultsPerSSB_Index_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_ResultsPerSSB_Index_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index = { + "ResultsPerSSB-Index", + "ResultsPerSSB-Index", + &asn_OP_SEQUENCE, + asn_DEF_ResultsPerSSB_Index_tags_1, + sizeof(asn_DEF_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerSSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerSSB_Index_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_Index_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ResultsPerSSB_Index_1, + 2, /* Elements count */ + &asn_SPC_ResultsPerSSB_Index_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ResultsPerSSB-Index.h b/src/codec_utils/RRC/ResultsPerSSB-Index.h new file mode 100644 index 000000000..35860e604 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResultsPerSSB_Index_H_ +#define _ResultsPerSSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include "SSB-Index.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasQuantityResults; + +/* ResultsPerSSB-Index */ +typedef struct ResultsPerSSB_Index { + SSB_Index_t ssb_Index; + struct MeasQuantityResults *ssb_Results; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerSSB_Index_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_Index; +extern asn_SEQUENCE_specifics_t asn_SPC_ResultsPerSSB_Index_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_Index_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerSSB_Index_H_ */ +#include diff --git a/src/codec_utils/RRC/ResultsPerSSB-IndexList.c b/src/codec_utils/RRC/ResultsPerSSB-IndexList.c new file mode 100644 index 000000000..fc891d249 --- /dev/null +++ b/src/codec_utils/RRC/ResultsPerSSB-IndexList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResultsPerSSB-IndexList.h" + +#include "ResultsPerSSB-Index.h" +static asn_oer_constraints_t asn_OER_type_ResultsPerSSB_IndexList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +asn_per_constraints_t asn_PER_type_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_ResultsPerSSB_IndexList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ResultsPerSSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ResultsPerSSB_IndexList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1 = { + sizeof(struct ResultsPerSSB_IndexList), + offsetof(struct ResultsPerSSB_IndexList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList = { + "ResultsPerSSB-IndexList", + "ResultsPerSSB-IndexList", + &asn_OP_SEQUENCE_OF, + asn_DEF_ResultsPerSSB_IndexList_tags_1, + sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + asn_DEF_ResultsPerSSB_IndexList_tags_1, /* Same as above */ + sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1) + /sizeof(asn_DEF_ResultsPerSSB_IndexList_tags_1[0]), /* 1 */ + { &asn_OER_type_ResultsPerSSB_IndexList_constr_1, &asn_PER_type_ResultsPerSSB_IndexList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ResultsPerSSB_IndexList_1, + 1, /* Single element */ + &asn_SPC_ResultsPerSSB_IndexList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ResultsPerSSB-IndexList.h b/src/codec_utils/RRC/ResultsPerSSB-IndexList.h new file mode 100644 index 000000000..f20217220 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResultsPerSSB_IndexList_H_ +#define _ResultsPerSSB_IndexList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ResultsPerSSB_Index; + +/* ResultsPerSSB-IndexList */ +typedef struct ResultsPerSSB_IndexList { + A_SEQUENCE_OF(struct ResultsPerSSB_Index) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ResultsPerSSB_IndexList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ResultsPerSSB_IndexList; +extern asn_SET_OF_specifics_t asn_SPC_ResultsPerSSB_IndexList_specs_1; +extern asn_TYPE_member_t asn_MBR_ResultsPerSSB_IndexList_1[1]; +extern asn_per_constraints_t asn_PER_type_ResultsPerSSB_IndexList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResultsPerSSB_IndexList_H_ */ +#include diff --git a/src/codec_utils/RRC/ResumeCause.c b/src/codec_utils/RRC/ResumeCause.c new file mode 100644 index 000000000..2e728eb76 --- /dev/null +++ b/src/codec_utils/RRC/ResumeCause.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ResumeCause.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ResumeCause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_ResumeCause_specs_1 = { + asn_MAP_ResumeCause_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_ResumeCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ResumeCause = { + "ResumeCause", + "ResumeCause", + &asn_OP_NativeEnumerated, + asn_DEF_ResumeCause_tags_1, + sizeof(asn_DEF_ResumeCause_tags_1) + /sizeof(asn_DEF_ResumeCause_tags_1[0]), /* 1 */ + asn_DEF_ResumeCause_tags_1, /* Same as above */ + sizeof(asn_DEF_ResumeCause_tags_1) + /sizeof(asn_DEF_ResumeCause_tags_1[0]), /* 1 */ + { &asn_OER_type_ResumeCause_constr_1, &asn_PER_type_ResumeCause_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ResumeCause_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ResumeCause.h b/src/codec_utils/RRC/ResumeCause.h new file mode 100644 index 000000000..f406acc70 --- /dev/null +++ b/src/codec_utils/RRC/ResumeCause.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ResumeCause_H_ +#define _ResumeCause_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ResumeCause { + ResumeCause_emergency = 0, + ResumeCause_highPriorityAccess = 1, + ResumeCause_mt_Access = 2, + ResumeCause_mo_Signalling = 3, + ResumeCause_mo_Data = 4, + ResumeCause_mo_VoiceCall = 5, + ResumeCause_mo_VideoCall = 6, + ResumeCause_mo_SMS = 7, + ResumeCause_rna_Update = 8, + ResumeCause_mps_PriorityAccess = 9, + ResumeCause_mcs_PriorityAccess = 10, + ResumeCause_spare1 = 11, + ResumeCause_spare2 = 12, + ResumeCause_spare3 = 13, + ResumeCause_spare4 = 14, + ResumeCause_spare5 = 15 +} e_ResumeCause; + +/* ResumeCause */ +typedef long ResumeCause_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ResumeCause_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ResumeCause; +extern const asn_INTEGER_specifics_t asn_SPC_ResumeCause_specs_1; +asn_struct_free_f ResumeCause_free; +asn_struct_print_f ResumeCause_print; +asn_constr_check_f ResumeCause_constraint; +ber_type_decoder_f ResumeCause_decode_ber; +der_type_encoder_f ResumeCause_encode_der; +xer_type_decoder_f ResumeCause_decode_xer; +xer_type_encoder_f ResumeCause_encode_xer; +oer_type_decoder_f ResumeCause_decode_oer; +oer_type_encoder_f ResumeCause_encode_oer; +per_type_decoder_f ResumeCause_decode_uper; +per_type_encoder_f ResumeCause_encode_uper; +per_type_decoder_f ResumeCause_decode_aper; +per_type_encoder_f ResumeCause_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ResumeCause_H_ */ +#include diff --git a/src/codec_utils/RRC/S-NSSAI.c b/src/codec_utils/RRC/S-NSSAI.c new file mode 100644 index 000000000..aae0e3256 --- /dev/null +++ b/src/codec_utils/RRC/S-NSSAI.c @@ -0,0 +1,143 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "S-NSSAI.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_sst_constr_2 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sst_SD_constr_3 CC_NOTUSED = { + { 0, 0 }, + 32 /* (SIZE(32..32)) */}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_S_NSSAI_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_S_NSSAI_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct S_NSSAI, choice.sst), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_sst_constr_2, &asn_PER_memb_sst_constr_2, memb_sst_constraint_1 }, + 0, 0, /* No default value */ + "sst" + }, + { ATF_NOFLAGS, 0, offsetof(struct S_NSSAI, choice.sst_SD), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_sst_SD_constr_3, &asn_PER_memb_sst_SD_constr_3, memb_sst_SD_constraint_1 }, + 0, 0, /* No default value */ + "sst-SD" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_S_NSSAI_specs_1 = { + sizeof(struct S_NSSAI), + offsetof(struct S_NSSAI, _asn_ctx), + offsetof(struct S_NSSAI, present), + sizeof(((struct S_NSSAI *)0)->present), + asn_MAP_S_NSSAI_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_S_NSSAI_constr_1, &asn_PER_type_S_NSSAI_constr_1, CHOICE_constraint }, + asn_MBR_S_NSSAI_1, + 2, /* Elements count */ + &asn_SPC_S_NSSAI_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/S-NSSAI.h b/src/codec_utils/RRC/S-NSSAI.h new file mode 100644 index 000000000..b5c9862fb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _S_NSSAI_H_ +#define _S_NSSAI_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum S_NSSAI_PR { + S_NSSAI_PR_NOTHING, /* No components present */ + S_NSSAI_PR_sst, + S_NSSAI_PR_sst_SD +} S_NSSAI_PR; + +/* S-NSSAI */ +typedef struct S_NSSAI { + S_NSSAI_PR present; + union 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; +} S_NSSAI_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_S_NSSAI; +extern asn_CHOICE_specifics_t asn_SPC_S_NSSAI_specs_1; +extern asn_TYPE_member_t asn_MBR_S_NSSAI_1[2]; +extern asn_per_constraints_t asn_PER_type_S_NSSAI_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _S_NSSAI_H_ */ +#include diff --git a/src/codec_utils/RRC/SCS-SpecificCarrier.c b/src/codec_utils/RRC/SCS-SpecificCarrier.c new file mode 100644 index 000000000..d6008a23e --- /dev/null +++ b/src/codec_utils/RRC/SCS-SpecificCarrier.c @@ -0,0 +1,226 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCS-SpecificCarrier.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_txDirectCurrentLocation_v1530_constr_7 CC_NOTUSED = { + { 2, 1 } /* (0..4095) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_offsetToCarrier_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..2199) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_carrierBandwidth_constr_4 CC_NOTUSED = { + { 2, 1 } /* (1..275) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct SCS_SpecificCarrier__ext1, txDirectCurrentLocation_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_txDirectCurrentLocation_v1530_constr_7, &asn_PER_memb_txDirectCurrentLocation_v1530_constr_7, memb_txDirectCurrentLocation_v1530_constraint_6 }, + 0, 0, /* No default value */ + "txDirectCurrentLocation-v1530" + }, +}; +static const int asn_MAP_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* txDirectCurrentLocation-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_6 = { + sizeof(struct SCS_SpecificCarrier__ext1), + offsetof(struct SCS_SpecificCarrier__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_6, + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_6, + 1, /* Elements count */ + &asn_SPC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCS_SpecificCarrier_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, offsetToCarrier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_offsetToCarrier_constr_2, &asn_PER_memb_offsetToCarrier_constr_2, memb_offsetToCarrier_constraint_1 }, + 0, 0, /* No default value */ + "offsetToCarrier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, carrierBandwidth), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_carrierBandwidth_constr_4, &asn_PER_memb_carrierBandwidth_constr_4, memb_carrierBandwidth_constraint_1 }, + 0, 0, /* No default value */ + "carrierBandwidth" + }, + { ATF_POINTER, 1, offsetof(struct SCS_SpecificCarrier, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_SCS_SpecificCarrier_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SCS_SpecificCarrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SCS_SpecificCarrier_specs_1 = { + sizeof(struct SCS_SpecificCarrier), + offsetof(struct SCS_SpecificCarrier, _asn_ctx), + asn_MAP_SCS_SpecificCarrier_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SCS_SpecificCarrier_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCS_SpecificCarrier = { + "SCS-SpecificCarrier", + "SCS-SpecificCarrier", + &asn_OP_SEQUENCE, + asn_DEF_SCS_SpecificCarrier_tags_1, + sizeof(asn_DEF_SCS_SpecificCarrier_tags_1) + /sizeof(asn_DEF_SCS_SpecificCarrier_tags_1[0]), /* 1 */ + asn_DEF_SCS_SpecificCarrier_tags_1, /* Same as above */ + sizeof(asn_DEF_SCS_SpecificCarrier_tags_1) + /sizeof(asn_DEF_SCS_SpecificCarrier_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCS_SpecificCarrier_1, + 4, /* Elements count */ + &asn_SPC_SCS_SpecificCarrier_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SCS-SpecificCarrier.h b/src/codec_utils/RRC/SCS-SpecificCarrier.h new file mode 100644 index 000000000..bfb03d3ea --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCS_SpecificCarrier_H_ +#define _SCS_SpecificCarrier_H_ + + +#include + +/* Including external dependencies */ +#include +#include "SubcarrierSpacing.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SCS-SpecificCarrier */ +typedef struct SCS_SpecificCarrier { + long offsetToCarrier; + SubcarrierSpacing_t subcarrierSpacing; + long carrierBandwidth; + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} SCS_SpecificCarrier_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCS_SpecificCarrier; +extern asn_SEQUENCE_specifics_t asn_SPC_SCS_SpecificCarrier_specs_1; +extern asn_TYPE_member_t asn_MBR_SCS_SpecificCarrier_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCS_SpecificCarrier_H_ */ +#include diff --git a/src/codec_utils/RRC/SCellConfig.c b/src/codec_utils/RRC/SCellConfig.c new file mode 100644 index 000000000..35852d2f9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCellConfig.h" + +#include "ServingCellConfigCommon.h" +#include "ServingCellConfig.h" +#include "SSB-MTC.h" +static asn_TYPE_member_t asn_MBR_ext1_6[] = { + { ATF_POINTER, 1, offsetof(struct SCellConfig__ext1, smtc), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, +}; +static const int asn_MAP_ext1_oms_6[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* smtc */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_6 = { + sizeof(struct SCellConfig__ext1), + offsetof(struct SCellConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_6, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_6 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_6, + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_6, /* Same as above */ + sizeof(asn_DEF_ext1_tags_6) + /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_6, + 1, /* Elements count */ + &asn_SPC_ext1_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SCellConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SCellConfig, sCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellIndex" + }, + { ATF_POINTER, 3, offsetof(struct SCellConfig, sCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServingCellConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct SCellConfig, sCellConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellConfigDedicated" + }, + { ATF_POINTER, 1, offsetof(struct SCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_SCellConfig_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SCellConfig_specs_1 = { + sizeof(struct SCellConfig), + offsetof(struct SCellConfig, _asn_ctx), + asn_MAP_SCellConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SCellConfig_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SCellConfig = { + "SCellConfig", + "SCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_SCellConfig_tags_1, + sizeof(asn_DEF_SCellConfig_tags_1) + /sizeof(asn_DEF_SCellConfig_tags_1[0]), /* 1 */ + asn_DEF_SCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SCellConfig_tags_1) + /sizeof(asn_DEF_SCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SCellConfig_1, + 4, /* Elements count */ + &asn_SPC_SCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SCellConfig.h b/src/codec_utils/RRC/SCellConfig.h new file mode 100644 index 000000000..b41b5c8d9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCellConfig_H_ +#define _SCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "SCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ServingCellConfigCommon; +struct ServingCellConfig; +struct SSB_MTC; + +/* SCellConfig */ +typedef struct SCellConfig { + SCellIndex_t sCellIndex; + struct ServingCellConfigCommon *sCellConfigCommon; /* OPTIONAL */ + struct ServingCellConfig *sCellConfigDedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct SCellConfig__ext1 { + struct 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; +} SCellConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SCellConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SCellIndex.c b/src/codec_utils/RRC/SCellIndex.c new file mode 100644 index 000000000..d466a5d1f --- /dev/null +++ b/src/codec_utils/RRC/SCellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SCellIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SCellIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SCellIndex = { + "SCellIndex", + "SCellIndex", + &asn_OP_NativeInteger, + asn_DEF_SCellIndex_tags_1, + sizeof(asn_DEF_SCellIndex_tags_1) + /sizeof(asn_DEF_SCellIndex_tags_1[0]), /* 1 */ + asn_DEF_SCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_SCellIndex_tags_1) + /sizeof(asn_DEF_SCellIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_SCellIndex_constr_1, &asn_PER_type_SCellIndex_constr_1, SCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SCellIndex.h b/src/codec_utils/RRC/SCellIndex.h new file mode 100644 index 000000000..b40122897 --- /dev/null +++ b/src/codec_utils/RRC/SCellIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SCellIndex_H_ +#define _SCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SCellIndex */ +typedef long SCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SCellIndex; +asn_struct_free_f SCellIndex_free; +asn_struct_print_f SCellIndex_print; +asn_constr_check_f SCellIndex_constraint; +ber_type_decoder_f SCellIndex_decode_ber; +der_type_encoder_f SCellIndex_encode_der; +xer_type_decoder_f SCellIndex_decode_xer; +xer_type_encoder_f SCellIndex_encode_xer; +oer_type_decoder_f SCellIndex_decode_oer; +oer_type_encoder_f SCellIndex_encode_oer; +per_type_decoder_f SCellIndex_decode_uper; +per_type_encoder_f SCellIndex_encode_uper; +per_type_decoder_f SCellIndex_decode_aper; +per_type_encoder_f SCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SCellIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/SDAP-Config.c b/src/codec_utils/RRC/SDAP-Config.c new file mode 100644 index 000000000..1f822bbba --- /dev/null +++ b/src/codec_utils/RRC/SDAP-Config.c @@ -0,0 +1,358 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_oer_constraints_t asn_OER_type_sdap_HeaderDL_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sdap_HeaderUL_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mappedQoS_FlowsToAdd_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mappedQoS_FlowsToRelease_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_mappedQoS_FlowsToAdd_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_mappedQoS_FlowsToRelease_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_sdap_HeaderDL_value2enum_3[] = { + { 0, 7, "present" }, + { 1, 6, "absent" } +}; +static const unsigned int asn_MAP_sdap_HeaderDL_enum2value_3[] = { + 1, /* absent(1) */ + 0 /* present(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sdap_HeaderDL_specs_3 = { + asn_MAP_sdap_HeaderDL_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sdap_HeaderDL_3 = { + "sdap-HeaderDL", + "sdap-HeaderDL", + &asn_OP_NativeEnumerated, + asn_DEF_sdap_HeaderDL_tags_3, + sizeof(asn_DEF_sdap_HeaderDL_tags_3) + /sizeof(asn_DEF_sdap_HeaderDL_tags_3[0]) - 1, /* 1 */ + asn_DEF_sdap_HeaderDL_tags_3, /* Same as above */ + sizeof(asn_DEF_sdap_HeaderDL_tags_3) + /sizeof(asn_DEF_sdap_HeaderDL_tags_3[0]), /* 2 */ + { &asn_OER_type_sdap_HeaderDL_constr_3, &asn_PER_type_sdap_HeaderDL_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sdap_HeaderDL_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sdap_HeaderUL_value2enum_6[] = { + { 0, 7, "present" }, + { 1, 6, "absent" } +}; +static const unsigned int asn_MAP_sdap_HeaderUL_enum2value_6[] = { + 1, /* absent(1) */ + 0 /* present(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sdap_HeaderUL_specs_6 = { + asn_MAP_sdap_HeaderUL_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sdap_HeaderUL_6 = { + "sdap-HeaderUL", + "sdap-HeaderUL", + &asn_OP_NativeEnumerated, + asn_DEF_sdap_HeaderUL_tags_6, + sizeof(asn_DEF_sdap_HeaderUL_tags_6) + /sizeof(asn_DEF_sdap_HeaderUL_tags_6[0]) - 1, /* 1 */ + asn_DEF_sdap_HeaderUL_tags_6, /* Same as above */ + sizeof(asn_DEF_sdap_HeaderUL_tags_6) + /sizeof(asn_DEF_sdap_HeaderUL_tags_6[0]), /* 2 */ + { &asn_OER_type_sdap_HeaderUL_constr_6, &asn_PER_type_sdap_HeaderUL_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sdap_HeaderUL_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mappedQoS_FlowsToAdd_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_QFI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_mappedQoS_FlowsToAdd_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mappedQoS_FlowsToAdd_specs_10 = { + sizeof(struct SDAP_Config__mappedQoS_FlowsToAdd), + offsetof(struct SDAP_Config__mappedQoS_FlowsToAdd, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mappedQoS_FlowsToAdd_10 = { + "mappedQoS-FlowsToAdd", + "mappedQoS-FlowsToAdd", + &asn_OP_SEQUENCE_OF, + asn_DEF_mappedQoS_FlowsToAdd_tags_10, + sizeof(asn_DEF_mappedQoS_FlowsToAdd_tags_10) + /sizeof(asn_DEF_mappedQoS_FlowsToAdd_tags_10[0]) - 1, /* 1 */ + asn_DEF_mappedQoS_FlowsToAdd_tags_10, /* Same as above */ + sizeof(asn_DEF_mappedQoS_FlowsToAdd_tags_10) + /sizeof(asn_DEF_mappedQoS_FlowsToAdd_tags_10[0]), /* 2 */ + { &asn_OER_type_mappedQoS_FlowsToAdd_constr_10, &asn_PER_type_mappedQoS_FlowsToAdd_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_mappedQoS_FlowsToAdd_10, + 1, /* Single element */ + &asn_SPC_mappedQoS_FlowsToAdd_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mappedQoS_FlowsToRelease_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_QFI, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_mappedQoS_FlowsToRelease_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mappedQoS_FlowsToRelease_specs_12 = { + sizeof(struct SDAP_Config__mappedQoS_FlowsToRelease), + offsetof(struct SDAP_Config__mappedQoS_FlowsToRelease, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mappedQoS_FlowsToRelease_12 = { + "mappedQoS-FlowsToRelease", + "mappedQoS-FlowsToRelease", + &asn_OP_SEQUENCE_OF, + asn_DEF_mappedQoS_FlowsToRelease_tags_12, + sizeof(asn_DEF_mappedQoS_FlowsToRelease_tags_12) + /sizeof(asn_DEF_mappedQoS_FlowsToRelease_tags_12[0]) - 1, /* 1 */ + asn_DEF_mappedQoS_FlowsToRelease_tags_12, /* Same as above */ + sizeof(asn_DEF_mappedQoS_FlowsToRelease_tags_12) + /sizeof(asn_DEF_mappedQoS_FlowsToRelease_tags_12[0]), /* 2 */ + { &asn_OER_type_mappedQoS_FlowsToRelease_constr_12, &asn_PER_type_mappedQoS_FlowsToRelease_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_mappedQoS_FlowsToRelease_12, + 1, /* Single element */ + &asn_SPC_mappedQoS_FlowsToRelease_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SDAP_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SDAP_Config, pdu_Session), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDU_SessionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdu-Session" + }, + { ATF_NOFLAGS, 0, offsetof(struct SDAP_Config, sdap_HeaderDL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sdap_HeaderDL_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-HeaderDL" + }, + { ATF_NOFLAGS, 0, offsetof(struct SDAP_Config, sdap_HeaderUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sdap_HeaderUL_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sdap-HeaderUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 SDAP_Config, mappedQoS_FlowsToAdd), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_mappedQoS_FlowsToAdd_10, + 0, + { &asn_OER_memb_mappedQoS_FlowsToAdd_constr_10, &asn_PER_memb_mappedQoS_FlowsToAdd_constr_10, memb_mappedQoS_FlowsToAdd_constraint_1 }, + 0, 0, /* No default value */ + "mappedQoS-FlowsToAdd" + }, + { ATF_POINTER, 1, offsetof(struct SDAP_Config, mappedQoS_FlowsToRelease), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_mappedQoS_FlowsToRelease_12, + 0, + { &asn_OER_memb_mappedQoS_FlowsToRelease_constr_12, &asn_PER_memb_mappedQoS_FlowsToRelease_constr_12, memb_mappedQoS_FlowsToRelease_constraint_1 }, + 0, 0, /* No default value */ + "mappedQoS-FlowsToRelease" + }, +}; +static const int asn_MAP_SDAP_Config_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_SDAP_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SDAP_Config_specs_1 = { + sizeof(struct SDAP_Config), + offsetof(struct SDAP_Config, _asn_ctx), + asn_MAP_SDAP_Config_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SDAP_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SDAP_Config = { + "SDAP-Config", + "SDAP-Config", + &asn_OP_SEQUENCE, + asn_DEF_SDAP_Config_tags_1, + sizeof(asn_DEF_SDAP_Config_tags_1) + /sizeof(asn_DEF_SDAP_Config_tags_1[0]), /* 1 */ + asn_DEF_SDAP_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_SDAP_Config_tags_1) + /sizeof(asn_DEF_SDAP_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SDAP_Config_1, + 6, /* Elements count */ + &asn_SPC_SDAP_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SDAP-Config.h b/src/codec_utils/RRC/SDAP-Config.h new file mode 100644 index 000000000..0da6b4460 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SDAP_Config_H_ +#define _SDAP_Config_H_ + + +#include + +/* Including external dependencies */ +#include "PDU-SessionID.h" +#include +#include +#include "QFI.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SDAP_Config__sdap_HeaderDL { + SDAP_Config__sdap_HeaderDL_present = 0, + SDAP_Config__sdap_HeaderDL_absent = 1 +} e_SDAP_Config__sdap_HeaderDL; +typedef enum SDAP_Config__sdap_HeaderUL { + SDAP_Config__sdap_HeaderUL_present = 0, + SDAP_Config__sdap_HeaderUL_absent = 1 +} e_SDAP_Config__sdap_HeaderUL; + +/* SDAP-Config */ +typedef struct SDAP_Config { + PDU_SessionID_t pdu_Session; + long sdap_HeaderDL; + long sdap_HeaderUL; + BOOLEAN_t defaultDRB; + struct SDAP_Config__mappedQoS_FlowsToAdd { + A_SEQUENCE_OF(QFI_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *mappedQoS_FlowsToAdd; + struct SDAP_Config__mappedQoS_FlowsToRelease { + A_SEQUENCE_OF(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; +} SDAP_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sdap_HeaderDL_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sdap_HeaderUL_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SDAP_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_SDAP_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_SDAP_Config_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SDAP_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/SI-RequestConfig.c b/src/codec_utils/RRC/SI-RequestConfig.c new file mode 100644 index 000000000..d4d13b0be --- /dev/null +++ b/src/codec_utils/RRC/SI-RequestConfig.c @@ -0,0 +1,327 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SI-RequestConfig.h" + +#include "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_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_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_RequestPeriod_constr_13 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_RequestResources_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_si_RequestResources_constr_22 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_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_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_ssb_perRACH_Occasion_specs_4 = { + asn_MAP_ssb_perRACH_Occasion_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_perRACH_Occasion_4 = { + "ssb-perRACH-Occasion", + "ssb-perRACH-Occasion", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_perRACH_Occasion_tags_4, + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */ + asn_DEF_ssb_perRACH_Occasion_tags_4, /* Same as above */ + sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) + /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]), /* 2 */ + { &asn_OER_type_ssb_perRACH_Occasion_constr_4, &asn_PER_type_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_perRACH_Occasion_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rach_OccasionsSI_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig__rach_OccasionsSI, rach_ConfigSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RACH_ConfigGeneric, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-ConfigSI" + }, + { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig__rach_OccasionsSI, ssb_perRACH_Occasion), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_perRACH_Occasion_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-perRACH-Occasion" + }, +}; +static const ber_tlv_tag_t asn_DEF_rach_OccasionsSI_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_rach_OccasionsSI_specs_2 = { + sizeof(struct SI_RequestConfig__rach_OccasionsSI), + offsetof(struct SI_RequestConfig__rach_OccasionsSI, _asn_ctx), + asn_MAP_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_rach_OccasionsSI_2 = { + "rach-OccasionsSI", + "rach-OccasionsSI", + &asn_OP_SEQUENCE, + asn_DEF_rach_OccasionsSI_tags_2, + sizeof(asn_DEF_rach_OccasionsSI_tags_2) + /sizeof(asn_DEF_rach_OccasionsSI_tags_2[0]) - 1, /* 1 */ + asn_DEF_rach_OccasionsSI_tags_2, /* Same as above */ + sizeof(asn_DEF_rach_OccasionsSI_tags_2) + /sizeof(asn_DEF_rach_OccasionsSI_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_rach_OccasionsSI_2, + 2, /* Elements count */ + &asn_SPC_rach_OccasionsSI_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_RequestPeriod_specs_13 = { + asn_MAP_si_RequestPeriod_value2enum_13, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_si_RequestPeriod_13 = { + "si-RequestPeriod", + "si-RequestPeriod", + &asn_OP_NativeEnumerated, + asn_DEF_si_RequestPeriod_tags_13, + sizeof(asn_DEF_si_RequestPeriod_tags_13) + /sizeof(asn_DEF_si_RequestPeriod_tags_13[0]) - 1, /* 1 */ + asn_DEF_si_RequestPeriod_tags_13, /* Same as above */ + sizeof(asn_DEF_si_RequestPeriod_tags_13) + /sizeof(asn_DEF_si_RequestPeriod_tags_13[0]), /* 2 */ + { &asn_OER_type_si_RequestPeriod_constr_13, &asn_PER_type_si_RequestPeriod_constr_13, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_si_RequestPeriod_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_si_RequestResources_22[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SI_RequestResources, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_si_RequestResources_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_si_RequestResources_specs_22 = { + sizeof(struct SI_RequestConfig__si_RequestResources), + offsetof(struct SI_RequestConfig__si_RequestResources, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_si_RequestResources_22 = { + "si-RequestResources", + "si-RequestResources", + &asn_OP_SEQUENCE_OF, + asn_DEF_si_RequestResources_tags_22, + sizeof(asn_DEF_si_RequestResources_tags_22) + /sizeof(asn_DEF_si_RequestResources_tags_22[0]) - 1, /* 1 */ + asn_DEF_si_RequestResources_tags_22, /* Same as above */ + sizeof(asn_DEF_si_RequestResources_tags_22) + /sizeof(asn_DEF_si_RequestResources_tags_22[0]), /* 2 */ + { &asn_OER_type_si_RequestResources_constr_22, &asn_PER_type_si_RequestResources_constr_22, SEQUENCE_OF_constraint }, + asn_MBR_si_RequestResources_22, + 1, /* Single element */ + &asn_SPC_si_RequestResources_specs_22 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SI_RequestConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct SI_RequestConfig, rach_OccasionsSI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_rach_OccasionsSI_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rach-OccasionsSI" + }, + { ATF_POINTER, 1, offsetof(struct SI_RequestConfig, si_RequestPeriod), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_si_RequestPeriod_13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestPeriod" + }, + { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig, si_RequestResources), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_si_RequestResources_22, + 0, + { &asn_OER_memb_si_RequestResources_constr_22, &asn_PER_memb_si_RequestResources_constr_22, memb_si_RequestResources_constraint_1 }, + 0, 0, /* No default value */ + "si-RequestResources" + }, +}; +static const int asn_MAP_SI_RequestConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SI_RequestConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SI_RequestConfig_specs_1 = { + sizeof(struct SI_RequestConfig), + offsetof(struct SI_RequestConfig, _asn_ctx), + asn_MAP_SI_RequestConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SI_RequestConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SI_RequestConfig = { + "SI-RequestConfig", + "SI-RequestConfig", + &asn_OP_SEQUENCE, + asn_DEF_SI_RequestConfig_tags_1, + sizeof(asn_DEF_SI_RequestConfig_tags_1) + /sizeof(asn_DEF_SI_RequestConfig_tags_1[0]), /* 1 */ + asn_DEF_SI_RequestConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SI_RequestConfig_tags_1) + /sizeof(asn_DEF_SI_RequestConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SI_RequestConfig_1, + 3, /* Elements count */ + &asn_SPC_SI_RequestConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SI-RequestConfig.h b/src/codec_utils/RRC/SI-RequestConfig.h new file mode 100644 index 000000000..350d6f49e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SI_RequestConfig_H_ +#define _SI_RequestConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RACH-ConfigGeneric.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion { + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneEighth = 0, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneFourth = 1, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneHalf = 2, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_one = 3, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_two = 4, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_four = 5, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_eight = 6, + SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_sixteen = 7 +} e_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion; +typedef enum SI_RequestConfig__si_RequestPeriod { + SI_RequestConfig__si_RequestPeriod_one = 0, + SI_RequestConfig__si_RequestPeriod_two = 1, + SI_RequestConfig__si_RequestPeriod_four = 2, + SI_RequestConfig__si_RequestPeriod_six = 3, + SI_RequestConfig__si_RequestPeriod_eight = 4, + SI_RequestConfig__si_RequestPeriod_ten = 5, + SI_RequestConfig__si_RequestPeriod_twelve = 6, + SI_RequestConfig__si_RequestPeriod_sixteen = 7 +} e_SI_RequestConfig__si_RequestPeriod; + +/* Forward declarations */ +struct SI_RequestResources; + +/* SI-RequestConfig */ +typedef struct SI_RequestConfig { + struct SI_RequestConfig__rach_OccasionsSI { + 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 SI_RequestConfig__si_RequestResources { + A_SEQUENCE_OF(struct 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; +} SI_RequestConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_si_RequestPeriod_13; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SI_RequestConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SI_RequestConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SI_RequestConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SI_RequestConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SI-RequestResources.c b/src/codec_utils/RRC/SI-RequestResources.c new file mode 100644 index 000000000..d9c20de10 --- /dev/null +++ b/src/codec_utils/RRC/SI-RequestResources.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SI-RequestResources.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_ra_PreambleStartIndex_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_AssociationPeriodIndex_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_SI_RequestResources_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SI_RequestResources, ra_PreambleStartIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_PreambleStartIndex_constr_2, &asn_PER_memb_ra_PreambleStartIndex_constr_2, memb_ra_PreambleStartIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-PreambleStartIndex" + }, + { ATF_POINTER, 2, offsetof(struct SI_RequestResources, ra_AssociationPeriodIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_AssociationPeriodIndex_constr_3, &asn_PER_memb_ra_AssociationPeriodIndex_constr_3, memb_ra_AssociationPeriodIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-AssociationPeriodIndex" + }, + { ATF_POINTER, 1, offsetof(struct SI_RequestResources, ra_ssb_OccasionMaskIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_4, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_4, memb_ra_ssb_OccasionMaskIndex_constraint_1 }, + 0, 0, /* No default value */ + "ra-ssb-OccasionMaskIndex" + }, +}; +static const int asn_MAP_SI_RequestResources_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SI_RequestResources_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SI_RequestResources_specs_1 = { + sizeof(struct SI_RequestResources), + offsetof(struct SI_RequestResources, _asn_ctx), + asn_MAP_SI_RequestResources_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SI_RequestResources_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SI_RequestResources = { + "SI-RequestResources", + "SI-RequestResources", + &asn_OP_SEQUENCE, + asn_DEF_SI_RequestResources_tags_1, + sizeof(asn_DEF_SI_RequestResources_tags_1) + /sizeof(asn_DEF_SI_RequestResources_tags_1[0]), /* 1 */ + asn_DEF_SI_RequestResources_tags_1, /* Same as above */ + sizeof(asn_DEF_SI_RequestResources_tags_1) + /sizeof(asn_DEF_SI_RequestResources_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SI_RequestResources_1, + 3, /* Elements count */ + &asn_SPC_SI_RequestResources_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SI-RequestResources.h b/src/codec_utils/RRC/SI-RequestResources.h new file mode 100644 index 000000000..18df32d52 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SI_RequestResources_H_ +#define _SI_RequestResources_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SI-RequestResources */ +typedef struct 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; +} SI_RequestResources_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SI_RequestResources; +extern asn_SEQUENCE_specifics_t asn_SPC_SI_RequestResources_specs_1; +extern asn_TYPE_member_t asn_MBR_SI_RequestResources_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SI_RequestResources_H_ */ +#include diff --git a/src/codec_utils/RRC/SI-SchedulingInfo.c b/src/codec_utils/RRC/SI-SchedulingInfo.c new file mode 100644 index 000000000..7b73ef6d9 --- /dev/null +++ b/src/codec_utils/RRC/SI-SchedulingInfo.c @@ -0,0 +1,275 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SI-SchedulingInfo.h" + +#include "SI-RequestConfig.h" +#include "SchedulingInfo.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_oer_constraints_t asn_OER_type_schedulingInfoList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_WindowLength_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_schedulingInfoList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_systemInformationAreaID_constr_16 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +static asn_per_constraints_t asn_PER_memb_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_schedulingInfoList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SchedulingInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_schedulingInfoList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_schedulingInfoList_specs_2 = { + sizeof(struct SI_SchedulingInfo__schedulingInfoList), + offsetof(struct SI_SchedulingInfo__schedulingInfoList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_schedulingInfoList_2 = { + "schedulingInfoList", + "schedulingInfoList", + &asn_OP_SEQUENCE_OF, + asn_DEF_schedulingInfoList_tags_2, + sizeof(asn_DEF_schedulingInfoList_tags_2) + /sizeof(asn_DEF_schedulingInfoList_tags_2[0]) - 1, /* 1 */ + asn_DEF_schedulingInfoList_tags_2, /* Same as above */ + sizeof(asn_DEF_schedulingInfoList_tags_2) + /sizeof(asn_DEF_schedulingInfoList_tags_2[0]), /* 2 */ + { &asn_OER_type_schedulingInfoList_constr_2, &asn_PER_type_schedulingInfoList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_schedulingInfoList_2, + 1, /* Single element */ + &asn_SPC_schedulingInfoList_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_WindowLength_specs_4 = { + asn_MAP_si_WindowLength_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_si_WindowLength_4 = { + "si-WindowLength", + "si-WindowLength", + &asn_OP_NativeEnumerated, + asn_DEF_si_WindowLength_tags_4, + sizeof(asn_DEF_si_WindowLength_tags_4) + /sizeof(asn_DEF_si_WindowLength_tags_4[0]) - 1, /* 1 */ + asn_DEF_si_WindowLength_tags_4, /* Same as above */ + sizeof(asn_DEF_si_WindowLength_tags_4) + /sizeof(asn_DEF_si_WindowLength_tags_4[0]), /* 2 */ + { &asn_OER_type_si_WindowLength_constr_4, &asn_PER_type_si_WindowLength_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_si_WindowLength_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SI_SchedulingInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SI_SchedulingInfo, schedulingInfoList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_schedulingInfoList_2, + 0, + { &asn_OER_memb_schedulingInfoList_constr_2, &asn_PER_memb_schedulingInfoList_constr_2, memb_schedulingInfoList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingInfoList" + }, + { ATF_NOFLAGS, 0, offsetof(struct SI_SchedulingInfo, si_WindowLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_si_WindowLength_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-WindowLength" + }, + { ATF_POINTER, 3, offsetof(struct SI_SchedulingInfo, si_RequestConfig), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SI_RequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestConfig" + }, + { ATF_POINTER, 2, offsetof(struct SI_SchedulingInfo, si_RequestConfigSUL), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SI_RequestConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-RequestConfigSUL" + }, + { ATF_POINTER, 1, offsetof(struct SI_SchedulingInfo, systemInformationAreaID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_systemInformationAreaID_constr_16, &asn_PER_memb_systemInformationAreaID_constr_16, memb_systemInformationAreaID_constraint_1 }, + 0, 0, /* No default value */ + "systemInformationAreaID" + }, +}; +static const int asn_MAP_SI_SchedulingInfo_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SI_SchedulingInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SI_SchedulingInfo_specs_1 = { + sizeof(struct SI_SchedulingInfo), + offsetof(struct SI_SchedulingInfo, _asn_ctx), + asn_MAP_SI_SchedulingInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SI_SchedulingInfo_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SI_SchedulingInfo = { + "SI-SchedulingInfo", + "SI-SchedulingInfo", + &asn_OP_SEQUENCE, + asn_DEF_SI_SchedulingInfo_tags_1, + sizeof(asn_DEF_SI_SchedulingInfo_tags_1) + /sizeof(asn_DEF_SI_SchedulingInfo_tags_1[0]), /* 1 */ + asn_DEF_SI_SchedulingInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SI_SchedulingInfo_tags_1) + /sizeof(asn_DEF_SI_SchedulingInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SI_SchedulingInfo_1, + 5, /* Elements count */ + &asn_SPC_SI_SchedulingInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SI-SchedulingInfo.h b/src/codec_utils/RRC/SI-SchedulingInfo.h new file mode 100644 index 000000000..166ff19ad --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SI_SchedulingInfo_H_ +#define _SI_SchedulingInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SI_SchedulingInfo__si_WindowLength { + SI_SchedulingInfo__si_WindowLength_s5 = 0, + SI_SchedulingInfo__si_WindowLength_s10 = 1, + SI_SchedulingInfo__si_WindowLength_s20 = 2, + SI_SchedulingInfo__si_WindowLength_s40 = 3, + SI_SchedulingInfo__si_WindowLength_s80 = 4, + SI_SchedulingInfo__si_WindowLength_s160 = 5, + SI_SchedulingInfo__si_WindowLength_s320 = 6, + SI_SchedulingInfo__si_WindowLength_s640 = 7, + SI_SchedulingInfo__si_WindowLength_s1280 = 8 +} e_SI_SchedulingInfo__si_WindowLength; + +/* Forward declarations */ +struct SI_RequestConfig; +struct SchedulingInfo; + +/* SI-SchedulingInfo */ +typedef struct SI_SchedulingInfo { + struct SI_SchedulingInfo__schedulingInfoList { + A_SEQUENCE_OF(struct SchedulingInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } schedulingInfoList; + long si_WindowLength; + struct SI_RequestConfig *si_RequestConfig; /* OPTIONAL */ + struct 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; +} SI_SchedulingInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_si_WindowLength_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SI_SchedulingInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SI_SchedulingInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SI_SchedulingInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SI_SchedulingInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB-Mapping.c b/src/codec_utils/RRC/SIB-Mapping.c new file mode 100644 index 000000000..df1755006 --- /dev/null +++ b/src/codec_utils/RRC/SIB-Mapping.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB-Mapping.h" + +#include "SIB-TypeInfo.h" +static asn_oer_constraints_t asn_OER_type_SIB_Mapping_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_SIB_Mapping_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SIB_TypeInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SIB_Mapping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SIB_Mapping_specs_1 = { + sizeof(struct SIB_Mapping), + offsetof(struct SIB_Mapping, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB_Mapping = { + "SIB-Mapping", + "SIB-Mapping", + &asn_OP_SEQUENCE_OF, + asn_DEF_SIB_Mapping_tags_1, + sizeof(asn_DEF_SIB_Mapping_tags_1) + /sizeof(asn_DEF_SIB_Mapping_tags_1[0]), /* 1 */ + asn_DEF_SIB_Mapping_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB_Mapping_tags_1) + /sizeof(asn_DEF_SIB_Mapping_tags_1[0]), /* 1 */ + { &asn_OER_type_SIB_Mapping_constr_1, &asn_PER_type_SIB_Mapping_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SIB_Mapping_1, + 1, /* Single element */ + &asn_SPC_SIB_Mapping_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB-Mapping.h b/src/codec_utils/RRC/SIB-Mapping.h new file mode 100644 index 000000000..9417723aa --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB_Mapping_H_ +#define _SIB_Mapping_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SIB_TypeInfo; + +/* SIB-Mapping */ +typedef struct SIB_Mapping { + A_SEQUENCE_OF(struct SIB_TypeInfo) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SIB_Mapping_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB_Mapping; +extern asn_SET_OF_specifics_t asn_SPC_SIB_Mapping_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB_Mapping_1[1]; +extern asn_per_constraints_t asn_PER_type_SIB_Mapping_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB_Mapping_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB-TypeInfo.c b/src/codec_utils/RRC/SIB-TypeInfo.c new file mode 100644 index 000000000..939986b22 --- /dev/null +++ b/src/codec_utils/RRC/SIB-TypeInfo.c @@ -0,0 +1,231 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_oer_constraints_t asn_OER_type_type_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_areaScope_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_valueTag_constr_20 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_type_specs_2 = { + asn_MAP_type_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_type_2 = { + "type", + "type", + &asn_OP_NativeEnumerated, + asn_DEF_type_tags_2, + sizeof(asn_DEF_type_tags_2) + /sizeof(asn_DEF_type_tags_2[0]) - 1, /* 1 */ + asn_DEF_type_tags_2, /* Same as above */ + sizeof(asn_DEF_type_tags_2) + /sizeof(asn_DEF_type_tags_2[0]), /* 2 */ + { &asn_OER_type_type_constr_2, &asn_PER_type_type_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_type_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_areaScope_value2enum_21[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_areaScope_enum2value_21[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_areaScope_specs_21 = { + asn_MAP_areaScope_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_areaScope_21 = { + "areaScope", + "areaScope", + &asn_OP_NativeEnumerated, + asn_DEF_areaScope_tags_21, + sizeof(asn_DEF_areaScope_tags_21) + /sizeof(asn_DEF_areaScope_tags_21[0]) - 1, /* 1 */ + asn_DEF_areaScope_tags_21, /* Same as above */ + sizeof(asn_DEF_areaScope_tags_21) + /sizeof(asn_DEF_areaScope_tags_21[0]), /* 2 */ + { &asn_OER_type_areaScope_constr_21, &asn_PER_type_areaScope_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_areaScope_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB_TypeInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB_TypeInfo, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_type_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "type" + }, + { ATF_POINTER, 2, offsetof(struct SIB_TypeInfo, valueTag), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_valueTag_constr_20, &asn_PER_memb_valueTag_constr_20, memb_valueTag_constraint_1 }, + 0, 0, /* No default value */ + "valueTag" + }, + { ATF_POINTER, 1, offsetof(struct SIB_TypeInfo, areaScope), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_areaScope_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "areaScope" + }, +}; +static const int asn_MAP_SIB_TypeInfo_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SIB_TypeInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB_TypeInfo_specs_1 = { + sizeof(struct SIB_TypeInfo), + offsetof(struct SIB_TypeInfo, _asn_ctx), + asn_MAP_SIB_TypeInfo_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SIB_TypeInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB_TypeInfo = { + "SIB-TypeInfo", + "SIB-TypeInfo", + &asn_OP_SEQUENCE, + asn_DEF_SIB_TypeInfo_tags_1, + sizeof(asn_DEF_SIB_TypeInfo_tags_1) + /sizeof(asn_DEF_SIB_TypeInfo_tags_1[0]), /* 1 */ + asn_DEF_SIB_TypeInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB_TypeInfo_tags_1) + /sizeof(asn_DEF_SIB_TypeInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB_TypeInfo_1, + 3, /* Elements count */ + &asn_SPC_SIB_TypeInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB-TypeInfo.h b/src/codec_utils/RRC/SIB-TypeInfo.h new file mode 100644 index 000000000..eb1ec6ed5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB_TypeInfo_H_ +#define _SIB_TypeInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SIB_TypeInfo__type { + SIB_TypeInfo__type_sibType2 = 0, + SIB_TypeInfo__type_sibType3 = 1, + SIB_TypeInfo__type_sibType4 = 2, + SIB_TypeInfo__type_sibType5 = 3, + SIB_TypeInfo__type_sibType6 = 4, + SIB_TypeInfo__type_sibType7 = 5, + SIB_TypeInfo__type_sibType8 = 6, + SIB_TypeInfo__type_sibType9 = 7, + SIB_TypeInfo__type_spare8 = 8, + SIB_TypeInfo__type_spare7 = 9, + SIB_TypeInfo__type_spare6 = 10, + SIB_TypeInfo__type_spare5 = 11, + SIB_TypeInfo__type_spare4 = 12, + SIB_TypeInfo__type_spare3 = 13, + SIB_TypeInfo__type_spare2 = 14, + SIB_TypeInfo__type_spare1 = 15 + /* + * Enumeration is extensible + */ +} e_SIB_TypeInfo__type; +typedef enum SIB_TypeInfo__areaScope { + SIB_TypeInfo__areaScope_true = 0 +} e_SIB_TypeInfo__areaScope; + +/* SIB-TypeInfo */ +typedef struct SIB_TypeInfo { + long type; + long *valueTag; /* OPTIONAL */ + long *areaScope; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SIB_TypeInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_type_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_areaScope_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SIB_TypeInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB_TypeInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB_TypeInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB_TypeInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB1.c b/src/codec_utils/RRC/SIB1.c new file mode 100644 index 000000000..7e72db481 --- /dev/null +++ b/src/codec_utils/RRC/SIB1.c @@ -0,0 +1,699 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB1.h" + +#include "ConnEstFailureControl.h" +#include "SI-SchedulingInfo.h" +#include "ServingCellConfigCommonSIB.h" +#include "UE-TimersAndConstants.h" +#include "UAC-BarringPerCatList.h" +#include "UAC-BarringPerPLMN-List.h" +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffset_constr_4 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMinOffset_constr_7 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ims_EmergencySupport_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eCallOverIMS_Support_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_individualPLMNList_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..12)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_individualPLMNList_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(2..12)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_useFullResumeID_constr_25 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_cellSelectionInfo_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 4, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMinOffset), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_RxLevMinOffset_constr_4, &asn_PER_memb_q_RxLevMinOffset_constr_4, memb_q_RxLevMinOffset_constraint_2 }, + 0, 0, /* No default value */ + "q-RxLevMinOffset" + }, + { ATF_POINTER, 3, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 2, offsetof(struct SIB1__cellSelectionInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_POINTER, 1, offsetof(struct SIB1__cellSelectionInfo, q_QualMinOffset), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_q_QualMinOffset_constr_7, &asn_PER_memb_q_QualMinOffset_constr_7, memb_q_QualMinOffset_constraint_2 }, + 0, 0, /* No default value */ + "q-QualMinOffset" + }, +}; +static const int asn_MAP_cellSelectionInfo_oms_2[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_cellSelectionInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_cellSelectionInfo_specs_2 = { + sizeof(struct SIB1__cellSelectionInfo), + offsetof(struct SIB1__cellSelectionInfo, _asn_ctx), + asn_MAP_cellSelectionInfo_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_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_cellSelectionInfo_2 = { + "cellSelectionInfo", + "cellSelectionInfo", + &asn_OP_SEQUENCE, + asn_DEF_cellSelectionInfo_tags_2, + sizeof(asn_DEF_cellSelectionInfo_tags_2) + /sizeof(asn_DEF_cellSelectionInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_cellSelectionInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_cellSelectionInfo_tags_2) + /sizeof(asn_DEF_cellSelectionInfo_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cellSelectionInfo_2, + 5, /* Elements count */ + &asn_SPC_cellSelectionInfo_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ims_EmergencySupport_value2enum_12[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_ims_EmergencySupport_enum2value_12[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ims_EmergencySupport_specs_12 = { + asn_MAP_ims_EmergencySupport_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ims_EmergencySupport_12 = { + "ims-EmergencySupport", + "ims-EmergencySupport", + &asn_OP_NativeEnumerated, + asn_DEF_ims_EmergencySupport_tags_12, + sizeof(asn_DEF_ims_EmergencySupport_tags_12) + /sizeof(asn_DEF_ims_EmergencySupport_tags_12[0]) - 1, /* 1 */ + asn_DEF_ims_EmergencySupport_tags_12, /* Same as above */ + sizeof(asn_DEF_ims_EmergencySupport_tags_12) + /sizeof(asn_DEF_ims_EmergencySupport_tags_12[0]), /* 2 */ + { &asn_OER_type_ims_EmergencySupport_constr_12, &asn_PER_type_ims_EmergencySupport_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ims_EmergencySupport_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_eCallOverIMS_Support_value2enum_14[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_eCallOverIMS_Support_enum2value_14[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_eCallOverIMS_Support_specs_14 = { + asn_MAP_eCallOverIMS_Support_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_eCallOverIMS_Support_14 = { + "eCallOverIMS-Support", + "eCallOverIMS-Support", + &asn_OP_NativeEnumerated, + asn_DEF_eCallOverIMS_Support_tags_14, + sizeof(asn_DEF_eCallOverIMS_Support_tags_14) + /sizeof(asn_DEF_eCallOverIMS_Support_tags_14[0]) - 1, /* 1 */ + asn_DEF_eCallOverIMS_Support_tags_14, /* Same as above */ + sizeof(asn_DEF_eCallOverIMS_Support_tags_14) + /sizeof(asn_DEF_eCallOverIMS_Support_tags_14[0]), /* 2 */ + { &asn_OER_type_eCallOverIMS_Support_constr_14, &asn_PER_type_eCallOverIMS_Support_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_eCallOverIMS_Support_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_individualPLMNList_23[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_individualPLMNList_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_individualPLMNList_specs_23 = { + sizeof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList), + offsetof(struct 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_individualPLMNList_23 = { + "individualPLMNList", + "individualPLMNList", + &asn_OP_SEQUENCE_OF, + asn_DEF_individualPLMNList_tags_23, + sizeof(asn_DEF_individualPLMNList_tags_23) + /sizeof(asn_DEF_individualPLMNList_tags_23[0]) - 1, /* 1 */ + asn_DEF_individualPLMNList_tags_23, /* Same as above */ + sizeof(asn_DEF_individualPLMNList_tags_23) + /sizeof(asn_DEF_individualPLMNList_tags_23[0]), /* 2 */ + { &asn_OER_type_individualPLMNList_constr_23, &asn_PER_type_individualPLMNList_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_individualPLMNList_23, + 1, /* Single element */ + &asn_SPC_individualPLMNList_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uac_AccessCategory1_SelectionAssistanceInfo_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.plmnCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "plmnCommon" + }, + { ATF_POINTER, 0, offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.individualPLMNList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_individualPLMNList_23, + 0, + { &asn_OER_memb_individualPLMNList_constr_23, &asn_PER_memb_individualPLMNList_constr_23, memb_individualPLMNList_constraint_21 }, + 0, 0, /* No default value */ + "individualPLMNList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 = { + sizeof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo), + offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, _asn_ctx), + offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, present), + sizeof(((struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21, &asn_PER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21, CHOICE_constraint }, + asn_MBR_uac_AccessCategory1_SelectionAssistanceInfo_21, + 2, /* Elements count */ + &asn_SPC_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uac_BarringInfo_17[] = { + { ATF_POINTER, 2, offsetof(struct SIB1__uac_BarringInfo, uac_BarringForCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_BarringPerCatList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringForCommon" + }, + { ATF_POINTER, 1, offsetof(struct SIB1__uac_BarringInfo, uac_BarringPerPLMN_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_BarringPerPLMN_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringPerPLMN-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB1__uac_BarringInfo, uac_BarringInfoSetList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_BarringInfoSetList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringInfoSetList" + }, + { ATF_POINTER, 1, offsetof(struct SIB1__uac_BarringInfo, uac_AccessCategory1_SelectionAssistanceInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_uac_AccessCategory1_SelectionAssistanceInfo_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-AccessCategory1-SelectionAssistanceInfo" + }, +}; +static const int asn_MAP_uac_BarringInfo_oms_17[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_uac_BarringInfo_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_uac_BarringInfo_specs_17 = { + sizeof(struct SIB1__uac_BarringInfo), + offsetof(struct SIB1__uac_BarringInfo, _asn_ctx), + asn_MAP_uac_BarringInfo_tag2el_17, + 4, /* Count of tags in the map */ + asn_MAP_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_uac_BarringInfo_17 = { + "uac-BarringInfo", + "uac-BarringInfo", + &asn_OP_SEQUENCE, + asn_DEF_uac_BarringInfo_tags_17, + sizeof(asn_DEF_uac_BarringInfo_tags_17) + /sizeof(asn_DEF_uac_BarringInfo_tags_17[0]) - 1, /* 1 */ + asn_DEF_uac_BarringInfo_tags_17, /* Same as above */ + sizeof(asn_DEF_uac_BarringInfo_tags_17) + /sizeof(asn_DEF_uac_BarringInfo_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_uac_BarringInfo_17, + 4, /* Elements count */ + &asn_SPC_uac_BarringInfo_specs_17 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_useFullResumeID_value2enum_25[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_useFullResumeID_enum2value_25[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_useFullResumeID_specs_25 = { + asn_MAP_useFullResumeID_value2enum_25, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_useFullResumeID_25 = { + "useFullResumeID", + "useFullResumeID", + &asn_OP_NativeEnumerated, + asn_DEF_useFullResumeID_tags_25, + sizeof(asn_DEF_useFullResumeID_tags_25) + /sizeof(asn_DEF_useFullResumeID_tags_25[0]) - 1, /* 1 */ + asn_DEF_useFullResumeID_tags_25, /* Same as above */ + sizeof(asn_DEF_useFullResumeID_tags_25) + /sizeof(asn_DEF_useFullResumeID_tags_25[0]), /* 2 */ + { &asn_OER_type_useFullResumeID_constr_25, &asn_PER_type_useFullResumeID_constr_25, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_useFullResumeID_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_28[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_28 = { + sizeof(struct SIB1__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_28 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_28, + sizeof(asn_DEF_nonCriticalExtension_tags_28) + /sizeof(asn_DEF_nonCriticalExtension_tags_28[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_28, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_28) + /sizeof(asn_DEF_nonCriticalExtension_tags_28[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB1_1[] = { + { ATF_POINTER, 1, offsetof(struct SIB1, cellSelectionInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cellSelectionInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellSelectionInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB1, cellAccessRelatedInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellAccessRelatedInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellAccessRelatedInfo" + }, + { ATF_POINTER, 10, offsetof(struct SIB1, connEstFailureControl), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ConnEstFailureControl, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "connEstFailureControl" + }, + { ATF_POINTER, 9, offsetof(struct SIB1, si_SchedulingInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SI_SchedulingInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-SchedulingInfo" + }, + { ATF_POINTER, 8, offsetof(struct SIB1, servingCellConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServingCellConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellConfigCommon" + }, + { ATF_POINTER, 7, offsetof(struct SIB1, ims_EmergencySupport), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ims_EmergencySupport_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ims-EmergencySupport" + }, + { ATF_POINTER, 6, offsetof(struct SIB1, eCallOverIMS_Support), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_eCallOverIMS_Support_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eCallOverIMS-Support" + }, + { ATF_POINTER, 5, offsetof(struct SIB1, ue_TimersAndConstants), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_TimersAndConstants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-TimersAndConstants" + }, + { ATF_POINTER, 4, offsetof(struct SIB1, uac_BarringInfo), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_uac_BarringInfo_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringInfo" + }, + { ATF_POINTER, 3, offsetof(struct SIB1, useFullResumeID), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_useFullResumeID_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "useFullResumeID" + }, + { ATF_POINTER, 2, offsetof(struct 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 SIB1, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_nonCriticalExtension_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_SIB1_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_SIB1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB1_specs_1 = { + sizeof(struct SIB1), + offsetof(struct SIB1, _asn_ctx), + asn_MAP_SIB1_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_SIB1_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB1 = { + "SIB1", + "SIB1", + &asn_OP_SEQUENCE, + asn_DEF_SIB1_tags_1, + sizeof(asn_DEF_SIB1_tags_1) + /sizeof(asn_DEF_SIB1_tags_1[0]), /* 1 */ + asn_DEF_SIB1_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB1_tags_1) + /sizeof(asn_DEF_SIB1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB1_1, + 12, /* Elements count */ + &asn_SPC_SIB1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB1.h b/src/codec_utils/RRC/SIB1.h new file mode 100644 index 000000000..2ffcbd069 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB1_H_ +#define _SIB1_H_ + + +#include + +/* Including external dependencies */ +#include "CellAccessRelatedInfo.h" +#include +#include +#include "Q-RxLevMin.h" +#include +#include "Q-QualMin.h" +#include +#include "UAC-BarringInfoSetList.h" +#include "UAC-AccessCategory1-SelectionAssistanceInfo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SIB1__ims_EmergencySupport { + SIB1__ims_EmergencySupport_true = 0 +} e_SIB1__ims_EmergencySupport; +typedef enum SIB1__eCallOverIMS_Support { + SIB1__eCallOverIMS_Support_true = 0 +} e_SIB1__eCallOverIMS_Support; +typedef enum SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR { + SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_NOTHING, /* No components present */ + SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_plmnCommon, + SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_individualPLMNList +} SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR; +typedef enum SIB1__useFullResumeID { + SIB1__useFullResumeID_true = 0 +} e_SIB1__useFullResumeID; + +/* Forward declarations */ +struct ConnEstFailureControl; +struct SI_SchedulingInfo; +struct ServingCellConfigCommonSIB; +struct UE_TimersAndConstants; +struct UAC_BarringPerCatList; +struct UAC_BarringPerPLMN_List; + +/* SIB1 */ +typedef struct SIB1 { + struct SIB1__cellSelectionInfo { + Q_RxLevMin_t q_RxLevMin; + long *q_RxLevMinOffset; /* OPTIONAL */ + Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + Q_QualMin_t *q_QualMin; /* OPTIONAL */ + long *q_QualMinOffset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *cellSelectionInfo; + CellAccessRelatedInfo_t cellAccessRelatedInfo; + struct ConnEstFailureControl *connEstFailureControl; /* OPTIONAL */ + struct SI_SchedulingInfo *si_SchedulingInfo; /* OPTIONAL */ + struct ServingCellConfigCommonSIB *servingCellConfigCommon; /* OPTIONAL */ + long *ims_EmergencySupport; /* OPTIONAL */ + long *eCallOverIMS_Support; /* OPTIONAL */ + struct UE_TimersAndConstants *ue_TimersAndConstants; /* OPTIONAL */ + struct SIB1__uac_BarringInfo { + struct UAC_BarringPerCatList *uac_BarringForCommon; /* OPTIONAL */ + struct UAC_BarringPerPLMN_List *uac_BarringPerPLMN_List; /* OPTIONAL */ + UAC_BarringInfoSetList_t uac_BarringInfoSetList; + struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo { + SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR present; + union SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_u { + UAC_AccessCategory1_SelectionAssistanceInfo_t plmnCommon; + struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList { + A_SEQUENCE_OF(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 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; +} SIB1_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_ims_EmergencySupport_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_eCallOverIMS_Support_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_useFullResumeID_25; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SIB1; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB1_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB1_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB1_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB2.c b/src/codec_utils/RRC/SIB2.c new file mode 100644 index 000000000..75678d1d5 --- /dev/null +++ b/src/codec_utils/RRC/SIB2.c @@ -0,0 +1,798 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB2.h" + +#include "ThresholdNR.h" +#include "MultiFrequencyBandListNR-SIB.h" +#include "SSB-MTC.h" +#include "SS-RSSI-Measurement.h" +#include "SSB-ToMeasure.h" +#include "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_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_oer_constraints_t asn_OER_type_q_Hyst_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sf_Medium_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sf_High_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofSS_BlocksToAverage_constr_3 CC_NOTUSED = { + { 1, 1 } /* (2..16) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_q_Hyst_specs_6 = { + asn_MAP_q_Hyst_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_q_Hyst_6 = { + "q-Hyst", + "q-Hyst", + &asn_OP_NativeEnumerated, + asn_DEF_q_Hyst_tags_6, + sizeof(asn_DEF_q_Hyst_tags_6) + /sizeof(asn_DEF_q_Hyst_tags_6[0]) - 1, /* 1 */ + asn_DEF_q_Hyst_tags_6, /* Same as above */ + sizeof(asn_DEF_q_Hyst_tags_6) + /sizeof(asn_DEF_q_Hyst_tags_6[0]), /* 2 */ + { &asn_OER_type_q_Hyst_constr_6, &asn_PER_type_q_Hyst_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_q_Hyst_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_sf_Medium_specs_26 = { + asn_MAP_sf_Medium_value2enum_26, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sf_Medium_26 = { + "sf-Medium", + "sf-Medium", + &asn_OP_NativeEnumerated, + asn_DEF_sf_Medium_tags_26, + sizeof(asn_DEF_sf_Medium_tags_26) + /sizeof(asn_DEF_sf_Medium_tags_26[0]) - 1, /* 1 */ + asn_DEF_sf_Medium_tags_26, /* Same as above */ + sizeof(asn_DEF_sf_Medium_tags_26) + /sizeof(asn_DEF_sf_Medium_tags_26[0]), /* 2 */ + { &asn_OER_type_sf_Medium_constr_26, &asn_PER_type_sf_Medium_constr_26, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sf_Medium_specs_26 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_sf_High_specs_31 = { + asn_MAP_sf_High_value2enum_31, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sf_High_31 = { + "sf-High", + "sf-High", + &asn_OP_NativeEnumerated, + asn_DEF_sf_High_tags_31, + sizeof(asn_DEF_sf_High_tags_31) + /sizeof(asn_DEF_sf_High_tags_31[0]) - 1, /* 1 */ + asn_DEF_sf_High_tags_31, /* Same as above */ + sizeof(asn_DEF_sf_High_tags_31) + /sizeof(asn_DEF_sf_High_tags_31[0]), /* 2 */ + { &asn_OER_type_sf_High_constr_31, &asn_PER_type_sf_High_constr_31, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sf_High_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_q_HystSF_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_Medium), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sf_Medium_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-Medium" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, sf_High), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sf_High_31, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-High" + }, +}; +static const ber_tlv_tag_t asn_DEF_q_HystSF_tags_25[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_q_HystSF_specs_25 = { + sizeof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF), + offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF, _asn_ctx), + asn_MAP_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_q_HystSF_25 = { + "q-HystSF", + "q-HystSF", + &asn_OP_SEQUENCE, + asn_DEF_q_HystSF_tags_25, + sizeof(asn_DEF_q_HystSF_tags_25) + /sizeof(asn_DEF_q_HystSF_tags_25[0]) - 1, /* 1 */ + asn_DEF_q_HystSF_tags_25, /* Same as above */ + sizeof(asn_DEF_q_HystSF_tags_25) + /sizeof(asn_DEF_q_HystSF_tags_25[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_q_HystSF_25, + 2, /* Elements count */ + &asn_SPC_q_HystSF_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_speedStateReselectionPars_23[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, mobilityStateParameters), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MobilityStateParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mobilityStateParameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, q_HystSF), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_q_HystSF_25, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-HystSF" + }, +}; +static const ber_tlv_tag_t asn_DEF_speedStateReselectionPars_tags_23[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_speedStateReselectionPars_specs_23 = { + sizeof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars), + offsetof(struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars, _asn_ctx), + asn_MAP_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_speedStateReselectionPars_23 = { + "speedStateReselectionPars", + "speedStateReselectionPars", + &asn_OP_SEQUENCE, + asn_DEF_speedStateReselectionPars_tags_23, + sizeof(asn_DEF_speedStateReselectionPars_tags_23) + /sizeof(asn_DEF_speedStateReselectionPars_tags_23[0]) - 1, /* 1 */ + asn_DEF_speedStateReselectionPars_tags_23, /* Same as above */ + sizeof(asn_DEF_speedStateReselectionPars_tags_23) + /sizeof(asn_DEF_speedStateReselectionPars_tags_23[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_speedStateReselectionPars_23, + 2, /* Elements count */ + &asn_SPC_speedStateReselectionPars_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cellReselectionInfoCommon_2[] = { + { ATF_POINTER, 3, offsetof(struct SIB2__cellReselectionInfoCommon, nrofSS_BlocksToAverage), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofSS_BlocksToAverage_constr_3, &asn_PER_memb_nrofSS_BlocksToAverage_constr_3, memb_nrofSS_BlocksToAverage_constraint_2 }, + 0, 0, /* No default value */ + "nrofSS-BlocksToAverage" + }, + { ATF_POINTER, 2, offsetof(struct SIB2__cellReselectionInfoCommon, absThreshSS_BlocksConsolidation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ThresholdNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "absThreshSS-BlocksConsolidation" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionInfoCommon, rangeToBestCell), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RangeToBestCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rangeToBestCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionInfoCommon, q_Hyst), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_q_Hyst_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-Hyst" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionInfoCommon, speedStateReselectionPars), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_speedStateReselectionPars_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "speedStateReselectionPars" + }, +}; +static const int asn_MAP_cellReselectionInfoCommon_oms_2[] = { 0, 1, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_cellReselectionInfoCommon_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_cellReselectionInfoCommon_specs_2 = { + sizeof(struct SIB2__cellReselectionInfoCommon), + offsetof(struct SIB2__cellReselectionInfoCommon, _asn_ctx), + asn_MAP_cellReselectionInfoCommon_tag2el_2, + 5, /* Count of tags in the map */ + asn_MAP_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_cellReselectionInfoCommon_2 = { + "cellReselectionInfoCommon", + "cellReselectionInfoCommon", + &asn_OP_SEQUENCE, + asn_DEF_cellReselectionInfoCommon_tags_2, + sizeof(asn_DEF_cellReselectionInfoCommon_tags_2) + /sizeof(asn_DEF_cellReselectionInfoCommon_tags_2[0]) - 1, /* 1 */ + asn_DEF_cellReselectionInfoCommon_tags_2, /* Same as above */ + sizeof(asn_DEF_cellReselectionInfoCommon_tags_2) + /sizeof(asn_DEF_cellReselectionInfoCommon_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cellReselectionInfoCommon_2, + 5, /* Elements count */ + &asn_SPC_cellReselectionInfoCommon_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_cellReselectionServingFreqInfo_37[] = { + { ATF_POINTER, 2, offsetof(struct SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NonIntraSearchP" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, s_NonIntraSearchQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-NonIntraSearchQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionServingFreqInfo, threshServingLowP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshServingLowP" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, threshServingLowQ), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "threshServingLowQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__cellReselectionServingFreqInfo, cellReselectionPriority), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionPriority" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__cellReselectionServingFreqInfo, cellReselectionSubPriority), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellReselectionSubPriority, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionSubPriority" + }, +}; +static const int asn_MAP_cellReselectionServingFreqInfo_oms_37[] = { 0, 1, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_cellReselectionServingFreqInfo_tags_37[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_cellReselectionServingFreqInfo_specs_37 = { + sizeof(struct SIB2__cellReselectionServingFreqInfo), + offsetof(struct SIB2__cellReselectionServingFreqInfo, _asn_ctx), + asn_MAP_cellReselectionServingFreqInfo_tag2el_37, + 6, /* Count of tags in the map */ + asn_MAP_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_cellReselectionServingFreqInfo_37 = { + "cellReselectionServingFreqInfo", + "cellReselectionServingFreqInfo", + &asn_OP_SEQUENCE, + asn_DEF_cellReselectionServingFreqInfo_tags_37, + sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37) + /sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37[0]) - 1, /* 1 */ + asn_DEF_cellReselectionServingFreqInfo_tags_37, /* Same as above */ + sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37) + /sizeof(asn_DEF_cellReselectionServingFreqInfo_tags_37[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_cellReselectionServingFreqInfo_37, + 6, /* Elements count */ + &asn_SPC_cellReselectionServingFreqInfo_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_60[] = { + { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo__ext1, t_ReselectionNR_SF), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR-SF" + }, +}; +static const int asn_MAP_ext1_oms_60[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_60[] = { + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_60[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* t-ReselectionNR-SF */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_60 = { + sizeof(struct SIB2__intraFreqCellReselectionInfo__ext1), + offsetof(struct SIB2__intraFreqCellReselectionInfo__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_60, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_60 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_60, + sizeof(asn_DEF_ext1_tags_60) + /sizeof(asn_DEF_ext1_tags_60[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_60, /* Same as above */ + sizeof(asn_DEF_ext1_tags_60) + /sizeof(asn_DEF_ext1_tags_60[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_60, + 1, /* Elements count */ + &asn_SPC_ext1_specs_60 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_intraFreqCellReselectionInfo_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_RxLevMin), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMin" + }, + { ATF_POINTER, 2, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_RxLevMinSUL), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_RxLevMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-RxLevMinSUL" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, q_QualMin), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Q_QualMin, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "q-QualMin" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, s_IntraSearchP), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThreshold, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-IntraSearchP" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, s_IntraSearchQ), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReselectionThresholdQ, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-IntraSearchQ" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2__intraFreqCellReselectionInfo, t_ReselectionNR), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionNR" + }, + { ATF_POINTER, 6, offsetof(struct SIB2__intraFreqCellReselectionInfo, frequencyBandList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandList" + }, + { ATF_POINTER, 5, offsetof(struct SIB2__intraFreqCellReselectionInfo, frequencyBandListSUL), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MultiFrequencyBandListNR_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListSUL" + }, + { ATF_POINTER, 4, offsetof(struct SIB2__intraFreqCellReselectionInfo, p_Max), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P_Max, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "p-Max" + }, + { ATF_POINTER, 3, offsetof(struct SIB2__intraFreqCellReselectionInfo, smtc), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_MTC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "smtc" + }, + { ATF_POINTER, 2, offsetof(struct SIB2__intraFreqCellReselectionInfo, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, + { ATF_POINTER, 1, offsetof(struct SIB2__intraFreqCellReselectionInfo, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 SIB2__intraFreqCellReselectionInfo, ext1), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + 0, + &asn_DEF_ext1_60, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_intraFreqCellReselectionInfo_oms_45[] = { 1, 2, 4, 6, 7, 8, 9, 10, 11, 13 }; +static const ber_tlv_tag_t asn_DEF_intraFreqCellReselectionInfo_tags_45[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_intraFreqCellReselectionInfo_specs_45 = { + sizeof(struct SIB2__intraFreqCellReselectionInfo), + offsetof(struct SIB2__intraFreqCellReselectionInfo, _asn_ctx), + asn_MAP_intraFreqCellReselectionInfo_tag2el_45, + 14, /* Count of tags in the map */ + asn_MAP_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_intraFreqCellReselectionInfo_45 = { + "intraFreqCellReselectionInfo", + "intraFreqCellReselectionInfo", + &asn_OP_SEQUENCE, + asn_DEF_intraFreqCellReselectionInfo_tags_45, + sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45) + /sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45[0]) - 1, /* 1 */ + asn_DEF_intraFreqCellReselectionInfo_tags_45, /* Same as above */ + sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45) + /sizeof(asn_DEF_intraFreqCellReselectionInfo_tags_45[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_intraFreqCellReselectionInfo_45, + 14, /* Elements count */ + &asn_SPC_intraFreqCellReselectionInfo_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB2, cellReselectionInfoCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_cellReselectionInfoCommon_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionInfoCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2, cellReselectionServingFreqInfo), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_cellReselectionServingFreqInfo_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellReselectionServingFreqInfo" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB2, intraFreqCellReselectionInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_intraFreqCellReselectionInfo_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqCellReselectionInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_SIB2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB2_specs_1 = { + sizeof(struct SIB2), + offsetof(struct SIB2, _asn_ctx), + asn_MAP_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_SIB2 = { + "SIB2", + "SIB2", + &asn_OP_SEQUENCE, + asn_DEF_SIB2_tags_1, + sizeof(asn_DEF_SIB2_tags_1) + /sizeof(asn_DEF_SIB2_tags_1[0]), /* 1 */ + asn_DEF_SIB2_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB2_tags_1) + /sizeof(asn_DEF_SIB2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB2_1, + 3, /* Elements count */ + &asn_SPC_SIB2_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB2.h b/src/codec_utils/RRC/SIB2.h new file mode 100644 index 000000000..8e491591f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB2_H_ +#define _SIB2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "RangeToBestCell.h" +#include +#include "MobilityStateParameters.h" +#include +#include "ReselectionThreshold.h" +#include "ReselectionThresholdQ.h" +#include "CellReselectionPriority.h" +#include "CellReselectionSubPriority.h" +#include "Q-RxLevMin.h" +#include "Q-QualMin.h" +#include "T-Reselection.h" +#include "P-Max.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SIB2__cellReselectionInfoCommon__q_Hyst { + SIB2__cellReselectionInfoCommon__q_Hyst_dB0 = 0, + SIB2__cellReselectionInfoCommon__q_Hyst_dB1 = 1, + SIB2__cellReselectionInfoCommon__q_Hyst_dB2 = 2, + SIB2__cellReselectionInfoCommon__q_Hyst_dB3 = 3, + SIB2__cellReselectionInfoCommon__q_Hyst_dB4 = 4, + SIB2__cellReselectionInfoCommon__q_Hyst_dB5 = 5, + SIB2__cellReselectionInfoCommon__q_Hyst_dB6 = 6, + SIB2__cellReselectionInfoCommon__q_Hyst_dB8 = 7, + SIB2__cellReselectionInfoCommon__q_Hyst_dB10 = 8, + SIB2__cellReselectionInfoCommon__q_Hyst_dB12 = 9, + SIB2__cellReselectionInfoCommon__q_Hyst_dB14 = 10, + SIB2__cellReselectionInfoCommon__q_Hyst_dB16 = 11, + SIB2__cellReselectionInfoCommon__q_Hyst_dB18 = 12, + SIB2__cellReselectionInfoCommon__q_Hyst_dB20 = 13, + SIB2__cellReselectionInfoCommon__q_Hyst_dB22 = 14, + SIB2__cellReselectionInfoCommon__q_Hyst_dB24 = 15 +} e_SIB2__cellReselectionInfoCommon__q_Hyst; +typedef enum SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium { + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_6 = 0, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_4 = 1, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB_2 = 2, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium_dB0 = 3 +} e_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_Medium; +typedef enum SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High { + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_6 = 0, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_4 = 1, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB_2 = 2, + SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High_dB0 = 3 +} e_SIB2__cellReselectionInfoCommon__speedStateReselectionPars__q_HystSF__sf_High; + +/* Forward declarations */ +struct ThresholdNR; +struct MultiFrequencyBandListNR_SIB; +struct SSB_MTC; +struct SS_RSSI_Measurement; +struct SSB_ToMeasure; +struct SpeedStateScaleFactors; + +/* SIB2 */ +typedef struct SIB2 { + struct SIB2__cellReselectionInfoCommon { + long *nrofSS_BlocksToAverage; /* OPTIONAL */ + struct ThresholdNR *absThreshSS_BlocksConsolidation; /* OPTIONAL */ + RangeToBestCell_t *rangeToBestCell; /* OPTIONAL */ + long q_Hyst; + struct SIB2__cellReselectionInfoCommon__speedStateReselectionPars { + MobilityStateParameters_t mobilityStateParameters; + struct 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 SIB2__cellReselectionServingFreqInfo { + ReselectionThreshold_t *s_NonIntraSearchP; /* OPTIONAL */ + ReselectionThresholdQ_t *s_NonIntraSearchQ; /* OPTIONAL */ + ReselectionThreshold_t threshServingLowP; + ReselectionThresholdQ_t *threshServingLowQ; /* OPTIONAL */ + CellReselectionPriority_t cellReselectionPriority; + 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 SIB2__intraFreqCellReselectionInfo { + Q_RxLevMin_t q_RxLevMin; + Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ + Q_QualMin_t *q_QualMin; /* OPTIONAL */ + ReselectionThreshold_t s_IntraSearchP; + ReselectionThresholdQ_t *s_IntraSearchQ; /* OPTIONAL */ + T_Reselection_t t_ReselectionNR; + struct MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ + struct MultiFrequencyBandListNR_SIB *frequencyBandListSUL; /* OPTIONAL */ + P_Max_t *p_Max; /* OPTIONAL */ + struct SSB_MTC *smtc; /* OPTIONAL */ + struct SS_RSSI_Measurement *ss_RSSI_Measurement; /* OPTIONAL */ + struct SSB_ToMeasure *ssb_ToMeasure; /* OPTIONAL */ + BOOLEAN_t deriveSSB_IndexFromCell; + /* + * This type is extensible, + * possible extensions are below. + */ + struct SIB2__intraFreqCellReselectionInfo__ext1 { + struct 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; +} SIB2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_q_Hyst_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sf_Medium_26; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sf_High_31; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SIB2; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB2_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB2_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB2_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB3.c b/src/codec_utils/RRC/SIB3.c new file mode 100644 index 000000000..cf3c21f59 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB3.h" + +#include "IntraFreqNeighCellList.h" +#include "IntraFreqBlackCellList.h" +asn_TYPE_member_t asn_MBR_SIB3_1[] = { + { ATF_POINTER, 3, offsetof(struct SIB3, intraFreqNeighCellList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntraFreqNeighCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqNeighCellList" + }, + { ATF_POINTER, 2, offsetof(struct SIB3, intraFreqBlackCellList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntraFreqBlackCellList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "intraFreqBlackCellList" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB3_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SIB3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB3_specs_1 = { + sizeof(struct SIB3), + offsetof(struct SIB3, _asn_ctx), + asn_MAP_SIB3_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SIB3_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB3 = { + "SIB3", + "SIB3", + &asn_OP_SEQUENCE, + asn_DEF_SIB3_tags_1, + sizeof(asn_DEF_SIB3_tags_1) + /sizeof(asn_DEF_SIB3_tags_1[0]), /* 1 */ + asn_DEF_SIB3_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB3_tags_1) + /sizeof(asn_DEF_SIB3_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB3_1, + 3, /* Elements count */ + &asn_SPC_SIB3_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB3.h b/src/codec_utils/RRC/SIB3.h new file mode 100644 index 000000000..f48af814d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB3_H_ +#define _SIB3_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct IntraFreqNeighCellList; +struct IntraFreqBlackCellList; + +/* SIB3 */ +typedef struct SIB3 { + struct IntraFreqNeighCellList *intraFreqNeighCellList; /* OPTIONAL */ + struct 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; +} SIB3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB3; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB3_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB3_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB3_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB4.c b/src/codec_utils/RRC/SIB4.c new file mode 100644 index 000000000..80c924aa8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB4.h" + +asn_TYPE_member_t asn_MBR_SIB4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB4, interFreqCarrierFreqList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_InterFreqCarrierFreqList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "interFreqCarrierFreqList" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB4_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SIB4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB4_specs_1 = { + sizeof(struct SIB4), + offsetof(struct SIB4, _asn_ctx), + asn_MAP_SIB4_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SIB4_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB4 = { + "SIB4", + "SIB4", + &asn_OP_SEQUENCE, + asn_DEF_SIB4_tags_1, + sizeof(asn_DEF_SIB4_tags_1) + /sizeof(asn_DEF_SIB4_tags_1[0]), /* 1 */ + asn_DEF_SIB4_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB4_tags_1) + /sizeof(asn_DEF_SIB4_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB4_1, + 2, /* Elements count */ + &asn_SPC_SIB4_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB4.h b/src/codec_utils/RRC/SIB4.h new file mode 100644 index 000000000..842a78eaf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB4_H_ +#define _SIB4_H_ + + +#include + +/* Including external dependencies */ +#include "InterFreqCarrierFreqList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SIB4 */ +typedef struct SIB4 { + 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; +} SIB4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB4; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB4_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB4_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB4_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB5.c b/src/codec_utils/RRC/SIB5.c new file mode 100644 index 000000000..770d59e3b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB5.h" + +#include "CarrierFreqListEUTRA.h" +#include "SpeedStateScaleFactors.h" +asn_TYPE_member_t asn_MBR_SIB5_1[] = { + { ATF_POINTER, 1, offsetof(struct SIB5, carrierFreqListEUTRA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CarrierFreqListEUTRA, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierFreqListEUTRA" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB5, t_ReselectionEUTRA), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_Reselection, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionEUTRA" + }, + { ATF_POINTER, 2, offsetof(struct SIB5, t_ReselectionEUTRA_SF), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SpeedStateScaleFactors, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-ReselectionEUTRA-SF" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB5_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SIB5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB5_specs_1 = { + sizeof(struct SIB5), + offsetof(struct SIB5, _asn_ctx), + asn_MAP_SIB5_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SIB5_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB5 = { + "SIB5", + "SIB5", + &asn_OP_SEQUENCE, + asn_DEF_SIB5_tags_1, + sizeof(asn_DEF_SIB5_tags_1) + /sizeof(asn_DEF_SIB5_tags_1[0]), /* 1 */ + asn_DEF_SIB5_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB5_tags_1) + /sizeof(asn_DEF_SIB5_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB5_1, + 4, /* Elements count */ + &asn_SPC_SIB5_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB5.h b/src/codec_utils/RRC/SIB5.h new file mode 100644 index 000000000..235f0db0c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB5_H_ +#define _SIB5_H_ + + +#include + +/* Including external dependencies */ +#include "T-Reselection.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CarrierFreqListEUTRA; +struct SpeedStateScaleFactors; + +/* SIB5 */ +typedef struct SIB5 { + struct CarrierFreqListEUTRA *carrierFreqListEUTRA; /* OPTIONAL */ + T_Reselection_t t_ReselectionEUTRA; + struct 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; +} SIB5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB5; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB5_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB5_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB5_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB6.c b/src/codec_utils/RRC/SIB6.c new file mode 100644 index 000000000..c525e48a5 --- /dev/null +++ b/src/codec_utils/RRC/SIB6.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB6.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_messageIdentifier_constr_2 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_warningType_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_SIB6_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB6, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_messageIdentifier_constr_2, &asn_PER_memb_messageIdentifier_constr_2, memb_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB6, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB6, warningType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_warningType_constr_4, &asn_PER_memb_warningType_constr_4, memb_warningType_constraint_1 }, + 0, 0, /* No default value */ + "warningType" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB6_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_SIB6_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB6_specs_1 = { + sizeof(struct SIB6), + offsetof(struct SIB6, _asn_ctx), + asn_MAP_SIB6_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SIB6_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB6 = { + "SIB6", + "SIB6", + &asn_OP_SEQUENCE, + asn_DEF_SIB6_tags_1, + sizeof(asn_DEF_SIB6_tags_1) + /sizeof(asn_DEF_SIB6_tags_1[0]), /* 1 */ + asn_DEF_SIB6_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB6_tags_1) + /sizeof(asn_DEF_SIB6_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB6_1, + 4, /* Elements count */ + &asn_SPC_SIB6_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB6.h b/src/codec_utils/RRC/SIB6.h new file mode 100644 index 000000000..dd92efa80 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB6_H_ +#define _SIB6_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SIB6 */ +typedef struct 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; +} SIB6_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB6; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB6_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB6_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB6_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB7.c b/src/codec_utils/RRC/SIB7.c new file mode 100644 index 000000000..4fae0f6d5 --- /dev/null +++ b/src/codec_utils/RRC/SIB7.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB7.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_warningMessageSegmentType_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_messageIdentifier_constr_2 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_warningMessageSegmentNumber_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dataCodingScheme_constr_9 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_warningMessageSegmentType_value2enum_4[] = { + { 0, 14, "notLastSegment" }, + { 1, 11, "lastSegment" } +}; +static const unsigned int asn_MAP_warningMessageSegmentType_enum2value_4[] = { + 1, /* lastSegment(1) */ + 0 /* notLastSegment(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_warningMessageSegmentType_specs_4 = { + asn_MAP_warningMessageSegmentType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_warningMessageSegmentType_4 = { + "warningMessageSegmentType", + "warningMessageSegmentType", + &asn_OP_NativeEnumerated, + asn_DEF_warningMessageSegmentType_tags_4, + sizeof(asn_DEF_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_warningMessageSegmentType_tags_4[0]) - 1, /* 1 */ + asn_DEF_warningMessageSegmentType_tags_4, /* Same as above */ + sizeof(asn_DEF_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_warningMessageSegmentType_tags_4[0]), /* 2 */ + { &asn_OER_type_warningMessageSegmentType_constr_4, &asn_PER_type_warningMessageSegmentType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_warningMessageSegmentType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB7_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB7, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_messageIdentifier_constr_2, &asn_PER_memb_messageIdentifier_constr_2, memb_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB7, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB7, warningMessageSegmentType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_warningMessageSegmentType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "warningMessageSegmentType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB7, warningMessageSegmentNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_warningMessageSegmentNumber_constr_7, &asn_PER_memb_warningMessageSegmentNumber_constr_7, memb_warningMessageSegmentNumber_constraint_1 }, + 0, 0, /* No default value */ + "warningMessageSegmentNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 SIB7, dataCodingScheme), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_dataCodingScheme_constr_9, &asn_PER_memb_dataCodingScheme_constr_9, memb_dataCodingScheme_constraint_1 }, + 0, 0, /* No default value */ + "dataCodingScheme" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB7_oms_1[] = { 5, 6 }; +static const ber_tlv_tag_t asn_DEF_SIB7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB7_specs_1 = { + sizeof(struct SIB7), + offsetof(struct SIB7, _asn_ctx), + asn_MAP_SIB7_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_SIB7_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB7 = { + "SIB7", + "SIB7", + &asn_OP_SEQUENCE, + asn_DEF_SIB7_tags_1, + sizeof(asn_DEF_SIB7_tags_1) + /sizeof(asn_DEF_SIB7_tags_1[0]), /* 1 */ + asn_DEF_SIB7_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB7_tags_1) + /sizeof(asn_DEF_SIB7_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB7_1, + 7, /* Elements count */ + &asn_SPC_SIB7_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB7.h b/src/codec_utils/RRC/SIB7.h new file mode 100644 index 000000000..861af54c1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB7_H_ +#define _SIB7_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SIB7__warningMessageSegmentType { + SIB7__warningMessageSegmentType_notLastSegment = 0, + SIB7__warningMessageSegmentType_lastSegment = 1 +} e_SIB7__warningMessageSegmentType; + +/* SIB7 */ +typedef struct 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; +} SIB7_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_warningMessageSegmentType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SIB7; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB7_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB7_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB7_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB8.c b/src/codec_utils/RRC/SIB8.c new file mode 100644 index 000000000..eacb284f4 --- /dev/null +++ b/src/codec_utils/RRC/SIB8.c @@ -0,0 +1,316 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB8.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_warningMessageSegmentType_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_messageIdentifier_constr_2 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_serialNumber_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_warningMessageSegmentNumber_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dataCodingScheme_constr_9 CC_NOTUSED = { + { 0, 0 }, + 1 /* (SIZE(1..1)) */}; +static asn_per_constraints_t asn_PER_memb_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_warningMessageSegmentType_value2enum_4[] = { + { 0, 14, "notLastSegment" }, + { 1, 11, "lastSegment" } +}; +static const unsigned int asn_MAP_warningMessageSegmentType_enum2value_4[] = { + 1, /* lastSegment(1) */ + 0 /* notLastSegment(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_warningMessageSegmentType_specs_4 = { + asn_MAP_warningMessageSegmentType_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_warningMessageSegmentType_4 = { + "warningMessageSegmentType", + "warningMessageSegmentType", + &asn_OP_NativeEnumerated, + asn_DEF_warningMessageSegmentType_tags_4, + sizeof(asn_DEF_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_warningMessageSegmentType_tags_4[0]) - 1, /* 1 */ + asn_DEF_warningMessageSegmentType_tags_4, /* Same as above */ + sizeof(asn_DEF_warningMessageSegmentType_tags_4) + /sizeof(asn_DEF_warningMessageSegmentType_tags_4[0]), /* 2 */ + { &asn_OER_type_warningMessageSegmentType_constr_4, &asn_PER_type_warningMessageSegmentType_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_warningMessageSegmentType_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB8, messageIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_messageIdentifier_constr_2, &asn_PER_memb_messageIdentifier_constr_2, memb_messageIdentifier_constraint_1 }, + 0, 0, /* No default value */ + "messageIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB8, serialNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_serialNumber_constr_3, &asn_PER_memb_serialNumber_constr_3, memb_serialNumber_constraint_1 }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB8, warningMessageSegmentType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_warningMessageSegmentType_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "warningMessageSegmentType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SIB8, warningMessageSegmentNumber), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_warningMessageSegmentNumber_constr_7, &asn_PER_memb_warningMessageSegmentNumber_constr_7, memb_warningMessageSegmentNumber_constraint_1 }, + 0, 0, /* No default value */ + "warningMessageSegmentNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 SIB8, dataCodingScheme), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_dataCodingScheme_constr_9, &asn_PER_memb_dataCodingScheme_constr_9, memb_dataCodingScheme_constraint_1 }, + 0, 0, /* No default value */ + "dataCodingScheme" + }, + { ATF_POINTER, 2, offsetof(struct 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 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_SIB8_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_SIB8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB8_specs_1 = { + sizeof(struct SIB8), + offsetof(struct SIB8, _asn_ctx), + asn_MAP_SIB8_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SIB8_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB8 = { + "SIB8", + "SIB8", + &asn_OP_SEQUENCE, + asn_DEF_SIB8_tags_1, + sizeof(asn_DEF_SIB8_tags_1) + /sizeof(asn_DEF_SIB8_tags_1[0]), /* 1 */ + asn_DEF_SIB8_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB8_tags_1) + /sizeof(asn_DEF_SIB8_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB8_1, + 8, /* Elements count */ + &asn_SPC_SIB8_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB8.h b/src/codec_utils/RRC/SIB8.h new file mode 100644 index 000000000..961b3894c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB8_H_ +#define _SIB8_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SIB8__warningMessageSegmentType { + SIB8__warningMessageSegmentType_notLastSegment = 0, + SIB8__warningMessageSegmentType_lastSegment = 1 +} e_SIB8__warningMessageSegmentType; + +/* SIB8 */ +typedef struct 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; +} SIB8_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_warningMessageSegmentType_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SIB8; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB8_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB8_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB8_H_ */ +#include diff --git a/src/codec_utils/RRC/SIB9.c b/src/codec_utils/RRC/SIB9.c new file mode 100644 index 000000000..577f2321e --- /dev/null +++ b/src/codec_utils/RRC/SIB9.c @@ -0,0 +1,281 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SIB9.h" + +static int +memb_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_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_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_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_oer_constraints_t asn_OER_memb_timeInfoUTC_constr_3 CC_NOTUSED = { + { 8, 1 } /* (0..549755813887) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_dayLightSavingTime_constr_4 CC_NOTUSED = { + { 0, 0 }, + 2 /* (SIZE(2..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_leapSeconds_constr_5 CC_NOTUSED = { + { 2, 0 } /* (-127..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_localTimeOffset_constr_6 CC_NOTUSED = { + { 1, 0 } /* (-63..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_timeInfo_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SIB9__timeInfo, timeInfoUTC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_INTEGER, + 0, + { &asn_OER_memb_timeInfoUTC_constr_3, &asn_PER_memb_timeInfoUTC_constr_3, memb_timeInfoUTC_constraint_2 }, + 0, 0, /* No default value */ + "timeInfoUTC" + }, + { ATF_POINTER, 3, offsetof(struct SIB9__timeInfo, dayLightSavingTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_dayLightSavingTime_constr_4, &asn_PER_memb_dayLightSavingTime_constr_4, memb_dayLightSavingTime_constraint_2 }, + 0, 0, /* No default value */ + "dayLightSavingTime" + }, + { ATF_POINTER, 2, offsetof(struct SIB9__timeInfo, leapSeconds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_leapSeconds_constr_5, &asn_PER_memb_leapSeconds_constr_5, memb_leapSeconds_constraint_2 }, + 0, 0, /* No default value */ + "leapSeconds" + }, + { ATF_POINTER, 1, offsetof(struct SIB9__timeInfo, localTimeOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_localTimeOffset_constr_6, &asn_PER_memb_localTimeOffset_constr_6, memb_localTimeOffset_constraint_2 }, + 0, 0, /* No default value */ + "localTimeOffset" + }, +}; +static const int asn_MAP_timeInfo_oms_2[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_timeInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_timeInfo_specs_2 = { + sizeof(struct SIB9__timeInfo), + offsetof(struct SIB9__timeInfo, _asn_ctx), + asn_MAP_timeInfo_tag2el_2, + 4, /* Count of tags in the map */ + asn_MAP_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_timeInfo_2 = { + "timeInfo", + "timeInfo", + &asn_OP_SEQUENCE, + asn_DEF_timeInfo_tags_2, + sizeof(asn_DEF_timeInfo_tags_2) + /sizeof(asn_DEF_timeInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_timeInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_timeInfo_tags_2) + /sizeof(asn_DEF_timeInfo_tags_2[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_timeInfo_2, + 4, /* Elements count */ + &asn_SPC_timeInfo_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SIB9_1[] = { + { ATF_POINTER, 2, offsetof(struct SIB9, timeInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_timeInfo_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeInfo" + }, + { ATF_POINTER, 1, offsetof(struct 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_SIB9_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SIB9_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SIB9_specs_1 = { + sizeof(struct SIB9), + offsetof(struct SIB9, _asn_ctx), + asn_MAP_SIB9_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SIB9_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SIB9 = { + "SIB9", + "SIB9", + &asn_OP_SEQUENCE, + asn_DEF_SIB9_tags_1, + sizeof(asn_DEF_SIB9_tags_1) + /sizeof(asn_DEF_SIB9_tags_1[0]), /* 1 */ + asn_DEF_SIB9_tags_1, /* Same as above */ + sizeof(asn_DEF_SIB9_tags_1) + /sizeof(asn_DEF_SIB9_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SIB9_1, + 2, /* Elements count */ + &asn_SPC_SIB9_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SIB9.h b/src/codec_utils/RRC/SIB9.h new file mode 100644 index 000000000..f0c0c09b0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SIB9_H_ +#define _SIB9_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SIB9 */ +typedef struct SIB9 { + struct 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; +} SIB9_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SIB9; +extern asn_SEQUENCE_specifics_t asn_SPC_SIB9_specs_1; +extern asn_TYPE_member_t asn_MBR_SIB9_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SIB9_H_ */ +#include diff --git a/src/codec_utils/RRC/SINR-Range.c b/src/codec_utils/RRC/SINR-Range.c new file mode 100644 index 000000000..1a777fe5d --- /dev/null +++ b/src/codec_utils/RRC/SINR-Range.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SINR-Range.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SINR_Range_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SINR_Range_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SINR_Range = { + "SINR-Range", + "SINR-Range", + &asn_OP_NativeInteger, + asn_DEF_SINR_Range_tags_1, + sizeof(asn_DEF_SINR_Range_tags_1) + /sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */ + asn_DEF_SINR_Range_tags_1, /* Same as above */ + sizeof(asn_DEF_SINR_Range_tags_1) + /sizeof(asn_DEF_SINR_Range_tags_1[0]), /* 1 */ + { &asn_OER_type_SINR_Range_constr_1, &asn_PER_type_SINR_Range_constr_1, SINR_Range_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SINR-Range.h b/src/codec_utils/RRC/SINR-Range.h new file mode 100644 index 000000000..2bf878a1e --- /dev/null +++ b/src/codec_utils/RRC/SINR-Range.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SINR_Range_H_ +#define _SINR_Range_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SINR-Range */ +typedef long SINR_Range_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SINR_Range_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SINR_Range; +asn_struct_free_f SINR_Range_free; +asn_struct_print_f SINR_Range_print; +asn_constr_check_f SINR_Range_constraint; +ber_type_decoder_f SINR_Range_decode_ber; +der_type_encoder_f SINR_Range_encode_der; +xer_type_decoder_f SINR_Range_decode_xer; +xer_type_encoder_f SINR_Range_encode_xer; +oer_type_decoder_f SINR_Range_decode_oer; +oer_type_encoder_f SINR_Range_encode_oer; +per_type_decoder_f SINR_Range_decode_uper; +per_type_encoder_f SINR_Range_encode_uper; +per_type_decoder_f SINR_Range_decode_aper; +per_type_encoder_f SINR_Range_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SINR_Range_H_ */ +#include diff --git a/src/codec_utils/RRC/SINR-RangeEUTRA.c b/src/codec_utils/RRC/SINR-RangeEUTRA.c new file mode 100644 index 000000000..e4d49824d --- /dev/null +++ b/src/codec_utils/RRC/SINR-RangeEUTRA.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SINR-RangeEUTRA.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SINR_RangeEUTRA_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SINR_RangeEUTRA_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA = { + "SINR-RangeEUTRA", + "SINR-RangeEUTRA", + &asn_OP_NativeInteger, + asn_DEF_SINR_RangeEUTRA_tags_1, + sizeof(asn_DEF_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + asn_DEF_SINR_RangeEUTRA_tags_1, /* Same as above */ + sizeof(asn_DEF_SINR_RangeEUTRA_tags_1) + /sizeof(asn_DEF_SINR_RangeEUTRA_tags_1[0]), /* 1 */ + { &asn_OER_type_SINR_RangeEUTRA_constr_1, &asn_PER_type_SINR_RangeEUTRA_constr_1, SINR_RangeEUTRA_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SINR-RangeEUTRA.h b/src/codec_utils/RRC/SINR-RangeEUTRA.h new file mode 100644 index 000000000..65b1ea813 --- /dev/null +++ b/src/codec_utils/RRC/SINR-RangeEUTRA.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SINR_RangeEUTRA_H_ +#define _SINR_RangeEUTRA_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SINR-RangeEUTRA */ +typedef long SINR_RangeEUTRA_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SINR_RangeEUTRA_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SINR_RangeEUTRA; +asn_struct_free_f SINR_RangeEUTRA_free; +asn_struct_print_f SINR_RangeEUTRA_print; +asn_constr_check_f SINR_RangeEUTRA_constraint; +ber_type_decoder_f SINR_RangeEUTRA_decode_ber; +der_type_encoder_f SINR_RangeEUTRA_encode_der; +xer_type_decoder_f SINR_RangeEUTRA_decode_xer; +xer_type_encoder_f SINR_RangeEUTRA_encode_xer; +oer_type_decoder_f SINR_RangeEUTRA_decode_oer; +oer_type_encoder_f SINR_RangeEUTRA_encode_oer; +per_type_decoder_f SINR_RangeEUTRA_decode_uper; +per_type_encoder_f SINR_RangeEUTRA_encode_uper; +per_type_decoder_f SINR_RangeEUTRA_decode_aper; +per_type_encoder_f SINR_RangeEUTRA_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SINR_RangeEUTRA_H_ */ +#include diff --git a/src/codec_utils/RRC/SN-FieldLengthAM.c b/src/codec_utils/RRC/SN-FieldLengthAM.c new file mode 100644 index 000000000..b5a75cf62 --- /dev/null +++ b/src/codec_utils/RRC/SN-FieldLengthAM.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SN-FieldLengthAM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SN_FieldLengthAM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_SN_FieldLengthAM_value2enum_1[] = { + { 0, 6, "size12" }, + { 1, 6, "size18" } +}; +static const unsigned int asn_MAP_SN_FieldLengthAM_enum2value_1[] = { + 0, /* size12(0) */ + 1 /* size18(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SN_FieldLengthAM_specs_1 = { + asn_MAP_SN_FieldLengthAM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_SN_FieldLengthAM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SN_FieldLengthAM = { + "SN-FieldLengthAM", + "SN-FieldLengthAM", + &asn_OP_NativeEnumerated, + asn_DEF_SN_FieldLengthAM_tags_1, + sizeof(asn_DEF_SN_FieldLengthAM_tags_1) + /sizeof(asn_DEF_SN_FieldLengthAM_tags_1[0]), /* 1 */ + asn_DEF_SN_FieldLengthAM_tags_1, /* Same as above */ + sizeof(asn_DEF_SN_FieldLengthAM_tags_1) + /sizeof(asn_DEF_SN_FieldLengthAM_tags_1[0]), /* 1 */ + { &asn_OER_type_SN_FieldLengthAM_constr_1, &asn_PER_type_SN_FieldLengthAM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SN_FieldLengthAM_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SN-FieldLengthAM.h b/src/codec_utils/RRC/SN-FieldLengthAM.h new file mode 100644 index 000000000..7dedc5b82 --- /dev/null +++ b/src/codec_utils/RRC/SN-FieldLengthAM.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SN_FieldLengthAM_H_ +#define _SN_FieldLengthAM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SN_FieldLengthAM { + SN_FieldLengthAM_size12 = 0, + SN_FieldLengthAM_size18 = 1 +} e_SN_FieldLengthAM; + +/* SN-FieldLengthAM */ +typedef long SN_FieldLengthAM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SN_FieldLengthAM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SN_FieldLengthAM; +extern const asn_INTEGER_specifics_t asn_SPC_SN_FieldLengthAM_specs_1; +asn_struct_free_f SN_FieldLengthAM_free; +asn_struct_print_f SN_FieldLengthAM_print; +asn_constr_check_f SN_FieldLengthAM_constraint; +ber_type_decoder_f SN_FieldLengthAM_decode_ber; +der_type_encoder_f SN_FieldLengthAM_encode_der; +xer_type_decoder_f SN_FieldLengthAM_decode_xer; +xer_type_encoder_f SN_FieldLengthAM_encode_xer; +oer_type_decoder_f SN_FieldLengthAM_decode_oer; +oer_type_encoder_f SN_FieldLengthAM_encode_oer; +per_type_decoder_f SN_FieldLengthAM_decode_uper; +per_type_encoder_f SN_FieldLengthAM_encode_uper; +per_type_decoder_f SN_FieldLengthAM_decode_aper; +per_type_encoder_f SN_FieldLengthAM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SN_FieldLengthAM_H_ */ +#include diff --git a/src/codec_utils/RRC/SN-FieldLengthUM.c b/src/codec_utils/RRC/SN-FieldLengthUM.c new file mode 100644 index 000000000..074082ba1 --- /dev/null +++ b/src/codec_utils/RRC/SN-FieldLengthUM.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SN-FieldLengthUM.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SN_FieldLengthUM_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_SN_FieldLengthUM_value2enum_1[] = { + { 0, 5, "size6" }, + { 1, 6, "size12" } +}; +static const unsigned int asn_MAP_SN_FieldLengthUM_enum2value_1[] = { + 1, /* size12(1) */ + 0 /* size6(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_SN_FieldLengthUM_specs_1 = { + asn_MAP_SN_FieldLengthUM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_SN_FieldLengthUM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SN_FieldLengthUM = { + "SN-FieldLengthUM", + "SN-FieldLengthUM", + &asn_OP_NativeEnumerated, + asn_DEF_SN_FieldLengthUM_tags_1, + sizeof(asn_DEF_SN_FieldLengthUM_tags_1) + /sizeof(asn_DEF_SN_FieldLengthUM_tags_1[0]), /* 1 */ + asn_DEF_SN_FieldLengthUM_tags_1, /* Same as above */ + sizeof(asn_DEF_SN_FieldLengthUM_tags_1) + /sizeof(asn_DEF_SN_FieldLengthUM_tags_1[0]), /* 1 */ + { &asn_OER_type_SN_FieldLengthUM_constr_1, &asn_PER_type_SN_FieldLengthUM_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SN_FieldLengthUM_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SN-FieldLengthUM.h b/src/codec_utils/RRC/SN-FieldLengthUM.h new file mode 100644 index 000000000..eefe3517d --- /dev/null +++ b/src/codec_utils/RRC/SN-FieldLengthUM.h @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SN_FieldLengthUM_H_ +#define _SN_FieldLengthUM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SN_FieldLengthUM { + SN_FieldLengthUM_size6 = 0, + SN_FieldLengthUM_size12 = 1 +} e_SN_FieldLengthUM; + +/* SN-FieldLengthUM */ +typedef long SN_FieldLengthUM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SN_FieldLengthUM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SN_FieldLengthUM; +extern const asn_INTEGER_specifics_t asn_SPC_SN_FieldLengthUM_specs_1; +asn_struct_free_f SN_FieldLengthUM_free; +asn_struct_print_f SN_FieldLengthUM_print; +asn_constr_check_f SN_FieldLengthUM_constraint; +ber_type_decoder_f SN_FieldLengthUM_decode_ber; +der_type_encoder_f SN_FieldLengthUM_encode_der; +xer_type_decoder_f SN_FieldLengthUM_decode_xer; +xer_type_encoder_f SN_FieldLengthUM_encode_xer; +oer_type_decoder_f SN_FieldLengthUM_decode_oer; +oer_type_encoder_f SN_FieldLengthUM_encode_oer; +per_type_decoder_f SN_FieldLengthUM_decode_uper; +per_type_encoder_f SN_FieldLengthUM_encode_uper; +per_type_decoder_f SN_FieldLengthUM_decode_aper; +per_type_encoder_f SN_FieldLengthUM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SN_FieldLengthUM_H_ */ +#include diff --git a/src/codec_utils/RRC/SPS-Config.c b/src/codec_utils/RRC/SPS-Config.c new file mode 100644 index 000000000..373b3425f --- /dev/null +++ b/src/codec_utils/RRC/SPS-Config.c @@ -0,0 +1,239 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_oer_constraints_t asn_OER_type_periodicity_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_mcs_Table_constr_21 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofHARQ_Processes_constr_19 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_periodicity_specs_2 = { + asn_MAP_periodicity_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_periodicity_2 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_periodicity_tags_2, + sizeof(asn_DEF_periodicity_tags_2) + /sizeof(asn_DEF_periodicity_tags_2[0]) - 1, /* 1 */ + asn_DEF_periodicity_tags_2, /* Same as above */ + sizeof(asn_DEF_periodicity_tags_2) + /sizeof(asn_DEF_periodicity_tags_2[0]), /* 2 */ + { &asn_OER_type_periodicity_constr_2, &asn_PER_type_periodicity_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_periodicity_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_mcs_Table_value2enum_21[] = { + { 0, 10, "qam64LowSE" } +}; +static const unsigned int asn_MAP_mcs_Table_enum2value_21[] = { + 0 /* qam64LowSE(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mcs_Table_specs_21 = { + asn_MAP_mcs_Table_value2enum_21, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_mcs_Table_21 = { + "mcs-Table", + "mcs-Table", + &asn_OP_NativeEnumerated, + asn_DEF_mcs_Table_tags_21, + sizeof(asn_DEF_mcs_Table_tags_21) + /sizeof(asn_DEF_mcs_Table_tags_21[0]) - 1, /* 1 */ + asn_DEF_mcs_Table_tags_21, /* Same as above */ + sizeof(asn_DEF_mcs_Table_tags_21) + /sizeof(asn_DEF_mcs_Table_tags_21[0]), /* 2 */ + { &asn_OER_type_mcs_Table_constr_21, &asn_PER_type_mcs_Table_constr_21, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_mcs_Table_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SPS_Config_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SPS_Config, periodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_periodicity_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct SPS_Config, nrofHARQ_Processes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofHARQ_Processes_constr_19, &asn_PER_memb_nrofHARQ_Processes_constr_19, memb_nrofHARQ_Processes_constraint_1 }, + 0, 0, /* No default value */ + "nrofHARQ-Processes" + }, + { ATF_POINTER, 2, offsetof(struct SPS_Config, n1PUCCH_AN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n1PUCCH-AN" + }, + { ATF_POINTER, 1, offsetof(struct SPS_Config, mcs_Table), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mcs_Table_21, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mcs-Table" + }, +}; +static const int asn_MAP_SPS_Config_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SPS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SPS_Config_specs_1 = { + sizeof(struct SPS_Config), + offsetof(struct SPS_Config, _asn_ctx), + asn_MAP_SPS_Config_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SPS_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SPS_Config = { + "SPS-Config", + "SPS-Config", + &asn_OP_SEQUENCE, + asn_DEF_SPS_Config_tags_1, + sizeof(asn_DEF_SPS_Config_tags_1) + /sizeof(asn_DEF_SPS_Config_tags_1[0]), /* 1 */ + asn_DEF_SPS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_SPS_Config_tags_1) + /sizeof(asn_DEF_SPS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SPS_Config_1, + 4, /* Elements count */ + &asn_SPC_SPS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SPS-Config.h b/src/codec_utils/RRC/SPS-Config.h new file mode 100644 index 000000000..8c84a1c5c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SPS_Config_H_ +#define _SPS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "PUCCH-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SPS_Config__periodicity { + SPS_Config__periodicity_ms10 = 0, + SPS_Config__periodicity_ms20 = 1, + SPS_Config__periodicity_ms32 = 2, + SPS_Config__periodicity_ms40 = 3, + SPS_Config__periodicity_ms64 = 4, + SPS_Config__periodicity_ms80 = 5, + SPS_Config__periodicity_ms128 = 6, + SPS_Config__periodicity_ms160 = 7, + SPS_Config__periodicity_ms320 = 8, + SPS_Config__periodicity_ms640 = 9, + SPS_Config__periodicity_spare6 = 10, + SPS_Config__periodicity_spare5 = 11, + SPS_Config__periodicity_spare4 = 12, + SPS_Config__periodicity_spare3 = 13, + SPS_Config__periodicity_spare2 = 14, + SPS_Config__periodicity_spare1 = 15 +} e_SPS_Config__periodicity; +typedef enum SPS_Config__mcs_Table { + SPS_Config__mcs_Table_qam64LowSE = 0 +} e_SPS_Config__mcs_Table; + +/* SPS-Config */ +typedef struct SPS_Config { + long periodicity; + long nrofHARQ_Processes; + 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; +} SPS_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_periodicity_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_21; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SPS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_SPS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_SPS_Config_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SPS_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/SRB-Identity.c b/src/codec_utils/RRC/SRB-Identity.c new file mode 100644 index 000000000..787f27c02 --- /dev/null +++ b/src/codec_utils/RRC/SRB-Identity.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRB-Identity.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SRB_Identity_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SRB_Identity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SRB_Identity = { + "SRB-Identity", + "SRB-Identity", + &asn_OP_NativeInteger, + asn_DEF_SRB_Identity_tags_1, + sizeof(asn_DEF_SRB_Identity_tags_1) + /sizeof(asn_DEF_SRB_Identity_tags_1[0]), /* 1 */ + asn_DEF_SRB_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_SRB_Identity_tags_1) + /sizeof(asn_DEF_SRB_Identity_tags_1[0]), /* 1 */ + { &asn_OER_type_SRB_Identity_constr_1, &asn_PER_type_SRB_Identity_constr_1, SRB_Identity_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SRB-Identity.h b/src/codec_utils/RRC/SRB-Identity.h new file mode 100644 index 000000000..9bfb6fb5f --- /dev/null +++ b/src/codec_utils/RRC/SRB-Identity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRB_Identity_H_ +#define _SRB_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRB-Identity */ +typedef long SRB_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SRB_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SRB_Identity; +asn_struct_free_f SRB_Identity_free; +asn_struct_print_f SRB_Identity_print; +asn_constr_check_f SRB_Identity_constraint; +ber_type_decoder_f SRB_Identity_decode_ber; +der_type_encoder_f SRB_Identity_encode_der; +xer_type_decoder_f SRB_Identity_decode_xer; +xer_type_encoder_f SRB_Identity_encode_xer; +oer_type_decoder_f SRB_Identity_decode_oer; +oer_type_encoder_f SRB_Identity_encode_oer; +per_type_decoder_f SRB_Identity_decode_uper; +per_type_encoder_f SRB_Identity_encode_uper; +per_type_decoder_f SRB_Identity_decode_aper; +per_type_encoder_f SRB_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRB_Identity_H_ */ +#include diff --git a/src/codec_utils/RRC/SRB-ToAddMod.c b/src/codec_utils/RRC/SRB-ToAddMod.c new file mode 100644 index 000000000..219035c1b --- /dev/null +++ b/src/codec_utils/RRC/SRB-ToAddMod.c @@ -0,0 +1,177 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRB-ToAddMod.h" + +#include "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_oer_constraints_t asn_OER_type_reestablishPDCP_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_discardOnPDCP_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_reestablishPDCP_value2enum_3[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_reestablishPDCP_enum2value_3[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_reestablishPDCP_specs_3 = { + asn_MAP_reestablishPDCP_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_reestablishPDCP_3 = { + "reestablishPDCP", + "reestablishPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_reestablishPDCP_tags_3, + sizeof(asn_DEF_reestablishPDCP_tags_3) + /sizeof(asn_DEF_reestablishPDCP_tags_3[0]) - 1, /* 1 */ + asn_DEF_reestablishPDCP_tags_3, /* Same as above */ + sizeof(asn_DEF_reestablishPDCP_tags_3) + /sizeof(asn_DEF_reestablishPDCP_tags_3[0]), /* 2 */ + { &asn_OER_type_reestablishPDCP_constr_3, &asn_PER_type_reestablishPDCP_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_reestablishPDCP_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_discardOnPDCP_value2enum_5[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_discardOnPDCP_enum2value_5[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_discardOnPDCP_specs_5 = { + asn_MAP_discardOnPDCP_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_discardOnPDCP_5 = { + "discardOnPDCP", + "discardOnPDCP", + &asn_OP_NativeEnumerated, + asn_DEF_discardOnPDCP_tags_5, + sizeof(asn_DEF_discardOnPDCP_tags_5) + /sizeof(asn_DEF_discardOnPDCP_tags_5[0]) - 1, /* 1 */ + asn_DEF_discardOnPDCP_tags_5, /* Same as above */ + sizeof(asn_DEF_discardOnPDCP_tags_5) + /sizeof(asn_DEF_discardOnPDCP_tags_5[0]), /* 2 */ + { &asn_OER_type_discardOnPDCP_constr_5, &asn_PER_type_discardOnPDCP_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_discardOnPDCP_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRB_ToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRB_ToAddMod, srb_Identity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRB_Identity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srb-Identity" + }, + { ATF_POINTER, 3, offsetof(struct SRB_ToAddMod, reestablishPDCP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_reestablishPDCP_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reestablishPDCP" + }, + { ATF_POINTER, 2, offsetof(struct SRB_ToAddMod, discardOnPDCP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_discardOnPDCP_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "discardOnPDCP" + }, + { ATF_POINTER, 1, offsetof(struct SRB_ToAddMod, pdcp_Config), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Config" + }, +}; +static const int asn_MAP_SRB_ToAddMod_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SRB_ToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRB_ToAddMod_specs_1 = { + sizeof(struct SRB_ToAddMod), + offsetof(struct SRB_ToAddMod, _asn_ctx), + asn_MAP_SRB_ToAddMod_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SRB_ToAddMod_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRB_ToAddMod = { + "SRB-ToAddMod", + "SRB-ToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_SRB_ToAddMod_tags_1, + sizeof(asn_DEF_SRB_ToAddMod_tags_1) + /sizeof(asn_DEF_SRB_ToAddMod_tags_1[0]), /* 1 */ + asn_DEF_SRB_ToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_SRB_ToAddMod_tags_1) + /sizeof(asn_DEF_SRB_ToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRB_ToAddMod_1, + 4, /* Elements count */ + &asn_SPC_SRB_ToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRB-ToAddMod.h b/src/codec_utils/RRC/SRB-ToAddMod.h new file mode 100644 index 000000000..f3ada8786 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRB_ToAddMod_H_ +#define _SRB_ToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "SRB-Identity.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRB_ToAddMod__reestablishPDCP { + SRB_ToAddMod__reestablishPDCP_true = 0 +} e_SRB_ToAddMod__reestablishPDCP; +typedef enum SRB_ToAddMod__discardOnPDCP { + SRB_ToAddMod__discardOnPDCP_true = 0 +} e_SRB_ToAddMod__discardOnPDCP; + +/* Forward declarations */ +struct PDCP_Config; + +/* SRB-ToAddMod */ +typedef struct SRB_ToAddMod { + SRB_Identity_t srb_Identity; + long *reestablishPDCP; /* OPTIONAL */ + long *discardOnPDCP; /* OPTIONAL */ + struct 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; +} SRB_ToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_reestablishPDCP_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_discardOnPDCP_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRB_ToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_SRB_ToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_SRB_ToAddMod_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRB_ToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/SRB-ToAddModList.c b/src/codec_utils/RRC/SRB-ToAddModList.c new file mode 100644 index 000000000..234d2e29f --- /dev/null +++ b/src/codec_utils/RRC/SRB-ToAddModList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRB-ToAddModList.h" + +#include "SRB-ToAddMod.h" +static asn_oer_constraints_t asn_OER_type_SRB_ToAddModList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +asn_per_constraints_t asn_PER_type_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_SRB_ToAddModList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRB_ToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRB_ToAddModList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_SRB_ToAddModList_specs_1 = { + sizeof(struct SRB_ToAddModList), + offsetof(struct SRB_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_SRB_ToAddModList = { + "SRB-ToAddModList", + "SRB-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_SRB_ToAddModList_tags_1, + sizeof(asn_DEF_SRB_ToAddModList_tags_1) + /sizeof(asn_DEF_SRB_ToAddModList_tags_1[0]), /* 1 */ + asn_DEF_SRB_ToAddModList_tags_1, /* Same as above */ + sizeof(asn_DEF_SRB_ToAddModList_tags_1) + /sizeof(asn_DEF_SRB_ToAddModList_tags_1[0]), /* 1 */ + { &asn_OER_type_SRB_ToAddModList_constr_1, &asn_PER_type_SRB_ToAddModList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_SRB_ToAddModList_1, + 1, /* Single element */ + &asn_SPC_SRB_ToAddModList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRB-ToAddModList.h b/src/codec_utils/RRC/SRB-ToAddModList.h new file mode 100644 index 000000000..9f4f0ac88 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRB_ToAddModList_H_ +#define _SRB_ToAddModList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SRB_ToAddMod; + +/* SRB-ToAddModList */ +typedef struct SRB_ToAddModList { + A_SEQUENCE_OF(struct SRB_ToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRB_ToAddModList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRB_ToAddModList; +extern asn_SET_OF_specifics_t asn_SPC_SRB_ToAddModList_specs_1; +extern asn_TYPE_member_t asn_MBR_SRB_ToAddModList_1[1]; +extern asn_per_constraints_t asn_PER_type_SRB_ToAddModList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRB_ToAddModList_H_ */ +#include diff --git a/src/codec_utils/RRC/SRI-PUSCH-PowerControl.c b/src/codec_utils/RRC/SRI-PUSCH-PowerControl.c new file mode 100644 index 000000000..8abc4e005 --- /dev/null +++ b/src/codec_utils/RRC/SRI-PUSCH-PowerControl.c @@ -0,0 +1,129 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRI-PUSCH-PowerControl.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_sri_PUSCH_ClosedLoopIndex_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_sri_PUSCH_ClosedLoopIndex_value2enum_5[] = { + { 0, 2, "i0" }, + { 1, 2, "i1" } +}; +static const unsigned int asn_MAP_sri_PUSCH_ClosedLoopIndex_enum2value_5[] = { + 0, /* i0(0) */ + 1 /* i1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sri_PUSCH_ClosedLoopIndex_specs_5 = { + asn_MAP_sri_PUSCH_ClosedLoopIndex_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sri_PUSCH_ClosedLoopIndex_5 = { + "sri-PUSCH-ClosedLoopIndex", + "sri-PUSCH-ClosedLoopIndex", + &asn_OP_NativeEnumerated, + asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5, + sizeof(asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5) + /sizeof(asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5[0]) - 1, /* 1 */ + asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5, /* Same as above */ + sizeof(asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5) + /sizeof(asn_DEF_sri_PUSCH_ClosedLoopIndex_tags_5[0]), /* 2 */ + { &asn_OER_type_sri_PUSCH_ClosedLoopIndex_constr_5, &asn_PER_type_sri_PUSCH_ClosedLoopIndex_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sri_PUSCH_ClosedLoopIndex_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRI_PUSCH_PowerControl_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRI_PUSCH_PowerControl, sri_PUSCH_PowerControlId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRI_PUSCH_PowerControlId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-PowerControlId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRI_PUSCH_PowerControl, sri_PUSCH_PathlossReferenceRS_Id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_PathlossReferenceRS_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-PathlossReferenceRS-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRI_PUSCH_PowerControl, sri_P0_PUSCH_AlphaSetId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_P0_PUSCH_AlphaSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-P0-PUSCH-AlphaSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRI_PUSCH_PowerControl, sri_PUSCH_ClosedLoopIndex), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sri_PUSCH_ClosedLoopIndex_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sri-PUSCH-ClosedLoopIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRI_PUSCH_PowerControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRI_PUSCH_PowerControl_specs_1 = { + sizeof(struct SRI_PUSCH_PowerControl), + offsetof(struct SRI_PUSCH_PowerControl, _asn_ctx), + asn_MAP_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_SRI_PUSCH_PowerControl = { + "SRI-PUSCH-PowerControl", + "SRI-PUSCH-PowerControl", + &asn_OP_SEQUENCE, + asn_DEF_SRI_PUSCH_PowerControl_tags_1, + sizeof(asn_DEF_SRI_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_SRI_PUSCH_PowerControl_tags_1[0]), /* 1 */ + asn_DEF_SRI_PUSCH_PowerControl_tags_1, /* Same as above */ + sizeof(asn_DEF_SRI_PUSCH_PowerControl_tags_1) + /sizeof(asn_DEF_SRI_PUSCH_PowerControl_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRI_PUSCH_PowerControl_1, + 4, /* Elements count */ + &asn_SPC_SRI_PUSCH_PowerControl_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRI-PUSCH-PowerControl.h b/src/codec_utils/RRC/SRI-PUSCH-PowerControl.h new file mode 100644 index 000000000..713f86035 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRI_PUSCH_PowerControl_H_ +#define _SRI_PUSCH_PowerControl_H_ + + +#include + +/* Including external dependencies */ +#include "SRI-PUSCH-PowerControlId.h" +#include "PUSCH-PathlossReferenceRS-Id.h" +#include "P0-PUSCH-AlphaSetId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex { + SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i0 = 0, + SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex_i1 = 1 +} e_SRI_PUSCH_PowerControl__sri_PUSCH_ClosedLoopIndex; + +/* SRI-PUSCH-PowerControl */ +typedef struct SRI_PUSCH_PowerControl { + SRI_PUSCH_PowerControlId_t sri_PUSCH_PowerControlId; + PUSCH_PathlossReferenceRS_Id_t sri_PUSCH_PathlossReferenceRS_Id; + P0_PUSCH_AlphaSetId_t sri_P0_PUSCH_AlphaSetId; + long sri_PUSCH_ClosedLoopIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRI_PUSCH_PowerControl_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sri_PUSCH_ClosedLoopIndex_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRI_PUSCH_PowerControl; +extern asn_SEQUENCE_specifics_t asn_SPC_SRI_PUSCH_PowerControl_specs_1; +extern asn_TYPE_member_t asn_MBR_SRI_PUSCH_PowerControl_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRI_PUSCH_PowerControl_H_ */ +#include diff --git a/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.c b/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.c new file mode 100644 index 000000000..9cc8439f0 --- /dev/null +++ b/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRI-PUSCH-PowerControlId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SRI_PUSCH_PowerControlId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SRI_PUSCH_PowerControlId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SRI_PUSCH_PowerControlId = { + "SRI-PUSCH-PowerControlId", + "SRI-PUSCH-PowerControlId", + &asn_OP_NativeInteger, + asn_DEF_SRI_PUSCH_PowerControlId_tags_1, + sizeof(asn_DEF_SRI_PUSCH_PowerControlId_tags_1) + /sizeof(asn_DEF_SRI_PUSCH_PowerControlId_tags_1[0]), /* 1 */ + asn_DEF_SRI_PUSCH_PowerControlId_tags_1, /* Same as above */ + sizeof(asn_DEF_SRI_PUSCH_PowerControlId_tags_1) + /sizeof(asn_DEF_SRI_PUSCH_PowerControlId_tags_1[0]), /* 1 */ + { &asn_OER_type_SRI_PUSCH_PowerControlId_constr_1, &asn_PER_type_SRI_PUSCH_PowerControlId_constr_1, SRI_PUSCH_PowerControlId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.h b/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.h new file mode 100644 index 000000000..01ea21608 --- /dev/null +++ b/src/codec_utils/RRC/SRI-PUSCH-PowerControlId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRI_PUSCH_PowerControlId_H_ +#define _SRI_PUSCH_PowerControlId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRI-PUSCH-PowerControlId */ +typedef long SRI_PUSCH_PowerControlId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SRI_PUSCH_PowerControlId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SRI_PUSCH_PowerControlId; +asn_struct_free_f SRI_PUSCH_PowerControlId_free; +asn_struct_print_f SRI_PUSCH_PowerControlId_print; +asn_constr_check_f SRI_PUSCH_PowerControlId_constraint; +ber_type_decoder_f SRI_PUSCH_PowerControlId_decode_ber; +der_type_encoder_f SRI_PUSCH_PowerControlId_encode_der; +xer_type_decoder_f SRI_PUSCH_PowerControlId_decode_xer; +xer_type_encoder_f SRI_PUSCH_PowerControlId_encode_xer; +oer_type_decoder_f SRI_PUSCH_PowerControlId_decode_oer; +oer_type_encoder_f SRI_PUSCH_PowerControlId_encode_oer; +per_type_decoder_f SRI_PUSCH_PowerControlId_decode_uper; +per_type_encoder_f SRI_PUSCH_PowerControlId_encode_uper; +per_type_decoder_f SRI_PUSCH_PowerControlId_decode_aper; +per_type_encoder_f SRI_PUSCH_PowerControlId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRI_PUSCH_PowerControlId_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-CC-SetIndex.c b/src/codec_utils/RRC/SRS-CC-SetIndex.c new file mode 100644 index 000000000..38f2acb67 --- /dev/null +++ b/src/codec_utils/RRC/SRS-CC-SetIndex.c @@ -0,0 +1,128 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-CC-SetIndex.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_cc_SetIndex_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_cc_IndexInOneCC_Set_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_SRS_CC_SetIndex_1[] = { + { ATF_POINTER, 2, offsetof(struct SRS_CC_SetIndex, cc_SetIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cc_SetIndex_constr_2, &asn_PER_memb_cc_SetIndex_constr_2, memb_cc_SetIndex_constraint_1 }, + 0, 0, /* No default value */ + "cc-SetIndex" + }, + { ATF_POINTER, 1, offsetof(struct SRS_CC_SetIndex, cc_IndexInOneCC_Set), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cc_IndexInOneCC_Set_constr_3, &asn_PER_memb_cc_IndexInOneCC_Set_constr_3, memb_cc_IndexInOneCC_Set_constraint_1 }, + 0, 0, /* No default value */ + "cc-IndexInOneCC-Set" + }, +}; +static const int asn_MAP_SRS_CC_SetIndex_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SRS_CC_SetIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_CC_SetIndex_specs_1 = { + sizeof(struct SRS_CC_SetIndex), + offsetof(struct SRS_CC_SetIndex, _asn_ctx), + asn_MAP_SRS_CC_SetIndex_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SRS_CC_SetIndex_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_CC_SetIndex = { + "SRS-CC-SetIndex", + "SRS-CC-SetIndex", + &asn_OP_SEQUENCE, + asn_DEF_SRS_CC_SetIndex_tags_1, + sizeof(asn_DEF_SRS_CC_SetIndex_tags_1) + /sizeof(asn_DEF_SRS_CC_SetIndex_tags_1[0]), /* 1 */ + asn_DEF_SRS_CC_SetIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_CC_SetIndex_tags_1) + /sizeof(asn_DEF_SRS_CC_SetIndex_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_CC_SetIndex_1, + 2, /* Elements count */ + &asn_SPC_SRS_CC_SetIndex_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-CC-SetIndex.h b/src/codec_utils/RRC/SRS-CC-SetIndex.h new file mode 100644 index 000000000..53865ca21 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_CC_SetIndex_H_ +#define _SRS_CC_SetIndex_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRS-CC-SetIndex */ +typedef struct SRS_CC_SetIndex { + long *cc_SetIndex; /* OPTIONAL */ + long *cc_IndexInOneCC_Set; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRS_CC_SetIndex_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_CC_SetIndex; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_CC_SetIndex_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_CC_SetIndex_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_CC_SetIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-CarrierSwitching.c b/src/codec_utils/RRC/SRS-CarrierSwitching.c new file mode 100644 index 000000000..798379a46 --- /dev/null +++ b/src/codec_utils/RRC/SRS-CarrierSwitching.c @@ -0,0 +1,380 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-CarrierSwitching.h" + +#include "SRS-TPC-PDCCH-Config.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_oer_constraints_t asn_OER_type_srs_SwitchFromCarrier_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_typeA_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_typeA_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_srs_TPC_PDCCH_Group_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_monitoringCells_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_srs_SwitchFromServCellIndex_constr_2 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_monitoringCells_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_srs_SwitchFromCarrier_value2enum_3[] = { + { 0, 3, "sUL" }, + { 1, 3, "nUL" } +}; +static const unsigned int asn_MAP_srs_SwitchFromCarrier_enum2value_3[] = { + 1, /* nUL(1) */ + 0 /* sUL(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_srs_SwitchFromCarrier_specs_3 = { + asn_MAP_srs_SwitchFromCarrier_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_srs_SwitchFromCarrier_3 = { + "srs-SwitchFromCarrier", + "srs-SwitchFromCarrier", + &asn_OP_NativeEnumerated, + asn_DEF_srs_SwitchFromCarrier_tags_3, + sizeof(asn_DEF_srs_SwitchFromCarrier_tags_3) + /sizeof(asn_DEF_srs_SwitchFromCarrier_tags_3[0]) - 1, /* 1 */ + asn_DEF_srs_SwitchFromCarrier_tags_3, /* Same as above */ + sizeof(asn_DEF_srs_SwitchFromCarrier_tags_3) + /sizeof(asn_DEF_srs_SwitchFromCarrier_tags_3[0]), /* 2 */ + { &asn_OER_type_srs_SwitchFromCarrier_constr_3, &asn_PER_type_srs_SwitchFromCarrier_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_srs_SwitchFromCarrier_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_typeA_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRS_TPC_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_typeA_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_typeA_specs_7 = { + sizeof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group__typeA), + offsetof(struct 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_typeA_7 = { + "typeA", + "typeA", + &asn_OP_SEQUENCE_OF, + asn_DEF_typeA_tags_7, + sizeof(asn_DEF_typeA_tags_7) + /sizeof(asn_DEF_typeA_tags_7[0]) - 1, /* 1 */ + asn_DEF_typeA_tags_7, /* Same as above */ + sizeof(asn_DEF_typeA_tags_7) + /sizeof(asn_DEF_typeA_tags_7[0]), /* 2 */ + { &asn_OER_type_typeA_constr_7, &asn_PER_type_typeA_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_typeA_7, + 1, /* Single element */ + &asn_SPC_typeA_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_srs_TPC_PDCCH_Group_6[] = { + { ATF_POINTER, 0, offsetof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group, choice.typeA), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_typeA_7, + 0, + { &asn_OER_memb_typeA_constr_7, &asn_PER_memb_typeA_constr_7, memb_typeA_constraint_6 }, + 0, 0, /* No default value */ + "typeA" + }, + { ATF_POINTER, 0, offsetof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group, choice.typeB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_TPC_PDCCH_Config, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "typeB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_srs_TPC_PDCCH_Group_specs_6 = { + sizeof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group), + offsetof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group, _asn_ctx), + offsetof(struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group, present), + sizeof(((struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_srs_TPC_PDCCH_Group_constr_6, &asn_PER_type_srs_TPC_PDCCH_Group_constr_6, CHOICE_constraint }, + asn_MBR_srs_TPC_PDCCH_Group_6, + 2, /* Elements count */ + &asn_SPC_srs_TPC_PDCCH_Group_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_monitoringCells_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_monitoringCells_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_monitoringCells_specs_10 = { + sizeof(struct SRS_CarrierSwitching__monitoringCells), + offsetof(struct SRS_CarrierSwitching__monitoringCells, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_monitoringCells_10 = { + "monitoringCells", + "monitoringCells", + &asn_OP_SEQUENCE_OF, + asn_DEF_monitoringCells_tags_10, + sizeof(asn_DEF_monitoringCells_tags_10) + /sizeof(asn_DEF_monitoringCells_tags_10[0]) - 1, /* 1 */ + asn_DEF_monitoringCells_tags_10, /* Same as above */ + sizeof(asn_DEF_monitoringCells_tags_10) + /sizeof(asn_DEF_monitoringCells_tags_10[0]), /* 2 */ + { &asn_OER_type_monitoringCells_constr_10, &asn_PER_type_monitoringCells_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_monitoringCells_10, + 1, /* Single element */ + &asn_SPC_monitoringCells_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_CarrierSwitching_1[] = { + { ATF_POINTER, 1, offsetof(struct SRS_CarrierSwitching, srs_SwitchFromServCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_srs_SwitchFromServCellIndex_constr_2, &asn_PER_memb_srs_SwitchFromServCellIndex_constr_2, memb_srs_SwitchFromServCellIndex_constraint_1 }, + 0, 0, /* No default value */ + "srs-SwitchFromServCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_CarrierSwitching, srs_SwitchFromCarrier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_srs_SwitchFromCarrier_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-SwitchFromCarrier" + }, + { ATF_POINTER, 2, offsetof(struct SRS_CarrierSwitching, srs_TPC_PDCCH_Group), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_srs_TPC_PDCCH_Group_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-TPC-PDCCH-Group" + }, + { ATF_POINTER, 1, offsetof(struct SRS_CarrierSwitching, monitoringCells), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_monitoringCells_10, + 0, + { &asn_OER_memb_monitoringCells_constr_10, &asn_PER_memb_monitoringCells_constr_10, memb_monitoringCells_constraint_1 }, + 0, 0, /* No default value */ + "monitoringCells" + }, +}; +static const int asn_MAP_SRS_CarrierSwitching_oms_1[] = { 0, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SRS_CarrierSwitching_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_CarrierSwitching_specs_1 = { + sizeof(struct SRS_CarrierSwitching), + offsetof(struct SRS_CarrierSwitching, _asn_ctx), + asn_MAP_SRS_CarrierSwitching_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SRS_CarrierSwitching_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_CarrierSwitching = { + "SRS-CarrierSwitching", + "SRS-CarrierSwitching", + &asn_OP_SEQUENCE, + asn_DEF_SRS_CarrierSwitching_tags_1, + sizeof(asn_DEF_SRS_CarrierSwitching_tags_1) + /sizeof(asn_DEF_SRS_CarrierSwitching_tags_1[0]), /* 1 */ + asn_DEF_SRS_CarrierSwitching_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_CarrierSwitching_tags_1) + /sizeof(asn_DEF_SRS_CarrierSwitching_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_CarrierSwitching_1, + 4, /* Elements count */ + &asn_SPC_SRS_CarrierSwitching_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-CarrierSwitching.h b/src/codec_utils/RRC/SRS-CarrierSwitching.h new file mode 100644 index 000000000..5a12da9c3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_CarrierSwitching_H_ +#define _SRS_CarrierSwitching_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include "ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_CarrierSwitching__srs_SwitchFromCarrier { + SRS_CarrierSwitching__srs_SwitchFromCarrier_sUL = 0, + SRS_CarrierSwitching__srs_SwitchFromCarrier_nUL = 1 +} e_SRS_CarrierSwitching__srs_SwitchFromCarrier; +typedef enum SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR { + SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_NOTHING, /* No components present */ + SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_typeA, + SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR_typeB +} SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR; + +/* Forward declarations */ +struct SRS_TPC_PDCCH_Config; + +/* SRS-CarrierSwitching */ +typedef struct SRS_CarrierSwitching { + long *srs_SwitchFromServCellIndex; /* OPTIONAL */ + long srs_SwitchFromCarrier; + struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group { + SRS_CarrierSwitching__srs_TPC_PDCCH_Group_PR present; + union SRS_CarrierSwitching__srs_TPC_PDCCH_Group_u { + struct SRS_CarrierSwitching__srs_TPC_PDCCH_Group__typeA { + A_SEQUENCE_OF(struct SRS_TPC_PDCCH_Config) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *typeA; + struct SRS_TPC_PDCCH_Config *typeB; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_TPC_PDCCH_Group; + struct SRS_CarrierSwitching__monitoringCells { + A_SEQUENCE_OF(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; +} SRS_CarrierSwitching_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_srs_SwitchFromCarrier_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_CarrierSwitching; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_CarrierSwitching_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_CarrierSwitching_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_CarrierSwitching_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-Config.c b/src/codec_utils/RRC/SRS-Config.c new file mode 100644 index 000000000..e1007e538 --- /dev/null +++ b/src/codec_utils/RRC/SRS-Config.c @@ -0,0 +1,457 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-Config.h" + +#include "SRS-ResourceSet.h" +#include "SRS-Resource.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_oer_constraints_t asn_OER_type_srs_ResourceSetToReleaseList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srs_ResourceSetToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srs_ResourceToReleaseList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srs_ResourceToAddModList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tpc_Accumulation_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_srs_ResourceSetToReleaseList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_srs_ResourceSetToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_srs_ResourceToReleaseList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_srs_ResourceToAddModList_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_srs_ResourceSetToReleaseList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_ResourceSetToReleaseList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_srs_ResourceSetToReleaseList_specs_2 = { + sizeof(struct SRS_Config__srs_ResourceSetToReleaseList), + offsetof(struct SRS_Config__srs_ResourceSetToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_srs_ResourceSetToReleaseList_2 = { + "srs-ResourceSetToReleaseList", + "srs-ResourceSetToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_ResourceSetToReleaseList_tags_2, + sizeof(asn_DEF_srs_ResourceSetToReleaseList_tags_2) + /sizeof(asn_DEF_srs_ResourceSetToReleaseList_tags_2[0]) - 1, /* 1 */ + asn_DEF_srs_ResourceSetToReleaseList_tags_2, /* Same as above */ + sizeof(asn_DEF_srs_ResourceSetToReleaseList_tags_2) + /sizeof(asn_DEF_srs_ResourceSetToReleaseList_tags_2[0]), /* 2 */ + { &asn_OER_type_srs_ResourceSetToReleaseList_constr_2, &asn_PER_type_srs_ResourceSetToReleaseList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_srs_ResourceSetToReleaseList_2, + 1, /* Single element */ + &asn_SPC_srs_ResourceSetToReleaseList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_srs_ResourceSetToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRS_ResourceSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_ResourceSetToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_srs_ResourceSetToAddModList_specs_4 = { + sizeof(struct SRS_Config__srs_ResourceSetToAddModList), + offsetof(struct SRS_Config__srs_ResourceSetToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_srs_ResourceSetToAddModList_4 = { + "srs-ResourceSetToAddModList", + "srs-ResourceSetToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_ResourceSetToAddModList_tags_4, + sizeof(asn_DEF_srs_ResourceSetToAddModList_tags_4) + /sizeof(asn_DEF_srs_ResourceSetToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_srs_ResourceSetToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_srs_ResourceSetToAddModList_tags_4) + /sizeof(asn_DEF_srs_ResourceSetToAddModList_tags_4[0]), /* 2 */ + { &asn_OER_type_srs_ResourceSetToAddModList_constr_4, &asn_PER_type_srs_ResourceSetToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_srs_ResourceSetToAddModList_4, + 1, /* Single element */ + &asn_SPC_srs_ResourceSetToAddModList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_srs_ResourceToReleaseList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_ResourceToReleaseList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_srs_ResourceToReleaseList_specs_6 = { + sizeof(struct SRS_Config__srs_ResourceToReleaseList), + offsetof(struct SRS_Config__srs_ResourceToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_srs_ResourceToReleaseList_6 = { + "srs-ResourceToReleaseList", + "srs-ResourceToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_ResourceToReleaseList_tags_6, + sizeof(asn_DEF_srs_ResourceToReleaseList_tags_6) + /sizeof(asn_DEF_srs_ResourceToReleaseList_tags_6[0]) - 1, /* 1 */ + asn_DEF_srs_ResourceToReleaseList_tags_6, /* Same as above */ + sizeof(asn_DEF_srs_ResourceToReleaseList_tags_6) + /sizeof(asn_DEF_srs_ResourceToReleaseList_tags_6[0]), /* 2 */ + { &asn_OER_type_srs_ResourceToReleaseList_constr_6, &asn_PER_type_srs_ResourceToReleaseList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_srs_ResourceToReleaseList_6, + 1, /* Single element */ + &asn_SPC_srs_ResourceToReleaseList_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_srs_ResourceToAddModList_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRS_Resource, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_ResourceToAddModList_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_srs_ResourceToAddModList_specs_8 = { + sizeof(struct SRS_Config__srs_ResourceToAddModList), + offsetof(struct SRS_Config__srs_ResourceToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_srs_ResourceToAddModList_8 = { + "srs-ResourceToAddModList", + "srs-ResourceToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_ResourceToAddModList_tags_8, + sizeof(asn_DEF_srs_ResourceToAddModList_tags_8) + /sizeof(asn_DEF_srs_ResourceToAddModList_tags_8[0]) - 1, /* 1 */ + asn_DEF_srs_ResourceToAddModList_tags_8, /* Same as above */ + sizeof(asn_DEF_srs_ResourceToAddModList_tags_8) + /sizeof(asn_DEF_srs_ResourceToAddModList_tags_8[0]), /* 2 */ + { &asn_OER_type_srs_ResourceToAddModList_constr_8, &asn_PER_type_srs_ResourceToAddModList_constr_8, SEQUENCE_OF_constraint }, + asn_MBR_srs_ResourceToAddModList_8, + 1, /* Single element */ + &asn_SPC_srs_ResourceToAddModList_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_tpc_Accumulation_value2enum_10[] = { + { 0, 8, "disabled" } +}; +static const unsigned int asn_MAP_tpc_Accumulation_enum2value_10[] = { + 0 /* disabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_tpc_Accumulation_specs_10 = { + asn_MAP_tpc_Accumulation_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_tpc_Accumulation_10 = { + "tpc-Accumulation", + "tpc-Accumulation", + &asn_OP_NativeEnumerated, + asn_DEF_tpc_Accumulation_tags_10, + sizeof(asn_DEF_tpc_Accumulation_tags_10) + /sizeof(asn_DEF_tpc_Accumulation_tags_10[0]) - 1, /* 1 */ + asn_DEF_tpc_Accumulation_tags_10, /* Same as above */ + sizeof(asn_DEF_tpc_Accumulation_tags_10) + /sizeof(asn_DEF_tpc_Accumulation_tags_10[0]), /* 2 */ + { &asn_OER_type_tpc_Accumulation_constr_10, &asn_PER_type_tpc_Accumulation_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_tpc_Accumulation_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_Config_1[] = { + { ATF_POINTER, 5, offsetof(struct SRS_Config, srs_ResourceSetToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_srs_ResourceSetToReleaseList_2, + 0, + { &asn_OER_memb_srs_ResourceSetToReleaseList_constr_2, &asn_PER_memb_srs_ResourceSetToReleaseList_constr_2, memb_srs_ResourceSetToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceSetToReleaseList" + }, + { ATF_POINTER, 4, offsetof(struct SRS_Config, srs_ResourceSetToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_srs_ResourceSetToAddModList_4, + 0, + { &asn_OER_memb_srs_ResourceSetToAddModList_constr_4, &asn_PER_memb_srs_ResourceSetToAddModList_constr_4, memb_srs_ResourceSetToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceSetToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct SRS_Config, srs_ResourceToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_srs_ResourceToReleaseList_6, + 0, + { &asn_OER_memb_srs_ResourceToReleaseList_constr_6, &asn_PER_memb_srs_ResourceToReleaseList_constr_6, memb_srs_ResourceToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct SRS_Config, srs_ResourceToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_srs_ResourceToAddModList_8, + 0, + { &asn_OER_memb_srs_ResourceToAddModList_constr_8, &asn_PER_memb_srs_ResourceToAddModList_constr_8, memb_srs_ResourceToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct SRS_Config, tpc_Accumulation), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_tpc_Accumulation_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tpc-Accumulation" + }, +}; +static const int asn_MAP_SRS_Config_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SRS_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_Config_specs_1 = { + sizeof(struct SRS_Config), + offsetof(struct SRS_Config, _asn_ctx), + asn_MAP_SRS_Config_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SRS_Config_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_Config = { + "SRS-Config", + "SRS-Config", + &asn_OP_SEQUENCE, + asn_DEF_SRS_Config_tags_1, + sizeof(asn_DEF_SRS_Config_tags_1) + /sizeof(asn_DEF_SRS_Config_tags_1[0]), /* 1 */ + asn_DEF_SRS_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_Config_tags_1) + /sizeof(asn_DEF_SRS_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_Config_1, + 5, /* Elements count */ + &asn_SPC_SRS_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-Config.h b/src/codec_utils/RRC/SRS-Config.h new file mode 100644 index 000000000..dac6cdcc8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_Config_H_ +#define _SRS_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include "SRS-ResourceSetId.h" +#include +#include +#include "SRS-ResourceId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_Config__tpc_Accumulation { + SRS_Config__tpc_Accumulation_disabled = 0 +} e_SRS_Config__tpc_Accumulation; + +/* Forward declarations */ +struct SRS_ResourceSet; +struct SRS_Resource; + +/* SRS-Config */ +typedef struct SRS_Config { + struct SRS_Config__srs_ResourceSetToReleaseList { + A_SEQUENCE_OF(SRS_ResourceSetId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceSetToReleaseList; + struct SRS_Config__srs_ResourceSetToAddModList { + A_SEQUENCE_OF(struct SRS_ResourceSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceSetToAddModList; + struct SRS_Config__srs_ResourceToReleaseList { + A_SEQUENCE_OF(SRS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceToReleaseList; + struct SRS_Config__srs_ResourceToAddModList { + A_SEQUENCE_OF(struct 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; +} SRS_Config_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_tpc_Accumulation_10; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_Config_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-PeriodicityAndOffset.c b/src/codec_utils/RRC/SRS-PeriodicityAndOffset.c new file mode 100644 index 000000000..f78e63519 --- /dev/null +++ b/src/codec_utils/RRC/SRS-PeriodicityAndOffset.c @@ -0,0 +1,743 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-PeriodicityAndOffset.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_sl2_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl4_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl5_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl8_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl10_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl16_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl20_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl32_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl40_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl64_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl80_constr_13 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl160_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl320_constr_15 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl640_constr_16 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl1280_constr_17 CC_NOTUSED = { + { 2, 1 } /* (0..1279) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl2560_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..2559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_SRS_PeriodicityAndOffset_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_SRS_PeriodicityAndOffset_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 SRS_PeriodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl2_constr_3, &asn_PER_memb_sl2_constr_3, memb_sl2_constraint_1 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl4_constr_4, &asn_PER_memb_sl4_constr_4, memb_sl4_constraint_1 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl5_constr_5, &asn_PER_memb_sl5_constr_5, memb_sl5_constraint_1 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl8_constr_6, &asn_PER_memb_sl8_constr_6, memb_sl8_constraint_1 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl10_constr_7, &asn_PER_memb_sl10_constr_7, memb_sl10_constraint_1 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl16_constr_8, &asn_PER_memb_sl16_constr_8, memb_sl16_constraint_1 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl20_constr_9, &asn_PER_memb_sl20_constr_9, memb_sl20_constraint_1 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl32), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl32_constr_10, &asn_PER_memb_sl32_constr_10, memb_sl32_constraint_1 }, + 0, 0, /* No default value */ + "sl32" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl40_constr_11, &asn_PER_memb_sl40_constr_11, memb_sl40_constraint_1 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl64), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl64_constr_12, &asn_PER_memb_sl64_constr_12, memb_sl64_constraint_1 }, + 0, 0, /* No default value */ + "sl64" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl80_constr_13, &asn_PER_memb_sl80_constr_13, memb_sl80_constraint_1 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl160_constr_14, &asn_PER_memb_sl160_constr_14, memb_sl160_constraint_1 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl320_constr_15, &asn_PER_memb_sl320_constr_15, memb_sl320_constraint_1 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl640_constr_16, &asn_PER_memb_sl640_constr_16, memb_sl640_constraint_1 }, + 0, 0, /* No default value */ + "sl640" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl1280), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl1280_constr_17, &asn_PER_memb_sl1280_constr_17, memb_sl1280_constraint_1 }, + 0, 0, /* No default value */ + "sl1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_PeriodicityAndOffset, choice.sl2560), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl2560_constr_18, &asn_PER_memb_sl2560_constr_18, memb_sl2560_constraint_1 }, + 0, 0, /* No default value */ + "sl2560" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_PeriodicityAndOffset_specs_1 = { + sizeof(struct SRS_PeriodicityAndOffset), + offsetof(struct SRS_PeriodicityAndOffset, _asn_ctx), + offsetof(struct SRS_PeriodicityAndOffset, present), + sizeof(((struct SRS_PeriodicityAndOffset *)0)->present), + asn_MAP_SRS_PeriodicityAndOffset_tag2el_1, + 17, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_SRS_PeriodicityAndOffset_constr_1, &asn_PER_type_SRS_PeriodicityAndOffset_constr_1, CHOICE_constraint }, + asn_MBR_SRS_PeriodicityAndOffset_1, + 17, /* Elements count */ + &asn_SPC_SRS_PeriodicityAndOffset_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-PeriodicityAndOffset.h b/src/codec_utils/RRC/SRS-PeriodicityAndOffset.h new file mode 100644 index 000000000..438244579 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_PeriodicityAndOffset_H_ +#define _SRS_PeriodicityAndOffset_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_PeriodicityAndOffset_PR { + SRS_PeriodicityAndOffset_PR_NOTHING, /* No components present */ + SRS_PeriodicityAndOffset_PR_sl1, + SRS_PeriodicityAndOffset_PR_sl2, + SRS_PeriodicityAndOffset_PR_sl4, + SRS_PeriodicityAndOffset_PR_sl5, + SRS_PeriodicityAndOffset_PR_sl8, + SRS_PeriodicityAndOffset_PR_sl10, + SRS_PeriodicityAndOffset_PR_sl16, + SRS_PeriodicityAndOffset_PR_sl20, + SRS_PeriodicityAndOffset_PR_sl32, + SRS_PeriodicityAndOffset_PR_sl40, + SRS_PeriodicityAndOffset_PR_sl64, + SRS_PeriodicityAndOffset_PR_sl80, + SRS_PeriodicityAndOffset_PR_sl160, + SRS_PeriodicityAndOffset_PR_sl320, + SRS_PeriodicityAndOffset_PR_sl640, + SRS_PeriodicityAndOffset_PR_sl1280, + SRS_PeriodicityAndOffset_PR_sl2560 +} SRS_PeriodicityAndOffset_PR; + +/* SRS-PeriodicityAndOffset */ +typedef struct SRS_PeriodicityAndOffset { + SRS_PeriodicityAndOffset_PR present; + union 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; +} SRS_PeriodicityAndOffset_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_PeriodicityAndOffset; +extern asn_CHOICE_specifics_t asn_SPC_SRS_PeriodicityAndOffset_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_PeriodicityAndOffset_1[17]; +extern asn_per_constraints_t asn_PER_type_SRS_PeriodicityAndOffset_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_PeriodicityAndOffset_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-Resource.c b/src/codec_utils/RRC/SRS-Resource.c new file mode 100644 index 000000000..14a3c32c0 --- /dev/null +++ b/src/codec_utils/RRC/SRS-Resource.c @@ -0,0 +1,1249 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-Resource.h" + +#include "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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_nrofSRS_Ports_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ptrs_PortIndex_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_combOffset_n2_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_cyclicShift_n2_constr_13 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_combOffset_n4_constr_15 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_cyclicShift_n4_constr_16 CC_NOTUSED = { + { 1, 1 } /* (0..11) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_transmissionComb_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_nrofSymbols_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_repetitionFactor_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_startPosition_constr_18 CC_NOTUSED = { + { 1, 1 } /* (0..5) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_c_SRS_constr_30 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_b_SRS_constr_31 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_b_hop_constr_32 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_groupOrSequenceHopping_constr_33 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_resourceType_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_freqDomainPosition_constr_27 CC_NOTUSED = { + { 1, 1 } /* (0..67) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_freqDomainShift_constr_28 CC_NOTUSED = { + { 2, 1 } /* (0..268) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sequenceId_constr_46 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_nrofSRS_Ports_value2enum_3[] = { + { 0, 5, "port1" }, + { 1, 6, "ports2" }, + { 2, 6, "ports4" } +}; +static const unsigned int asn_MAP_nrofSRS_Ports_enum2value_3[] = { + 0, /* port1(0) */ + 1, /* ports2(1) */ + 2 /* ports4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nrofSRS_Ports_specs_3 = { + asn_MAP_nrofSRS_Ports_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofSRS_Ports_3 = { + "nrofSRS-Ports", + "nrofSRS-Ports", + &asn_OP_NativeEnumerated, + asn_DEF_nrofSRS_Ports_tags_3, + sizeof(asn_DEF_nrofSRS_Ports_tags_3) + /sizeof(asn_DEF_nrofSRS_Ports_tags_3[0]) - 1, /* 1 */ + asn_DEF_nrofSRS_Ports_tags_3, /* Same as above */ + sizeof(asn_DEF_nrofSRS_Ports_tags_3) + /sizeof(asn_DEF_nrofSRS_Ports_tags_3[0]), /* 2 */ + { &asn_OER_type_nrofSRS_Ports_constr_3, &asn_PER_type_nrofSRS_Ports_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofSRS_Ports_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_ptrs_PortIndex_value2enum_7[] = { + { 0, 2, "n0" }, + { 1, 2, "n1" } +}; +static const unsigned int asn_MAP_ptrs_PortIndex_enum2value_7[] = { + 0, /* n0(0) */ + 1 /* n1(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_ptrs_PortIndex_specs_7 = { + asn_MAP_ptrs_PortIndex_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ptrs_PortIndex_7 = { + "ptrs-PortIndex", + "ptrs-PortIndex", + &asn_OP_NativeEnumerated, + asn_DEF_ptrs_PortIndex_tags_7, + sizeof(asn_DEF_ptrs_PortIndex_tags_7) + /sizeof(asn_DEF_ptrs_PortIndex_tags_7[0]) - 1, /* 1 */ + asn_DEF_ptrs_PortIndex_tags_7, /* Same as above */ + sizeof(asn_DEF_ptrs_PortIndex_tags_7) + /sizeof(asn_DEF_ptrs_PortIndex_tags_7[0]), /* 2 */ + { &asn_OER_type_ptrs_PortIndex_constr_7, &asn_PER_type_ptrs_PortIndex_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ptrs_PortIndex_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_n2_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__transmissionComb__n2, combOffset_n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_combOffset_n2_constr_12, &asn_PER_memb_combOffset_n2_constr_12, memb_combOffset_n2_constraint_11 }, + 0, 0, /* No default value */ + "combOffset-n2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__transmissionComb__n2, cyclicShift_n2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cyclicShift_n2_constr_13, &asn_PER_memb_cyclicShift_n2_constr_13, memb_cyclicShift_n2_constraint_11 }, + 0, 0, /* No default value */ + "cyclicShift-n2" + }, +}; +static const ber_tlv_tag_t asn_DEF_n2_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_n2_specs_11 = { + sizeof(struct SRS_Resource__transmissionComb__n2), + offsetof(struct SRS_Resource__transmissionComb__n2, _asn_ctx), + asn_MAP_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_n2_11 = { + "n2", + "n2", + &asn_OP_SEQUENCE, + asn_DEF_n2_tags_11, + sizeof(asn_DEF_n2_tags_11) + /sizeof(asn_DEF_n2_tags_11[0]) - 1, /* 1 */ + asn_DEF_n2_tags_11, /* Same as above */ + sizeof(asn_DEF_n2_tags_11) + /sizeof(asn_DEF_n2_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_n2_11, + 2, /* Elements count */ + &asn_SPC_n2_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_n4_14[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__transmissionComb__n4, combOffset_n4), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_combOffset_n4_constr_15, &asn_PER_memb_combOffset_n4_constr_15, memb_combOffset_n4_constraint_14 }, + 0, 0, /* No default value */ + "combOffset-n4" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__transmissionComb__n4, cyclicShift_n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_cyclicShift_n4_constr_16, &asn_PER_memb_cyclicShift_n4_constr_16, memb_cyclicShift_n4_constraint_14 }, + 0, 0, /* No default value */ + "cyclicShift-n4" + }, +}; +static const ber_tlv_tag_t asn_DEF_n4_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_n4_specs_14 = { + sizeof(struct SRS_Resource__transmissionComb__n4), + offsetof(struct SRS_Resource__transmissionComb__n4, _asn_ctx), + asn_MAP_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_n4_14 = { + "n4", + "n4", + &asn_OP_SEQUENCE, + asn_DEF_n4_tags_14, + sizeof(asn_DEF_n4_tags_14) + /sizeof(asn_DEF_n4_tags_14[0]) - 1, /* 1 */ + asn_DEF_n4_tags_14, /* Same as above */ + sizeof(asn_DEF_n4_tags_14) + /sizeof(asn_DEF_n4_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_n4_14, + 2, /* Elements count */ + &asn_SPC_n4_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_transmissionComb_10[] = { + { ATF_POINTER, 0, offsetof(struct SRS_Resource__transmissionComb, choice.n2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_n2_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n2" + }, + { ATF_POINTER, 0, offsetof(struct SRS_Resource__transmissionComb, choice.n4), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_n4_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n4" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_transmissionComb_specs_10 = { + sizeof(struct SRS_Resource__transmissionComb), + offsetof(struct SRS_Resource__transmissionComb, _asn_ctx), + offsetof(struct SRS_Resource__transmissionComb, present), + sizeof(((struct SRS_Resource__transmissionComb *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_transmissionComb_constr_10, &asn_PER_type_transmissionComb_constr_10, CHOICE_constraint }, + asn_MBR_transmissionComb_10, + 2, /* Elements count */ + &asn_SPC_transmissionComb_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_nrofSymbols_value2enum_19[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_nrofSymbols_enum2value_19[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_nrofSymbols_specs_19 = { + asn_MAP_nrofSymbols_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_nrofSymbols_19 = { + "nrofSymbols", + "nrofSymbols", + &asn_OP_NativeEnumerated, + asn_DEF_nrofSymbols_tags_19, + sizeof(asn_DEF_nrofSymbols_tags_19) + /sizeof(asn_DEF_nrofSymbols_tags_19[0]) - 1, /* 1 */ + asn_DEF_nrofSymbols_tags_19, /* Same as above */ + sizeof(asn_DEF_nrofSymbols_tags_19) + /sizeof(asn_DEF_nrofSymbols_tags_19[0]), /* 2 */ + { &asn_OER_type_nrofSymbols_constr_19, &asn_PER_type_nrofSymbols_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_nrofSymbols_specs_19 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_repetitionFactor_value2enum_23[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_repetitionFactor_enum2value_23[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_repetitionFactor_specs_23 = { + asn_MAP_repetitionFactor_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_repetitionFactor_23 = { + "repetitionFactor", + "repetitionFactor", + &asn_OP_NativeEnumerated, + asn_DEF_repetitionFactor_tags_23, + sizeof(asn_DEF_repetitionFactor_tags_23) + /sizeof(asn_DEF_repetitionFactor_tags_23[0]) - 1, /* 1 */ + asn_DEF_repetitionFactor_tags_23, /* Same as above */ + sizeof(asn_DEF_repetitionFactor_tags_23) + /sizeof(asn_DEF_repetitionFactor_tags_23[0]), /* 2 */ + { &asn_OER_type_repetitionFactor_constr_23, &asn_PER_type_repetitionFactor_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_repetitionFactor_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceMapping_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__resourceMapping, startPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startPosition_constr_18, &asn_PER_memb_startPosition_constr_18, memb_startPosition_constraint_17 }, + 0, 0, /* No default value */ + "startPosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__resourceMapping, nrofSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofSymbols_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__resourceMapping, repetitionFactor), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_repetitionFactor_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "repetitionFactor" + }, +}; +static const ber_tlv_tag_t asn_DEF_resourceMapping_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_resourceMapping_specs_17 = { + sizeof(struct SRS_Resource__resourceMapping), + offsetof(struct SRS_Resource__resourceMapping, _asn_ctx), + asn_MAP_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_resourceMapping_17 = { + "resourceMapping", + "resourceMapping", + &asn_OP_SEQUENCE, + asn_DEF_resourceMapping_tags_17, + sizeof(asn_DEF_resourceMapping_tags_17) + /sizeof(asn_DEF_resourceMapping_tags_17[0]) - 1, /* 1 */ + asn_DEF_resourceMapping_tags_17, /* Same as above */ + sizeof(asn_DEF_resourceMapping_tags_17) + /sizeof(asn_DEF_resourceMapping_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_resourceMapping_17, + 3, /* Elements count */ + &asn_SPC_resourceMapping_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_freqHopping_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__freqHopping, c_SRS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_c_SRS_constr_30, &asn_PER_memb_c_SRS_constr_30, memb_c_SRS_constraint_29 }, + 0, 0, /* No default value */ + "c-SRS" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__freqHopping, b_SRS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_b_SRS_constr_31, &asn_PER_memb_b_SRS_constr_31, memb_b_SRS_constraint_29 }, + 0, 0, /* No default value */ + "b-SRS" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__freqHopping, b_hop), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_b_hop_constr_32, &asn_PER_memb_b_hop_constr_32, memb_b_hop_constraint_29 }, + 0, 0, /* No default value */ + "b-hop" + }, +}; +static const ber_tlv_tag_t asn_DEF_freqHopping_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_freqHopping_specs_29 = { + sizeof(struct SRS_Resource__freqHopping), + offsetof(struct SRS_Resource__freqHopping, _asn_ctx), + asn_MAP_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_freqHopping_29 = { + "freqHopping", + "freqHopping", + &asn_OP_SEQUENCE, + asn_DEF_freqHopping_tags_29, + sizeof(asn_DEF_freqHopping_tags_29) + /sizeof(asn_DEF_freqHopping_tags_29[0]) - 1, /* 1 */ + asn_DEF_freqHopping_tags_29, /* Same as above */ + sizeof(asn_DEF_freqHopping_tags_29) + /sizeof(asn_DEF_freqHopping_tags_29[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_freqHopping_29, + 3, /* Elements count */ + &asn_SPC_freqHopping_specs_29 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_groupOrSequenceHopping_value2enum_33[] = { + { 0, 7, "neither" }, + { 1, 12, "groupHopping" }, + { 2, 15, "sequenceHopping" } +}; +static const unsigned int asn_MAP_groupOrSequenceHopping_enum2value_33[] = { + 1, /* groupHopping(1) */ + 0, /* neither(0) */ + 2 /* sequenceHopping(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_groupOrSequenceHopping_specs_33 = { + asn_MAP_groupOrSequenceHopping_value2enum_33, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_groupOrSequenceHopping_33 = { + "groupOrSequenceHopping", + "groupOrSequenceHopping", + &asn_OP_NativeEnumerated, + asn_DEF_groupOrSequenceHopping_tags_33, + sizeof(asn_DEF_groupOrSequenceHopping_tags_33) + /sizeof(asn_DEF_groupOrSequenceHopping_tags_33[0]) - 1, /* 1 */ + asn_DEF_groupOrSequenceHopping_tags_33, /* Same as above */ + sizeof(asn_DEF_groupOrSequenceHopping_tags_33) + /sizeof(asn_DEF_groupOrSequenceHopping_tags_33[0]), /* 2 */ + { &asn_OER_type_groupOrSequenceHopping_constr_33, &asn_PER_type_groupOrSequenceHopping_constr_33, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_groupOrSequenceHopping_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_aperiodic_tags_38[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_aperiodic_specs_38 = { + sizeof(struct SRS_Resource__resourceType__aperiodic), + offsetof(struct SRS_Resource__resourceType__aperiodic, _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_aperiodic_38 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_aperiodic_tags_38, + sizeof(asn_DEF_aperiodic_tags_38) + /sizeof(asn_DEF_aperiodic_tags_38[0]) - 1, /* 1 */ + asn_DEF_aperiodic_tags_38, /* Same as above */ + sizeof(asn_DEF_aperiodic_tags_38) + /sizeof(asn_DEF_aperiodic_tags_38[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_aperiodic_specs_38 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semi_persistent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__resourceType__semi_persistent, periodicityAndOffset_sp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SRS_PeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset-sp" + }, +}; +static const ber_tlv_tag_t asn_DEF_semi_persistent_tags_40[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_semi_persistent_tag2el_40[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* periodicityAndOffset-sp */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_semi_persistent_specs_40 = { + sizeof(struct SRS_Resource__resourceType__semi_persistent), + offsetof(struct SRS_Resource__resourceType__semi_persistent, _asn_ctx), + asn_MAP_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_semi_persistent_40 = { + "semi-persistent", + "semi-persistent", + &asn_OP_SEQUENCE, + asn_DEF_semi_persistent_tags_40, + sizeof(asn_DEF_semi_persistent_tags_40) + /sizeof(asn_DEF_semi_persistent_tags_40[0]) - 1, /* 1 */ + asn_DEF_semi_persistent_tags_40, /* Same as above */ + sizeof(asn_DEF_semi_persistent_tags_40) + /sizeof(asn_DEF_semi_persistent_tags_40[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_semi_persistent_40, + 1, /* Elements count */ + &asn_SPC_semi_persistent_specs_40 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_periodic_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource__resourceType__periodic, periodicityAndOffset_p), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SRS_PeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset-p" + }, +}; +static const ber_tlv_tag_t asn_DEF_periodic_tags_43[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_periodic_tag2el_43[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* periodicityAndOffset-p */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_periodic_specs_43 = { + sizeof(struct SRS_Resource__resourceType__periodic), + offsetof(struct SRS_Resource__resourceType__periodic, _asn_ctx), + asn_MAP_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_periodic_43 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_periodic_tags_43, + sizeof(asn_DEF_periodic_tags_43) + /sizeof(asn_DEF_periodic_tags_43[0]) - 1, /* 1 */ + asn_DEF_periodic_tags_43, /* Same as above */ + sizeof(asn_DEF_periodic_tags_43) + /sizeof(asn_DEF_periodic_tags_43[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_periodic_43, + 1, /* Elements count */ + &asn_SPC_periodic_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceType_37[] = { + { ATF_POINTER, 0, offsetof(struct SRS_Resource__resourceType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_aperiodic_38, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, + { ATF_POINTER, 0, offsetof(struct SRS_Resource__resourceType, choice.semi_persistent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_semi_persistent_40, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semi-persistent" + }, + { ATF_POINTER, 0, offsetof(struct SRS_Resource__resourceType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_periodic_43, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_resourceType_specs_37 = { + sizeof(struct SRS_Resource__resourceType), + offsetof(struct SRS_Resource__resourceType, _asn_ctx), + offsetof(struct SRS_Resource__resourceType, present), + sizeof(((struct SRS_Resource__resourceType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_resourceType_constr_37, &asn_PER_type_resourceType_constr_37, CHOICE_constraint }, + asn_MBR_resourceType_37, + 3, /* Elements count */ + &asn_SPC_resourceType_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, srs_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, nrofSRS_Ports), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_nrofSRS_Ports_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofSRS-Ports" + }, + { ATF_POINTER, 1, offsetof(struct SRS_Resource, ptrs_PortIndex), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ptrs_PortIndex_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ptrs-PortIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, transmissionComb), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_transmissionComb_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transmissionComb" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_resourceMapping_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, freqDomainPosition), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_freqDomainPosition_constr_27, &asn_PER_memb_freqDomainPosition_constr_27, memb_freqDomainPosition_constraint_1 }, + 0, 0, /* No default value */ + "freqDomainPosition" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, freqDomainShift), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_freqDomainShift_constr_28, &asn_PER_memb_freqDomainShift_constr_28, memb_freqDomainShift_constraint_1 }, + 0, 0, /* No default value */ + "freqDomainShift" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, freqHopping), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_freqHopping_29, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "freqHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, groupOrSequenceHopping), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_groupOrSequenceHopping_33, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "groupOrSequenceHopping" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, resourceType), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_resourceType_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resource, sequenceId), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sequenceId_constr_46, &asn_PER_memb_sequenceId_constr_46, memb_sequenceId_constraint_1 }, + 0, 0, /* No default value */ + "sequenceId" + }, + { ATF_POINTER, 1, offsetof(struct SRS_Resource, spatialRelationInfo), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_SpatialRelationInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spatialRelationInfo" + }, +}; +static const int asn_MAP_SRS_Resource_oms_1[] = { 2, 11 }; +static const ber_tlv_tag_t asn_DEF_SRS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_Resource_specs_1 = { + sizeof(struct SRS_Resource), + offsetof(struct SRS_Resource, _asn_ctx), + asn_MAP_SRS_Resource_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_SRS_Resource_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 12, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_Resource = { + "SRS-Resource", + "SRS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_SRS_Resource_tags_1, + sizeof(asn_DEF_SRS_Resource_tags_1) + /sizeof(asn_DEF_SRS_Resource_tags_1[0]), /* 1 */ + asn_DEF_SRS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_Resource_tags_1) + /sizeof(asn_DEF_SRS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_Resource_1, + 12, /* Elements count */ + &asn_SPC_SRS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-Resource.h b/src/codec_utils/RRC/SRS-Resource.h new file mode 100644 index 000000000..d2aae6be4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_Resource_H_ +#define _SRS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "SRS-ResourceId.h" +#include +#include +#include +#include +#include "SRS-PeriodicityAndOffset.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_Resource__nrofSRS_Ports { + SRS_Resource__nrofSRS_Ports_port1 = 0, + SRS_Resource__nrofSRS_Ports_ports2 = 1, + SRS_Resource__nrofSRS_Ports_ports4 = 2 +} e_SRS_Resource__nrofSRS_Ports; +typedef enum SRS_Resource__ptrs_PortIndex { + SRS_Resource__ptrs_PortIndex_n0 = 0, + SRS_Resource__ptrs_PortIndex_n1 = 1 +} e_SRS_Resource__ptrs_PortIndex; +typedef enum SRS_Resource__transmissionComb_PR { + SRS_Resource__transmissionComb_PR_NOTHING, /* No components present */ + SRS_Resource__transmissionComb_PR_n2, + SRS_Resource__transmissionComb_PR_n4 +} SRS_Resource__transmissionComb_PR; +typedef enum SRS_Resource__resourceMapping__nrofSymbols { + SRS_Resource__resourceMapping__nrofSymbols_n1 = 0, + SRS_Resource__resourceMapping__nrofSymbols_n2 = 1, + SRS_Resource__resourceMapping__nrofSymbols_n4 = 2 +} e_SRS_Resource__resourceMapping__nrofSymbols; +typedef enum SRS_Resource__resourceMapping__repetitionFactor { + SRS_Resource__resourceMapping__repetitionFactor_n1 = 0, + SRS_Resource__resourceMapping__repetitionFactor_n2 = 1, + SRS_Resource__resourceMapping__repetitionFactor_n4 = 2 +} e_SRS_Resource__resourceMapping__repetitionFactor; +typedef enum SRS_Resource__groupOrSequenceHopping { + SRS_Resource__groupOrSequenceHopping_neither = 0, + SRS_Resource__groupOrSequenceHopping_groupHopping = 1, + SRS_Resource__groupOrSequenceHopping_sequenceHopping = 2 +} e_SRS_Resource__groupOrSequenceHopping; +typedef enum SRS_Resource__resourceType_PR { + SRS_Resource__resourceType_PR_NOTHING, /* No components present */ + SRS_Resource__resourceType_PR_aperiodic, + SRS_Resource__resourceType_PR_semi_persistent, + SRS_Resource__resourceType_PR_periodic +} SRS_Resource__resourceType_PR; + +/* Forward declarations */ +struct SRS_SpatialRelationInfo; + +/* SRS-Resource */ +typedef struct SRS_Resource { + SRS_ResourceId_t srs_ResourceId; + long nrofSRS_Ports; + long *ptrs_PortIndex; /* OPTIONAL */ + struct SRS_Resource__transmissionComb { + SRS_Resource__transmissionComb_PR present; + union SRS_Resource__transmissionComb_u { + struct SRS_Resource__transmissionComb__n2 { + long combOffset_n2; + long cyclicShift_n2; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *n2; + struct 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 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 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 SRS_Resource__resourceType { + SRS_Resource__resourceType_PR present; + union SRS_Resource__resourceType_u { + struct 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 SRS_Resource__resourceType__semi_persistent { + 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 SRS_Resource__resourceType__periodic { + 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 SRS_SpatialRelationInfo *spatialRelationInfo; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRS_Resource_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofSRS_Ports_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ptrs_PortIndex_7; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_nrofSymbols_19; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_repetitionFactor_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_groupOrSequenceHopping_33; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_Resource_1[12]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-ResourceId.c b/src/codec_utils/RRC/SRS-ResourceId.c new file mode 100644 index 000000000..97232847a --- /dev/null +++ b/src/codec_utils/RRC/SRS-ResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-ResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SRS_ResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SRS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SRS_ResourceId = { + "SRS-ResourceId", + "SRS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_SRS_ResourceId_tags_1, + sizeof(asn_DEF_SRS_ResourceId_tags_1) + /sizeof(asn_DEF_SRS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_SRS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_ResourceId_tags_1) + /sizeof(asn_DEF_SRS_ResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_SRS_ResourceId_constr_1, &asn_PER_type_SRS_ResourceId_constr_1, SRS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SRS-ResourceId.h b/src/codec_utils/RRC/SRS-ResourceId.h new file mode 100644 index 000000000..db4e5a4b4 --- /dev/null +++ b/src/codec_utils/RRC/SRS-ResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_ResourceId_H_ +#define _SRS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRS-ResourceId */ +typedef long SRS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SRS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SRS_ResourceId; +asn_struct_free_f SRS_ResourceId_free; +asn_struct_print_f SRS_ResourceId_print; +asn_constr_check_f SRS_ResourceId_constraint; +ber_type_decoder_f SRS_ResourceId_decode_ber; +der_type_encoder_f SRS_ResourceId_encode_der; +xer_type_decoder_f SRS_ResourceId_decode_xer; +xer_type_encoder_f SRS_ResourceId_encode_xer; +oer_type_decoder_f SRS_ResourceId_decode_oer; +oer_type_encoder_f SRS_ResourceId_encode_oer; +per_type_decoder_f SRS_ResourceId_decode_uper; +per_type_encoder_f SRS_ResourceId_encode_uper; +per_type_decoder_f SRS_ResourceId_decode_aper; +per_type_encoder_f SRS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_ResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-ResourceSet.c b/src/codec_utils/RRC/SRS-ResourceSet.c new file mode 100644 index 000000000..d4e6798bf --- /dev/null +++ b/src/codec_utils/RRC/SRS-ResourceSet.c @@ -0,0 +1,848 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_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_oer_constraints_t asn_OER_type_srs_ResourceIdList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_13 CC_NOTUSED = { + { 1, 1 } /* (1..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_aperiodicSRS_ResourceTriggerList_v1530_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_aperiodicSRS_ResourceTriggerList_v1530_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..2)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_aperiodicSRS_ResourceTrigger_constr_7 CC_NOTUSED = { + { 1, 1 } /* (1..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slotOffset_constr_9 CC_NOTUSED = { + { 1, 1 } /* (1..32) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_resourceType_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_usage_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pathlossReferenceRS_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_srs_PowerControlAdjustmentStates_constr_30 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_srs_ResourceIdList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_constr_26 CC_NOTUSED = { + { 2, 0 } /* (-202..24) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_srs_ResourceIdList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_ResourceIdList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_srs_ResourceIdList_specs_3 = { + sizeof(struct SRS_ResourceSet__srs_ResourceIdList), + offsetof(struct SRS_ResourceSet__srs_ResourceIdList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_srs_ResourceIdList_3 = { + "srs-ResourceIdList", + "srs-ResourceIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_ResourceIdList_tags_3, + sizeof(asn_DEF_srs_ResourceIdList_tags_3) + /sizeof(asn_DEF_srs_ResourceIdList_tags_3[0]) - 1, /* 1 */ + asn_DEF_srs_ResourceIdList_tags_3, /* Same as above */ + sizeof(asn_DEF_srs_ResourceIdList_tags_3) + /sizeof(asn_DEF_srs_ResourceIdList_tags_3[0]), /* 2 */ + { &asn_OER_type_srs_ResourceIdList_constr_3, &asn_PER_type_srs_ResourceIdList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_srs_ResourceIdList_3, + 1, /* Single element */ + &asn_SPC_srs_ResourceIdList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodicSRS_ResourceTriggerList_v1530_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_13, &asn_PER_memb_Member_constr_13, memb_NativeInteger_constraint_12 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_aperiodicSRS_ResourceTriggerList_v1530_specs_12 = { + sizeof(struct SRS_ResourceSet__resourceType__aperiodic__ext1__aperiodicSRS_ResourceTriggerList_v1530), + offsetof(struct 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_aperiodicSRS_ResourceTriggerList_v1530_12 = { + "aperiodicSRS-ResourceTriggerList-v1530", + "aperiodicSRS-ResourceTriggerList-v1530", + &asn_OP_SEQUENCE_OF, + asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12, + sizeof(asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12) + /sizeof(asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12[0]) - 1, /* 1 */ + asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12, /* Same as above */ + sizeof(asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12) + /sizeof(asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_tags_12[0]), /* 2 */ + { &asn_OER_type_aperiodicSRS_ResourceTriggerList_v1530_constr_12, &asn_PER_type_aperiodicSRS_ResourceTriggerList_v1530_constr_12, SEQUENCE_OF_constraint }, + asn_MBR_aperiodicSRS_ResourceTriggerList_v1530_12, + 1, /* Single element */ + &asn_SPC_aperiodicSRS_ResourceTriggerList_v1530_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_11[] = { + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet__resourceType__aperiodic__ext1, aperiodicSRS_ResourceTriggerList_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_aperiodicSRS_ResourceTriggerList_v1530_12, + 0, + { &asn_OER_memb_aperiodicSRS_ResourceTriggerList_v1530_constr_12, &asn_PER_memb_aperiodicSRS_ResourceTriggerList_v1530_constr_12, memb_aperiodicSRS_ResourceTriggerList_v1530_constraint_11 }, + 0, 0, /* No default value */ + "aperiodicSRS-ResourceTriggerList-v1530" + }, +}; +static const int asn_MAP_ext1_oms_11[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_11[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* aperiodicSRS-ResourceTriggerList-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_11 = { + sizeof(struct SRS_ResourceSet__resourceType__aperiodic__ext1), + offsetof(struct SRS_ResourceSet__resourceType__aperiodic__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_11, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_11 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_11, + sizeof(asn_DEF_ext1_tags_11) + /sizeof(asn_DEF_ext1_tags_11[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_11, /* Same as above */ + sizeof(asn_DEF_ext1_tags_11) + /sizeof(asn_DEF_ext1_tags_11[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_11, + 1, /* Elements count */ + &asn_SPC_ext1_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_aperiodic_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet__resourceType__aperiodic, aperiodicSRS_ResourceTrigger), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_aperiodicSRS_ResourceTrigger_constr_7, &asn_PER_memb_aperiodicSRS_ResourceTrigger_constr_7, memb_aperiodicSRS_ResourceTrigger_constraint_6 }, + 0, 0, /* No default value */ + "aperiodicSRS-ResourceTrigger" + }, + { ATF_POINTER, 3, offsetof(struct SRS_ResourceSet__resourceType__aperiodic, csi_RS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS" + }, + { ATF_POINTER, 2, offsetof(struct SRS_ResourceSet__resourceType__aperiodic, slotOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_slotOffset_constr_9, &asn_PER_memb_slotOffset_constr_9, memb_slotOffset_constraint_6 }, + 0, 0, /* No default value */ + "slotOffset" + }, + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet__resourceType__aperiodic, ext1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_ext1_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_aperiodic_oms_6[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_aperiodic_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_aperiodic_specs_6 = { + sizeof(struct SRS_ResourceSet__resourceType__aperiodic), + offsetof(struct SRS_ResourceSet__resourceType__aperiodic, _asn_ctx), + asn_MAP_aperiodic_tag2el_6, + 4, /* Count of tags in the map */ + asn_MAP_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_aperiodic_6 = { + "aperiodic", + "aperiodic", + &asn_OP_SEQUENCE, + asn_DEF_aperiodic_tags_6, + sizeof(asn_DEF_aperiodic_tags_6) + /sizeof(asn_DEF_aperiodic_tags_6[0]) - 1, /* 1 */ + asn_DEF_aperiodic_tags_6, /* Same as above */ + sizeof(asn_DEF_aperiodic_tags_6) + /sizeof(asn_DEF_aperiodic_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_aperiodic_6, + 4, /* Elements count */ + &asn_SPC_aperiodic_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_semi_persistent_14[] = { + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet__resourceType__semi_persistent, associatedCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedCSI-RS" + }, +}; +static const int asn_MAP_semi_persistent_oms_14[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_semi_persistent_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_semi_persistent_tag2el_14[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedCSI-RS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_semi_persistent_specs_14 = { + sizeof(struct SRS_ResourceSet__resourceType__semi_persistent), + offsetof(struct SRS_ResourceSet__resourceType__semi_persistent, _asn_ctx), + asn_MAP_semi_persistent_tag2el_14, + 1, /* Count of tags in the map */ + asn_MAP_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_semi_persistent_14 = { + "semi-persistent", + "semi-persistent", + &asn_OP_SEQUENCE, + asn_DEF_semi_persistent_tags_14, + sizeof(asn_DEF_semi_persistent_tags_14) + /sizeof(asn_DEF_semi_persistent_tags_14[0]) - 1, /* 1 */ + asn_DEF_semi_persistent_tags_14, /* Same as above */ + sizeof(asn_DEF_semi_persistent_tags_14) + /sizeof(asn_DEF_semi_persistent_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_semi_persistent_14, + 1, /* Elements count */ + &asn_SPC_semi_persistent_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_periodic_17[] = { + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet__resourceType__periodic, associatedCSI_RS), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "associatedCSI-RS" + }, +}; +static const int asn_MAP_periodic_oms_17[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_periodic_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_periodic_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* associatedCSI-RS */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_periodic_specs_17 = { + sizeof(struct SRS_ResourceSet__resourceType__periodic), + offsetof(struct SRS_ResourceSet__resourceType__periodic, _asn_ctx), + asn_MAP_periodic_tag2el_17, + 1, /* Count of tags in the map */ + asn_MAP_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_periodic_17 = { + "periodic", + "periodic", + &asn_OP_SEQUENCE, + asn_DEF_periodic_tags_17, + sizeof(asn_DEF_periodic_tags_17) + /sizeof(asn_DEF_periodic_tags_17[0]) - 1, /* 1 */ + asn_DEF_periodic_tags_17, /* Same as above */ + sizeof(asn_DEF_periodic_tags_17) + /sizeof(asn_DEF_periodic_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_periodic_17, + 1, /* Elements count */ + &asn_SPC_periodic_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_resourceType_5[] = { + { ATF_POINTER, 0, offsetof(struct SRS_ResourceSet__resourceType, choice.aperiodic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_aperiodic_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aperiodic" + }, + { ATF_POINTER, 0, offsetof(struct SRS_ResourceSet__resourceType, choice.semi_persistent), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_semi_persistent_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semi-persistent" + }, + { ATF_POINTER, 0, offsetof(struct SRS_ResourceSet__resourceType, choice.periodic), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_periodic_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_resourceType_specs_5 = { + sizeof(struct SRS_ResourceSet__resourceType), + offsetof(struct SRS_ResourceSet__resourceType, _asn_ctx), + offsetof(struct SRS_ResourceSet__resourceType, present), + sizeof(((struct SRS_ResourceSet__resourceType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_resourceType_constr_5, &asn_PER_type_resourceType_constr_5, CHOICE_constraint }, + asn_MBR_resourceType_5, + 3, /* Elements count */ + &asn_SPC_resourceType_specs_5 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_usage_value2enum_20[] = { + { 0, 14, "beamManagement" }, + { 1, 8, "codebook" }, + { 2, 11, "nonCodebook" }, + { 3, 16, "antennaSwitching" } +}; +static const unsigned int asn_MAP_usage_enum2value_20[] = { + 3, /* antennaSwitching(3) */ + 0, /* beamManagement(0) */ + 1, /* codebook(1) */ + 2 /* nonCodebook(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_usage_specs_20 = { + asn_MAP_usage_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_usage_20 = { + "usage", + "usage", + &asn_OP_NativeEnumerated, + asn_DEF_usage_tags_20, + sizeof(asn_DEF_usage_tags_20) + /sizeof(asn_DEF_usage_tags_20[0]) - 1, /* 1 */ + asn_DEF_usage_tags_20, /* Same as above */ + sizeof(asn_DEF_usage_tags_20) + /sizeof(asn_DEF_usage_tags_20[0]), /* 2 */ + { &asn_OER_type_usage_constr_20, &asn_PER_type_usage_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_usage_specs_20 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pathlossReferenceRS_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet__pathlossReferenceRS, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet__pathlossReferenceRS, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_pathlossReferenceRS_specs_27 = { + sizeof(struct SRS_ResourceSet__pathlossReferenceRS), + offsetof(struct SRS_ResourceSet__pathlossReferenceRS, _asn_ctx), + offsetof(struct SRS_ResourceSet__pathlossReferenceRS, present), + sizeof(((struct SRS_ResourceSet__pathlossReferenceRS *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_pathlossReferenceRS_constr_27, &asn_PER_type_pathlossReferenceRS_constr_27, CHOICE_constraint }, + asn_MBR_pathlossReferenceRS_27, + 2, /* Elements count */ + &asn_SPC_pathlossReferenceRS_specs_27 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_srs_PowerControlAdjustmentStates_value2enum_30[] = { + { 0, 10, "sameAsFci2" }, + { 1, 18, "separateClosedLoop" } +}; +static const unsigned int asn_MAP_srs_PowerControlAdjustmentStates_enum2value_30[] = { + 0, /* sameAsFci2(0) */ + 1 /* separateClosedLoop(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_srs_PowerControlAdjustmentStates_specs_30 = { + asn_MAP_srs_PowerControlAdjustmentStates_value2enum_30, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_srs_PowerControlAdjustmentStates_30 = { + "srs-PowerControlAdjustmentStates", + "srs-PowerControlAdjustmentStates", + &asn_OP_NativeEnumerated, + asn_DEF_srs_PowerControlAdjustmentStates_tags_30, + sizeof(asn_DEF_srs_PowerControlAdjustmentStates_tags_30) + /sizeof(asn_DEF_srs_PowerControlAdjustmentStates_tags_30[0]) - 1, /* 1 */ + asn_DEF_srs_PowerControlAdjustmentStates_tags_30, /* Same as above */ + sizeof(asn_DEF_srs_PowerControlAdjustmentStates_tags_30) + /sizeof(asn_DEF_srs_PowerControlAdjustmentStates_tags_30[0]), /* 2 */ + { &asn_OER_type_srs_PowerControlAdjustmentStates_constr_30, &asn_PER_type_srs_PowerControlAdjustmentStates_constr_30, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_srs_PowerControlAdjustmentStates_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet, srs_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-ResourceSetId" + }, + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet, srs_ResourceIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_srs_ResourceIdList_3, + 0, + { &asn_OER_memb_srs_ResourceIdList_constr_3, &asn_PER_memb_srs_ResourceIdList_constr_3, memb_srs_ResourceIdList_constraint_1 }, + 0, 0, /* No default value */ + "srs-ResourceIdList" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet, resourceType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_resourceType_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_ResourceSet, usage), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_usage_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "usage" + }, + { ATF_POINTER, 4, offsetof(struct SRS_ResourceSet, alpha), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Alpha, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "alpha" + }, + { ATF_POINTER, 3, offsetof(struct SRS_ResourceSet, p0), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_p0_constr_26, &asn_PER_memb_p0_constr_26, memb_p0_constraint_1 }, + 0, 0, /* No default value */ + "p0" + }, + { ATF_POINTER, 2, offsetof(struct SRS_ResourceSet, pathlossReferenceRS), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pathlossReferenceRS_27, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathlossReferenceRS" + }, + { ATF_POINTER, 1, offsetof(struct SRS_ResourceSet, srs_PowerControlAdjustmentStates), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_srs_PowerControlAdjustmentStates_30, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs-PowerControlAdjustmentStates" + }, +}; +static const int asn_MAP_SRS_ResourceSet_oms_1[] = { 1, 4, 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_SRS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_ResourceSet_specs_1 = { + sizeof(struct SRS_ResourceSet), + offsetof(struct SRS_ResourceSet, _asn_ctx), + asn_MAP_SRS_ResourceSet_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_SRS_ResourceSet_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_ResourceSet = { + "SRS-ResourceSet", + "SRS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_SRS_ResourceSet_tags_1, + sizeof(asn_DEF_SRS_ResourceSet_tags_1) + /sizeof(asn_DEF_SRS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_SRS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_ResourceSet_tags_1) + /sizeof(asn_DEF_SRS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_ResourceSet_1, + 8, /* Elements count */ + &asn_SPC_SRS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-ResourceSet.h b/src/codec_utils/RRC/SRS-ResourceSet.h new file mode 100644 index 000000000..378086ff0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_ResourceSet_H_ +#define _SRS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "SRS-ResourceSetId.h" +#include +#include "Alpha.h" +#include +#include "SRS-ResourceId.h" +#include +#include +#include "NZP-CSI-RS-ResourceId.h" +#include +#include +#include "SSB-Index.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_ResourceSet__resourceType_PR { + SRS_ResourceSet__resourceType_PR_NOTHING, /* No components present */ + SRS_ResourceSet__resourceType_PR_aperiodic, + SRS_ResourceSet__resourceType_PR_semi_persistent, + SRS_ResourceSet__resourceType_PR_periodic +} SRS_ResourceSet__resourceType_PR; +typedef enum SRS_ResourceSet__usage { + SRS_ResourceSet__usage_beamManagement = 0, + SRS_ResourceSet__usage_codebook = 1, + SRS_ResourceSet__usage_nonCodebook = 2, + SRS_ResourceSet__usage_antennaSwitching = 3 +} e_SRS_ResourceSet__usage; +typedef enum SRS_ResourceSet__pathlossReferenceRS_PR { + SRS_ResourceSet__pathlossReferenceRS_PR_NOTHING, /* No components present */ + SRS_ResourceSet__pathlossReferenceRS_PR_ssb_Index, + SRS_ResourceSet__pathlossReferenceRS_PR_csi_RS_Index +} SRS_ResourceSet__pathlossReferenceRS_PR; +typedef enum SRS_ResourceSet__srs_PowerControlAdjustmentStates { + SRS_ResourceSet__srs_PowerControlAdjustmentStates_sameAsFci2 = 0, + SRS_ResourceSet__srs_PowerControlAdjustmentStates_separateClosedLoop = 1 +} e_SRS_ResourceSet__srs_PowerControlAdjustmentStates; + +/* SRS-ResourceSet */ +typedef struct SRS_ResourceSet { + SRS_ResourceSetId_t srs_ResourceSetId; + struct SRS_ResourceSet__srs_ResourceIdList { + A_SEQUENCE_OF(SRS_ResourceId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *srs_ResourceIdList; + struct SRS_ResourceSet__resourceType { + SRS_ResourceSet__resourceType_PR present; + union SRS_ResourceSet__resourceType_u { + struct SRS_ResourceSet__resourceType__aperiodic { + long aperiodicSRS_ResourceTrigger; + NZP_CSI_RS_ResourceId_t *csi_RS; /* OPTIONAL */ + long *slotOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct SRS_ResourceSet__resourceType__aperiodic__ext1 { + struct 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 SRS_ResourceSet__resourceType__semi_persistent { + 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 SRS_ResourceSet__resourceType__periodic { + 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; + Alpha_t *alpha; /* OPTIONAL */ + long *p0; /* OPTIONAL */ + struct SRS_ResourceSet__pathlossReferenceRS { + SRS_ResourceSet__pathlossReferenceRS_PR present; + union SRS_ResourceSet__pathlossReferenceRS_u { + SSB_Index_t ssb_Index; + 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; +} SRS_ResourceSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_usage_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_srs_PowerControlAdjustmentStates_30; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_ResourceSet_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-ResourceSetId.c b/src/codec_utils/RRC/SRS-ResourceSetId.c new file mode 100644 index 000000000..16d3d7f36 --- /dev/null +++ b/src/codec_utils/RRC/SRS-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SRS_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SRS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SRS_ResourceSetId = { + "SRS-ResourceSetId", + "SRS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_SRS_ResourceSetId_tags_1, + sizeof(asn_DEF_SRS_ResourceSetId_tags_1) + /sizeof(asn_DEF_SRS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_SRS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_ResourceSetId_tags_1) + /sizeof(asn_DEF_SRS_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_SRS_ResourceSetId_constr_1, &asn_PER_type_SRS_ResourceSetId_constr_1, SRS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SRS-ResourceSetId.h b/src/codec_utils/RRC/SRS-ResourceSetId.h new file mode 100644 index 000000000..7207f3ec7 --- /dev/null +++ b/src/codec_utils/RRC/SRS-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_ResourceSetId_H_ +#define _SRS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRS-ResourceSetId */ +typedef long SRS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SRS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SRS_ResourceSetId; +asn_struct_free_f SRS_ResourceSetId_free; +asn_struct_print_f SRS_ResourceSetId_print; +asn_constr_check_f SRS_ResourceSetId_constraint; +ber_type_decoder_f SRS_ResourceSetId_decode_ber; +der_type_encoder_f SRS_ResourceSetId_encode_der; +xer_type_decoder_f SRS_ResourceSetId_decode_xer; +xer_type_encoder_f SRS_ResourceSetId_encode_xer; +oer_type_decoder_f SRS_ResourceSetId_decode_oer; +oer_type_encoder_f SRS_ResourceSetId_encode_oer; +per_type_decoder_f SRS_ResourceSetId_decode_uper; +per_type_encoder_f SRS_ResourceSetId_encode_uper; +per_type_decoder_f SRS_ResourceSetId_decode_aper; +per_type_encoder_f SRS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-Resources.c b/src/codec_utils/RRC/SRS-Resources.c new file mode 100644 index 000000000..e5c48e75e --- /dev/null +++ b/src/codec_utils/RRC/SRS-Resources.c @@ -0,0 +1,425 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_maxNumberSP_SRS_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_oer_constraints_t asn_OER_type_maxNumberAperiodicSRS_PerBWP_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberPeriodicSRS_PerBWP_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_maxNumberSemiPersitentSRS_PerBWP_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_maxNumberSemiPersitentSRS_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_oer_constraints_t asn_OER_type_maxNumberSRS_Ports_PerResource_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberAperiodicSRS_PerBWP_PerSlot_constr_8 CC_NOTUSED = { + { 1, 1 } /* (1..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberPeriodicSRS_PerBWP_PerSlot_constr_15 CC_NOTUSED = { + { 1, 1 } /* (1..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberSP_SRS_PerBWP_PerSlot_constr_22 CC_NOTUSED = { + { 1, 1 } /* (1..6) */, + -1}; +static asn_per_constraints_t asn_PER_memb_maxNumberSP_SRS_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_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_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_maxNumberAperiodicSRS_PerBWP_specs_2 = { + asn_MAP_maxNumberAperiodicSRS_PerBWP_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberAperiodicSRS_PerBWP_2 = { + "maxNumberAperiodicSRS-PerBWP", + "maxNumberAperiodicSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2, + sizeof(asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2) + /sizeof(asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2) + /sizeof(asn_DEF_maxNumberAperiodicSRS_PerBWP_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberAperiodicSRS_PerBWP_constr_2, &asn_PER_type_maxNumberAperiodicSRS_PerBWP_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberAperiodicSRS_PerBWP_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_maxNumberPeriodicSRS_PerBWP_specs_9 = { + asn_MAP_maxNumberPeriodicSRS_PerBWP_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberPeriodicSRS_PerBWP_9 = { + "maxNumberPeriodicSRS-PerBWP", + "maxNumberPeriodicSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9, + sizeof(asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9) + /sizeof(asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9[0]) - 1, /* 1 */ + asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9, /* Same as above */ + sizeof(asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9) + /sizeof(asn_DEF_maxNumberPeriodicSRS_PerBWP_tags_9[0]), /* 2 */ + { &asn_OER_type_maxNumberPeriodicSRS_PerBWP_constr_9, &asn_PER_type_maxNumberPeriodicSRS_PerBWP_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberPeriodicSRS_PerBWP_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberSemiPersitentSRS_PerBWP_value2enum_16[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" }, + { 3, 2, "n8" }, + { 4, 3, "n16" } +}; +static const unsigned int asn_MAP_maxNumberSemiPersitentSRS_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_maxNumberSemiPersitentSRS_PerBWP_specs_16 = { + asn_MAP_maxNumberSemiPersitentSRS_PerBWP_value2enum_16, /* "tag" => N; sorted by tag */ + asn_MAP_maxNumberSemiPersitentSRS_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_maxNumberSemiPersitentSRS_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_maxNumberSemiPersitentSRS_PerBWP_16 = { + "maxNumberSemiPersitentSRS-PerBWP", + "maxNumberSemiPersitentSRS-PerBWP", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16, + sizeof(asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16) + /sizeof(asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16[0]) - 1, /* 1 */ + asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16, /* Same as above */ + sizeof(asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16) + /sizeof(asn_DEF_maxNumberSemiPersitentSRS_PerBWP_tags_16[0]), /* 2 */ + { &asn_OER_type_maxNumberSemiPersitentSRS_PerBWP_constr_16, &asn_PER_type_maxNumberSemiPersitentSRS_PerBWP_constr_16, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberSemiPersitentSRS_PerBWP_specs_16 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_maxNumberSRS_Ports_PerResource_value2enum_23[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n4" } +}; +static const unsigned int asn_MAP_maxNumberSRS_Ports_PerResource_enum2value_23[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n4(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNumberSRS_Ports_PerResource_specs_23 = { + asn_MAP_maxNumberSRS_Ports_PerResource_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberSRS_Ports_PerResource_23 = { + "maxNumberSRS-Ports-PerResource", + "maxNumberSRS-Ports-PerResource", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberSRS_Ports_PerResource_tags_23, + sizeof(asn_DEF_maxNumberSRS_Ports_PerResource_tags_23) + /sizeof(asn_DEF_maxNumberSRS_Ports_PerResource_tags_23[0]) - 1, /* 1 */ + asn_DEF_maxNumberSRS_Ports_PerResource_tags_23, /* Same as above */ + sizeof(asn_DEF_maxNumberSRS_Ports_PerResource_tags_23) + /sizeof(asn_DEF_maxNumberSRS_Ports_PerResource_tags_23[0]), /* 2 */ + { &asn_OER_type_maxNumberSRS_Ports_PerResource_constr_23, &asn_PER_type_maxNumberSRS_Ports_PerResource_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberSRS_Ports_PerResource_specs_23 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_Resources_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberAperiodicSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberAperiodicSRS_PerBWP_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberAperiodicSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberAperiodicSRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberAperiodicSRS_PerBWP_PerSlot_constr_8, &asn_PER_memb_maxNumberAperiodicSRS_PerBWP_PerSlot_constr_8, memb_maxNumberAperiodicSRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberAperiodicSRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberPeriodicSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberPeriodicSRS_PerBWP_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberPeriodicSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberPeriodicSRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberPeriodicSRS_PerBWP_PerSlot_constr_15, &asn_PER_memb_maxNumberPeriodicSRS_PerBWP_PerSlot_constr_15, memb_maxNumberPeriodicSRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberPeriodicSRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberSemiPersitentSRS_PerBWP), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberSemiPersitentSRS_PerBWP_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSemiPersitentSRS-PerBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberSP_SRS_PerBWP_PerSlot), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberSP_SRS_PerBWP_PerSlot_constr_22, &asn_PER_memb_maxNumberSP_SRS_PerBWP_PerSlot_constr_22, memb_maxNumberSP_SRS_PerBWP_PerSlot_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberSP-SRS-PerBWP-PerSlot" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_Resources, maxNumberSRS_Ports_PerResource), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberSRS_Ports_PerResource_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberSRS-Ports-PerResource" + }, +}; +static const ber_tlv_tag_t asn_DEF_SRS_Resources_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 }, /* maxNumberSemiPersitentSRS-PerBWP */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* maxNumberSP-SRS-PerBWP-PerSlot */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* maxNumberSRS-Ports-PerResource */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRS_Resources_specs_1 = { + sizeof(struct SRS_Resources), + offsetof(struct SRS_Resources, _asn_ctx), + asn_MAP_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_SRS_Resources = { + "SRS-Resources", + "SRS-Resources", + &asn_OP_SEQUENCE, + asn_DEF_SRS_Resources_tags_1, + sizeof(asn_DEF_SRS_Resources_tags_1) + /sizeof(asn_DEF_SRS_Resources_tags_1[0]), /* 1 */ + asn_DEF_SRS_Resources_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_Resources_tags_1) + /sizeof(asn_DEF_SRS_Resources_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_Resources_1, + 7, /* Elements count */ + &asn_SPC_SRS_Resources_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-Resources.h b/src/codec_utils/RRC/SRS-Resources.h new file mode 100644 index 000000000..e176158f5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_Resources_H_ +#define _SRS_Resources_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_Resources__maxNumberAperiodicSRS_PerBWP { + SRS_Resources__maxNumberAperiodicSRS_PerBWP_n1 = 0, + SRS_Resources__maxNumberAperiodicSRS_PerBWP_n2 = 1, + SRS_Resources__maxNumberAperiodicSRS_PerBWP_n4 = 2, + SRS_Resources__maxNumberAperiodicSRS_PerBWP_n8 = 3, + SRS_Resources__maxNumberAperiodicSRS_PerBWP_n16 = 4 +} e_SRS_Resources__maxNumberAperiodicSRS_PerBWP; +typedef enum SRS_Resources__maxNumberPeriodicSRS_PerBWP { + SRS_Resources__maxNumberPeriodicSRS_PerBWP_n1 = 0, + SRS_Resources__maxNumberPeriodicSRS_PerBWP_n2 = 1, + SRS_Resources__maxNumberPeriodicSRS_PerBWP_n4 = 2, + SRS_Resources__maxNumberPeriodicSRS_PerBWP_n8 = 3, + SRS_Resources__maxNumberPeriodicSRS_PerBWP_n16 = 4 +} e_SRS_Resources__maxNumberPeriodicSRS_PerBWP; +typedef enum SRS_Resources__maxNumberSemiPersitentSRS_PerBWP { + SRS_Resources__maxNumberSemiPersitentSRS_PerBWP_n1 = 0, + SRS_Resources__maxNumberSemiPersitentSRS_PerBWP_n2 = 1, + SRS_Resources__maxNumberSemiPersitentSRS_PerBWP_n4 = 2, + SRS_Resources__maxNumberSemiPersitentSRS_PerBWP_n8 = 3, + SRS_Resources__maxNumberSemiPersitentSRS_PerBWP_n16 = 4 +} e_SRS_Resources__maxNumberSemiPersitentSRS_PerBWP; +typedef enum SRS_Resources__maxNumberSRS_Ports_PerResource { + SRS_Resources__maxNumberSRS_Ports_PerResource_n1 = 0, + SRS_Resources__maxNumberSRS_Ports_PerResource_n2 = 1, + SRS_Resources__maxNumberSRS_Ports_PerResource_n4 = 2 +} e_SRS_Resources__maxNumberSRS_Ports_PerResource; + +/* SRS-Resources */ +typedef struct SRS_Resources { + long maxNumberAperiodicSRS_PerBWP; + long maxNumberAperiodicSRS_PerBWP_PerSlot; + long maxNumberPeriodicSRS_PerBWP; + long maxNumberPeriodicSRS_PerBWP_PerSlot; + long maxNumberSemiPersitentSRS_PerBWP; + long maxNumberSP_SRS_PerBWP_PerSlot; + long maxNumberSRS_Ports_PerResource; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRS_Resources_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberAperiodicSRS_PerBWP_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberPeriodicSRS_PerBWP_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberSemiPersitentSRS_PerBWP_16; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberSRS_Ports_PerResource_23; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_Resources; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_Resources_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_Resources_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_Resources_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-SpatialRelationInfo.c b/src/codec_utils/RRC/SRS-SpatialRelationInfo.c new file mode 100644 index 000000000..5d3122600 --- /dev/null +++ b/src/codec_utils/RRC/SRS-SpatialRelationInfo.c @@ -0,0 +1,182 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-SpatialRelationInfo.h" + +static asn_oer_constraints_t asn_OER_type_referenceSignal_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_srs_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_SpatialRelationInfo__referenceSignal__srs, resourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_SpatialRelationInfo__referenceSignal__srs, uplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkBWP" + }, +}; +static const ber_tlv_tag_t asn_DEF_srs_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_srs_specs_6 = { + sizeof(struct SRS_SpatialRelationInfo__referenceSignal__srs), + offsetof(struct SRS_SpatialRelationInfo__referenceSignal__srs, _asn_ctx), + asn_MAP_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_srs_6 = { + "srs", + "srs", + &asn_OP_SEQUENCE, + asn_DEF_srs_tags_6, + sizeof(asn_DEF_srs_tags_6) + /sizeof(asn_DEF_srs_tags_6[0]) - 1, /* 1 */ + asn_DEF_srs_tags_6, /* Same as above */ + sizeof(asn_DEF_srs_tags_6) + /sizeof(asn_DEF_srs_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_srs_6, + 2, /* Elements count */ + &asn_SPC_srs_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_referenceSignal_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_SpatialRelationInfo__referenceSignal, choice.ssb_Index), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SSB_Index, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-Index" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_SpatialRelationInfo__referenceSignal, choice.csi_RS_Index), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RS-Index" + }, + { ATF_POINTER, 0, offsetof(struct SRS_SpatialRelationInfo__referenceSignal, choice.srs), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_srs_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "srs" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_referenceSignal_specs_3 = { + sizeof(struct SRS_SpatialRelationInfo__referenceSignal), + offsetof(struct SRS_SpatialRelationInfo__referenceSignal, _asn_ctx), + offsetof(struct SRS_SpatialRelationInfo__referenceSignal, present), + sizeof(((struct SRS_SpatialRelationInfo__referenceSignal *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_referenceSignal_constr_3, &asn_PER_type_referenceSignal_constr_3, CHOICE_constraint }, + asn_MBR_referenceSignal_3, + 3, /* Elements count */ + &asn_SPC_referenceSignal_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_SpatialRelationInfo_1[] = { + { ATF_POINTER, 1, offsetof(struct SRS_SpatialRelationInfo, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SRS_SpatialRelationInfo, referenceSignal), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_referenceSignal_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSignal" + }, +}; +static const int asn_MAP_SRS_SpatialRelationInfo_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_SRS_SpatialRelationInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_SpatialRelationInfo_specs_1 = { + sizeof(struct SRS_SpatialRelationInfo), + offsetof(struct SRS_SpatialRelationInfo, _asn_ctx), + asn_MAP_SRS_SpatialRelationInfo_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SRS_SpatialRelationInfo_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_SpatialRelationInfo = { + "SRS-SpatialRelationInfo", + "SRS-SpatialRelationInfo", + &asn_OP_SEQUENCE, + asn_DEF_SRS_SpatialRelationInfo_tags_1, + sizeof(asn_DEF_SRS_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_SRS_SpatialRelationInfo_tags_1[0]), /* 1 */ + asn_DEF_SRS_SpatialRelationInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_SpatialRelationInfo_tags_1) + /sizeof(asn_DEF_SRS_SpatialRelationInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_SpatialRelationInfo_1, + 2, /* Elements count */ + &asn_SPC_SRS_SpatialRelationInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-SpatialRelationInfo.h b/src/codec_utils/RRC/SRS-SpatialRelationInfo.h new file mode 100644 index 000000000..21840c7a7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_SpatialRelationInfo_H_ +#define _SRS_SpatialRelationInfo_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include "SSB-Index.h" +#include "NZP-CSI-RS-ResourceId.h" +#include "SRS-ResourceId.h" +#include "BWP-Id.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_SpatialRelationInfo__referenceSignal_PR { + SRS_SpatialRelationInfo__referenceSignal_PR_NOTHING, /* No components present */ + SRS_SpatialRelationInfo__referenceSignal_PR_ssb_Index, + SRS_SpatialRelationInfo__referenceSignal_PR_csi_RS_Index, + SRS_SpatialRelationInfo__referenceSignal_PR_srs +} SRS_SpatialRelationInfo__referenceSignal_PR; + +/* SRS-SpatialRelationInfo */ +typedef struct SRS_SpatialRelationInfo { + ServCellIndex_t *servingCellId; /* OPTIONAL */ + struct SRS_SpatialRelationInfo__referenceSignal { + SRS_SpatialRelationInfo__referenceSignal_PR present; + union SRS_SpatialRelationInfo__referenceSignal_u { + SSB_Index_t ssb_Index; + NZP_CSI_RS_ResourceId_t csi_RS_Index; + struct SRS_SpatialRelationInfo__referenceSignal__srs { + SRS_ResourceId_t resourceId; + 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; +} SRS_SpatialRelationInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_SpatialRelationInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_SpatialRelationInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_SpatialRelationInfo_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_SpatialRelationInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-TPC-CommandConfig.c b/src/codec_utils/RRC/SRS-TPC-CommandConfig.c new file mode 100644 index 000000000..ba4f5cca9 --- /dev/null +++ b/src/codec_utils/RRC/SRS-TPC-CommandConfig.c @@ -0,0 +1,216 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-TPC-CommandConfig.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_startingBitOfFormat2_3SUL_v1530_constr_6 CC_NOTUSED = { + { 1, 1 } /* (1..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startingBitOfFormat2_3_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..31) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_fieldTypeFormat2_3_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_ext1_5[] = { + { ATF_POINTER, 1, offsetof(struct SRS_TPC_CommandConfig__ext1, startingBitOfFormat2_3SUL_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingBitOfFormat2_3SUL_v1530_constr_6, &asn_PER_memb_startingBitOfFormat2_3SUL_v1530_constr_6, memb_startingBitOfFormat2_3SUL_v1530_constraint_5 }, + 0, 0, /* No default value */ + "startingBitOfFormat2-3SUL-v1530" + }, +}; +static const int asn_MAP_ext1_oms_5[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* startingBitOfFormat2-3SUL-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_5 = { + sizeof(struct SRS_TPC_CommandConfig__ext1), + offsetof(struct SRS_TPC_CommandConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_5, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_5 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_5, + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_5, /* Same as above */ + sizeof(asn_DEF_ext1_tags_5) + /sizeof(asn_DEF_ext1_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_5, + 1, /* Elements count */ + &asn_SPC_ext1_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_TPC_CommandConfig_1[] = { + { ATF_POINTER, 3, offsetof(struct SRS_TPC_CommandConfig, startingBitOfFormat2_3), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_startingBitOfFormat2_3_constr_2, &asn_PER_memb_startingBitOfFormat2_3_constr_2, memb_startingBitOfFormat2_3_constraint_1 }, + 0, 0, /* No default value */ + "startingBitOfFormat2-3" + }, + { ATF_POINTER, 2, offsetof(struct SRS_TPC_CommandConfig, fieldTypeFormat2_3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_fieldTypeFormat2_3_constr_3, &asn_PER_memb_fieldTypeFormat2_3_constr_3, memb_fieldTypeFormat2_3_constraint_1 }, + 0, 0, /* No default value */ + "fieldTypeFormat2-3" + }, + { ATF_POINTER, 1, offsetof(struct SRS_TPC_CommandConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_ext1_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_SRS_TPC_CommandConfig_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SRS_TPC_CommandConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SRS_TPC_CommandConfig_specs_1 = { + sizeof(struct SRS_TPC_CommandConfig), + offsetof(struct SRS_TPC_CommandConfig, _asn_ctx), + asn_MAP_SRS_TPC_CommandConfig_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SRS_TPC_CommandConfig_oms_1, /* Optional members */ + 2, 1, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_TPC_CommandConfig = { + "SRS-TPC-CommandConfig", + "SRS-TPC-CommandConfig", + &asn_OP_SEQUENCE, + asn_DEF_SRS_TPC_CommandConfig_tags_1, + sizeof(asn_DEF_SRS_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_SRS_TPC_CommandConfig_tags_1[0]), /* 1 */ + asn_DEF_SRS_TPC_CommandConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_TPC_CommandConfig_tags_1) + /sizeof(asn_DEF_SRS_TPC_CommandConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_TPC_CommandConfig_1, + 3, /* Elements count */ + &asn_SPC_SRS_TPC_CommandConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-TPC-CommandConfig.h b/src/codec_utils/RRC/SRS-TPC-CommandConfig.h new file mode 100644 index 000000000..9ab517e17 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_TPC_CommandConfig_H_ +#define _SRS_TPC_CommandConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SRS-TPC-CommandConfig */ +typedef struct SRS_TPC_CommandConfig { + long *startingBitOfFormat2_3; /* OPTIONAL */ + long *fieldTypeFormat2_3; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct 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; +} SRS_TPC_CommandConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_TPC_CommandConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_TPC_CommandConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_TPC_CommandConfig_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_TPC_CommandConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-TPC-PDCCH-Config.c b/src/codec_utils/RRC/SRS-TPC-PDCCH-Config.c new file mode 100644 index 000000000..d19a24533 --- /dev/null +++ b/src/codec_utils/RRC/SRS-TPC-PDCCH-Config.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-TPC-PDCCH-Config.h" + +#include "SRS-CC-SetIndex.h" +static int +memb_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_oer_constraints_t asn_OER_type_srs_CC_SetIndexlist_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_srs_CC_SetIndexlist_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_srs_CC_SetIndexlist_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SRS_CC_SetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_srs_CC_SetIndexlist_specs_2 = { + sizeof(struct SRS_TPC_PDCCH_Config__srs_CC_SetIndexlist), + offsetof(struct 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_srs_CC_SetIndexlist_2 = { + "srs-CC-SetIndexlist", + "srs-CC-SetIndexlist", + &asn_OP_SEQUENCE_OF, + asn_DEF_srs_CC_SetIndexlist_tags_2, + sizeof(asn_DEF_srs_CC_SetIndexlist_tags_2) + /sizeof(asn_DEF_srs_CC_SetIndexlist_tags_2[0]) - 1, /* 1 */ + asn_DEF_srs_CC_SetIndexlist_tags_2, /* Same as above */ + sizeof(asn_DEF_srs_CC_SetIndexlist_tags_2) + /sizeof(asn_DEF_srs_CC_SetIndexlist_tags_2[0]), /* 2 */ + { &asn_OER_type_srs_CC_SetIndexlist_constr_2, &asn_PER_type_srs_CC_SetIndexlist_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_srs_CC_SetIndexlist_2, + 1, /* Single element */ + &asn_SPC_srs_CC_SetIndexlist_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_TPC_PDCCH_Config_1[] = { + { ATF_POINTER, 1, offsetof(struct SRS_TPC_PDCCH_Config, srs_CC_SetIndexlist), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_srs_CC_SetIndexlist_2, + 0, + { &asn_OER_memb_srs_CC_SetIndexlist_constr_2, &asn_PER_memb_srs_CC_SetIndexlist_constr_2, memb_srs_CC_SetIndexlist_constraint_1 }, + 0, 0, /* No default value */ + "srs-CC-SetIndexlist" + }, +}; +static const int asn_MAP_SRS_TPC_PDCCH_Config_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_SRS_TPC_PDCCH_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRS_TPC_PDCCH_Config_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* srs-CC-SetIndexlist */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SRS_TPC_PDCCH_Config_specs_1 = { + sizeof(struct SRS_TPC_PDCCH_Config), + offsetof(struct SRS_TPC_PDCCH_Config, _asn_ctx), + asn_MAP_SRS_TPC_PDCCH_Config_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_SRS_TPC_PDCCH_Config_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_TPC_PDCCH_Config = { + "SRS-TPC-PDCCH-Config", + "SRS-TPC-PDCCH-Config", + &asn_OP_SEQUENCE, + asn_DEF_SRS_TPC_PDCCH_Config_tags_1, + sizeof(asn_DEF_SRS_TPC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_SRS_TPC_PDCCH_Config_tags_1[0]), /* 1 */ + asn_DEF_SRS_TPC_PDCCH_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_TPC_PDCCH_Config_tags_1) + /sizeof(asn_DEF_SRS_TPC_PDCCH_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_TPC_PDCCH_Config_1, + 1, /* Elements count */ + &asn_SPC_SRS_TPC_PDCCH_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-TPC-PDCCH-Config.h b/src/codec_utils/RRC/SRS-TPC-PDCCH-Config.h new file mode 100644 index 000000000..9066f2d86 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_TPC_PDCCH_Config_H_ +#define _SRS_TPC_PDCCH_Config_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SRS_CC_SetIndex; + +/* SRS-TPC-PDCCH-Config */ +typedef struct SRS_TPC_PDCCH_Config { + struct SRS_TPC_PDCCH_Config__srs_CC_SetIndexlist { + A_SEQUENCE_OF(struct 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; +} SRS_TPC_PDCCH_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_TPC_PDCCH_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_TPC_PDCCH_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_TPC_PDCCH_Config_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_TPC_PDCCH_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/SRS-TxSwitch.c b/src/codec_utils/RRC/SRS-TxSwitch.c new file mode 100644 index 000000000..70d6438da --- /dev/null +++ b/src/codec_utils/RRC/SRS-TxSwitch.c @@ -0,0 +1,164 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SRS-TxSwitch.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_supportedSRS_TxPortSwitch_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_txSwitchImpactToRx_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_supportedSRS_TxPortSwitch_specs_2 = { + asn_MAP_supportedSRS_TxPortSwitch_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedSRS_TxPortSwitch_2 = { + "supportedSRS-TxPortSwitch", + "supportedSRS-TxPortSwitch", + &asn_OP_NativeEnumerated, + asn_DEF_supportedSRS_TxPortSwitch_tags_2, + sizeof(asn_DEF_supportedSRS_TxPortSwitch_tags_2) + /sizeof(asn_DEF_supportedSRS_TxPortSwitch_tags_2[0]) - 1, /* 1 */ + asn_DEF_supportedSRS_TxPortSwitch_tags_2, /* Same as above */ + sizeof(asn_DEF_supportedSRS_TxPortSwitch_tags_2) + /sizeof(asn_DEF_supportedSRS_TxPortSwitch_tags_2[0]), /* 2 */ + { &asn_OER_type_supportedSRS_TxPortSwitch_constr_2, &asn_PER_type_supportedSRS_TxPortSwitch_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedSRS_TxPortSwitch_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_txSwitchImpactToRx_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_txSwitchImpactToRx_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_txSwitchImpactToRx_specs_8 = { + asn_MAP_txSwitchImpactToRx_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_txSwitchImpactToRx_8 = { + "txSwitchImpactToRx", + "txSwitchImpactToRx", + &asn_OP_NativeEnumerated, + asn_DEF_txSwitchImpactToRx_tags_8, + sizeof(asn_DEF_txSwitchImpactToRx_tags_8) + /sizeof(asn_DEF_txSwitchImpactToRx_tags_8[0]) - 1, /* 1 */ + asn_DEF_txSwitchImpactToRx_tags_8, /* Same as above */ + sizeof(asn_DEF_txSwitchImpactToRx_tags_8) + /sizeof(asn_DEF_txSwitchImpactToRx_tags_8[0]), /* 2 */ + { &asn_OER_type_txSwitchImpactToRx_constr_8, &asn_PER_type_txSwitchImpactToRx_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_txSwitchImpactToRx_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SRS_TxSwitch_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SRS_TxSwitch, supportedSRS_TxPortSwitch), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedSRS_TxPortSwitch_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedSRS-TxPortSwitch" + }, + { ATF_POINTER, 1, offsetof(struct SRS_TxSwitch, txSwitchImpactToRx), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_txSwitchImpactToRx_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "txSwitchImpactToRx" + }, +}; +static const int asn_MAP_SRS_TxSwitch_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SRS_TxSwitch_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SRS_TxSwitch_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_SRS_TxSwitch_specs_1 = { + sizeof(struct SRS_TxSwitch), + offsetof(struct SRS_TxSwitch, _asn_ctx), + asn_MAP_SRS_TxSwitch_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SRS_TxSwitch_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SRS_TxSwitch = { + "SRS-TxSwitch", + "SRS-TxSwitch", + &asn_OP_SEQUENCE, + asn_DEF_SRS_TxSwitch_tags_1, + sizeof(asn_DEF_SRS_TxSwitch_tags_1) + /sizeof(asn_DEF_SRS_TxSwitch_tags_1[0]), /* 1 */ + asn_DEF_SRS_TxSwitch_tags_1, /* Same as above */ + sizeof(asn_DEF_SRS_TxSwitch_tags_1) + /sizeof(asn_DEF_SRS_TxSwitch_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SRS_TxSwitch_1, + 2, /* Elements count */ + &asn_SPC_SRS_TxSwitch_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SRS-TxSwitch.h b/src/codec_utils/RRC/SRS-TxSwitch.h new file mode 100644 index 000000000..fedb9413f --- /dev/null +++ b/src/codec_utils/RRC/SRS-TxSwitch.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SRS_TxSwitch_H_ +#define _SRS_TxSwitch_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SRS_TxSwitch__supportedSRS_TxPortSwitch { + SRS_TxSwitch__supportedSRS_TxPortSwitch_t1r2 = 0, + SRS_TxSwitch__supportedSRS_TxPortSwitch_t1r4 = 1, + SRS_TxSwitch__supportedSRS_TxPortSwitch_t2r4 = 2, + SRS_TxSwitch__supportedSRS_TxPortSwitch_t1r4_t2r4 = 3, + SRS_TxSwitch__supportedSRS_TxPortSwitch_tr_equal = 4 +} e_SRS_TxSwitch__supportedSRS_TxPortSwitch; +typedef enum SRS_TxSwitch__txSwitchImpactToRx { + SRS_TxSwitch__txSwitchImpactToRx_true = 0 +} e_SRS_TxSwitch__txSwitchImpactToRx; + +/* SRS-TxSwitch */ +typedef struct SRS_TxSwitch { + long supportedSRS_TxPortSwitch; + long *txSwitchImpactToRx; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SRS_TxSwitch_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedSRS_TxPortSwitch_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_txSwitchImpactToRx_8; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SRS_TxSwitch; +extern asn_SEQUENCE_specifics_t asn_SPC_SRS_TxSwitch_specs_1; +extern asn_TYPE_member_t asn_MBR_SRS_TxSwitch_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SRS_TxSwitch_H_ */ +#include diff --git a/src/codec_utils/RRC/SS-RSSI-Measurement.c b/src/codec_utils/RRC/SS-RSSI-Measurement.c new file mode 100644 index 000000000..76be16945 --- /dev/null +++ b/src/codec_utils/RRC/SS-RSSI-Measurement.c @@ -0,0 +1,132 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SS-RSSI-Measurement.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_measurementSlots_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..80)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_endSymbol_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_SS_RSSI_Measurement_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SS_RSSI_Measurement, measurementSlots), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_measurementSlots_constr_2, &asn_PER_memb_measurementSlots_constr_2, memb_measurementSlots_constraint_1 }, + 0, 0, /* No default value */ + "measurementSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct SS_RSSI_Measurement, endSymbol), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_endSymbol_constr_3, &asn_PER_memb_endSymbol_constr_3, memb_endSymbol_constraint_1 }, + 0, 0, /* No default value */ + "endSymbol" + }, +}; +static const ber_tlv_tag_t asn_DEF_SS_RSSI_Measurement_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SS_RSSI_Measurement_specs_1 = { + sizeof(struct SS_RSSI_Measurement), + offsetof(struct SS_RSSI_Measurement, _asn_ctx), + asn_MAP_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_SS_RSSI_Measurement = { + "SS-RSSI-Measurement", + "SS-RSSI-Measurement", + &asn_OP_SEQUENCE, + asn_DEF_SS_RSSI_Measurement_tags_1, + sizeof(asn_DEF_SS_RSSI_Measurement_tags_1) + /sizeof(asn_DEF_SS_RSSI_Measurement_tags_1[0]), /* 1 */ + asn_DEF_SS_RSSI_Measurement_tags_1, /* Same as above */ + sizeof(asn_DEF_SS_RSSI_Measurement_tags_1) + /sizeof(asn_DEF_SS_RSSI_Measurement_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SS_RSSI_Measurement_1, + 2, /* Elements count */ + &asn_SPC_SS_RSSI_Measurement_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SS-RSSI-Measurement.h b/src/codec_utils/RRC/SS-RSSI-Measurement.h new file mode 100644 index 000000000..9dc6ca60c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SS_RSSI_Measurement_H_ +#define _SS_RSSI_Measurement_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SS-RSSI-Measurement */ +typedef struct SS_RSSI_Measurement { + BIT_STRING_t measurementSlots; + long endSymbol; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SS_RSSI_Measurement_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SS_RSSI_Measurement; +extern asn_SEQUENCE_specifics_t asn_SPC_SS_RSSI_Measurement_specs_1; +extern asn_TYPE_member_t asn_MBR_SS_RSSI_Measurement_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SS_RSSI_Measurement_H_ */ +#include diff --git a/src/codec_utils/RRC/SSB-ConfigMobility.c b/src/codec_utils/RRC/SSB-ConfigMobility.c new file mode 100644 index 000000000..133bb8988 --- /dev/null +++ b/src/codec_utils/RRC/SSB-ConfigMobility.c @@ -0,0 +1,131 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SSB-ConfigMobility.h" + +#include "SS-RSSI-Measurement.h" +#include "SSB-ToMeasure.h" +static asn_oer_constraints_t asn_OER_type_ssb_ToMeasure_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_ssb_ToMeasure_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_ssb_ToMeasure_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SSB_ConfigMobility__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 SSB_ConfigMobility__ssb_ToMeasure, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_SSB_ToMeasure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_ssb_ToMeasure_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_ssb_ToMeasure_specs_2 = { + sizeof(struct SSB_ConfigMobility__ssb_ToMeasure), + offsetof(struct SSB_ConfigMobility__ssb_ToMeasure, _asn_ctx), + offsetof(struct SSB_ConfigMobility__ssb_ToMeasure, present), + sizeof(((struct SSB_ConfigMobility__ssb_ToMeasure *)0)->present), + asn_MAP_ssb_ToMeasure_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_ssb_ToMeasure_2 = { + "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) */ + { &asn_OER_type_ssb_ToMeasure_constr_2, &asn_PER_type_ssb_ToMeasure_constr_2, CHOICE_constraint }, + asn_MBR_ssb_ToMeasure_2, + 2, /* Elements count */ + &asn_SPC_ssb_ToMeasure_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SSB_ConfigMobility_1[] = { + { ATF_POINTER, 1, offsetof(struct SSB_ConfigMobility, ssb_ToMeasure), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ssb_ToMeasure_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-ToMeasure" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 SSB_ConfigMobility, ss_RSSI_Measurement), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SS_RSSI_Measurement, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ss-RSSI-Measurement" + }, +}; +static const int asn_MAP_SSB_ConfigMobility_oms_1[] = { 0, 2 }; +static const ber_tlv_tag_t asn_DEF_SSB_ConfigMobility_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SSB_ConfigMobility_specs_1 = { + sizeof(struct SSB_ConfigMobility), + offsetof(struct SSB_ConfigMobility, _asn_ctx), + asn_MAP_SSB_ConfigMobility_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SSB_ConfigMobility_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SSB_ConfigMobility = { + "SSB-ConfigMobility", + "SSB-ConfigMobility", + &asn_OP_SEQUENCE, + asn_DEF_SSB_ConfigMobility_tags_1, + sizeof(asn_DEF_SSB_ConfigMobility_tags_1) + /sizeof(asn_DEF_SSB_ConfigMobility_tags_1[0]), /* 1 */ + asn_DEF_SSB_ConfigMobility_tags_1, /* Same as above */ + sizeof(asn_DEF_SSB_ConfigMobility_tags_1) + /sizeof(asn_DEF_SSB_ConfigMobility_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SSB_ConfigMobility_1, + 3, /* Elements count */ + &asn_SPC_SSB_ConfigMobility_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SSB-ConfigMobility.h b/src/codec_utils/RRC/SSB-ConfigMobility.h new file mode 100644 index 000000000..e1c449b08 --- /dev/null +++ b/src/codec_utils/RRC/SSB-ConfigMobility.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SSB_ConfigMobility_H_ +#define _SSB_ConfigMobility_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SSB_ConfigMobility__ssb_ToMeasure_PR { + SSB_ConfigMobility__ssb_ToMeasure_PR_NOTHING, /* No components present */ + SSB_ConfigMobility__ssb_ToMeasure_PR_release, + SSB_ConfigMobility__ssb_ToMeasure_PR_setup +} SSB_ConfigMobility__ssb_ToMeasure_PR; + +/* Forward declarations */ +struct SS_RSSI_Measurement; +struct SSB_ToMeasure; + +/* SSB-ConfigMobility */ +typedef struct SSB_ConfigMobility { + struct SSB_ConfigMobility__ssb_ToMeasure { + SSB_ConfigMobility__ssb_ToMeasure_PR present; + union SSB_ConfigMobility__ssb_ToMeasure_u { + NULL_t release; + struct SSB_ToMeasure *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *ssb_ToMeasure; + BOOLEAN_t deriveSSB_IndexFromCell; + struct 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; +} SSB_ConfigMobility_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SSB_ConfigMobility; +extern asn_SEQUENCE_specifics_t asn_SPC_SSB_ConfigMobility_specs_1; +extern asn_TYPE_member_t asn_MBR_SSB_ConfigMobility_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_ConfigMobility_H_ */ +#include diff --git a/src/codec_utils/RRC/SSB-Index.c b/src/codec_utils/RRC/SSB-Index.c new file mode 100644 index 000000000..bcae3871f --- /dev/null +++ b/src/codec_utils/RRC/SSB-Index.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SSB-Index.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SSB_Index_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..63) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SSB_Index_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SSB_Index = { + "SSB-Index", + "SSB-Index", + &asn_OP_NativeInteger, + asn_DEF_SSB_Index_tags_1, + sizeof(asn_DEF_SSB_Index_tags_1) + /sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */ + asn_DEF_SSB_Index_tags_1, /* Same as above */ + sizeof(asn_DEF_SSB_Index_tags_1) + /sizeof(asn_DEF_SSB_Index_tags_1[0]), /* 1 */ + { &asn_OER_type_SSB_Index_constr_1, &asn_PER_type_SSB_Index_constr_1, SSB_Index_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SSB-Index.h b/src/codec_utils/RRC/SSB-Index.h new file mode 100644 index 000000000..b0cafcc23 --- /dev/null +++ b/src/codec_utils/RRC/SSB-Index.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SSB_Index_H_ +#define _SSB_Index_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SSB-Index */ +typedef long SSB_Index_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SSB_Index_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SSB_Index; +asn_struct_free_f SSB_Index_free; +asn_struct_print_f SSB_Index_print; +asn_constr_check_f SSB_Index_constraint; +ber_type_decoder_f SSB_Index_decode_ber; +der_type_encoder_f SSB_Index_encode_der; +xer_type_decoder_f SSB_Index_decode_xer; +xer_type_encoder_f SSB_Index_encode_xer; +oer_type_decoder_f SSB_Index_decode_oer; +oer_type_encoder_f SSB_Index_encode_oer; +per_type_decoder_f SSB_Index_decode_uper; +per_type_encoder_f SSB_Index_encode_uper; +per_type_decoder_f SSB_Index_decode_aper; +per_type_encoder_f SSB_Index_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_Index_H_ */ +#include diff --git a/src/codec_utils/RRC/SSB-MTC.c b/src/codec_utils/RRC/SSB-MTC.c new file mode 100644 index 000000000..332d81ffa --- /dev/null +++ b/src/codec_utils/RRC/SSB-MTC.c @@ -0,0 +1,410 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SSB-MTC.h" + +static int +memb_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_sf5_constr_3 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sf10_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sf20_constr_5 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sf40_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sf80_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sf160_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_periodicityAndOffset_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_duration_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_periodicityAndOffset_2[] = { + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf5), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf5_constr_3, &asn_PER_memb_sf5_constr_3, memb_sf5_constraint_2 }, + 0, 0, /* No default value */ + "sf5" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf10), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf10_constr_4, &asn_PER_memb_sf10_constr_4, memb_sf10_constraint_2 }, + 0, 0, /* No default value */ + "sf10" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf20), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf20_constr_5, &asn_PER_memb_sf20_constr_5, memb_sf20_constraint_2 }, + 0, 0, /* No default value */ + "sf20" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf40), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf40_constr_6, &asn_PER_memb_sf40_constr_6, memb_sf40_constraint_2 }, + 0, 0, /* No default value */ + "sf40" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf80), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf80_constr_7, &asn_PER_memb_sf80_constr_7, memb_sf80_constraint_2 }, + 0, 0, /* No default value */ + "sf80" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC__periodicityAndOffset, choice.sf160), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sf160_constr_8, &asn_PER_memb_sf160_constr_8, memb_sf160_constraint_2 }, + 0, 0, /* No default value */ + "sf160" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_periodicityAndOffset_specs_2 = { + sizeof(struct SSB_MTC__periodicityAndOffset), + offsetof(struct SSB_MTC__periodicityAndOffset, _asn_ctx), + offsetof(struct SSB_MTC__periodicityAndOffset, present), + sizeof(((struct SSB_MTC__periodicityAndOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_periodicityAndOffset_constr_2, &asn_PER_type_periodicityAndOffset_constr_2, CHOICE_constraint }, + asn_MBR_periodicityAndOffset_2, + 6, /* Elements count */ + &asn_SPC_periodicityAndOffset_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_duration_value2enum_9[] = { + { 0, 3, "sf1" }, + { 1, 3, "sf2" }, + { 2, 3, "sf3" }, + { 3, 3, "sf4" }, + { 4, 3, "sf5" } +}; +static const unsigned int asn_MAP_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_duration_specs_9 = { + asn_MAP_duration_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_duration_9 = { + "duration", + "duration", + &asn_OP_NativeEnumerated, + asn_DEF_duration_tags_9, + sizeof(asn_DEF_duration_tags_9) + /sizeof(asn_DEF_duration_tags_9[0]) - 1, /* 1 */ + asn_DEF_duration_tags_9, /* Same as above */ + sizeof(asn_DEF_duration_tags_9) + /sizeof(asn_DEF_duration_tags_9[0]), /* 2 */ + { &asn_OER_type_duration_constr_9, &asn_PER_type_duration_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_duration_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SSB_MTC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_periodicityAndOffset_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC, duration), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_duration_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "duration" + }, +}; +static const ber_tlv_tag_t asn_DEF_SSB_MTC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SSB_MTC_specs_1 = { + sizeof(struct SSB_MTC), + offsetof(struct SSB_MTC, _asn_ctx), + asn_MAP_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_SSB_MTC = { + "SSB-MTC", + "SSB-MTC", + &asn_OP_SEQUENCE, + asn_DEF_SSB_MTC_tags_1, + sizeof(asn_DEF_SSB_MTC_tags_1) + /sizeof(asn_DEF_SSB_MTC_tags_1[0]), /* 1 */ + asn_DEF_SSB_MTC_tags_1, /* Same as above */ + sizeof(asn_DEF_SSB_MTC_tags_1) + /sizeof(asn_DEF_SSB_MTC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SSB_MTC_1, + 2, /* Elements count */ + &asn_SPC_SSB_MTC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SSB-MTC.h b/src/codec_utils/RRC/SSB-MTC.h new file mode 100644 index 000000000..ce6dcf51a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SSB_MTC_H_ +#define _SSB_MTC_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SSB_MTC__periodicityAndOffset_PR { + SSB_MTC__periodicityAndOffset_PR_NOTHING, /* No components present */ + SSB_MTC__periodicityAndOffset_PR_sf5, + SSB_MTC__periodicityAndOffset_PR_sf10, + SSB_MTC__periodicityAndOffset_PR_sf20, + SSB_MTC__periodicityAndOffset_PR_sf40, + SSB_MTC__periodicityAndOffset_PR_sf80, + SSB_MTC__periodicityAndOffset_PR_sf160 +} SSB_MTC__periodicityAndOffset_PR; +typedef enum SSB_MTC__duration { + SSB_MTC__duration_sf1 = 0, + SSB_MTC__duration_sf2 = 1, + SSB_MTC__duration_sf3 = 2, + SSB_MTC__duration_sf4 = 3, + SSB_MTC__duration_sf5 = 4 +} e_SSB_MTC__duration; + +/* SSB-MTC */ +typedef struct SSB_MTC { + struct SSB_MTC__periodicityAndOffset { + SSB_MTC__periodicityAndOffset_PR present; + union SSB_MTC__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; +} SSB_MTC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_duration_9; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SSB_MTC; +extern asn_SEQUENCE_specifics_t asn_SPC_SSB_MTC_specs_1; +extern asn_TYPE_member_t asn_MBR_SSB_MTC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_MTC_H_ */ +#include diff --git a/src/codec_utils/RRC/SSB-MTC2.c b/src/codec_utils/RRC/SSB-MTC2.c new file mode 100644 index 000000000..58879bbb6 --- /dev/null +++ b/src/codec_utils/RRC/SSB-MTC2.c @@ -0,0 +1,202 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SSB-MTC2.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_oer_constraints_t asn_OER_type_pci_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_periodicity_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_pci_List_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_pci_List_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_pci_List_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_pci_List_specs_2 = { + sizeof(struct SSB_MTC2__pci_List), + offsetof(struct SSB_MTC2__pci_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_pci_List_2 = { + "pci-List", + "pci-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_pci_List_tags_2, + sizeof(asn_DEF_pci_List_tags_2) + /sizeof(asn_DEF_pci_List_tags_2[0]) - 1, /* 1 */ + asn_DEF_pci_List_tags_2, /* Same as above */ + sizeof(asn_DEF_pci_List_tags_2) + /sizeof(asn_DEF_pci_List_tags_2[0]), /* 2 */ + { &asn_OER_type_pci_List_constr_2, &asn_PER_type_pci_List_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_pci_List_2, + 1, /* Single element */ + &asn_SPC_pci_List_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_periodicity_specs_4 = { + asn_MAP_periodicity_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_periodicity_4 = { + "periodicity", + "periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_periodicity_tags_4, + sizeof(asn_DEF_periodicity_tags_4) + /sizeof(asn_DEF_periodicity_tags_4[0]) - 1, /* 1 */ + asn_DEF_periodicity_tags_4, /* Same as above */ + sizeof(asn_DEF_periodicity_tags_4) + /sizeof(asn_DEF_periodicity_tags_4[0]), /* 2 */ + { &asn_OER_type_periodicity_constr_4, &asn_PER_type_periodicity_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_periodicity_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SSB_MTC2_1[] = { + { ATF_POINTER, 1, offsetof(struct SSB_MTC2, pci_List), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_pci_List_2, + 0, + { &asn_OER_memb_pci_List_constr_2, &asn_PER_memb_pci_List_constr_2, memb_pci_List_constraint_1 }, + 0, 0, /* No default value */ + "pci-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_MTC2, periodicity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_periodicity_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicity" + }, +}; +static const int asn_MAP_SSB_MTC2_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_SSB_MTC2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SSB_MTC2_specs_1 = { + sizeof(struct SSB_MTC2), + offsetof(struct SSB_MTC2, _asn_ctx), + asn_MAP_SSB_MTC2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SSB_MTC2_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SSB_MTC2 = { + "SSB-MTC2", + "SSB-MTC2", + &asn_OP_SEQUENCE, + asn_DEF_SSB_MTC2_tags_1, + sizeof(asn_DEF_SSB_MTC2_tags_1) + /sizeof(asn_DEF_SSB_MTC2_tags_1[0]), /* 1 */ + asn_DEF_SSB_MTC2_tags_1, /* Same as above */ + sizeof(asn_DEF_SSB_MTC2_tags_1) + /sizeof(asn_DEF_SSB_MTC2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SSB_MTC2_1, + 2, /* Elements count */ + &asn_SPC_SSB_MTC2_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SSB-MTC2.h b/src/codec_utils/RRC/SSB-MTC2.h new file mode 100644 index 000000000..f717a314e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SSB_MTC2_H_ +#define _SSB_MTC2_H_ + + +#include + +/* Including external dependencies */ +#include +#include "PhysCellId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SSB_MTC2__periodicity { + SSB_MTC2__periodicity_sf5 = 0, + SSB_MTC2__periodicity_sf10 = 1, + SSB_MTC2__periodicity_sf20 = 2, + SSB_MTC2__periodicity_sf40 = 3, + SSB_MTC2__periodicity_sf80 = 4, + SSB_MTC2__periodicity_spare3 = 5, + SSB_MTC2__periodicity_spare2 = 6, + SSB_MTC2__periodicity_spare1 = 7 +} e_SSB_MTC2__periodicity; + +/* SSB-MTC2 */ +typedef struct SSB_MTC2 { + struct SSB_MTC2__pci_List { + A_SEQUENCE_OF(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; +} SSB_MTC2_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_periodicity_4; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SSB_MTC2; +extern asn_SEQUENCE_specifics_t asn_SPC_SSB_MTC2_specs_1; +extern asn_TYPE_member_t asn_MBR_SSB_MTC2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_MTC2_H_ */ +#include diff --git a/src/codec_utils/RRC/SSB-ToMeasure.c b/src/codec_utils/RRC/SSB-ToMeasure.c new file mode 100644 index 000000000..5a90b4ec3 --- /dev/null +++ b/src/codec_utils/RRC/SSB-ToMeasure.c @@ -0,0 +1,192 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SSB-ToMeasure.h" + +static int +memb_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_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_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_oer_constraints_t asn_OER_memb_shortBitmap_constr_2 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_mediumBitmap_constr_3 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_longBitmap_constr_4 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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 */ +}; +static asn_oer_constraints_t asn_OER_type_SSB_ToMeasure_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_SSB_ToMeasure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SSB_ToMeasure, choice.shortBitmap), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_shortBitmap_constr_2, &asn_PER_memb_shortBitmap_constr_2, memb_shortBitmap_constraint_1 }, + 0, 0, /* No default value */ + "shortBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_ToMeasure, choice.mediumBitmap), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_mediumBitmap_constr_3, &asn_PER_memb_mediumBitmap_constr_3, memb_mediumBitmap_constraint_1 }, + 0, 0, /* No default value */ + "mediumBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct SSB_ToMeasure, choice.longBitmap), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_longBitmap_constr_4, &asn_PER_memb_longBitmap_constr_4, memb_longBitmap_constraint_1 }, + 0, 0, /* No default value */ + "longBitmap" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SSB_ToMeasure_specs_1 = { + sizeof(struct SSB_ToMeasure), + offsetof(struct SSB_ToMeasure, _asn_ctx), + offsetof(struct SSB_ToMeasure, present), + sizeof(((struct SSB_ToMeasure *)0)->present), + asn_MAP_SSB_ToMeasure_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_SSB_ToMeasure_constr_1, &asn_PER_type_SSB_ToMeasure_constr_1, CHOICE_constraint }, + asn_MBR_SSB_ToMeasure_1, + 3, /* Elements count */ + &asn_SPC_SSB_ToMeasure_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SSB-ToMeasure.h b/src/codec_utils/RRC/SSB-ToMeasure.h new file mode 100644 index 000000000..59ff39d26 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SSB_ToMeasure_H_ +#define _SSB_ToMeasure_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SSB_ToMeasure_PR { + SSB_ToMeasure_PR_NOTHING, /* No components present */ + SSB_ToMeasure_PR_shortBitmap, + SSB_ToMeasure_PR_mediumBitmap, + SSB_ToMeasure_PR_longBitmap +} SSB_ToMeasure_PR; + +/* SSB-ToMeasure */ +typedef struct SSB_ToMeasure { + SSB_ToMeasure_PR present; + union 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; +} SSB_ToMeasure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SSB_ToMeasure; +extern asn_CHOICE_specifics_t asn_SPC_SSB_ToMeasure_specs_1; +extern asn_TYPE_member_t asn_MBR_SSB_ToMeasure_1[3]; +extern asn_per_constraints_t asn_PER_type_SSB_ToMeasure_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SSB_ToMeasure_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingInfo.c b/src/codec_utils/RRC/SchedulingInfo.c new file mode 100644 index 000000000..fd90672c1 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingInfo.c @@ -0,0 +1,178 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_si_BroadcastStatus_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_Periodicity_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_si_BroadcastStatus_value2enum_2[] = { + { 0, 12, "broadcasting" }, + { 1, 15, "notBroadcasting" } +}; +static const unsigned int asn_MAP_si_BroadcastStatus_enum2value_2[] = { + 0, /* broadcasting(0) */ + 1 /* notBroadcasting(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_si_BroadcastStatus_specs_2 = { + asn_MAP_si_BroadcastStatus_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_si_BroadcastStatus_2 = { + "si-BroadcastStatus", + "si-BroadcastStatus", + &asn_OP_NativeEnumerated, + asn_DEF_si_BroadcastStatus_tags_2, + sizeof(asn_DEF_si_BroadcastStatus_tags_2) + /sizeof(asn_DEF_si_BroadcastStatus_tags_2[0]) - 1, /* 1 */ + asn_DEF_si_BroadcastStatus_tags_2, /* Same as above */ + sizeof(asn_DEF_si_BroadcastStatus_tags_2) + /sizeof(asn_DEF_si_BroadcastStatus_tags_2[0]), /* 2 */ + { &asn_OER_type_si_BroadcastStatus_constr_2, &asn_PER_type_si_BroadcastStatus_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_si_BroadcastStatus_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_Periodicity_specs_5 = { + asn_MAP_si_Periodicity_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_si_Periodicity_5 = { + "si-Periodicity", + "si-Periodicity", + &asn_OP_NativeEnumerated, + asn_DEF_si_Periodicity_tags_5, + sizeof(asn_DEF_si_Periodicity_tags_5) + /sizeof(asn_DEF_si_Periodicity_tags_5[0]) - 1, /* 1 */ + asn_DEF_si_Periodicity_tags_5, /* Same as above */ + sizeof(asn_DEF_si_Periodicity_tags_5) + /sizeof(asn_DEF_si_Periodicity_tags_5[0]), /* 2 */ + { &asn_OER_type_si_Periodicity_constr_5, &asn_PER_type_si_Periodicity_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_si_Periodicity_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SchedulingInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, si_BroadcastStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_si_BroadcastStatus_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-BroadcastStatus" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, si_Periodicity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_si_Periodicity_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "si-Periodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, sib_MappingInfo), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB_Mapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib-MappingInfo" + }, +}; +static const ber_tlv_tag_t asn_DEF_SchedulingInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SchedulingInfo_specs_1 = { + sizeof(struct SchedulingInfo), + offsetof(struct SchedulingInfo, _asn_ctx), + asn_MAP_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_SchedulingInfo = { + "SchedulingInfo", + "SchedulingInfo", + &asn_OP_SEQUENCE, + asn_DEF_SchedulingInfo_tags_1, + sizeof(asn_DEF_SchedulingInfo_tags_1) + /sizeof(asn_DEF_SchedulingInfo_tags_1[0]), /* 1 */ + asn_DEF_SchedulingInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingInfo_tags_1) + /sizeof(asn_DEF_SchedulingInfo_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SchedulingInfo_1, + 3, /* Elements count */ + &asn_SPC_SchedulingInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SchedulingInfo.h b/src/codec_utils/RRC/SchedulingInfo.h new file mode 100644 index 000000000..65422909f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingInfo_H_ +#define _SchedulingInfo_H_ + + +#include + +/* Including external dependencies */ +#include +#include "SIB-Mapping.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SchedulingInfo__si_BroadcastStatus { + SchedulingInfo__si_BroadcastStatus_broadcasting = 0, + SchedulingInfo__si_BroadcastStatus_notBroadcasting = 1 +} e_SchedulingInfo__si_BroadcastStatus; +typedef enum SchedulingInfo__si_Periodicity { + SchedulingInfo__si_Periodicity_rf8 = 0, + SchedulingInfo__si_Periodicity_rf16 = 1, + SchedulingInfo__si_Periodicity_rf32 = 2, + SchedulingInfo__si_Periodicity_rf64 = 3, + SchedulingInfo__si_Periodicity_rf128 = 4, + SchedulingInfo__si_Periodicity_rf256 = 5, + SchedulingInfo__si_Periodicity_rf512 = 6 +} e_SchedulingInfo__si_Periodicity; + +/* SchedulingInfo */ +typedef struct SchedulingInfo { + long si_BroadcastStatus; + long si_Periodicity; + SIB_Mapping_t sib_MappingInfo; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SchedulingInfo_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_si_BroadcastStatus_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_si_Periodicity_5; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SchedulingInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_SchedulingInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_SchedulingInfo_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingRequestConfig.c b/src/codec_utils/RRC/SchedulingRequestConfig.c new file mode 100644 index 000000000..2ae608fe4 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestConfig.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SchedulingRequestConfig.h" + +#include "SchedulingRequestToAddMod.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_schedulingRequestToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_schedulingRequestToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_schedulingRequestToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_schedulingRequestToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_schedulingRequestToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SchedulingRequestToAddMod, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_schedulingRequestToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_schedulingRequestToAddModList_specs_2 = { + sizeof(struct SchedulingRequestConfig__schedulingRequestToAddModList), + offsetof(struct SchedulingRequestConfig__schedulingRequestToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_schedulingRequestToAddModList_2 = { + "schedulingRequestToAddModList", + "schedulingRequestToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_schedulingRequestToAddModList_tags_2, + sizeof(asn_DEF_schedulingRequestToAddModList_tags_2) + /sizeof(asn_DEF_schedulingRequestToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_schedulingRequestToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_schedulingRequestToAddModList_tags_2) + /sizeof(asn_DEF_schedulingRequestToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_schedulingRequestToAddModList_constr_2, &asn_PER_type_schedulingRequestToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_schedulingRequestToAddModList_2, + 1, /* Single element */ + &asn_SPC_schedulingRequestToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_schedulingRequestToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_schedulingRequestToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_schedulingRequestToReleaseList_specs_4 = { + sizeof(struct SchedulingRequestConfig__schedulingRequestToReleaseList), + offsetof(struct SchedulingRequestConfig__schedulingRequestToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_schedulingRequestToReleaseList_4 = { + "schedulingRequestToReleaseList", + "schedulingRequestToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_schedulingRequestToReleaseList_tags_4, + sizeof(asn_DEF_schedulingRequestToReleaseList_tags_4) + /sizeof(asn_DEF_schedulingRequestToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_schedulingRequestToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_schedulingRequestToReleaseList_tags_4) + /sizeof(asn_DEF_schedulingRequestToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_schedulingRequestToReleaseList_constr_4, &asn_PER_type_schedulingRequestToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_schedulingRequestToReleaseList_4, + 1, /* Single element */ + &asn_SPC_schedulingRequestToReleaseList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SchedulingRequestConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct SchedulingRequestConfig, schedulingRequestToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_schedulingRequestToAddModList_2, + 0, + { &asn_OER_memb_schedulingRequestToAddModList_constr_2, &asn_PER_memb_schedulingRequestToAddModList_constr_2, memb_schedulingRequestToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct SchedulingRequestConfig, schedulingRequestToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_schedulingRequestToReleaseList_4, + 0, + { &asn_OER_memb_schedulingRequestToReleaseList_constr_4, &asn_PER_memb_schedulingRequestToReleaseList_constr_4, memb_schedulingRequestToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "schedulingRequestToReleaseList" + }, +}; +static const int asn_MAP_SchedulingRequestConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SchedulingRequestConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SchedulingRequestConfig_specs_1 = { + sizeof(struct SchedulingRequestConfig), + offsetof(struct SchedulingRequestConfig, _asn_ctx), + asn_MAP_SchedulingRequestConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SchedulingRequestConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SchedulingRequestConfig = { + "SchedulingRequestConfig", + "SchedulingRequestConfig", + &asn_OP_SEQUENCE, + asn_DEF_SchedulingRequestConfig_tags_1, + sizeof(asn_DEF_SchedulingRequestConfig_tags_1) + /sizeof(asn_DEF_SchedulingRequestConfig_tags_1[0]), /* 1 */ + asn_DEF_SchedulingRequestConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingRequestConfig_tags_1) + /sizeof(asn_DEF_SchedulingRequestConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SchedulingRequestConfig_1, + 2, /* Elements count */ + &asn_SPC_SchedulingRequestConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SchedulingRequestConfig.h b/src/codec_utils/RRC/SchedulingRequestConfig.h new file mode 100644 index 000000000..f9a42446a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingRequestConfig_H_ +#define _SchedulingRequestConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "SchedulingRequestId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SchedulingRequestToAddMod; + +/* SchedulingRequestConfig */ +typedef struct SchedulingRequestConfig { + struct SchedulingRequestConfig__schedulingRequestToAddModList { + A_SEQUENCE_OF(struct SchedulingRequestToAddMod) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *schedulingRequestToAddModList; + struct SchedulingRequestConfig__schedulingRequestToReleaseList { + A_SEQUENCE_OF(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; +} SchedulingRequestConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SchedulingRequestConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SchedulingRequestConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SchedulingRequestConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingRequestConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingRequestId.c b/src/codec_utils/RRC/SchedulingRequestId.c new file mode 100644 index 000000000..9a3bb6ba8 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SchedulingRequestId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SchedulingRequestId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SchedulingRequestId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SchedulingRequestId = { + "SchedulingRequestId", + "SchedulingRequestId", + &asn_OP_NativeInteger, + asn_DEF_SchedulingRequestId_tags_1, + sizeof(asn_DEF_SchedulingRequestId_tags_1) + /sizeof(asn_DEF_SchedulingRequestId_tags_1[0]), /* 1 */ + asn_DEF_SchedulingRequestId_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingRequestId_tags_1) + /sizeof(asn_DEF_SchedulingRequestId_tags_1[0]), /* 1 */ + { &asn_OER_type_SchedulingRequestId_constr_1, &asn_PER_type_SchedulingRequestId_constr_1, SchedulingRequestId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SchedulingRequestId.h b/src/codec_utils/RRC/SchedulingRequestId.h new file mode 100644 index 000000000..6413dcbfe --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingRequestId_H_ +#define _SchedulingRequestId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SchedulingRequestId */ +typedef long SchedulingRequestId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SchedulingRequestId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SchedulingRequestId; +asn_struct_free_f SchedulingRequestId_free; +asn_struct_print_f SchedulingRequestId_print; +asn_constr_check_f SchedulingRequestId_constraint; +ber_type_decoder_f SchedulingRequestId_decode_ber; +der_type_encoder_f SchedulingRequestId_encode_der; +xer_type_decoder_f SchedulingRequestId_decode_xer; +xer_type_encoder_f SchedulingRequestId_encode_xer; +oer_type_decoder_f SchedulingRequestId_decode_oer; +oer_type_encoder_f SchedulingRequestId_encode_oer; +per_type_decoder_f SchedulingRequestId_decode_uper; +per_type_encoder_f SchedulingRequestId_encode_uper; +per_type_decoder_f SchedulingRequestId_decode_aper; +per_type_encoder_f SchedulingRequestId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingRequestId_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingRequestResourceConfig.c b/src/codec_utils/RRC/SchedulingRequestResourceConfig.c new file mode 100644 index 000000000..0a43aea4c --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestResourceConfig.c @@ -0,0 +1,665 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SchedulingRequestResourceConfig.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_sl2_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl4_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl5_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl8_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl10_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl16_constr_13 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl20_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl40_constr_15 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl80_constr_16 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl160_constr_17 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl320_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl640_constr_19 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_periodicityAndOffset_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_periodicityAndOffset_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl2_constr_8, &asn_PER_memb_sl2_constr_8, memb_sl2_constraint_4 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl4_constr_9, &asn_PER_memb_sl4_constr_9, memb_sl4_constraint_4 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl5_constr_10, &asn_PER_memb_sl5_constr_10, memb_sl5_constraint_4 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl8_constr_11, &asn_PER_memb_sl8_constr_11, memb_sl8_constraint_4 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl10_constr_12, &asn_PER_memb_sl10_constr_12, memb_sl10_constraint_4 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl16_constr_13, &asn_PER_memb_sl16_constr_13, memb_sl16_constraint_4 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl20_constr_14, &asn_PER_memb_sl20_constr_14, memb_sl20_constraint_4 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl40_constr_15, &asn_PER_memb_sl40_constr_15, memb_sl40_constraint_4 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl80_constr_16, &asn_PER_memb_sl80_constr_16, memb_sl80_constraint_4 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl160_constr_17, &asn_PER_memb_sl160_constr_17, memb_sl160_constraint_4 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl320_constr_18, &asn_PER_memb_sl320_constr_18, memb_sl320_constraint_4 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl640_constr_19, &asn_PER_memb_sl640_constr_19, memb_sl640_constraint_4 }, + 0, 0, /* No default value */ + "sl640" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_periodicityAndOffset_specs_4 = { + sizeof(struct SchedulingRequestResourceConfig__periodicityAndOffset), + offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, _asn_ctx), + offsetof(struct SchedulingRequestResourceConfig__periodicityAndOffset, present), + sizeof(((struct SchedulingRequestResourceConfig__periodicityAndOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_periodicityAndOffset_constr_4, &asn_PER_type_periodicityAndOffset_constr_4, CHOICE_constraint }, + asn_MBR_periodicityAndOffset_4, + 15, /* Elements count */ + &asn_SPC_periodicityAndOffset_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SchedulingRequestResourceConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig, schedulingRequestResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SchedulingRequestResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestResourceConfig, schedulingRequestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestID" + }, + { ATF_POINTER, 2, offsetof(struct SchedulingRequestResourceConfig, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_periodicityAndOffset_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, + { ATF_POINTER, 1, offsetof(struct SchedulingRequestResourceConfig, resource), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUCCH_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resource" + }, +}; +static const int asn_MAP_SchedulingRequestResourceConfig_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SchedulingRequestResourceConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SchedulingRequestResourceConfig_specs_1 = { + sizeof(struct SchedulingRequestResourceConfig), + offsetof(struct SchedulingRequestResourceConfig, _asn_ctx), + asn_MAP_SchedulingRequestResourceConfig_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SchedulingRequestResourceConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SchedulingRequestResourceConfig = { + "SchedulingRequestResourceConfig", + "SchedulingRequestResourceConfig", + &asn_OP_SEQUENCE, + asn_DEF_SchedulingRequestResourceConfig_tags_1, + sizeof(asn_DEF_SchedulingRequestResourceConfig_tags_1) + /sizeof(asn_DEF_SchedulingRequestResourceConfig_tags_1[0]), /* 1 */ + asn_DEF_SchedulingRequestResourceConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingRequestResourceConfig_tags_1) + /sizeof(asn_DEF_SchedulingRequestResourceConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SchedulingRequestResourceConfig_1, + 4, /* Elements count */ + &asn_SPC_SchedulingRequestResourceConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SchedulingRequestResourceConfig.h b/src/codec_utils/RRC/SchedulingRequestResourceConfig.h new file mode 100644 index 000000000..3e2322cba --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingRequestResourceConfig_H_ +#define _SchedulingRequestResourceConfig_H_ + + +#include + +/* Including external dependencies */ +#include "SchedulingRequestResourceId.h" +#include "SchedulingRequestId.h" +#include "PUCCH-ResourceId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SchedulingRequestResourceConfig__periodicityAndOffset_PR { + SchedulingRequestResourceConfig__periodicityAndOffset_PR_NOTHING, /* No components present */ + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sym2, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sym6or7, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl1, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl2, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl4, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl5, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl8, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl10, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl16, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl20, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl80, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl160, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl320, + SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl640 +} SchedulingRequestResourceConfig__periodicityAndOffset_PR; + +/* SchedulingRequestResourceConfig */ +typedef struct SchedulingRequestResourceConfig { + SchedulingRequestResourceId_t schedulingRequestResourceId; + SchedulingRequestId_t schedulingRequestID; + struct SchedulingRequestResourceConfig__periodicityAndOffset { + SchedulingRequestResourceConfig__periodicityAndOffset_PR present; + union SchedulingRequestResourceConfig__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; + PUCCH_ResourceId_t *resource; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SchedulingRequestResourceConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SchedulingRequestResourceConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SchedulingRequestResourceConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SchedulingRequestResourceConfig_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingRequestResourceConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingRequestResourceId.c b/src/codec_utils/RRC/SchedulingRequestResourceId.c new file mode 100644 index 000000000..a78ff10e3 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SchedulingRequestResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SchedulingRequestResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SchedulingRequestResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SchedulingRequestResourceId = { + "SchedulingRequestResourceId", + "SchedulingRequestResourceId", + &asn_OP_NativeInteger, + asn_DEF_SchedulingRequestResourceId_tags_1, + sizeof(asn_DEF_SchedulingRequestResourceId_tags_1) + /sizeof(asn_DEF_SchedulingRequestResourceId_tags_1[0]), /* 1 */ + asn_DEF_SchedulingRequestResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingRequestResourceId_tags_1) + /sizeof(asn_DEF_SchedulingRequestResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_SchedulingRequestResourceId_constr_1, &asn_PER_type_SchedulingRequestResourceId_constr_1, SchedulingRequestResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SchedulingRequestResourceId.h b/src/codec_utils/RRC/SchedulingRequestResourceId.h new file mode 100644 index 000000000..d2f79cf06 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingRequestResourceId_H_ +#define _SchedulingRequestResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SchedulingRequestResourceId */ +typedef long SchedulingRequestResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SchedulingRequestResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SchedulingRequestResourceId; +asn_struct_free_f SchedulingRequestResourceId_free; +asn_struct_print_f SchedulingRequestResourceId_print; +asn_constr_check_f SchedulingRequestResourceId_constraint; +ber_type_decoder_f SchedulingRequestResourceId_decode_ber; +der_type_encoder_f SchedulingRequestResourceId_encode_der; +xer_type_decoder_f SchedulingRequestResourceId_decode_xer; +xer_type_encoder_f SchedulingRequestResourceId_encode_xer; +oer_type_decoder_f SchedulingRequestResourceId_decode_oer; +oer_type_encoder_f SchedulingRequestResourceId_encode_oer; +per_type_decoder_f SchedulingRequestResourceId_decode_uper; +per_type_encoder_f SchedulingRequestResourceId_encode_uper; +per_type_decoder_f SchedulingRequestResourceId_decode_aper; +per_type_encoder_f SchedulingRequestResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingRequestResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/SchedulingRequestToAddMod.c b/src/codec_utils/RRC/SchedulingRequestToAddMod.c new file mode 100644 index 000000000..36410cfe8 --- /dev/null +++ b/src/codec_utils/RRC/SchedulingRequestToAddMod.c @@ -0,0 +1,194 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_sr_ProhibitTimer_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sr_TransMax_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_sr_ProhibitTimer_specs_3 = { + asn_MAP_sr_ProhibitTimer_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sr_ProhibitTimer_3 = { + "sr-ProhibitTimer", + "sr-ProhibitTimer", + &asn_OP_NativeEnumerated, + asn_DEF_sr_ProhibitTimer_tags_3, + sizeof(asn_DEF_sr_ProhibitTimer_tags_3) + /sizeof(asn_DEF_sr_ProhibitTimer_tags_3[0]) - 1, /* 1 */ + asn_DEF_sr_ProhibitTimer_tags_3, /* Same as above */ + sizeof(asn_DEF_sr_ProhibitTimer_tags_3) + /sizeof(asn_DEF_sr_ProhibitTimer_tags_3[0]), /* 2 */ + { &asn_OER_type_sr_ProhibitTimer_constr_3, &asn_PER_type_sr_ProhibitTimer_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sr_ProhibitTimer_specs_3 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_sr_TransMax_specs_12 = { + asn_MAP_sr_TransMax_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sr_TransMax_12 = { + "sr-TransMax", + "sr-TransMax", + &asn_OP_NativeEnumerated, + asn_DEF_sr_TransMax_tags_12, + sizeof(asn_DEF_sr_TransMax_tags_12) + /sizeof(asn_DEF_sr_TransMax_tags_12[0]) - 1, /* 1 */ + asn_DEF_sr_TransMax_tags_12, /* Same as above */ + sizeof(asn_DEF_sr_TransMax_tags_12) + /sizeof(asn_DEF_sr_TransMax_tags_12[0]), /* 2 */ + { &asn_OER_type_sr_TransMax_constr_12, &asn_PER_type_sr_TransMax_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sr_TransMax_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SchedulingRequestToAddMod_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestToAddMod, schedulingRequestId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SchedulingRequestId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "schedulingRequestId" + }, + { ATF_POINTER, 1, offsetof(struct SchedulingRequestToAddMod, sr_ProhibitTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sr_ProhibitTimer_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sr-ProhibitTimer" + }, + { ATF_NOFLAGS, 0, offsetof(struct SchedulingRequestToAddMod, sr_TransMax), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sr_TransMax_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sr-TransMax" + }, +}; +static const int asn_MAP_SchedulingRequestToAddMod_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SchedulingRequestToAddMod_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SchedulingRequestToAddMod_specs_1 = { + sizeof(struct SchedulingRequestToAddMod), + offsetof(struct SchedulingRequestToAddMod, _asn_ctx), + asn_MAP_SchedulingRequestToAddMod_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SchedulingRequestToAddMod_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SchedulingRequestToAddMod = { + "SchedulingRequestToAddMod", + "SchedulingRequestToAddMod", + &asn_OP_SEQUENCE, + asn_DEF_SchedulingRequestToAddMod_tags_1, + sizeof(asn_DEF_SchedulingRequestToAddMod_tags_1) + /sizeof(asn_DEF_SchedulingRequestToAddMod_tags_1[0]), /* 1 */ + asn_DEF_SchedulingRequestToAddMod_tags_1, /* Same as above */ + sizeof(asn_DEF_SchedulingRequestToAddMod_tags_1) + /sizeof(asn_DEF_SchedulingRequestToAddMod_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SchedulingRequestToAddMod_1, + 3, /* Elements count */ + &asn_SPC_SchedulingRequestToAddMod_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SchedulingRequestToAddMod.h b/src/codec_utils/RRC/SchedulingRequestToAddMod.h new file mode 100644 index 000000000..2a2ab4db4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SchedulingRequestToAddMod_H_ +#define _SchedulingRequestToAddMod_H_ + + +#include + +/* Including external dependencies */ +#include "SchedulingRequestId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SchedulingRequestToAddMod__sr_ProhibitTimer { + SchedulingRequestToAddMod__sr_ProhibitTimer_ms1 = 0, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms2 = 1, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms4 = 2, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms8 = 3, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms16 = 4, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms32 = 5, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms64 = 6, + SchedulingRequestToAddMod__sr_ProhibitTimer_ms128 = 7 +} e_SchedulingRequestToAddMod__sr_ProhibitTimer; +typedef enum SchedulingRequestToAddMod__sr_TransMax { + SchedulingRequestToAddMod__sr_TransMax_n4 = 0, + SchedulingRequestToAddMod__sr_TransMax_n8 = 1, + SchedulingRequestToAddMod__sr_TransMax_n16 = 2, + SchedulingRequestToAddMod__sr_TransMax_n32 = 3, + SchedulingRequestToAddMod__sr_TransMax_n64 = 4, + SchedulingRequestToAddMod__sr_TransMax_spare3 = 5, + SchedulingRequestToAddMod__sr_TransMax_spare2 = 6, + SchedulingRequestToAddMod__sr_TransMax_spare1 = 7 +} e_SchedulingRequestToAddMod__sr_TransMax; + +/* SchedulingRequestToAddMod */ +typedef struct SchedulingRequestToAddMod { + SchedulingRequestId_t schedulingRequestId; + long *sr_ProhibitTimer; /* OPTIONAL */ + long sr_TransMax; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SchedulingRequestToAddMod_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sr_ProhibitTimer_3; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sr_TransMax_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SchedulingRequestToAddMod; +extern asn_SEQUENCE_specifics_t asn_SPC_SchedulingRequestToAddMod_specs_1; +extern asn_TYPE_member_t asn_MBR_SchedulingRequestToAddMod_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SchedulingRequestToAddMod_H_ */ +#include diff --git a/src/codec_utils/RRC/ScramblingId.c b/src/codec_utils/RRC/ScramblingId.c new file mode 100644 index 000000000..7343a942b --- /dev/null +++ b/src/codec_utils/RRC/ScramblingId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ScramblingId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ScramblingId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..1023) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ScramblingId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ScramblingId = { + "ScramblingId", + "ScramblingId", + &asn_OP_NativeInteger, + asn_DEF_ScramblingId_tags_1, + sizeof(asn_DEF_ScramblingId_tags_1) + /sizeof(asn_DEF_ScramblingId_tags_1[0]), /* 1 */ + asn_DEF_ScramblingId_tags_1, /* Same as above */ + sizeof(asn_DEF_ScramblingId_tags_1) + /sizeof(asn_DEF_ScramblingId_tags_1[0]), /* 1 */ + { &asn_OER_type_ScramblingId_constr_1, &asn_PER_type_ScramblingId_constr_1, ScramblingId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ScramblingId.h b/src/codec_utils/RRC/ScramblingId.h new file mode 100644 index 000000000..066602bdf --- /dev/null +++ b/src/codec_utils/RRC/ScramblingId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ScramblingId_H_ +#define _ScramblingId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ScramblingId */ +typedef long ScramblingId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ScramblingId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ScramblingId; +asn_struct_free_f ScramblingId_free; +asn_struct_print_f ScramblingId_print; +asn_constr_check_f ScramblingId_constraint; +ber_type_decoder_f ScramblingId_decode_ber; +der_type_encoder_f ScramblingId_encode_der; +xer_type_decoder_f ScramblingId_decode_xer; +xer_type_encoder_f ScramblingId_encode_xer; +oer_type_decoder_f ScramblingId_decode_oer; +oer_type_encoder_f ScramblingId_encode_oer; +per_type_decoder_f ScramblingId_decode_uper; +per_type_encoder_f ScramblingId_encode_uper; +per_type_decoder_f ScramblingId_decode_aper; +per_type_encoder_f ScramblingId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ScramblingId_H_ */ +#include diff --git a/src/codec_utils/RRC/SearchSpace.c b/src/codec_utils/RRC/SearchSpace.c new file mode 100644 index 000000000..d73195360 --- /dev/null +++ b/src/codec_utils/RRC/SearchSpace.c @@ -0,0 +1,2077 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SearchSpace.h" + +static int +memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_sl2_constr_6 CC_NOTUSED = { + { 1, 1 } /* (0..1) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl4_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl5_constr_8 CC_NOTUSED = { + { 1, 1 } /* (0..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl8_constr_9 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl10_constr_10 CC_NOTUSED = { + { 1, 1 } /* (0..9) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl16_constr_11 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl20_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..19) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl40_constr_13 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl80_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..79) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl160_constr_15 CC_NOTUSED = { + { 1, 1 } /* (0..159) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl320_constr_16 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl640_constr_17 CC_NOTUSED = { + { 2, 1 } /* (0..639) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl1280_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..1279) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl2560_constr_19 CC_NOTUSED = { + { 2, 1 } /* (0..2559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_monitoringSlotPeriodicityAndOffset_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel1_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel2_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel4_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel8_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel16_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel1_constr_74 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel2_constr_77 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel4_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel8_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel16_constr_86 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy1_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy2_constr_104 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dci_Formats_constr_109 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpaceType_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_duration_constr_20 CC_NOTUSED = { + { 2, 1 } /* (2..2559) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_monitoringSymbolsWithinSlot_constr_21 CC_NOTUSED = { + { 0, 0 }, + 14 /* (SIZE(14..14)) */}; +static asn_per_constraints_t asn_PER_memb_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_monitoringSlotPeriodicityAndOffset_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl2_constr_6, &asn_PER_memb_sl2_constr_6, memb_sl2_constraint_4 }, + 0, 0, /* No default value */ + "sl2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl4_constr_7, &asn_PER_memb_sl4_constr_7, memb_sl4_constraint_4 }, + 0, 0, /* No default value */ + "sl4" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl5_constr_8, &asn_PER_memb_sl5_constr_8, memb_sl5_constraint_4 }, + 0, 0, /* No default value */ + "sl5" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl8), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl8_constr_9, &asn_PER_memb_sl8_constr_9, memb_sl8_constraint_4 }, + 0, 0, /* No default value */ + "sl8" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl10), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl10_constr_10, &asn_PER_memb_sl10_constr_10, memb_sl10_constraint_4 }, + 0, 0, /* No default value */ + "sl10" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl16), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl16_constr_11, &asn_PER_memb_sl16_constr_11, memb_sl16_constraint_4 }, + 0, 0, /* No default value */ + "sl16" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl20), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl20_constr_12, &asn_PER_memb_sl20_constr_12, memb_sl20_constraint_4 }, + 0, 0, /* No default value */ + "sl20" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl40), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl40_constr_13, &asn_PER_memb_sl40_constr_13, memb_sl40_constraint_4 }, + 0, 0, /* No default value */ + "sl40" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl80), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl80_constr_14, &asn_PER_memb_sl80_constr_14, memb_sl80_constraint_4 }, + 0, 0, /* No default value */ + "sl80" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl160), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl160_constr_15, &asn_PER_memb_sl160_constr_15, memb_sl160_constraint_4 }, + 0, 0, /* No default value */ + "sl160" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl320), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl320_constr_16, &asn_PER_memb_sl320_constr_16, memb_sl320_constraint_4 }, + 0, 0, /* No default value */ + "sl320" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl640), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl640_constr_17, &asn_PER_memb_sl640_constr_17, memb_sl640_constraint_4 }, + 0, 0, /* No default value */ + "sl640" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl1280), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl1280_constr_18, &asn_PER_memb_sl1280_constr_18, memb_sl1280_constraint_4 }, + 0, 0, /* No default value */ + "sl1280" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2560), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_sl2560_constr_19, &asn_PER_memb_sl2560_constr_19, memb_sl2560_constraint_4 }, + 0, 0, /* No default value */ + "sl2560" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_monitoringSlotPeriodicityAndOffset_specs_4 = { + sizeof(struct SearchSpace__monitoringSlotPeriodicityAndOffset), + offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, _asn_ctx), + offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, present), + sizeof(((struct SearchSpace__monitoringSlotPeriodicityAndOffset *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_monitoringSlotPeriodicityAndOffset_constr_4, &asn_PER_type_monitoringSlotPeriodicityAndOffset_constr_4, CHOICE_constraint }, + asn_MBR_monitoringSlotPeriodicityAndOffset_4, + 15, /* Elements count */ + &asn_SPC_monitoringSlotPeriodicityAndOffset_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel1_specs_23 = { + asn_MAP_aggregationLevel1_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel1_23 = { + "aggregationLevel1", + "aggregationLevel1", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel1_tags_23, + sizeof(asn_DEF_aggregationLevel1_tags_23) + /sizeof(asn_DEF_aggregationLevel1_tags_23[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel1_tags_23, /* Same as above */ + sizeof(asn_DEF_aggregationLevel1_tags_23) + /sizeof(asn_DEF_aggregationLevel1_tags_23[0]), /* 2 */ + { &asn_OER_type_aggregationLevel1_constr_23, &asn_PER_type_aggregationLevel1_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel1_specs_23 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel2_specs_32 = { + asn_MAP_aggregationLevel2_value2enum_32, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel2_32 = { + "aggregationLevel2", + "aggregationLevel2", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel2_tags_32, + sizeof(asn_DEF_aggregationLevel2_tags_32) + /sizeof(asn_DEF_aggregationLevel2_tags_32[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel2_tags_32, /* Same as above */ + sizeof(asn_DEF_aggregationLevel2_tags_32) + /sizeof(asn_DEF_aggregationLevel2_tags_32[0]), /* 2 */ + { &asn_OER_type_aggregationLevel2_constr_32, &asn_PER_type_aggregationLevel2_constr_32, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel2_specs_32 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel4_specs_41 = { + asn_MAP_aggregationLevel4_value2enum_41, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel4_41 = { + "aggregationLevel4", + "aggregationLevel4", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel4_tags_41, + sizeof(asn_DEF_aggregationLevel4_tags_41) + /sizeof(asn_DEF_aggregationLevel4_tags_41[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel4_tags_41, /* Same as above */ + sizeof(asn_DEF_aggregationLevel4_tags_41) + /sizeof(asn_DEF_aggregationLevel4_tags_41[0]), /* 2 */ + { &asn_OER_type_aggregationLevel4_constr_41, &asn_PER_type_aggregationLevel4_constr_41, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel4_specs_41 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel8_specs_50 = { + asn_MAP_aggregationLevel8_value2enum_50, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel8_50 = { + "aggregationLevel8", + "aggregationLevel8", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel8_tags_50, + sizeof(asn_DEF_aggregationLevel8_tags_50) + /sizeof(asn_DEF_aggregationLevel8_tags_50[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel8_tags_50, /* Same as above */ + sizeof(asn_DEF_aggregationLevel8_tags_50) + /sizeof(asn_DEF_aggregationLevel8_tags_50[0]), /* 2 */ + { &asn_OER_type_aggregationLevel8_constr_50, &asn_PER_type_aggregationLevel8_constr_50, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel8_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel16_specs_59 = { + asn_MAP_aggregationLevel16_value2enum_59, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel16_59 = { + "aggregationLevel16", + "aggregationLevel16", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel16_tags_59, + sizeof(asn_DEF_aggregationLevel16_tags_59) + /sizeof(asn_DEF_aggregationLevel16_tags_59[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel16_tags_59, /* Same as above */ + sizeof(asn_DEF_aggregationLevel16_tags_59) + /sizeof(asn_DEF_aggregationLevel16_tags_59[0]), /* 2 */ + { &asn_OER_type_aggregationLevel16_constr_59, &asn_PER_type_aggregationLevel16_constr_59, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel16_specs_59 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nrofCandidates_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel1_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel2_32, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel4_41, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel4" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel8_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel8" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel16_59, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel16" + }, +}; +static const ber_tlv_tag_t asn_DEF_nrofCandidates_tags_22[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nrofCandidates_specs_22 = { + sizeof(struct SearchSpace__nrofCandidates), + offsetof(struct SearchSpace__nrofCandidates, _asn_ctx), + asn_MAP_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_nrofCandidates_22 = { + "nrofCandidates", + "nrofCandidates", + &asn_OP_SEQUENCE, + asn_DEF_nrofCandidates_tags_22, + sizeof(asn_DEF_nrofCandidates_tags_22) + /sizeof(asn_DEF_nrofCandidates_tags_22[0]) - 1, /* 1 */ + asn_DEF_nrofCandidates_tags_22, /* Same as above */ + sizeof(asn_DEF_nrofCandidates_tags_22) + /sizeof(asn_DEF_nrofCandidates_tags_22[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nrofCandidates_22, + 5, /* Elements count */ + &asn_SPC_nrofCandidates_specs_22 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_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_dci_Format0_0_AndFormat1_0_specs_70 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format0_0_AndFormat1_0), + offsetof(struct 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) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dci_Format0_0_AndFormat1_0_70 = { + "dci-Format0-0-AndFormat1-0", + "dci-Format0-0-AndFormat1-0", + &asn_OP_SEQUENCE, + asn_DEF_dci_Format0_0_AndFormat1_0_tags_70, + sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70) + /sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70[0]) - 1, /* 1 */ + asn_DEF_dci_Format0_0_AndFormat1_0_tags_70, /* Same as above */ + sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70) + /sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_dci_Format0_0_AndFormat1_0_specs_70 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel1_value2enum_74[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_aggregationLevel1_enum2value_74[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel1_specs_74 = { + asn_MAP_aggregationLevel1_value2enum_74, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel1_74 = { + "aggregationLevel1", + "aggregationLevel1", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel1_tags_74, + sizeof(asn_DEF_aggregationLevel1_tags_74) + /sizeof(asn_DEF_aggregationLevel1_tags_74[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel1_tags_74, /* Same as above */ + sizeof(asn_DEF_aggregationLevel1_tags_74) + /sizeof(asn_DEF_aggregationLevel1_tags_74[0]), /* 2 */ + { &asn_OER_type_aggregationLevel1_constr_74, &asn_PER_type_aggregationLevel1_constr_74, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel1_specs_74 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel2_value2enum_77[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_aggregationLevel2_enum2value_77[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel2_specs_77 = { + asn_MAP_aggregationLevel2_value2enum_77, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel2_77 = { + "aggregationLevel2", + "aggregationLevel2", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel2_tags_77, + sizeof(asn_DEF_aggregationLevel2_tags_77) + /sizeof(asn_DEF_aggregationLevel2_tags_77[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel2_tags_77, /* Same as above */ + sizeof(asn_DEF_aggregationLevel2_tags_77) + /sizeof(asn_DEF_aggregationLevel2_tags_77[0]), /* 2 */ + { &asn_OER_type_aggregationLevel2_constr_77, &asn_PER_type_aggregationLevel2_constr_77, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel2_specs_77 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel4_value2enum_80[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_aggregationLevel4_enum2value_80[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel4_specs_80 = { + asn_MAP_aggregationLevel4_value2enum_80, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel4_80 = { + "aggregationLevel4", + "aggregationLevel4", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel4_tags_80, + sizeof(asn_DEF_aggregationLevel4_tags_80) + /sizeof(asn_DEF_aggregationLevel4_tags_80[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel4_tags_80, /* Same as above */ + sizeof(asn_DEF_aggregationLevel4_tags_80) + /sizeof(asn_DEF_aggregationLevel4_tags_80[0]), /* 2 */ + { &asn_OER_type_aggregationLevel4_constr_80, &asn_PER_type_aggregationLevel4_constr_80, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel4_specs_80 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel8_value2enum_83[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_aggregationLevel8_enum2value_83[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel8_specs_83 = { + asn_MAP_aggregationLevel8_value2enum_83, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel8_83 = { + "aggregationLevel8", + "aggregationLevel8", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel8_tags_83, + sizeof(asn_DEF_aggregationLevel8_tags_83) + /sizeof(asn_DEF_aggregationLevel8_tags_83[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel8_tags_83, /* Same as above */ + sizeof(asn_DEF_aggregationLevel8_tags_83) + /sizeof(asn_DEF_aggregationLevel8_tags_83[0]), /* 2 */ + { &asn_OER_type_aggregationLevel8_constr_83, &asn_PER_type_aggregationLevel8_constr_83, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel8_specs_83 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel16_value2enum_86[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_aggregationLevel16_enum2value_86[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel16_specs_86 = { + asn_MAP_aggregationLevel16_value2enum_86, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_aggregationLevel16_86 = { + "aggregationLevel16", + "aggregationLevel16", + &asn_OP_NativeEnumerated, + asn_DEF_aggregationLevel16_tags_86, + sizeof(asn_DEF_aggregationLevel16_tags_86) + /sizeof(asn_DEF_aggregationLevel16_tags_86[0]) - 1, /* 1 */ + asn_DEF_aggregationLevel16_tags_86, /* Same as above */ + sizeof(asn_DEF_aggregationLevel16_tags_86) + /sizeof(asn_DEF_aggregationLevel16_tags_86[0]), /* 2 */ + { &asn_OER_type_aggregationLevel16_constr_86, &asn_PER_type_aggregationLevel16_constr_86, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_aggregationLevel16_specs_86 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_nrofCandidates_SFI_73[] = { + { ATF_POINTER, 5, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel1_74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel1" + }, + { ATF_POINTER, 4, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel2_77, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel2" + }, + { ATF_POINTER, 3, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel4_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel4" + }, + { ATF_POINTER, 2, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel8), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel8_83, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel8" + }, + { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel16), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_aggregationLevel16_86, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "aggregationLevel16" + }, +}; +static const int asn_MAP_nrofCandidates_SFI_oms_73[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_nrofCandidates_SFI_tags_73[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_nrofCandidates_SFI_specs_73 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI), + offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, _asn_ctx), + asn_MAP_nrofCandidates_SFI_tag2el_73, + 5, /* Count of tags in the map */ + asn_MAP_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_nrofCandidates_SFI_73 = { + "nrofCandidates-SFI", + "nrofCandidates-SFI", + &asn_OP_SEQUENCE, + asn_DEF_nrofCandidates_SFI_tags_73, + sizeof(asn_DEF_nrofCandidates_SFI_tags_73) + /sizeof(asn_DEF_nrofCandidates_SFI_tags_73[0]) - 1, /* 1 */ + asn_DEF_nrofCandidates_SFI_tags_73, /* Same as above */ + sizeof(asn_DEF_nrofCandidates_SFI_tags_73) + /sizeof(asn_DEF_nrofCandidates_SFI_tags_73[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_nrofCandidates_SFI_73, + 5, /* Elements count */ + &asn_SPC_nrofCandidates_SFI_specs_73 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dci_Format2_0_72[] = { + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0, nrofCandidates_SFI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_nrofCandidates_SFI_73, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCandidates-SFI" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_dci_Format2_0_tag2el_72[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofCandidates-SFI */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_0_specs_72 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_0), + offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0, _asn_ctx), + asn_MAP_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_dci_Format2_0_72 = { + "dci-Format2-0", + "dci-Format2-0", + &asn_OP_SEQUENCE, + asn_DEF_dci_Format2_0_tags_72, + sizeof(asn_DEF_dci_Format2_0_tags_72) + /sizeof(asn_DEF_dci_Format2_0_tags_72[0]) - 1, /* 1 */ + asn_DEF_dci_Format2_0_tags_72, /* Same as above */ + sizeof(asn_DEF_dci_Format2_0_tags_72) + /sizeof(asn_DEF_dci_Format2_0_tags_72[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_dci_Format2_0_72, + 1, /* Elements count */ + &asn_SPC_dci_Format2_0_specs_72 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_dci_Format2_1_tags_90[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_1_specs_90 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_1), + offsetof(struct 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) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dci_Format2_1_90 = { + "dci-Format2-1", + "dci-Format2-1", + &asn_OP_SEQUENCE, + asn_DEF_dci_Format2_1_tags_90, + sizeof(asn_DEF_dci_Format2_1_tags_90) + /sizeof(asn_DEF_dci_Format2_1_tags_90[0]) - 1, /* 1 */ + asn_DEF_dci_Format2_1_tags_90, /* Same as above */ + sizeof(asn_DEF_dci_Format2_1_tags_90) + /sizeof(asn_DEF_dci_Format2_1_tags_90[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_dci_Format2_1_specs_90 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_dci_Format2_2_tags_92[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_2_specs_92 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_2), + offsetof(struct 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) */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dci_Format2_2_92 = { + "dci-Format2-2", + "dci-Format2-2", + &asn_OP_SEQUENCE, + asn_DEF_dci_Format2_2_tags_92, + sizeof(asn_DEF_dci_Format2_2_tags_92) + /sizeof(asn_DEF_dci_Format2_2_tags_92[0]) - 1, /* 1 */ + asn_DEF_dci_Format2_2_tags_92, /* Same as above */ + sizeof(asn_DEF_dci_Format2_2_tags_92) + /sizeof(asn_DEF_dci_Format2_2_tags_92[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_dci_Format2_2_specs_92 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_dummy1_specs_95 = { + asn_MAP_dummy1_value2enum_95, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dummy1_95 = { + "dummy1", + "dummy1", + &asn_OP_NativeEnumerated, + asn_DEF_dummy1_tags_95, + sizeof(asn_DEF_dummy1_tags_95) + /sizeof(asn_DEF_dummy1_tags_95[0]) - 1, /* 1 */ + asn_DEF_dummy1_tags_95, /* Same as above */ + sizeof(asn_DEF_dummy1_tags_95) + /sizeof(asn_DEF_dummy1_tags_95[0]), /* 2 */ + { &asn_OER_type_dummy1_constr_95, &asn_PER_type_dummy1_constr_95, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dummy1_specs_95 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dummy2_value2enum_104[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" } +}; +static const unsigned int asn_MAP_dummy2_enum2value_104[] = { + 0, /* n1(0) */ + 1 /* n2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dummy2_specs_104 = { + asn_MAP_dummy2_value2enum_104, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dummy2_104 = { + "dummy2", + "dummy2", + &asn_OP_NativeEnumerated, + asn_DEF_dummy2_tags_104, + sizeof(asn_DEF_dummy2_tags_104) + /sizeof(asn_DEF_dummy2_tags_104[0]) - 1, /* 1 */ + asn_DEF_dummy2_tags_104, /* Same as above */ + sizeof(asn_DEF_dummy2_tags_104) + /sizeof(asn_DEF_dummy2_tags_104[0]), /* 2 */ + { &asn_OER_type_dummy2_constr_104, &asn_PER_type_dummy2_constr_104, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dummy2_specs_104 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_dci_Format2_3_94[] = { + { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, dummy1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dummy1_95, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, dummy2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dummy2_104, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy2" + }, +}; +static const int asn_MAP_dci_Format2_3_oms_94[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_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_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_dci_Format2_3_specs_94 = { + sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_3), + offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, _asn_ctx), + asn_MAP_dci_Format2_3_tag2el_94, + 2, /* Count of tags in the map */ + asn_MAP_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_dci_Format2_3_94 = { + "dci-Format2-3", + "dci-Format2-3", + &asn_OP_SEQUENCE, + asn_DEF_dci_Format2_3_tags_94, + sizeof(asn_DEF_dci_Format2_3_tags_94) + /sizeof(asn_DEF_dci_Format2_3_tags_94[0]) - 1, /* 1 */ + asn_DEF_dci_Format2_3_tags_94, /* Same as above */ + sizeof(asn_DEF_dci_Format2_3_tags_94) + /sizeof(asn_DEF_dci_Format2_3_tags_94[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_dci_Format2_3_94, + 2, /* Elements count */ + &asn_SPC_dci_Format2_3_specs_94 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_common_69[] = { + { ATF_POINTER, 5, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format0_0_AndFormat1_0), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_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 SearchSpace__searchSpaceType__common, dci_Format2_0), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_dci_Format2_0_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-0" + }, + { ATF_POINTER, 3, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_dci_Format2_1_90, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-1" + }, + { ATF_POINTER, 2, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_2), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_dci_Format2_2_92, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-2" + }, + { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_3), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_dci_Format2_3_94, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Format2-3" + }, +}; +static const int asn_MAP_common_oms_69[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_common_tags_69[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_common_specs_69 = { + sizeof(struct SearchSpace__searchSpaceType__common), + offsetof(struct SearchSpace__searchSpaceType__common, _asn_ctx), + asn_MAP_common_tag2el_69, + 5, /* Count of tags in the map */ + asn_MAP_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_common_69 = { + "common", + "common", + &asn_OP_SEQUENCE, + asn_DEF_common_tags_69, + sizeof(asn_DEF_common_tags_69) + /sizeof(asn_DEF_common_tags_69[0]) - 1, /* 1 */ + asn_DEF_common_tags_69, /* Same as above */ + sizeof(asn_DEF_common_tags_69) + /sizeof(asn_DEF_common_tags_69[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_common_69, + 5, /* Elements count */ + &asn_SPC_common_specs_69 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dci_Formats_value2enum_109[] = { + { 0, 18, "formats0-0-And-1-0" }, + { 1, 18, "formats0-1-And-1-1" } +}; +static const unsigned int asn_MAP_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_dci_Formats_specs_109 = { + asn_MAP_dci_Formats_value2enum_109, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dci_Formats_109 = { + "dci-Formats", + "dci-Formats", + &asn_OP_NativeEnumerated, + asn_DEF_dci_Formats_tags_109, + sizeof(asn_DEF_dci_Formats_tags_109) + /sizeof(asn_DEF_dci_Formats_tags_109[0]) - 1, /* 1 */ + asn_DEF_dci_Formats_tags_109, /* Same as above */ + sizeof(asn_DEF_dci_Formats_tags_109) + /sizeof(asn_DEF_dci_Formats_tags_109[0]), /* 2 */ + { &asn_OER_type_dci_Formats_constr_109, &asn_PER_type_dci_Formats_constr_109, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dci_Formats_specs_109 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ue_Specific_108[] = { + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__ue_Specific, dci_Formats), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dci_Formats_109, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dci-Formats" + }, +}; +static const ber_tlv_tag_t asn_DEF_ue_Specific_tags_108[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ue_Specific_tag2el_108[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dci-Formats */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ue_Specific_specs_108 = { + sizeof(struct SearchSpace__searchSpaceType__ue_Specific), + offsetof(struct SearchSpace__searchSpaceType__ue_Specific, _asn_ctx), + asn_MAP_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_ue_Specific_108 = { + "ue-Specific", + "ue-Specific", + &asn_OP_SEQUENCE, + asn_DEF_ue_Specific_tags_108, + sizeof(asn_DEF_ue_Specific_tags_108) + /sizeof(asn_DEF_ue_Specific_tags_108[0]) - 1, /* 1 */ + asn_DEF_ue_Specific_tags_108, /* Same as above */ + sizeof(asn_DEF_ue_Specific_tags_108) + /sizeof(asn_DEF_ue_Specific_tags_108[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ue_Specific_108, + 1, /* Elements count */ + &asn_SPC_ue_Specific_specs_108 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_searchSpaceType_68[] = { + { ATF_POINTER, 0, offsetof(struct SearchSpace__searchSpaceType, choice.common), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_common_69, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "common" + }, + { ATF_POINTER, 0, offsetof(struct SearchSpace__searchSpaceType, choice.ue_Specific), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_ue_Specific_108, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-Specific" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_searchSpaceType_specs_68 = { + sizeof(struct SearchSpace__searchSpaceType), + offsetof(struct SearchSpace__searchSpaceType, _asn_ctx), + offsetof(struct SearchSpace__searchSpaceType, present), + sizeof(((struct SearchSpace__searchSpaceType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_searchSpaceType_constr_68, &asn_PER_type_searchSpaceType_constr_68, CHOICE_constraint }, + asn_MBR_searchSpaceType_68, + 2, /* Elements count */ + &asn_SPC_searchSpaceType_specs_68 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SearchSpace_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SearchSpace, searchSpaceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SearchSpaceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceId" + }, + { ATF_POINTER, 6, offsetof(struct SearchSpace, controlResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ControlResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "controlResourceSetId" + }, + { ATF_POINTER, 5, offsetof(struct SearchSpace, monitoringSlotPeriodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_monitoringSlotPeriodicityAndOffset_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "monitoringSlotPeriodicityAndOffset" + }, + { ATF_POINTER, 4, offsetof(struct SearchSpace, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_duration_constr_20, &asn_PER_memb_duration_constr_20, memb_duration_constraint_1 }, + 0, 0, /* No default value */ + "duration" + }, + { ATF_POINTER, 3, offsetof(struct SearchSpace, monitoringSymbolsWithinSlot), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_monitoringSymbolsWithinSlot_constr_21, &asn_PER_memb_monitoringSymbolsWithinSlot_constr_21, memb_monitoringSymbolsWithinSlot_constraint_1 }, + 0, 0, /* No default value */ + "monitoringSymbolsWithinSlot" + }, + { ATF_POINTER, 2, offsetof(struct SearchSpace, nrofCandidates), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_nrofCandidates_22, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nrofCandidates" + }, + { ATF_POINTER, 1, offsetof(struct SearchSpace, searchSpaceType), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_searchSpaceType_68, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchSpaceType" + }, +}; +static const int asn_MAP_SearchSpace_oms_1[] = { 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_SearchSpace_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SearchSpace_specs_1 = { + sizeof(struct SearchSpace), + offsetof(struct SearchSpace, _asn_ctx), + asn_MAP_SearchSpace_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_SearchSpace_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SearchSpace = { + "SearchSpace", + "SearchSpace", + &asn_OP_SEQUENCE, + asn_DEF_SearchSpace_tags_1, + sizeof(asn_DEF_SearchSpace_tags_1) + /sizeof(asn_DEF_SearchSpace_tags_1[0]), /* 1 */ + asn_DEF_SearchSpace_tags_1, /* Same as above */ + sizeof(asn_DEF_SearchSpace_tags_1) + /sizeof(asn_DEF_SearchSpace_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SearchSpace_1, + 7, /* Elements count */ + &asn_SPC_SearchSpace_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SearchSpace.h b/src/codec_utils/RRC/SearchSpace.h new file mode 100644 index 000000000..4757932db --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SearchSpace_H_ +#define _SearchSpace_H_ + + +#include + +/* Including external dependencies */ +#include "SearchSpaceId.h" +#include "ControlResourceSetId.h" +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SearchSpace__monitoringSlotPeriodicityAndOffset_PR { + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_NOTHING, /* No components present */ + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl4, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl8, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl10, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl16, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl20, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl40, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl80, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl160, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl320, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl640, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1280, + SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2560 +} SearchSpace__monitoringSlotPeriodicityAndOffset_PR; +typedef enum SearchSpace__nrofCandidates__aggregationLevel1 { + SearchSpace__nrofCandidates__aggregationLevel1_n0 = 0, + SearchSpace__nrofCandidates__aggregationLevel1_n1 = 1, + SearchSpace__nrofCandidates__aggregationLevel1_n2 = 2, + SearchSpace__nrofCandidates__aggregationLevel1_n3 = 3, + SearchSpace__nrofCandidates__aggregationLevel1_n4 = 4, + SearchSpace__nrofCandidates__aggregationLevel1_n5 = 5, + SearchSpace__nrofCandidates__aggregationLevel1_n6 = 6, + SearchSpace__nrofCandidates__aggregationLevel1_n8 = 7 +} e_SearchSpace__nrofCandidates__aggregationLevel1; +typedef enum SearchSpace__nrofCandidates__aggregationLevel2 { + SearchSpace__nrofCandidates__aggregationLevel2_n0 = 0, + SearchSpace__nrofCandidates__aggregationLevel2_n1 = 1, + SearchSpace__nrofCandidates__aggregationLevel2_n2 = 2, + SearchSpace__nrofCandidates__aggregationLevel2_n3 = 3, + SearchSpace__nrofCandidates__aggregationLevel2_n4 = 4, + SearchSpace__nrofCandidates__aggregationLevel2_n5 = 5, + SearchSpace__nrofCandidates__aggregationLevel2_n6 = 6, + SearchSpace__nrofCandidates__aggregationLevel2_n8 = 7 +} e_SearchSpace__nrofCandidates__aggregationLevel2; +typedef enum SearchSpace__nrofCandidates__aggregationLevel4 { + SearchSpace__nrofCandidates__aggregationLevel4_n0 = 0, + SearchSpace__nrofCandidates__aggregationLevel4_n1 = 1, + SearchSpace__nrofCandidates__aggregationLevel4_n2 = 2, + SearchSpace__nrofCandidates__aggregationLevel4_n3 = 3, + SearchSpace__nrofCandidates__aggregationLevel4_n4 = 4, + SearchSpace__nrofCandidates__aggregationLevel4_n5 = 5, + SearchSpace__nrofCandidates__aggregationLevel4_n6 = 6, + SearchSpace__nrofCandidates__aggregationLevel4_n8 = 7 +} e_SearchSpace__nrofCandidates__aggregationLevel4; +typedef enum SearchSpace__nrofCandidates__aggregationLevel8 { + SearchSpace__nrofCandidates__aggregationLevel8_n0 = 0, + SearchSpace__nrofCandidates__aggregationLevel8_n1 = 1, + SearchSpace__nrofCandidates__aggregationLevel8_n2 = 2, + SearchSpace__nrofCandidates__aggregationLevel8_n3 = 3, + SearchSpace__nrofCandidates__aggregationLevel8_n4 = 4, + SearchSpace__nrofCandidates__aggregationLevel8_n5 = 5, + SearchSpace__nrofCandidates__aggregationLevel8_n6 = 6, + SearchSpace__nrofCandidates__aggregationLevel8_n8 = 7 +} e_SearchSpace__nrofCandidates__aggregationLevel8; +typedef enum SearchSpace__nrofCandidates__aggregationLevel16 { + SearchSpace__nrofCandidates__aggregationLevel16_n0 = 0, + SearchSpace__nrofCandidates__aggregationLevel16_n1 = 1, + SearchSpace__nrofCandidates__aggregationLevel16_n2 = 2, + SearchSpace__nrofCandidates__aggregationLevel16_n3 = 3, + SearchSpace__nrofCandidates__aggregationLevel16_n4 = 4, + SearchSpace__nrofCandidates__aggregationLevel16_n5 = 5, + SearchSpace__nrofCandidates__aggregationLevel16_n6 = 6, + SearchSpace__nrofCandidates__aggregationLevel16_n8 = 7 +} e_SearchSpace__nrofCandidates__aggregationLevel16; +typedef enum SearchSpace__searchSpaceType_PR { + SearchSpace__searchSpaceType_PR_NOTHING, /* No components present */ + SearchSpace__searchSpaceType_PR_common, + SearchSpace__searchSpaceType_PR_ue_Specific +} SearchSpace__searchSpaceType_PR; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1 { + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2 { + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4 { + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8 { + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16 { + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1 { + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl2 = 1, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl4 = 2, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl5 = 3, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl8 = 4, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl10 = 5, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl16 = 6, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl20 = 7 +} e_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1; +typedef enum SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2 { + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n1 = 0, + SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n2 = 1 +} e_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2; +typedef enum SearchSpace__searchSpaceType__ue_Specific__dci_Formats { + SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0 = 0, + SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1 = 1 +} e_SearchSpace__searchSpaceType__ue_Specific__dci_Formats; + +/* SearchSpace */ +typedef struct SearchSpace { + SearchSpaceId_t searchSpaceId; + ControlResourceSetId_t *controlResourceSetId; /* OPTIONAL */ + struct SearchSpace__monitoringSlotPeriodicityAndOffset { + SearchSpace__monitoringSlotPeriodicityAndOffset_PR present; + union SearchSpace__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 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 SearchSpace__searchSpaceType { + SearchSpace__searchSpaceType_PR present; + union SearchSpace__searchSpaceType_u { + struct SearchSpace__searchSpaceType__common { + struct 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 SearchSpace__searchSpaceType__common__dci_Format2_0 { + struct 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 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 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 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 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; +} SearchSpace_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel1_23; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel2_32; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel4_41; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel8_50; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel16_59; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel1_74; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel2_77; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel4_80; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel8_83; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel16_86; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dummy1_95; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dummy2_104; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dci_Formats_109; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SearchSpace; +extern asn_SEQUENCE_specifics_t asn_SPC_SearchSpace_specs_1; +extern asn_TYPE_member_t asn_MBR_SearchSpace_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SearchSpace_H_ */ +#include diff --git a/src/codec_utils/RRC/SearchSpaceId.c b/src/codec_utils/RRC/SearchSpaceId.c new file mode 100644 index 000000000..deb9c3e25 --- /dev/null +++ b/src/codec_utils/RRC/SearchSpaceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SearchSpaceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SearchSpaceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..39) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SearchSpaceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SearchSpaceId = { + "SearchSpaceId", + "SearchSpaceId", + &asn_OP_NativeInteger, + asn_DEF_SearchSpaceId_tags_1, + sizeof(asn_DEF_SearchSpaceId_tags_1) + /sizeof(asn_DEF_SearchSpaceId_tags_1[0]), /* 1 */ + asn_DEF_SearchSpaceId_tags_1, /* Same as above */ + sizeof(asn_DEF_SearchSpaceId_tags_1) + /sizeof(asn_DEF_SearchSpaceId_tags_1[0]), /* 1 */ + { &asn_OER_type_SearchSpaceId_constr_1, &asn_PER_type_SearchSpaceId_constr_1, SearchSpaceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SearchSpaceId.h b/src/codec_utils/RRC/SearchSpaceId.h new file mode 100644 index 000000000..442df4fe7 --- /dev/null +++ b/src/codec_utils/RRC/SearchSpaceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SearchSpaceId_H_ +#define _SearchSpaceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SearchSpaceId */ +typedef long SearchSpaceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SearchSpaceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SearchSpaceId; +asn_struct_free_f SearchSpaceId_free; +asn_struct_print_f SearchSpaceId_print; +asn_constr_check_f SearchSpaceId_constraint; +ber_type_decoder_f SearchSpaceId_decode_ber; +der_type_encoder_f SearchSpaceId_encode_der; +xer_type_decoder_f SearchSpaceId_decode_xer; +xer_type_encoder_f SearchSpaceId_encode_xer; +oer_type_decoder_f SearchSpaceId_decode_oer; +oer_type_encoder_f SearchSpaceId_encode_oer; +per_type_decoder_f SearchSpaceId_decode_uper; +per_type_encoder_f SearchSpaceId_encode_uper; +per_type_decoder_f SearchSpaceId_decode_aper; +per_type_encoder_f SearchSpaceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SearchSpaceId_H_ */ +#include diff --git a/src/codec_utils/RRC/SearchSpaceZero.c b/src/codec_utils/RRC/SearchSpaceZero.c new file mode 100644 index 000000000..45e5319ff --- /dev/null +++ b/src/codec_utils/RRC/SearchSpaceZero.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SearchSpaceZero.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SearchSpaceZero_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SearchSpaceZero_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SearchSpaceZero = { + "SearchSpaceZero", + "SearchSpaceZero", + &asn_OP_NativeInteger, + asn_DEF_SearchSpaceZero_tags_1, + sizeof(asn_DEF_SearchSpaceZero_tags_1) + /sizeof(asn_DEF_SearchSpaceZero_tags_1[0]), /* 1 */ + asn_DEF_SearchSpaceZero_tags_1, /* Same as above */ + sizeof(asn_DEF_SearchSpaceZero_tags_1) + /sizeof(asn_DEF_SearchSpaceZero_tags_1[0]), /* 1 */ + { &asn_OER_type_SearchSpaceZero_constr_1, &asn_PER_type_SearchSpaceZero_constr_1, SearchSpaceZero_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SearchSpaceZero.h b/src/codec_utils/RRC/SearchSpaceZero.h new file mode 100644 index 000000000..29a69dc1c --- /dev/null +++ b/src/codec_utils/RRC/SearchSpaceZero.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SearchSpaceZero_H_ +#define _SearchSpaceZero_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SearchSpaceZero */ +typedef long SearchSpaceZero_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SearchSpaceZero_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SearchSpaceZero; +asn_struct_free_f SearchSpaceZero_free; +asn_struct_print_f SearchSpaceZero_print; +asn_constr_check_f SearchSpaceZero_constraint; +ber_type_decoder_f SearchSpaceZero_decode_ber; +der_type_encoder_f SearchSpaceZero_encode_der; +xer_type_decoder_f SearchSpaceZero_decode_xer; +xer_type_encoder_f SearchSpaceZero_encode_xer; +oer_type_decoder_f SearchSpaceZero_decode_oer; +oer_type_encoder_f SearchSpaceZero_encode_oer; +per_type_decoder_f SearchSpaceZero_decode_uper; +per_type_encoder_f SearchSpaceZero_encode_uper; +per_type_decoder_f SearchSpaceZero_decode_aper; +per_type_encoder_f SearchSpaceZero_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SearchSpaceZero_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityAlgorithmConfig.c b/src/codec_utils/RRC/SecurityAlgorithmConfig.c new file mode 100644 index 000000000..4fb8c0efe --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityAlgorithmConfig.h" + +asn_TYPE_member_t asn_MBR_SecurityAlgorithmConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityAlgorithmConfig, cipheringAlgorithm), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CipheringAlgorithm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cipheringAlgorithm" + }, + { ATF_POINTER, 1, offsetof(struct SecurityAlgorithmConfig, integrityProtAlgorithm), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_IntegrityProtAlgorithm, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "integrityProtAlgorithm" + }, +}; +static const int asn_MAP_SecurityAlgorithmConfig_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_SecurityAlgorithmConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityAlgorithmConfig_specs_1 = { + sizeof(struct SecurityAlgorithmConfig), + offsetof(struct SecurityAlgorithmConfig, _asn_ctx), + asn_MAP_SecurityAlgorithmConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SecurityAlgorithmConfig_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SecurityAlgorithmConfig = { + "SecurityAlgorithmConfig", + "SecurityAlgorithmConfig", + &asn_OP_SEQUENCE, + asn_DEF_SecurityAlgorithmConfig_tags_1, + sizeof(asn_DEF_SecurityAlgorithmConfig_tags_1) + /sizeof(asn_DEF_SecurityAlgorithmConfig_tags_1[0]), /* 1 */ + asn_DEF_SecurityAlgorithmConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityAlgorithmConfig_tags_1) + /sizeof(asn_DEF_SecurityAlgorithmConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityAlgorithmConfig_1, + 2, /* Elements count */ + &asn_SPC_SecurityAlgorithmConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityAlgorithmConfig.h b/src/codec_utils/RRC/SecurityAlgorithmConfig.h new file mode 100644 index 000000000..3b8f4a811 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityAlgorithmConfig_H_ +#define _SecurityAlgorithmConfig_H_ + + +#include + +/* Including external dependencies */ +#include "CipheringAlgorithm.h" +#include "IntegrityProtAlgorithm.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecurityAlgorithmConfig */ +typedef struct SecurityAlgorithmConfig { + CipheringAlgorithm_t cipheringAlgorithm; + IntegrityProtAlgorithm_t *integrityProtAlgorithm; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SecurityAlgorithmConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityAlgorithmConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityAlgorithmConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityAlgorithmConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityAlgorithmConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityConfig.c b/src/codec_utils/RRC/SecurityConfig.c new file mode 100644 index 000000000..02a3054d0 --- /dev/null +++ b/src/codec_utils/RRC/SecurityConfig.c @@ -0,0 +1,112 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityConfig.h" + +#include "SecurityAlgorithmConfig.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_keyToUse_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_keyToUse_value2enum_3[] = { + { 0, 6, "master" }, + { 1, 9, "secondary" } +}; +static const unsigned int asn_MAP_keyToUse_enum2value_3[] = { + 0, /* master(0) */ + 1 /* secondary(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_keyToUse_specs_3 = { + asn_MAP_keyToUse_value2enum_3, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_keyToUse_3 = { + "keyToUse", + "keyToUse", + &asn_OP_NativeEnumerated, + asn_DEF_keyToUse_tags_3, + sizeof(asn_DEF_keyToUse_tags_3) + /sizeof(asn_DEF_keyToUse_tags_3[0]) - 1, /* 1 */ + asn_DEF_keyToUse_tags_3, /* Same as above */ + sizeof(asn_DEF_keyToUse_tags_3) + /sizeof(asn_DEF_keyToUse_tags_3[0]), /* 2 */ + { &asn_OER_type_keyToUse_constr_3, &asn_PER_type_keyToUse_constr_3, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_keyToUse_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityConfig_1[] = { + { ATF_POINTER, 2, offsetof(struct SecurityConfig, securityAlgorithmConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityAlgorithmConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityAlgorithmConfig" + }, + { ATF_POINTER, 1, offsetof(struct SecurityConfig, keyToUse), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_keyToUse_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "keyToUse" + }, +}; +static const int asn_MAP_SecurityConfig_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SecurityConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityConfig_specs_1 = { + sizeof(struct SecurityConfig), + offsetof(struct SecurityConfig, _asn_ctx), + asn_MAP_SecurityConfig_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SecurityConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SecurityConfig = { + "SecurityConfig", + "SecurityConfig", + &asn_OP_SEQUENCE, + asn_DEF_SecurityConfig_tags_1, + sizeof(asn_DEF_SecurityConfig_tags_1) + /sizeof(asn_DEF_SecurityConfig_tags_1[0]), /* 1 */ + asn_DEF_SecurityConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityConfig_tags_1) + /sizeof(asn_DEF_SecurityConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityConfig_1, + 2, /* Elements count */ + &asn_SPC_SecurityConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityConfig.h b/src/codec_utils/RRC/SecurityConfig.h new file mode 100644 index 000000000..fde935a3c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityConfig_H_ +#define _SecurityConfig_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SecurityConfig__keyToUse { + SecurityConfig__keyToUse_master = 0, + SecurityConfig__keyToUse_secondary = 1 +} e_SecurityConfig__keyToUse; + +/* Forward declarations */ +struct SecurityAlgorithmConfig; + +/* SecurityConfig */ +typedef struct SecurityConfig { + struct 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; +} SecurityConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_keyToUse_3; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityConfigSMC.c b/src/codec_utils/RRC/SecurityConfigSMC.c new file mode 100644 index 000000000..6e9ee70db --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityConfigSMC.h" + +asn_TYPE_member_t asn_MBR_SecurityConfigSMC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityConfigSMC, securityAlgorithmConfig), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityAlgorithmConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityAlgorithmConfig" + }, +}; +static const ber_tlv_tag_t asn_DEF_SecurityConfigSMC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SecurityConfigSMC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* securityAlgorithmConfig */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SecurityConfigSMC_specs_1 = { + sizeof(struct SecurityConfigSMC), + offsetof(struct SecurityConfigSMC, _asn_ctx), + asn_MAP_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_SecurityConfigSMC = { + "SecurityConfigSMC", + "SecurityConfigSMC", + &asn_OP_SEQUENCE, + asn_DEF_SecurityConfigSMC_tags_1, + sizeof(asn_DEF_SecurityConfigSMC_tags_1) + /sizeof(asn_DEF_SecurityConfigSMC_tags_1[0]), /* 1 */ + asn_DEF_SecurityConfigSMC_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityConfigSMC_tags_1) + /sizeof(asn_DEF_SecurityConfigSMC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityConfigSMC_1, + 1, /* Elements count */ + &asn_SPC_SecurityConfigSMC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityConfigSMC.h b/src/codec_utils/RRC/SecurityConfigSMC.h new file mode 100644 index 000000000..8d29b05bf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityConfigSMC_H_ +#define _SecurityConfigSMC_H_ + + +#include + +/* Including external dependencies */ +#include "SecurityAlgorithmConfig.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecurityConfigSMC */ +typedef struct SecurityConfigSMC { + SecurityAlgorithmConfig_t securityAlgorithmConfig; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SecurityConfigSMC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityConfigSMC; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityConfigSMC_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityConfigSMC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityConfigSMC_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeCommand-IEs.c b/src/codec_utils/RRC/SecurityModeCommand-IEs.c new file mode 100644 index 000000000..9d3230499 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeCommand-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct SecurityModeCommand_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeCommand_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeCommand_IEs, securityConfigSMC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityConfigSMC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityConfigSMC" + }, + { ATF_POINTER, 2, offsetof(struct 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 SecurityModeCommand_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_SecurityModeCommand_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SecurityModeCommand_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeCommand_IEs_specs_1 = { + sizeof(struct SecurityModeCommand_IEs), + offsetof(struct SecurityModeCommand_IEs, _asn_ctx), + asn_MAP_SecurityModeCommand_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SecurityModeCommand_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SecurityModeCommand_IEs = { + "SecurityModeCommand-IEs", + "SecurityModeCommand-IEs", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeCommand_IEs_tags_1, + sizeof(asn_DEF_SecurityModeCommand_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeCommand_IEs_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeCommand_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeCommand_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeCommand_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeCommand_IEs_1, + 3, /* Elements count */ + &asn_SPC_SecurityModeCommand_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeCommand-IEs.h b/src/codec_utils/RRC/SecurityModeCommand-IEs.h new file mode 100644 index 000000000..57f971082 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeCommand_IEs_H_ +#define _SecurityModeCommand_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "SecurityConfigSMC.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecurityModeCommand-IEs */ +typedef struct SecurityModeCommand_IEs { + SecurityConfigSMC_t securityConfigSMC; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} SecurityModeCommand_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeCommand_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeCommand_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeCommand_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeCommand_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeCommand.c b/src/codec_utils/RRC/SecurityModeCommand.c new file mode 100644 index 000000000..a71e57d65 --- /dev/null +++ b/src/codec_utils/RRC/SecurityModeCommand.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeCommand.h" + +#include "SecurityModeCommand-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct SecurityModeCommand__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct SecurityModeCommand__criticalExtensions, choice.securityModeCommand), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeCommand_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeCommand" + }, + { ATF_POINTER, 0, offsetof(struct SecurityModeCommand__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct SecurityModeCommand__criticalExtensions), + offsetof(struct SecurityModeCommand__criticalExtensions, _asn_ctx), + offsetof(struct SecurityModeCommand__criticalExtensions, present), + sizeof(((struct SecurityModeCommand__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeCommand_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeCommand, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeCommand, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_SecurityModeCommand_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeCommand_specs_1 = { + sizeof(struct SecurityModeCommand), + offsetof(struct SecurityModeCommand, _asn_ctx), + asn_MAP_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_SecurityModeCommand = { + "SecurityModeCommand", + "SecurityModeCommand", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeCommand_tags_1, + sizeof(asn_DEF_SecurityModeCommand_tags_1) + /sizeof(asn_DEF_SecurityModeCommand_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeCommand_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeCommand_tags_1) + /sizeof(asn_DEF_SecurityModeCommand_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeCommand_1, + 2, /* Elements count */ + &asn_SPC_SecurityModeCommand_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeCommand.h b/src/codec_utils/RRC/SecurityModeCommand.h new file mode 100644 index 000000000..8e61058f0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeCommand_H_ +#define _SecurityModeCommand_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SecurityModeCommand__criticalExtensions_PR { + SecurityModeCommand__criticalExtensions_PR_NOTHING, /* No components present */ + SecurityModeCommand__criticalExtensions_PR_securityModeCommand, + SecurityModeCommand__criticalExtensions_PR_criticalExtensionsFuture +} SecurityModeCommand__criticalExtensions_PR; + +/* Forward declarations */ +struct SecurityModeCommand_IEs; + +/* SecurityModeCommand */ +typedef struct SecurityModeCommand { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct SecurityModeCommand__criticalExtensions { + SecurityModeCommand__criticalExtensions_PR present; + union SecurityModeCommand__criticalExtensions_u { + struct SecurityModeCommand_IEs *securityModeCommand; + struct 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; +} SecurityModeCommand_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeCommand; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeCommand_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeCommand_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeCommand_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeComplete-IEs.c b/src/codec_utils/RRC/SecurityModeComplete-IEs.c new file mode 100644 index 000000000..38b025419 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeComplete-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct SecurityModeComplete_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeComplete_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct 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 SecurityModeComplete_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_SecurityModeComplete_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SecurityModeComplete_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeComplete_IEs_specs_1 = { + sizeof(struct SecurityModeComplete_IEs), + offsetof(struct SecurityModeComplete_IEs, _asn_ctx), + asn_MAP_SecurityModeComplete_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SecurityModeComplete_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SecurityModeComplete_IEs = { + "SecurityModeComplete-IEs", + "SecurityModeComplete-IEs", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeComplete_IEs_tags_1, + sizeof(asn_DEF_SecurityModeComplete_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeComplete_IEs_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeComplete_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeComplete_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeComplete_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeComplete_IEs_1, + 2, /* Elements count */ + &asn_SPC_SecurityModeComplete_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeComplete-IEs.h b/src/codec_utils/RRC/SecurityModeComplete-IEs.h new file mode 100644 index 000000000..450a99cbc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeComplete_IEs_H_ +#define _SecurityModeComplete_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecurityModeComplete-IEs */ +typedef struct SecurityModeComplete_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} SecurityModeComplete_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeComplete_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeComplete_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeComplete_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeComplete_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeComplete.c b/src/codec_utils/RRC/SecurityModeComplete.c new file mode 100644 index 000000000..f91ef78de --- /dev/null +++ b/src/codec_utils/RRC/SecurityModeComplete.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeComplete.h" + +#include "SecurityModeComplete-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct SecurityModeComplete__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct SecurityModeComplete__criticalExtensions, choice.securityModeComplete), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeComplete_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeComplete" + }, + { ATF_POINTER, 0, offsetof(struct SecurityModeComplete__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct SecurityModeComplete__criticalExtensions), + offsetof(struct SecurityModeComplete__criticalExtensions, _asn_ctx), + offsetof(struct SecurityModeComplete__criticalExtensions, present), + sizeof(((struct SecurityModeComplete__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeComplete_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeComplete, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeComplete, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_SecurityModeComplete_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeComplete_specs_1 = { + sizeof(struct SecurityModeComplete), + offsetof(struct SecurityModeComplete, _asn_ctx), + asn_MAP_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_SecurityModeComplete = { + "SecurityModeComplete", + "SecurityModeComplete", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeComplete_tags_1, + sizeof(asn_DEF_SecurityModeComplete_tags_1) + /sizeof(asn_DEF_SecurityModeComplete_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeComplete_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeComplete_tags_1) + /sizeof(asn_DEF_SecurityModeComplete_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeComplete_1, + 2, /* Elements count */ + &asn_SPC_SecurityModeComplete_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeComplete.h b/src/codec_utils/RRC/SecurityModeComplete.h new file mode 100644 index 000000000..070215cf3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeComplete_H_ +#define _SecurityModeComplete_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SecurityModeComplete__criticalExtensions_PR { + SecurityModeComplete__criticalExtensions_PR_NOTHING, /* No components present */ + SecurityModeComplete__criticalExtensions_PR_securityModeComplete, + SecurityModeComplete__criticalExtensions_PR_criticalExtensionsFuture +} SecurityModeComplete__criticalExtensions_PR; + +/* Forward declarations */ +struct SecurityModeComplete_IEs; + +/* SecurityModeComplete */ +typedef struct SecurityModeComplete { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct SecurityModeComplete__criticalExtensions { + SecurityModeComplete__criticalExtensions_PR present; + union SecurityModeComplete__criticalExtensions_u { + struct SecurityModeComplete_IEs *securityModeComplete; + struct 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; +} SecurityModeComplete_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeComplete; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeComplete_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeComplete_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeComplete_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeFailure-IEs.c b/src/codec_utils/RRC/SecurityModeFailure-IEs.c new file mode 100644 index 000000000..88c359cfe --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeFailure-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct SecurityModeFailure_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeFailure_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct 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 SecurityModeFailure_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_SecurityModeFailure_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_SecurityModeFailure_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeFailure_IEs_specs_1 = { + sizeof(struct SecurityModeFailure_IEs), + offsetof(struct SecurityModeFailure_IEs, _asn_ctx), + asn_MAP_SecurityModeFailure_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_SecurityModeFailure_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SecurityModeFailure_IEs = { + "SecurityModeFailure-IEs", + "SecurityModeFailure-IEs", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeFailure_IEs_tags_1, + sizeof(asn_DEF_SecurityModeFailure_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeFailure_IEs_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeFailure_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeFailure_IEs_tags_1) + /sizeof(asn_DEF_SecurityModeFailure_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeFailure_IEs_1, + 2, /* Elements count */ + &asn_SPC_SecurityModeFailure_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeFailure-IEs.h b/src/codec_utils/RRC/SecurityModeFailure-IEs.h new file mode 100644 index 000000000..b58f7b5ac --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeFailure_IEs_H_ +#define _SecurityModeFailure_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SecurityModeFailure-IEs */ +typedef struct SecurityModeFailure_IEs { + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} SecurityModeFailure_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeFailure_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeFailure_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeFailure_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/SecurityModeFailure.c b/src/codec_utils/RRC/SecurityModeFailure.c new file mode 100644 index 000000000..f4c707e7f --- /dev/null +++ b/src/codec_utils/RRC/SecurityModeFailure.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SecurityModeFailure.h" + +#include "SecurityModeFailure-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct SecurityModeFailure__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct SecurityModeFailure__criticalExtensions, choice.securityModeFailure), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeFailure_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeFailure" + }, + { ATF_POINTER, 0, offsetof(struct SecurityModeFailure__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct SecurityModeFailure__criticalExtensions), + offsetof(struct SecurityModeFailure__criticalExtensions, _asn_ctx), + offsetof(struct SecurityModeFailure__criticalExtensions, present), + sizeof(((struct SecurityModeFailure__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SecurityModeFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeFailure, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct SecurityModeFailure, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_SecurityModeFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SecurityModeFailure_specs_1 = { + sizeof(struct SecurityModeFailure), + offsetof(struct SecurityModeFailure, _asn_ctx), + asn_MAP_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_SecurityModeFailure = { + "SecurityModeFailure", + "SecurityModeFailure", + &asn_OP_SEQUENCE, + asn_DEF_SecurityModeFailure_tags_1, + sizeof(asn_DEF_SecurityModeFailure_tags_1) + /sizeof(asn_DEF_SecurityModeFailure_tags_1[0]), /* 1 */ + asn_DEF_SecurityModeFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_SecurityModeFailure_tags_1) + /sizeof(asn_DEF_SecurityModeFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SecurityModeFailure_1, + 2, /* Elements count */ + &asn_SPC_SecurityModeFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SecurityModeFailure.h b/src/codec_utils/RRC/SecurityModeFailure.h new file mode 100644 index 000000000..b9615690b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SecurityModeFailure_H_ +#define _SecurityModeFailure_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SecurityModeFailure__criticalExtensions_PR { + SecurityModeFailure__criticalExtensions_PR_NOTHING, /* No components present */ + SecurityModeFailure__criticalExtensions_PR_securityModeFailure, + SecurityModeFailure__criticalExtensions_PR_criticalExtensionsFuture +} SecurityModeFailure__criticalExtensions_PR; + +/* Forward declarations */ +struct SecurityModeFailure_IEs; + +/* SecurityModeFailure */ +typedef struct SecurityModeFailure { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct SecurityModeFailure__criticalExtensions { + SecurityModeFailure__criticalExtensions_PR present; + union SecurityModeFailure__criticalExtensions_u { + struct SecurityModeFailure_IEs *securityModeFailure; + struct 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; +} SecurityModeFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SecurityModeFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_SecurityModeFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_SecurityModeFailure_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SecurityModeFailure_H_ */ +#include diff --git a/src/codec_utils/RRC/ServCellIndex.c b/src/codec_utils/RRC/ServCellIndex.c new file mode 100644 index 000000000..7a8bc6e0c --- /dev/null +++ b/src/codec_utils/RRC/ServCellIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServCellIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ServCellIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ServCellIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ServCellIndex = { + "ServCellIndex", + "ServCellIndex", + &asn_OP_NativeInteger, + asn_DEF_ServCellIndex_tags_1, + sizeof(asn_DEF_ServCellIndex_tags_1) + /sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */ + asn_DEF_ServCellIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_ServCellIndex_tags_1) + /sizeof(asn_DEF_ServCellIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_ServCellIndex_constr_1, &asn_PER_type_ServCellIndex_constr_1, ServCellIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ServCellIndex.h b/src/codec_utils/RRC/ServCellIndex.h new file mode 100644 index 000000000..baf43e379 --- /dev/null +++ b/src/codec_utils/RRC/ServCellIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServCellIndex_H_ +#define _ServCellIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ServCellIndex */ +typedef long ServCellIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ServCellIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ServCellIndex; +asn_struct_free_f ServCellIndex_free; +asn_struct_print_f ServCellIndex_print; +asn_constr_check_f ServCellIndex_constraint; +ber_type_decoder_f ServCellIndex_decode_ber; +der_type_encoder_f ServCellIndex_encode_der; +xer_type_decoder_f ServCellIndex_decode_xer; +xer_type_encoder_f ServCellIndex_encode_xer; +oer_type_decoder_f ServCellIndex_decode_oer; +oer_type_encoder_f ServCellIndex_encode_oer; +per_type_decoder_f ServCellIndex_decode_uper; +per_type_encoder_f ServCellIndex_encode_uper; +per_type_decoder_f ServCellIndex_decode_aper; +per_type_encoder_f ServCellIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServCellIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/ServingCellConfig.c b/src/codec_utils/RRC/ServingCellConfig.c new file mode 100644 index 000000000..359e32552 --- /dev/null +++ b/src/codec_utils/RRC/ServingCellConfig.c @@ -0,0 +1,1221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServingCellConfig.h" + +#include "TDD-UL-DL-ConfigDedicated.h" +#include "BWP-DownlinkDedicated.h" +#include "UplinkConfig.h" +#include "CrossCarrierSchedulingConfig.h" +#include "BWP-Downlink.h" +#include "PDCCH-ServingCellConfig.h" +#include "PDSCH-ServingCellConfig.h" +#include "CSI-MeasConfig.h" +#include "RateMatchPatternLTE-CRS.h" +#include "RateMatchPattern.h" +#include "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_rateMatchPatternToAddModList_constraint_79(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_rateMatchPatternToReleaseList_constraint_79(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_downlinkChannelBW_PerSCS_List_constraint_79(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_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_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_oer_constraints_t asn_OER_type_downlinkBWP_ToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_downlinkBWP_ToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bwp_InactivityTimer_constr_9 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pdcch_ServingCellConfig_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdcch_ServingCellConfig_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_oer_constraints_t asn_OER_type_pdsch_ServingCellConfig_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pdsch_ServingCellConfig_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_oer_constraints_t asn_OER_type_csi_MeasConfig_constr_50 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_csi_MeasConfig_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_sCellDeactivationTimer_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_sCellDeactivationTimer_constr_53 CC_NOTUSED = { + { APC_CONSTRAINED, 4, 4, 0, 15 } /* (0..15) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_dummy_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_dummy_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_oer_constraints_t asn_OER_type_pathlossReferenceLinking_constr_74 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pathlossReferenceLinking_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_oer_constraints_t asn_OER_type_lte_CRS_ToMatchAround_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_lte_CRS_ToMatchAround_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_oer_constraints_t asn_OER_type_rateMatchPatternToAddModList_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_rateMatchPatternToAddModList_constr_83 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_oer_constraints_t asn_OER_type_rateMatchPatternToReleaseList_constr_85 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_rateMatchPatternToReleaseList_constr_85 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_oer_constraints_t asn_OER_type_downlinkChannelBW_PerSCS_List_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_downlinkChannelBW_PerSCS_List_constr_87 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_oer_constraints_t asn_OER_memb_rateMatchPatternToAddModList_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_rateMatchPatternToAddModList_constr_83 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_oer_constraints_t asn_OER_memb_rateMatchPatternToReleaseList_constr_85 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_rateMatchPatternToReleaseList_constr_85 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_oer_constraints_t asn_OER_memb_downlinkChannelBW_PerSCS_List_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_downlinkChannelBW_PerSCS_List_constr_87 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_oer_constraints_t asn_OER_memb_downlinkBWP_ToReleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_downlinkBWP_ToAddModList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_downlinkBWP_ToReleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_downlinkBWP_ToReleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_downlinkBWP_ToReleaseList_specs_4 = { + sizeof(struct ServingCellConfig__downlinkBWP_ToReleaseList), + offsetof(struct ServingCellConfig__downlinkBWP_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_downlinkBWP_ToReleaseList_4 = { + "downlinkBWP-ToReleaseList", + "downlinkBWP-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_downlinkBWP_ToReleaseList_tags_4, + sizeof(asn_DEF_downlinkBWP_ToReleaseList_tags_4) + /sizeof(asn_DEF_downlinkBWP_ToReleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_downlinkBWP_ToReleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_downlinkBWP_ToReleaseList_tags_4) + /sizeof(asn_DEF_downlinkBWP_ToReleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_downlinkBWP_ToReleaseList_constr_4, &asn_PER_type_downlinkBWP_ToReleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_downlinkBWP_ToReleaseList_4, + 1, /* Single element */ + &asn_SPC_downlinkBWP_ToReleaseList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_downlinkBWP_ToAddModList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BWP_Downlink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_downlinkBWP_ToAddModList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_downlinkBWP_ToAddModList_specs_6 = { + sizeof(struct ServingCellConfig__downlinkBWP_ToAddModList), + offsetof(struct ServingCellConfig__downlinkBWP_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_downlinkBWP_ToAddModList_6 = { + "downlinkBWP-ToAddModList", + "downlinkBWP-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_downlinkBWP_ToAddModList_tags_6, + sizeof(asn_DEF_downlinkBWP_ToAddModList_tags_6) + /sizeof(asn_DEF_downlinkBWP_ToAddModList_tags_6[0]) - 1, /* 1 */ + asn_DEF_downlinkBWP_ToAddModList_tags_6, /* Same as above */ + sizeof(asn_DEF_downlinkBWP_ToAddModList_tags_6) + /sizeof(asn_DEF_downlinkBWP_ToAddModList_tags_6[0]), /* 2 */ + { &asn_OER_type_downlinkBWP_ToAddModList_constr_6, &asn_PER_type_downlinkBWP_ToAddModList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_downlinkBWP_ToAddModList_6, + 1, /* Single element */ + &asn_SPC_downlinkBWP_ToAddModList_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_bwp_InactivityTimer_specs_9 = { + asn_MAP_bwp_InactivityTimer_value2enum_9, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bwp_InactivityTimer_9 = { + "bwp-InactivityTimer", + "bwp-InactivityTimer", + &asn_OP_NativeEnumerated, + asn_DEF_bwp_InactivityTimer_tags_9, + sizeof(asn_DEF_bwp_InactivityTimer_tags_9) + /sizeof(asn_DEF_bwp_InactivityTimer_tags_9[0]) - 1, /* 1 */ + asn_DEF_bwp_InactivityTimer_tags_9, /* Same as above */ + sizeof(asn_DEF_bwp_InactivityTimer_tags_9) + /sizeof(asn_DEF_bwp_InactivityTimer_tags_9[0]), /* 2 */ + { &asn_OER_type_bwp_InactivityTimer_constr_9, &asn_PER_type_bwp_InactivityTimer_constr_9, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bwp_InactivityTimer_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdcch_ServingCellConfig_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfig__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 ServingCellConfig__pdcch_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdcch_ServingCellConfig_tag2el_44[] = { + { (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_pdcch_ServingCellConfig_specs_44 = { + sizeof(struct ServingCellConfig__pdcch_ServingCellConfig), + offsetof(struct ServingCellConfig__pdcch_ServingCellConfig, _asn_ctx), + offsetof(struct ServingCellConfig__pdcch_ServingCellConfig, present), + sizeof(((struct ServingCellConfig__pdcch_ServingCellConfig *)0)->present), + asn_MAP_pdcch_ServingCellConfig_tag2el_44, + 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_pdcch_ServingCellConfig_44 = { + "pdcch-ServingCellConfig", + "pdcch-ServingCellConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdcch_ServingCellConfig_constr_44, &asn_PER_type_pdcch_ServingCellConfig_constr_44, CHOICE_constraint }, + asn_MBR_pdcch_ServingCellConfig_44, + 2, /* Elements count */ + &asn_SPC_pdcch_ServingCellConfig_specs_44 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pdsch_ServingCellConfig_47[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfig__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 ServingCellConfig__pdsch_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pdsch_ServingCellConfig_tag2el_47[] = { + { (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_pdsch_ServingCellConfig_specs_47 = { + sizeof(struct ServingCellConfig__pdsch_ServingCellConfig), + offsetof(struct ServingCellConfig__pdsch_ServingCellConfig, _asn_ctx), + offsetof(struct ServingCellConfig__pdsch_ServingCellConfig, present), + sizeof(((struct ServingCellConfig__pdsch_ServingCellConfig *)0)->present), + asn_MAP_pdsch_ServingCellConfig_tag2el_47, + 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_pdsch_ServingCellConfig_47 = { + "pdsch-ServingCellConfig", + "pdsch-ServingCellConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pdsch_ServingCellConfig_constr_47, &asn_PER_type_pdsch_ServingCellConfig_constr_47, CHOICE_constraint }, + asn_MBR_pdsch_ServingCellConfig_47, + 2, /* Elements count */ + &asn_SPC_pdsch_ServingCellConfig_specs_47 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_csi_MeasConfig_50[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfig__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 ServingCellConfig__csi_MeasConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_MeasConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_csi_MeasConfig_tag2el_50[] = { + { (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_csi_MeasConfig_specs_50 = { + sizeof(struct ServingCellConfig__csi_MeasConfig), + offsetof(struct ServingCellConfig__csi_MeasConfig, _asn_ctx), + offsetof(struct ServingCellConfig__csi_MeasConfig, present), + sizeof(((struct ServingCellConfig__csi_MeasConfig *)0)->present), + asn_MAP_csi_MeasConfig_tag2el_50, + 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_csi_MeasConfig_50 = { + "csi-MeasConfig", + "csi-MeasConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_csi_MeasConfig_constr_50, &asn_PER_type_csi_MeasConfig_constr_50, CHOICE_constraint }, + asn_MBR_csi_MeasConfig_50, + 2, /* Elements count */ + &asn_SPC_csi_MeasConfig_specs_50 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sCellDeactivationTimer_value2enum_53[] = { + { 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_sCellDeactivationTimer_enum2value_53[] = { + 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_sCellDeactivationTimer_specs_53 = { + asn_MAP_sCellDeactivationTimer_value2enum_53, /* "tag" => N; sorted by tag */ + asn_MAP_sCellDeactivationTimer_enum2value_53, /* 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_sCellDeactivationTimer_tags_53[] = { + (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_sCellDeactivationTimer_53 = { + "sCellDeactivationTimer", + "sCellDeactivationTimer", + &asn_OP_NativeEnumerated, + asn_DEF_sCellDeactivationTimer_tags_53, + sizeof(asn_DEF_sCellDeactivationTimer_tags_53) + /sizeof(asn_DEF_sCellDeactivationTimer_tags_53[0]) - 1, /* 1 */ + asn_DEF_sCellDeactivationTimer_tags_53, /* Same as above */ + sizeof(asn_DEF_sCellDeactivationTimer_tags_53) + /sizeof(asn_DEF_sCellDeactivationTimer_tags_53[0]), /* 2 */ + { &asn_OER_type_sCellDeactivationTimer_constr_53, &asn_PER_type_sCellDeactivationTimer_constr_53, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sCellDeactivationTimer_specs_53 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dummy_value2enum_72[] = { + { 0, 7, "enabled" } +}; +static const unsigned int asn_MAP_dummy_enum2value_72[] = { + 0 /* enabled(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dummy_specs_72 = { + asn_MAP_dummy_value2enum_72, /* "tag" => N; sorted by tag */ + asn_MAP_dummy_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_dummy_tags_72[] = { + (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_dummy_72 = { + "dummy", + "dummy", + &asn_OP_NativeEnumerated, + asn_DEF_dummy_tags_72, + sizeof(asn_DEF_dummy_tags_72) + /sizeof(asn_DEF_dummy_tags_72[0]) - 1, /* 1 */ + asn_DEF_dummy_tags_72, /* Same as above */ + sizeof(asn_DEF_dummy_tags_72) + /sizeof(asn_DEF_dummy_tags_72[0]), /* 2 */ + { &asn_OER_type_dummy_constr_72, &asn_PER_type_dummy_constr_72, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dummy_specs_72 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_pathlossReferenceLinking_value2enum_74[] = { + { 0, 5, "pCell" }, + { 1, 5, "sCell" } +}; +static const unsigned int asn_MAP_pathlossReferenceLinking_enum2value_74[] = { + 0, /* pCell(0) */ + 1 /* sCell(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_pathlossReferenceLinking_specs_74 = { + asn_MAP_pathlossReferenceLinking_value2enum_74, /* "tag" => N; sorted by tag */ + asn_MAP_pathlossReferenceLinking_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_pathlossReferenceLinking_tags_74[] = { + (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_pathlossReferenceLinking_74 = { + "pathlossReferenceLinking", + "pathlossReferenceLinking", + &asn_OP_NativeEnumerated, + asn_DEF_pathlossReferenceLinking_tags_74, + sizeof(asn_DEF_pathlossReferenceLinking_tags_74) + /sizeof(asn_DEF_pathlossReferenceLinking_tags_74[0]) - 1, /* 1 */ + asn_DEF_pathlossReferenceLinking_tags_74, /* Same as above */ + sizeof(asn_DEF_pathlossReferenceLinking_tags_74) + /sizeof(asn_DEF_pathlossReferenceLinking_tags_74[0]), /* 2 */ + { &asn_OER_type_pathlossReferenceLinking_constr_74, &asn_PER_type_pathlossReferenceLinking_constr_74, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_pathlossReferenceLinking_specs_74 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_lte_CRS_ToMatchAround_80[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfig__ext1__lte_CRS_ToMatchAround, 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 ServingCellConfig__ext1__lte_CRS_ToMatchAround, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternLTE_CRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_lte_CRS_ToMatchAround_tag2el_80[] = { + { (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_lte_CRS_ToMatchAround_specs_80 = { + sizeof(struct ServingCellConfig__ext1__lte_CRS_ToMatchAround), + offsetof(struct ServingCellConfig__ext1__lte_CRS_ToMatchAround, _asn_ctx), + offsetof(struct ServingCellConfig__ext1__lte_CRS_ToMatchAround, present), + sizeof(((struct ServingCellConfig__ext1__lte_CRS_ToMatchAround *)0)->present), + asn_MAP_lte_CRS_ToMatchAround_tag2el_80, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_lte_CRS_ToMatchAround_80 = { + "lte-CRS-ToMatchAround", + "lte-CRS-ToMatchAround", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_lte_CRS_ToMatchAround_constr_80, &asn_PER_type_lte_CRS_ToMatchAround_constr_80, CHOICE_constraint }, + asn_MBR_lte_CRS_ToMatchAround_80, + 2, /* Elements count */ + &asn_SPC_lte_CRS_ToMatchAround_specs_80 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToAddModList_83[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToAddModList_tags_83[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToAddModList_specs_83 = { + sizeof(struct ServingCellConfig__ext1__rateMatchPatternToAddModList), + offsetof(struct ServingCellConfig__ext1__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToAddModList_83 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToAddModList_tags_83, + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_83) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_83[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToAddModList_tags_83, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_83) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_83[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToAddModList_constr_83, &asn_PER_type_rateMatchPatternToAddModList_constr_83, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToAddModList_83, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToAddModList_specs_83 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToReleaseList_85[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToReleaseList_tags_85[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToReleaseList_specs_85 = { + sizeof(struct ServingCellConfig__ext1__rateMatchPatternToReleaseList), + offsetof(struct ServingCellConfig__ext1__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToReleaseList_85 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToReleaseList_tags_85, + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_85) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_85[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToReleaseList_tags_85, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_85) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_85[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToReleaseList_constr_85, &asn_PER_type_rateMatchPatternToReleaseList_constr_85, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToReleaseList_85, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToReleaseList_specs_85 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_downlinkChannelBW_PerSCS_List_87[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_downlinkChannelBW_PerSCS_List_tags_87[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_downlinkChannelBW_PerSCS_List_specs_87 = { + sizeof(struct ServingCellConfig__ext1__downlinkChannelBW_PerSCS_List), + offsetof(struct 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_downlinkChannelBW_PerSCS_List_87 = { + "downlinkChannelBW-PerSCS-List", + "downlinkChannelBW-PerSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_downlinkChannelBW_PerSCS_List_tags_87, + sizeof(asn_DEF_downlinkChannelBW_PerSCS_List_tags_87) + /sizeof(asn_DEF_downlinkChannelBW_PerSCS_List_tags_87[0]) - 1, /* 1 */ + asn_DEF_downlinkChannelBW_PerSCS_List_tags_87, /* Same as above */ + sizeof(asn_DEF_downlinkChannelBW_PerSCS_List_tags_87) + /sizeof(asn_DEF_downlinkChannelBW_PerSCS_List_tags_87[0]), /* 2 */ + { &asn_OER_type_downlinkChannelBW_PerSCS_List_constr_87, &asn_PER_type_downlinkChannelBW_PerSCS_List_constr_87, SEQUENCE_OF_constraint }, + asn_MBR_downlinkChannelBW_PerSCS_List_87, + 1, /* Single element */ + &asn_SPC_downlinkChannelBW_PerSCS_List_specs_87 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_79[] = { + { ATF_POINTER, 4, offsetof(struct ServingCellConfig__ext1, lte_CRS_ToMatchAround), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_lte_CRS_ToMatchAround_80, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lte-CRS-ToMatchAround" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfig__ext1, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_rateMatchPatternToAddModList_83, + 0, + { &asn_OER_memb_rateMatchPatternToAddModList_constr_83, &asn_PER_memb_rateMatchPatternToAddModList_constr_83, memb_rateMatchPatternToAddModList_constraint_79 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfig__ext1, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_rateMatchPatternToReleaseList_85, + 0, + { &asn_OER_memb_rateMatchPatternToReleaseList_constr_85, &asn_PER_memb_rateMatchPatternToReleaseList_constr_85, memb_rateMatchPatternToReleaseList_constraint_79 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfig__ext1, downlinkChannelBW_PerSCS_List), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_downlinkChannelBW_PerSCS_List_87, + 0, + { &asn_OER_memb_downlinkChannelBW_PerSCS_List_constr_87, &asn_PER_memb_downlinkChannelBW_PerSCS_List_constr_87, memb_downlinkChannelBW_PerSCS_List_constraint_79 }, + 0, 0, /* No default value */ + "downlinkChannelBW-PerSCS-List" + }, +}; +static const int asn_MAP_ext1_oms_79[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_79[] = { + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_79[] = { + { (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_ext1_specs_79 = { + sizeof(struct ServingCellConfig__ext1), + offsetof(struct ServingCellConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_79, + 4, /* Count of tags in the map */ + asn_MAP_ext1_oms_79, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_79 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_79, + sizeof(asn_DEF_ext1_tags_79) + /sizeof(asn_DEF_ext1_tags_79[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_79, /* Same as above */ + sizeof(asn_DEF_ext1_tags_79) + /sizeof(asn_DEF_ext1_tags_79[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_79, + 4, /* Elements count */ + &asn_SPC_ext1_specs_79 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ServingCellConfig_1[] = { + { ATF_POINTER, 14, offsetof(struct ServingCellConfig, tdd_UL_DL_ConfigurationDedicated), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_ConfigDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationDedicated" + }, + { ATF_POINTER, 13, offsetof(struct ServingCellConfig, initialDownlinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_DownlinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialDownlinkBWP" + }, + { ATF_POINTER, 12, offsetof(struct ServingCellConfig, downlinkBWP_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_downlinkBWP_ToReleaseList_4, + 0, + { &asn_OER_memb_downlinkBWP_ToReleaseList_constr_4, &asn_PER_memb_downlinkBWP_ToReleaseList_constr_4, memb_downlinkBWP_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "downlinkBWP-ToReleaseList" + }, + { ATF_POINTER, 11, offsetof(struct ServingCellConfig, downlinkBWP_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_downlinkBWP_ToAddModList_6, + 0, + { &asn_OER_memb_downlinkBWP_ToAddModList_constr_6, &asn_PER_memb_downlinkBWP_ToAddModList_constr_6, memb_downlinkBWP_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "downlinkBWP-ToAddModList" + }, + { ATF_POINTER, 10, offsetof(struct ServingCellConfig, firstActiveDownlinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstActiveDownlinkBWP-Id" + }, + { ATF_POINTER, 9, offsetof(struct ServingCellConfig, bwp_InactivityTimer), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bwp_InactivityTimer_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-InactivityTimer" + }, + { ATF_POINTER, 8, offsetof(struct ServingCellConfig, defaultDownlinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "defaultDownlinkBWP-Id" + }, + { ATF_POINTER, 7, offsetof(struct ServingCellConfig, uplinkConfig), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfig" + }, + { ATF_POINTER, 6, offsetof(struct ServingCellConfig, supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, + { ATF_POINTER, 5, offsetof(struct ServingCellConfig, pdcch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdcch_ServingCellConfig_44, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcch-ServingCellConfig" + }, + { ATF_POINTER, 4, offsetof(struct ServingCellConfig, pdsch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pdsch_ServingCellConfig_47, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdsch-ServingCellConfig" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfig, csi_MeasConfig), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_csi_MeasConfig_50, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-MeasConfig" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfig, sCellDeactivationTimer), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sCellDeactivationTimer_53, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sCellDeactivationTimer" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfig, crossCarrierSchedulingConfig), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CrossCarrierSchedulingConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "crossCarrierSchedulingConfig" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfig, tag_Id), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Id" + }, + { ATF_POINTER, 4, offsetof(struct ServingCellConfig, dummy), + (ASN_TAG_CLASS_CONTEXT | (15 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dummy_72, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfig, pathlossReferenceLinking), + (ASN_TAG_CLASS_CONTEXT | (16 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_pathlossReferenceLinking_74, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pathlossReferenceLinking" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfig, servingCellMO), + (ASN_TAG_CLASS_CONTEXT | (17 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellMO" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (18 << 2)), + 0, + &asn_DEF_ext1_79, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_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_ServingCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ServingCellConfig_specs_1 = { + sizeof(struct ServingCellConfig), + offsetof(struct ServingCellConfig, _asn_ctx), + asn_MAP_ServingCellConfig_tag2el_1, + 19, /* Count of tags in the map */ + asn_MAP_ServingCellConfig_oms_1, /* Optional members */ + 17, 1, /* Root/Additions */ + 18, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCellConfig = { + "ServingCellConfig", + "ServingCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_ServingCellConfig_tags_1, + sizeof(asn_DEF_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ServingCellConfig_tags_1[0]), /* 1 */ + asn_DEF_ServingCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_ServingCellConfig_tags_1) + /sizeof(asn_DEF_ServingCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ServingCellConfig_1, + 19, /* Elements count */ + &asn_SPC_ServingCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ServingCellConfig.h b/src/codec_utils/RRC/ServingCellConfig.h new file mode 100644 index 000000000..d9c7cfff2 --- /dev/null +++ b/src/codec_utils/RRC/ServingCellConfig.h @@ -0,0 +1,236 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServingCellConfig_H_ +#define _ServingCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include +#include "TAG-Id.h" +#include "MeasObjectId.h" +#include +#include +#include +#include +#include "RateMatchPatternId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCellConfig__bwp_InactivityTimer { + ServingCellConfig__bwp_InactivityTimer_ms2 = 0, + ServingCellConfig__bwp_InactivityTimer_ms3 = 1, + ServingCellConfig__bwp_InactivityTimer_ms4 = 2, + ServingCellConfig__bwp_InactivityTimer_ms5 = 3, + ServingCellConfig__bwp_InactivityTimer_ms6 = 4, + ServingCellConfig__bwp_InactivityTimer_ms8 = 5, + ServingCellConfig__bwp_InactivityTimer_ms10 = 6, + ServingCellConfig__bwp_InactivityTimer_ms20 = 7, + ServingCellConfig__bwp_InactivityTimer_ms30 = 8, + ServingCellConfig__bwp_InactivityTimer_ms40 = 9, + ServingCellConfig__bwp_InactivityTimer_ms50 = 10, + ServingCellConfig__bwp_InactivityTimer_ms60 = 11, + ServingCellConfig__bwp_InactivityTimer_ms80 = 12, + ServingCellConfig__bwp_InactivityTimer_ms100 = 13, + ServingCellConfig__bwp_InactivityTimer_ms200 = 14, + ServingCellConfig__bwp_InactivityTimer_ms300 = 15, + ServingCellConfig__bwp_InactivityTimer_ms500 = 16, + ServingCellConfig__bwp_InactivityTimer_ms750 = 17, + ServingCellConfig__bwp_InactivityTimer_ms1280 = 18, + ServingCellConfig__bwp_InactivityTimer_ms1920 = 19, + ServingCellConfig__bwp_InactivityTimer_ms2560 = 20, + ServingCellConfig__bwp_InactivityTimer_spare10 = 21, + ServingCellConfig__bwp_InactivityTimer_spare9 = 22, + ServingCellConfig__bwp_InactivityTimer_spare8 = 23, + ServingCellConfig__bwp_InactivityTimer_spare7 = 24, + ServingCellConfig__bwp_InactivityTimer_spare6 = 25, + ServingCellConfig__bwp_InactivityTimer_spare5 = 26, + ServingCellConfig__bwp_InactivityTimer_spare4 = 27, + ServingCellConfig__bwp_InactivityTimer_spare3 = 28, + ServingCellConfig__bwp_InactivityTimer_spare2 = 29, + ServingCellConfig__bwp_InactivityTimer_spare1 = 30 +} e_ServingCellConfig__bwp_InactivityTimer; +typedef enum ServingCellConfig__pdcch_ServingCellConfig_PR { + ServingCellConfig__pdcch_ServingCellConfig_PR_NOTHING, /* No components present */ + ServingCellConfig__pdcch_ServingCellConfig_PR_release, + ServingCellConfig__pdcch_ServingCellConfig_PR_setup +} ServingCellConfig__pdcch_ServingCellConfig_PR; +typedef enum ServingCellConfig__pdsch_ServingCellConfig_PR { + ServingCellConfig__pdsch_ServingCellConfig_PR_NOTHING, /* No components present */ + ServingCellConfig__pdsch_ServingCellConfig_PR_release, + ServingCellConfig__pdsch_ServingCellConfig_PR_setup +} ServingCellConfig__pdsch_ServingCellConfig_PR; +typedef enum ServingCellConfig__csi_MeasConfig_PR { + ServingCellConfig__csi_MeasConfig_PR_NOTHING, /* No components present */ + ServingCellConfig__csi_MeasConfig_PR_release, + ServingCellConfig__csi_MeasConfig_PR_setup +} ServingCellConfig__csi_MeasConfig_PR; +typedef enum ServingCellConfig__sCellDeactivationTimer { + ServingCellConfig__sCellDeactivationTimer_ms20 = 0, + ServingCellConfig__sCellDeactivationTimer_ms40 = 1, + ServingCellConfig__sCellDeactivationTimer_ms80 = 2, + ServingCellConfig__sCellDeactivationTimer_ms160 = 3, + ServingCellConfig__sCellDeactivationTimer_ms200 = 4, + ServingCellConfig__sCellDeactivationTimer_ms240 = 5, + ServingCellConfig__sCellDeactivationTimer_ms320 = 6, + ServingCellConfig__sCellDeactivationTimer_ms400 = 7, + ServingCellConfig__sCellDeactivationTimer_ms480 = 8, + ServingCellConfig__sCellDeactivationTimer_ms520 = 9, + ServingCellConfig__sCellDeactivationTimer_ms640 = 10, + ServingCellConfig__sCellDeactivationTimer_ms720 = 11, + ServingCellConfig__sCellDeactivationTimer_ms840 = 12, + ServingCellConfig__sCellDeactivationTimer_ms1280 = 13, + ServingCellConfig__sCellDeactivationTimer_spare2 = 14, + ServingCellConfig__sCellDeactivationTimer_spare1 = 15 +} e_ServingCellConfig__sCellDeactivationTimer; +typedef enum ServingCellConfig__dummy { + ServingCellConfig__dummy_enabled = 0 +} e_ServingCellConfig__dummy; +typedef enum ServingCellConfig__pathlossReferenceLinking { + ServingCellConfig__pathlossReferenceLinking_pCell = 0, + ServingCellConfig__pathlossReferenceLinking_sCell = 1 +} e_ServingCellConfig__pathlossReferenceLinking; +typedef enum ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR { + ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR_NOTHING, /* No components present */ + ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR_release, + ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR_setup +} ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR; + +/* Forward declarations */ +struct TDD_UL_DL_ConfigDedicated; +struct BWP_DownlinkDedicated; +struct UplinkConfig; +struct CrossCarrierSchedulingConfig; +struct BWP_Downlink; +struct PDCCH_ServingCellConfig; +struct PDSCH_ServingCellConfig; +struct CSI_MeasConfig; +struct RateMatchPatternLTE_CRS; +struct RateMatchPattern; +struct SCS_SpecificCarrier; + +/* ServingCellConfig */ +typedef struct ServingCellConfig { + struct TDD_UL_DL_ConfigDedicated *tdd_UL_DL_ConfigurationDedicated; /* OPTIONAL */ + struct BWP_DownlinkDedicated *initialDownlinkBWP; /* OPTIONAL */ + struct ServingCellConfig__downlinkBWP_ToReleaseList { + A_SEQUENCE_OF(BWP_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkBWP_ToReleaseList; + struct ServingCellConfig__downlinkBWP_ToAddModList { + A_SEQUENCE_OF(struct BWP_Downlink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *downlinkBWP_ToAddModList; + BWP_Id_t *firstActiveDownlinkBWP_Id; /* OPTIONAL */ + long *bwp_InactivityTimer; /* OPTIONAL */ + BWP_Id_t *defaultDownlinkBWP_Id; /* OPTIONAL */ + struct UplinkConfig *uplinkConfig; /* OPTIONAL */ + struct UplinkConfig *supplementaryUplink; /* OPTIONAL */ + struct ServingCellConfig__pdcch_ServingCellConfig { + ServingCellConfig__pdcch_ServingCellConfig_PR present; + union ServingCellConfig__pdcch_ServingCellConfig_u { + NULL_t release; + struct PDCCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdcch_ServingCellConfig; + struct ServingCellConfig__pdsch_ServingCellConfig { + ServingCellConfig__pdsch_ServingCellConfig_PR present; + union ServingCellConfig__pdsch_ServingCellConfig_u { + NULL_t release; + struct PDSCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pdsch_ServingCellConfig; + struct ServingCellConfig__csi_MeasConfig { + ServingCellConfig__csi_MeasConfig_PR present; + union ServingCellConfig__csi_MeasConfig_u { + NULL_t release; + struct CSI_MeasConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *csi_MeasConfig; + long *sCellDeactivationTimer; /* OPTIONAL */ + struct CrossCarrierSchedulingConfig *crossCarrierSchedulingConfig; /* OPTIONAL */ + TAG_Id_t tag_Id; + long *dummy; /* OPTIONAL */ + long *pathlossReferenceLinking; /* OPTIONAL */ + MeasObjectId_t *servingCellMO; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + struct ServingCellConfig__ext1 { + struct ServingCellConfig__ext1__lte_CRS_ToMatchAround { + ServingCellConfig__ext1__lte_CRS_ToMatchAround_PR present; + union ServingCellConfig__ext1__lte_CRS_ToMatchAround_u { + NULL_t release; + struct RateMatchPatternLTE_CRS *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *lte_CRS_ToMatchAround; + struct ServingCellConfig__ext1__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct ServingCellConfig__ext1__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + struct ServingCellConfig__ext1__downlinkChannelBW_PerSCS_List { + A_SEQUENCE_OF(struct 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; +} ServingCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_bwp_InactivityTimer_9; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sCellDeactivationTimer_53; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dummy_72; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_pathlossReferenceLinking_74; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_ServingCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_ServingCellConfig_1[19]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/ServingCellConfigCommon.c b/src/codec_utils/RRC/ServingCellConfigCommon.c new file mode 100644 index 000000000..027243032 --- /dev/null +++ b/src/codec_utils/RRC/ServingCellConfigCommon.c @@ -0,0 +1,780 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServingCellConfigCommon.h" + +#include "DownlinkConfigCommon.h" +#include "UplinkConfigCommon.h" +#include "TDD-UL-DL-ConfigCommon.h" +#include "RateMatchPatternLTE-CRS.h" +#include "RateMatchPattern.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_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_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_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_oer_constraints_t asn_OER_type_n_TimingAdvanceOffset_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_shortBitmap_constr_11 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_mediumBitmap_constr_12 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_longBitmap_constr_13 CC_NOTUSED = { + { 0, 0 }, + 64 /* (SIZE(64..64)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ssb_PositionsInBurst_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ssb_periodicityServingCell_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_TypeA_Position_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_lte_CRS_ToMatchAround_constr_26 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_lte_CRS_ToMatchAround_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_oer_constraints_t asn_OER_type_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_rateMatchPatternToAddModList_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_oer_constraints_t asn_OER_type_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_rateMatchPatternToReleaseList_constr_31 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_oer_constraints_t asn_OER_memb_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_rateMatchPatternToAddModList_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_oer_constraints_t asn_OER_memb_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_rateMatchPatternToReleaseList_constr_31 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_oer_constraints_t asn_OER_memb_ss_PBCH_BlockPower_constr_35 CC_NOTUSED = { + { 1, 0 } /* (-60..50) */, + -1}; +static asn_per_constraints_t asn_PER_memb_ss_PBCH_BlockPower_constr_35 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_n_TimingAdvanceOffset_value2enum_6[] = { + { 0, 2, "n0" }, + { 1, 6, "n25600" }, + { 2, 6, "n39936" } +}; +static const unsigned int asn_MAP_n_TimingAdvanceOffset_enum2value_6[] = { + 0, /* n0(0) */ + 1, /* n25600(1) */ + 2 /* n39936(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_n_TimingAdvanceOffset_specs_6 = { + asn_MAP_n_TimingAdvanceOffset_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n_TimingAdvanceOffset_6 = { + "n-TimingAdvanceOffset", + "n-TimingAdvanceOffset", + &asn_OP_NativeEnumerated, + asn_DEF_n_TimingAdvanceOffset_tags_6, + sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6) + /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6[0]) - 1, /* 1 */ + asn_DEF_n_TimingAdvanceOffset_tags_6, /* Same as above */ + sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6) + /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6[0]), /* 2 */ + { &asn_OER_type_n_TimingAdvanceOffset_constr_6, &asn_PER_type_n_TimingAdvanceOffset_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n_TimingAdvanceOffset_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_PositionsInBurst_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.shortBitmap), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_shortBitmap_constr_11, &asn_PER_memb_shortBitmap_constr_11, memb_shortBitmap_constraint_10 }, + 0, 0, /* No default value */ + "shortBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.mediumBitmap), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_mediumBitmap_constr_12, &asn_PER_memb_mediumBitmap_constr_12, memb_mediumBitmap_constraint_10 }, + 0, 0, /* No default value */ + "mediumBitmap" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.longBitmap), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_longBitmap_constr_13, &asn_PER_memb_longBitmap_constr_13, memb_longBitmap_constraint_10 }, + 0, 0, /* No default value */ + "longBitmap" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ssb_PositionsInBurst_specs_10 = { + sizeof(struct ServingCellConfigCommon__ssb_PositionsInBurst), + offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, _asn_ctx), + offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, present), + sizeof(((struct ServingCellConfigCommon__ssb_PositionsInBurst *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_ssb_PositionsInBurst_constr_10, &asn_PER_type_ssb_PositionsInBurst_constr_10, CHOICE_constraint }, + asn_MBR_ssb_PositionsInBurst_10, + 3, /* Elements count */ + &asn_SPC_ssb_PositionsInBurst_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ssb_periodicityServingCell_specs_14 = { + asn_MAP_ssb_periodicityServingCell_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_periodicityServingCell_14 = { + "ssb-periodicityServingCell", + "ssb-periodicityServingCell", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_periodicityServingCell_tags_14, + sizeof(asn_DEF_ssb_periodicityServingCell_tags_14) + /sizeof(asn_DEF_ssb_periodicityServingCell_tags_14[0]) - 1, /* 1 */ + asn_DEF_ssb_periodicityServingCell_tags_14, /* Same as above */ + sizeof(asn_DEF_ssb_periodicityServingCell_tags_14) + /sizeof(asn_DEF_ssb_periodicityServingCell_tags_14[0]), /* 2 */ + { &asn_OER_type_ssb_periodicityServingCell_constr_14, &asn_PER_type_ssb_periodicityServingCell_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_periodicityServingCell_specs_14 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dmrs_TypeA_Position_value2enum_23[] = { + { 0, 4, "pos2" }, + { 1, 4, "pos3" } +}; +static const unsigned int asn_MAP_dmrs_TypeA_Position_enum2value_23[] = { + 0, /* pos2(0) */ + 1 /* pos3(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dmrs_TypeA_Position_specs_23 = { + asn_MAP_dmrs_TypeA_Position_value2enum_23, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dmrs_TypeA_Position_23 = { + "dmrs-TypeA-Position", + "dmrs-TypeA-Position", + &asn_OP_NativeEnumerated, + asn_DEF_dmrs_TypeA_Position_tags_23, + sizeof(asn_DEF_dmrs_TypeA_Position_tags_23) + /sizeof(asn_DEF_dmrs_TypeA_Position_tags_23[0]) - 1, /* 1 */ + asn_DEF_dmrs_TypeA_Position_tags_23, /* Same as above */ + sizeof(asn_DEF_dmrs_TypeA_Position_tags_23) + /sizeof(asn_DEF_dmrs_TypeA_Position_tags_23[0]), /* 2 */ + { &asn_OER_type_dmrs_TypeA_Position_constr_23, &asn_PER_type_dmrs_TypeA_Position_constr_23, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dmrs_TypeA_Position_specs_23 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_lte_CRS_ToMatchAround_26[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, 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 ServingCellConfigCommon__lte_CRS_ToMatchAround, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RateMatchPatternLTE_CRS, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_lte_CRS_ToMatchAround_tag2el_26[] = { + { (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_lte_CRS_ToMatchAround_specs_26 = { + sizeof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround), + offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, _asn_ctx), + offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, present), + sizeof(((struct ServingCellConfigCommon__lte_CRS_ToMatchAround *)0)->present), + asn_MAP_lte_CRS_ToMatchAround_tag2el_26, + 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_lte_CRS_ToMatchAround_26 = { + "lte-CRS-ToMatchAround", + "lte-CRS-ToMatchAround", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_lte_CRS_ToMatchAround_constr_26, &asn_PER_type_lte_CRS_ToMatchAround_constr_26, CHOICE_constraint }, + asn_MBR_lte_CRS_ToMatchAround_26, + 2, /* Elements count */ + &asn_SPC_lte_CRS_ToMatchAround_specs_26 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToAddModList_29[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RateMatchPattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToAddModList_tags_29[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToAddModList_specs_29 = { + sizeof(struct ServingCellConfigCommon__rateMatchPatternToAddModList), + offsetof(struct ServingCellConfigCommon__rateMatchPatternToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToAddModList_29 = { + "rateMatchPatternToAddModList", + "rateMatchPatternToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToAddModList_tags_29, + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToAddModList_tags_29, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29) + /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToAddModList_constr_29, &asn_PER_type_rateMatchPatternToAddModList_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToAddModList_29, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToAddModList_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_rateMatchPatternToReleaseList_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RateMatchPatternId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_rateMatchPatternToReleaseList_tags_31[] = { + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToReleaseList_specs_31 = { + sizeof(struct ServingCellConfigCommon__rateMatchPatternToReleaseList), + offsetof(struct ServingCellConfigCommon__rateMatchPatternToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToReleaseList_31 = { + "rateMatchPatternToReleaseList", + "rateMatchPatternToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_rateMatchPatternToReleaseList_tags_31, + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31[0]) - 1, /* 1 */ + asn_DEF_rateMatchPatternToReleaseList_tags_31, /* Same as above */ + sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31) + /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31[0]), /* 2 */ + { &asn_OER_type_rateMatchPatternToReleaseList_constr_31, &asn_PER_type_rateMatchPatternToReleaseList_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_rateMatchPatternToReleaseList_31, + 1, /* Single element */ + &asn_SPC_rateMatchPatternToReleaseList_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ServingCellConfigCommon_1[] = { + { ATF_POINTER, 7, offsetof(struct ServingCellConfigCommon, physCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "physCellId" + }, + { ATF_POINTER, 6, offsetof(struct ServingCellConfigCommon, downlinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DownlinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkConfigCommon" + }, + { ATF_POINTER, 5, offsetof(struct ServingCellConfigCommon, uplinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfigCommon" + }, + { ATF_POINTER, 4, offsetof(struct ServingCellConfigCommon, supplementaryUplinkConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplinkConfig" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommon, n_TimingAdvanceOffset), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n_TimingAdvanceOffset_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n-TimingAdvanceOffset" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommon, ssb_PositionsInBurst), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_ssb_PositionsInBurst_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PositionsInBurst" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommon, ssb_periodicityServingCell), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_periodicityServingCell_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-periodicityServingCell" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon, dmrs_TypeA_Position), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dmrs_TypeA_Position_23, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dmrs-TypeA-Position" + }, + { ATF_POINTER, 5, offsetof(struct ServingCellConfigCommon, lte_CRS_ToMatchAround), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_lte_CRS_ToMatchAround_26, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "lte-CRS-ToMatchAround" + }, + { ATF_POINTER, 4, offsetof(struct ServingCellConfigCommon, rateMatchPatternToAddModList), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_rateMatchPatternToAddModList_29, + 0, + { &asn_OER_memb_rateMatchPatternToAddModList_constr_29, &asn_PER_memb_rateMatchPatternToAddModList_constr_29, memb_rateMatchPatternToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToAddModList" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommon, rateMatchPatternToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + 0, + &asn_DEF_rateMatchPatternToReleaseList_31, + 0, + { &asn_OER_memb_rateMatchPatternToReleaseList_constr_31, &asn_PER_memb_rateMatchPatternToReleaseList_constr_31, memb_rateMatchPatternToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "rateMatchPatternToReleaseList" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommon, ssbSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssbSubcarrierSpacing" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommon, tdd_UL_DL_ConfigurationCommon), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon, ss_PBCH_BlockPower), + (ASN_TAG_CLASS_CONTEXT | (13 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ss_PBCH_BlockPower_constr_35, &asn_PER_memb_ss_PBCH_BlockPower_constr_35, memb_ss_PBCH_BlockPower_constraint_1 }, + 0, 0, /* No default value */ + "ss-PBCH-BlockPower" + }, +}; +static const int asn_MAP_ServingCellConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 }; +static const ber_tlv_tag_t asn_DEF_ServingCellConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ServingCellConfigCommon_specs_1 = { + sizeof(struct ServingCellConfigCommon), + offsetof(struct ServingCellConfigCommon, _asn_ctx), + asn_MAP_ServingCellConfigCommon_tag2el_1, + 14, /* Count of tags in the map */ + asn_MAP_ServingCellConfigCommon_oms_1, /* Optional members */ + 12, 0, /* Root/Additions */ + 14, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommon = { + "ServingCellConfigCommon", + "ServingCellConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_ServingCellConfigCommon_tags_1, + sizeof(asn_DEF_ServingCellConfigCommon_tags_1) + /sizeof(asn_DEF_ServingCellConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_ServingCellConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_ServingCellConfigCommon_tags_1) + /sizeof(asn_DEF_ServingCellConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ServingCellConfigCommon_1, + 14, /* Elements count */ + &asn_SPC_ServingCellConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ServingCellConfigCommon.h b/src/codec_utils/RRC/ServingCellConfigCommon.h new file mode 100644 index 000000000..7df6eaade --- /dev/null +++ b/src/codec_utils/RRC/ServingCellConfigCommon.h @@ -0,0 +1,137 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServingCellConfigCommon_H_ +#define _ServingCellConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include +#include "SubcarrierSpacing.h" +#include +#include +#include +#include +#include +#include +#include "RateMatchPatternId.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCellConfigCommon__n_TimingAdvanceOffset { + ServingCellConfigCommon__n_TimingAdvanceOffset_n0 = 0, + ServingCellConfigCommon__n_TimingAdvanceOffset_n25600 = 1, + ServingCellConfigCommon__n_TimingAdvanceOffset_n39936 = 2 +} e_ServingCellConfigCommon__n_TimingAdvanceOffset; +typedef enum ServingCellConfigCommon__ssb_PositionsInBurst_PR { + ServingCellConfigCommon__ssb_PositionsInBurst_PR_NOTHING, /* No components present */ + ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap, + ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap, + ServingCellConfigCommon__ssb_PositionsInBurst_PR_longBitmap +} ServingCellConfigCommon__ssb_PositionsInBurst_PR; +typedef enum ServingCellConfigCommon__ssb_periodicityServingCell { + ServingCellConfigCommon__ssb_periodicityServingCell_ms5 = 0, + ServingCellConfigCommon__ssb_periodicityServingCell_ms10 = 1, + ServingCellConfigCommon__ssb_periodicityServingCell_ms20 = 2, + ServingCellConfigCommon__ssb_periodicityServingCell_ms40 = 3, + ServingCellConfigCommon__ssb_periodicityServingCell_ms80 = 4, + ServingCellConfigCommon__ssb_periodicityServingCell_ms160 = 5, + ServingCellConfigCommon__ssb_periodicityServingCell_spare2 = 6, + ServingCellConfigCommon__ssb_periodicityServingCell_spare1 = 7 +} e_ServingCellConfigCommon__ssb_periodicityServingCell; +typedef enum ServingCellConfigCommon__dmrs_TypeA_Position { + ServingCellConfigCommon__dmrs_TypeA_Position_pos2 = 0, + ServingCellConfigCommon__dmrs_TypeA_Position_pos3 = 1 +} e_ServingCellConfigCommon__dmrs_TypeA_Position; +typedef enum ServingCellConfigCommon__lte_CRS_ToMatchAround_PR { + ServingCellConfigCommon__lte_CRS_ToMatchAround_PR_NOTHING, /* No components present */ + ServingCellConfigCommon__lte_CRS_ToMatchAround_PR_release, + ServingCellConfigCommon__lte_CRS_ToMatchAround_PR_setup +} ServingCellConfigCommon__lte_CRS_ToMatchAround_PR; + +/* Forward declarations */ +struct DownlinkConfigCommon; +struct UplinkConfigCommon; +struct TDD_UL_DL_ConfigCommon; +struct RateMatchPatternLTE_CRS; +struct RateMatchPattern; + +/* ServingCellConfigCommon */ +typedef struct ServingCellConfigCommon { + PhysCellId_t *physCellId; /* OPTIONAL */ + struct DownlinkConfigCommon *downlinkConfigCommon; /* OPTIONAL */ + struct UplinkConfigCommon *uplinkConfigCommon; /* OPTIONAL */ + struct UplinkConfigCommon *supplementaryUplinkConfig; /* OPTIONAL */ + long *n_TimingAdvanceOffset; /* OPTIONAL */ + struct ServingCellConfigCommon__ssb_PositionsInBurst { + ServingCellConfigCommon__ssb_PositionsInBurst_PR present; + union ServingCellConfigCommon__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 ServingCellConfigCommon__lte_CRS_ToMatchAround { + ServingCellConfigCommon__lte_CRS_ToMatchAround_PR present; + union ServingCellConfigCommon__lte_CRS_ToMatchAround_u { + NULL_t release; + struct RateMatchPatternLTE_CRS *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *lte_CRS_ToMatchAround; + struct ServingCellConfigCommon__rateMatchPatternToAddModList { + A_SEQUENCE_OF(struct RateMatchPattern) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToAddModList; + struct ServingCellConfigCommon__rateMatchPatternToReleaseList { + A_SEQUENCE_OF(RateMatchPatternId_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rateMatchPatternToReleaseList; + SubcarrierSpacing_t *ssbSubcarrierSpacing; /* OPTIONAL */ + struct 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; +} ServingCellConfigCommon_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_n_TimingAdvanceOffset_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_periodicityServingCell_14; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_TypeA_Position_23; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_ServingCellConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_ServingCellConfigCommon_1[14]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCellConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/ServingCellConfigCommonSIB.c b/src/codec_utils/RRC/ServingCellConfigCommonSIB.c new file mode 100644 index 000000000..32834328d --- /dev/null +++ b/src/codec_utils/RRC/ServingCellConfigCommonSIB.c @@ -0,0 +1,398 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ServingCellConfigCommonSIB.h" + +#include "UplinkConfigCommonSIB.h" +#include "TDD-UL-DL-ConfigCommon.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static int +memb_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_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_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_oer_constraints_t asn_OER_type_n_TimingAdvanceOffset_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_inOneGroup_constr_10 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_groupPresence_constr_11 CC_NOTUSED = { + { 0, 0 }, + 8 /* (SIZE(8..8)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ssb_PeriodicityServingCell_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ss_PBCH_BlockPower_constr_20 CC_NOTUSED = { + { 1, 0 } /* (-60..50) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_n_TimingAdvanceOffset_value2enum_5[] = { + { 0, 2, "n0" }, + { 1, 6, "n25560" }, + { 2, 6, "n39936" } +}; +static const unsigned int asn_MAP_n_TimingAdvanceOffset_enum2value_5[] = { + 0, /* n0(0) */ + 1, /* n25560(1) */ + 2 /* n39936(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_n_TimingAdvanceOffset_specs_5 = { + asn_MAP_n_TimingAdvanceOffset_value2enum_5, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n_TimingAdvanceOffset_5 = { + "n-TimingAdvanceOffset", + "n-TimingAdvanceOffset", + &asn_OP_NativeEnumerated, + asn_DEF_n_TimingAdvanceOffset_tags_5, + sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5) + /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5[0]) - 1, /* 1 */ + asn_DEF_n_TimingAdvanceOffset_tags_5, /* Same as above */ + sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5) + /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5[0]), /* 2 */ + { &asn_OER_type_n_TimingAdvanceOffset_constr_5, &asn_PER_type_n_TimingAdvanceOffset_constr_5, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n_TimingAdvanceOffset_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ssb_PositionsInBurst_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, inOneGroup), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_inOneGroup_constr_10, &asn_PER_memb_inOneGroup_constr_10, memb_inOneGroup_constraint_9 }, + 0, 0, /* No default value */ + "inOneGroup" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, groupPresence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_groupPresence_constr_11, &asn_PER_memb_groupPresence_constr_11, memb_groupPresence_constraint_9 }, + 0, 0, /* No default value */ + "groupPresence" + }, +}; +static const int asn_MAP_ssb_PositionsInBurst_oms_9[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_ssb_PositionsInBurst_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ssb_PositionsInBurst_specs_9 = { + sizeof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst), + offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, _asn_ctx), + asn_MAP_ssb_PositionsInBurst_tag2el_9, + 2, /* Count of tags in the map */ + asn_MAP_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_ssb_PositionsInBurst_9 = { + "ssb-PositionsInBurst", + "ssb-PositionsInBurst", + &asn_OP_SEQUENCE, + asn_DEF_ssb_PositionsInBurst_tags_9, + sizeof(asn_DEF_ssb_PositionsInBurst_tags_9) + /sizeof(asn_DEF_ssb_PositionsInBurst_tags_9[0]) - 1, /* 1 */ + asn_DEF_ssb_PositionsInBurst_tags_9, /* Same as above */ + sizeof(asn_DEF_ssb_PositionsInBurst_tags_9) + /sizeof(asn_DEF_ssb_PositionsInBurst_tags_9[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ssb_PositionsInBurst_9, + 2, /* Elements count */ + &asn_SPC_ssb_PositionsInBurst_specs_9 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_ssb_PeriodicityServingCell_specs_12 = { + asn_MAP_ssb_PeriodicityServingCell_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_ssb_PeriodicityServingCell_12 = { + "ssb-PeriodicityServingCell", + "ssb-PeriodicityServingCell", + &asn_OP_NativeEnumerated, + asn_DEF_ssb_PeriodicityServingCell_tags_12, + sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12) + /sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12[0]) - 1, /* 1 */ + asn_DEF_ssb_PeriodicityServingCell_tags_12, /* Same as above */ + sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12) + /sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12[0]), /* 2 */ + { &asn_OER_type_ssb_PeriodicityServingCell_constr_12, &asn_PER_type_ssb_PeriodicityServingCell_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_ssb_PeriodicityServingCell_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ServingCellConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, downlinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DownlinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "downlinkConfigCommon" + }, + { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommonSIB, uplinkConfigCommon), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uplinkConfigCommon" + }, + { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommonSIB, supplementaryUplink), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UplinkConfigCommonSIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supplementaryUplink" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB, n_TimingAdvanceOffset), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n_TimingAdvanceOffset_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n-TimingAdvanceOffset" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ssb_PositionsInBurst), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_ssb_PositionsInBurst_9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PositionsInBurst" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ssb_PeriodicityServingCell), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ssb_PeriodicityServingCell_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-PeriodicityServingCell" + }, + { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB, tdd_UL_DL_ConfigurationCommon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_ConfigCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-UL-DL-ConfigurationCommon" + }, + { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ss_PBCH_BlockPower), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_ss_PBCH_BlockPower_constr_20, &asn_PER_memb_ss_PBCH_BlockPower_constr_20, memb_ss_PBCH_BlockPower_constraint_1 }, + 0, 0, /* No default value */ + "ss-PBCH-BlockPower" + }, +}; +static const int asn_MAP_ServingCellConfigCommonSIB_oms_1[] = { 1, 2, 3, 6 }; +static const ber_tlv_tag_t asn_DEF_ServingCellConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ServingCellConfigCommonSIB_specs_1 = { + sizeof(struct ServingCellConfigCommonSIB), + offsetof(struct ServingCellConfigCommonSIB, _asn_ctx), + asn_MAP_ServingCellConfigCommonSIB_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_ServingCellConfigCommonSIB_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommonSIB = { + "ServingCellConfigCommonSIB", + "ServingCellConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_ServingCellConfigCommonSIB_tags_1, + sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_ServingCellConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1) + /sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ServingCellConfigCommonSIB_1, + 8, /* Elements count */ + &asn_SPC_ServingCellConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ServingCellConfigCommonSIB.h b/src/codec_utils/RRC/ServingCellConfigCommonSIB.h new file mode 100644 index 000000000..0b87dddbd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ServingCellConfigCommonSIB_H_ +#define _ServingCellConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "DownlinkConfigCommonSIB.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ServingCellConfigCommonSIB__n_TimingAdvanceOffset { + ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n0 = 0, + ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n25560 = 1, + ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n39936 = 2 +} e_ServingCellConfigCommonSIB__n_TimingAdvanceOffset; +typedef enum ServingCellConfigCommonSIB__ssb_PeriodicityServingCell { + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms5 = 0, + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms10 = 1, + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms20 = 2, + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms40 = 3, + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms80 = 4, + ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms160 = 5 +} e_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell; + +/* Forward declarations */ +struct UplinkConfigCommonSIB; +struct TDD_UL_DL_ConfigCommon; + +/* ServingCellConfigCommonSIB */ +typedef struct ServingCellConfigCommonSIB { + DownlinkConfigCommonSIB_t downlinkConfigCommon; + struct UplinkConfigCommonSIB *uplinkConfigCommon; /* OPTIONAL */ + struct UplinkConfigCommonSIB *supplementaryUplink; /* OPTIONAL */ + long *n_TimingAdvanceOffset; /* OPTIONAL */ + struct 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 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; +} ServingCellConfigCommonSIB_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_n_TimingAdvanceOffset_5; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_ssb_PeriodicityServingCell_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_ServingCellConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_ServingCellConfigCommonSIB_1[8]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ServingCellConfigCommonSIB_H_ */ +#include diff --git a/src/codec_utils/RRC/ShortI-RNTI-Value.c b/src/codec_utils/RRC/ShortI-RNTI-Value.c new file mode 100644 index 000000000..1457f1d43 --- /dev/null +++ b/src/codec_utils/RRC/ShortI-RNTI-Value.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ShortI-RNTI-Value.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ShortI_RNTI_Value_constr_1 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +asn_per_constraints_t asn_PER_type_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_ShortI_RNTI_Value_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ShortI_RNTI_Value = { + "ShortI-RNTI-Value", + "ShortI-RNTI-Value", + &asn_OP_BIT_STRING, + asn_DEF_ShortI_RNTI_Value_tags_1, + sizeof(asn_DEF_ShortI_RNTI_Value_tags_1) + /sizeof(asn_DEF_ShortI_RNTI_Value_tags_1[0]), /* 1 */ + asn_DEF_ShortI_RNTI_Value_tags_1, /* Same as above */ + sizeof(asn_DEF_ShortI_RNTI_Value_tags_1) + /sizeof(asn_DEF_ShortI_RNTI_Value_tags_1[0]), /* 1 */ + { &asn_OER_type_ShortI_RNTI_Value_constr_1, &asn_PER_type_ShortI_RNTI_Value_constr_1, ShortI_RNTI_Value_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ShortI-RNTI-Value.h b/src/codec_utils/RRC/ShortI-RNTI-Value.h new file mode 100644 index 000000000..45504bb00 --- /dev/null +++ b/src/codec_utils/RRC/ShortI-RNTI-Value.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ShortI_RNTI_Value_H_ +#define _ShortI_RNTI_Value_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ShortI-RNTI-Value */ +typedef BIT_STRING_t ShortI_RNTI_Value_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ShortI_RNTI_Value_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ShortI_RNTI_Value; +asn_struct_free_f ShortI_RNTI_Value_free; +asn_struct_print_f ShortI_RNTI_Value_print; +asn_constr_check_f ShortI_RNTI_Value_constraint; +ber_type_decoder_f ShortI_RNTI_Value_decode_ber; +der_type_encoder_f ShortI_RNTI_Value_encode_der; +xer_type_decoder_f ShortI_RNTI_Value_decode_xer; +xer_type_encoder_f ShortI_RNTI_Value_encode_xer; +oer_type_decoder_f ShortI_RNTI_Value_decode_oer; +oer_type_encoder_f ShortI_RNTI_Value_encode_oer; +per_type_decoder_f ShortI_RNTI_Value_decode_uper; +per_type_encoder_f ShortI_RNTI_Value_encode_uper; +per_type_decoder_f ShortI_RNTI_Value_decode_aper; +per_type_encoder_f ShortI_RNTI_Value_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShortI_RNTI_Value_H_ */ +#include diff --git a/src/codec_utils/RRC/ShortMAC-I.c b/src/codec_utils/RRC/ShortMAC-I.c new file mode 100644 index 000000000..ff70c19cb --- /dev/null +++ b/src/codec_utils/RRC/ShortMAC-I.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ShortMAC-I.h" + +int +ShortMAC_I_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using BIT_STRING, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_ShortMAC_I_constr_1 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +asn_per_constraints_t asn_PER_type_ShortMAC_I_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_ShortMAC_I_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ShortMAC_I = { + "ShortMAC-I", + "ShortMAC-I", + &asn_OP_BIT_STRING, + asn_DEF_ShortMAC_I_tags_1, + sizeof(asn_DEF_ShortMAC_I_tags_1) + /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */ + asn_DEF_ShortMAC_I_tags_1, /* Same as above */ + sizeof(asn_DEF_ShortMAC_I_tags_1) + /sizeof(asn_DEF_ShortMAC_I_tags_1[0]), /* 1 */ + { &asn_OER_type_ShortMAC_I_constr_1, &asn_PER_type_ShortMAC_I_constr_1, ShortMAC_I_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ShortMAC-I.h b/src/codec_utils/RRC/ShortMAC-I.h new file mode 100644 index 000000000..05d3b12e1 --- /dev/null +++ b/src/codec_utils/RRC/ShortMAC-I.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ShortMAC_I_H_ +#define _ShortMAC_I_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ShortMAC-I */ +typedef BIT_STRING_t ShortMAC_I_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ShortMAC_I_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ShortMAC_I; +asn_struct_free_f ShortMAC_I_free; +asn_struct_print_f ShortMAC_I_print; +asn_constr_check_f ShortMAC_I_constraint; +ber_type_decoder_f ShortMAC_I_decode_ber; +der_type_encoder_f ShortMAC_I_encode_der; +xer_type_decoder_f ShortMAC_I_decode_xer; +xer_type_encoder_f ShortMAC_I_encode_xer; +oer_type_decoder_f ShortMAC_I_decode_oer; +oer_type_encoder_f ShortMAC_I_encode_oer; +per_type_decoder_f ShortMAC_I_decode_uper; +per_type_encoder_f ShortMAC_I_encode_uper; +per_type_decoder_f ShortMAC_I_decode_aper; +per_type_encoder_f ShortMAC_I_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ShortMAC_I_H_ */ +#include diff --git a/src/codec_utils/RRC/SlotFormatCombination.c b/src/codec_utils/RRC/SlotFormatCombination.c new file mode 100644 index 000000000..bdd47817d --- /dev/null +++ b/src/codec_utils/RRC/SlotFormatCombination.c @@ -0,0 +1,172 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_oer_constraints_t asn_OER_memb_Member_constr_4 CC_NOTUSED = { + { 1, 1 } /* (0..255) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_slotFormats_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_slotFormats_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..256)) */}; +static asn_per_constraints_t asn_PER_memb_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_slotFormats_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_Member_constr_4, &asn_PER_memb_Member_constr_4, memb_NativeInteger_constraint_3 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotFormats_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotFormats_specs_3 = { + sizeof(struct SlotFormatCombination__slotFormats), + offsetof(struct SlotFormatCombination__slotFormats, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_slotFormats_3 = { + "slotFormats", + "slotFormats", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotFormats_tags_3, + sizeof(asn_DEF_slotFormats_tags_3) + /sizeof(asn_DEF_slotFormats_tags_3[0]) - 1, /* 1 */ + asn_DEF_slotFormats_tags_3, /* Same as above */ + sizeof(asn_DEF_slotFormats_tags_3) + /sizeof(asn_DEF_slotFormats_tags_3[0]), /* 2 */ + { &asn_OER_type_slotFormats_constr_3, &asn_PER_type_slotFormats_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_slotFormats_3, + 1, /* Single element */ + &asn_SPC_slotFormats_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SlotFormatCombination_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatCombination, slotFormatCombinationId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SlotFormatCombinationId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotFormatCombinationId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatCombination, slotFormats), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_slotFormats_3, + 0, + { &asn_OER_memb_slotFormats_constr_3, &asn_PER_memb_slotFormats_constr_3, memb_slotFormats_constraint_1 }, + 0, 0, /* No default value */ + "slotFormats" + }, +}; +static const ber_tlv_tag_t asn_DEF_SlotFormatCombination_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SlotFormatCombination_specs_1 = { + sizeof(struct SlotFormatCombination), + offsetof(struct SlotFormatCombination, _asn_ctx), + asn_MAP_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_SlotFormatCombination = { + "SlotFormatCombination", + "SlotFormatCombination", + &asn_OP_SEQUENCE, + asn_DEF_SlotFormatCombination_tags_1, + sizeof(asn_DEF_SlotFormatCombination_tags_1) + /sizeof(asn_DEF_SlotFormatCombination_tags_1[0]), /* 1 */ + asn_DEF_SlotFormatCombination_tags_1, /* Same as above */ + sizeof(asn_DEF_SlotFormatCombination_tags_1) + /sizeof(asn_DEF_SlotFormatCombination_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SlotFormatCombination_1, + 2, /* Elements count */ + &asn_SPC_SlotFormatCombination_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SlotFormatCombination.h b/src/codec_utils/RRC/SlotFormatCombination.h new file mode 100644 index 000000000..e7944c467 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SlotFormatCombination_H_ +#define _SlotFormatCombination_H_ + + +#include + +/* Including external dependencies */ +#include "SlotFormatCombinationId.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SlotFormatCombination */ +typedef struct SlotFormatCombination { + SlotFormatCombinationId_t slotFormatCombinationId; + struct 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; +} SlotFormatCombination_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlotFormatCombination; +extern asn_SEQUENCE_specifics_t asn_SPC_SlotFormatCombination_specs_1; +extern asn_TYPE_member_t asn_MBR_SlotFormatCombination_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlotFormatCombination_H_ */ +#include diff --git a/src/codec_utils/RRC/SlotFormatCombinationId.c b/src/codec_utils/RRC/SlotFormatCombinationId.c new file mode 100644 index 000000000..6aea38f3d --- /dev/null +++ b/src/codec_utils/RRC/SlotFormatCombinationId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SlotFormatCombinationId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_SlotFormatCombinationId_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..511) */, + -1}; +asn_per_constraints_t asn_PER_type_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_SlotFormatCombinationId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SlotFormatCombinationId = { + "SlotFormatCombinationId", + "SlotFormatCombinationId", + &asn_OP_NativeInteger, + asn_DEF_SlotFormatCombinationId_tags_1, + sizeof(asn_DEF_SlotFormatCombinationId_tags_1) + /sizeof(asn_DEF_SlotFormatCombinationId_tags_1[0]), /* 1 */ + asn_DEF_SlotFormatCombinationId_tags_1, /* Same as above */ + sizeof(asn_DEF_SlotFormatCombinationId_tags_1) + /sizeof(asn_DEF_SlotFormatCombinationId_tags_1[0]), /* 1 */ + { &asn_OER_type_SlotFormatCombinationId_constr_1, &asn_PER_type_SlotFormatCombinationId_constr_1, SlotFormatCombinationId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/SlotFormatCombinationId.h b/src/codec_utils/RRC/SlotFormatCombinationId.h new file mode 100644 index 000000000..8fa9135a9 --- /dev/null +++ b/src/codec_utils/RRC/SlotFormatCombinationId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SlotFormatCombinationId_H_ +#define _SlotFormatCombinationId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* SlotFormatCombinationId */ +typedef long SlotFormatCombinationId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SlotFormatCombinationId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SlotFormatCombinationId; +asn_struct_free_f SlotFormatCombinationId_free; +asn_struct_print_f SlotFormatCombinationId_print; +asn_constr_check_f SlotFormatCombinationId_constraint; +ber_type_decoder_f SlotFormatCombinationId_decode_ber; +der_type_encoder_f SlotFormatCombinationId_encode_der; +xer_type_decoder_f SlotFormatCombinationId_decode_xer; +xer_type_encoder_f SlotFormatCombinationId_encode_xer; +oer_type_decoder_f SlotFormatCombinationId_decode_oer; +oer_type_encoder_f SlotFormatCombinationId_encode_oer; +per_type_decoder_f SlotFormatCombinationId_decode_uper; +per_type_encoder_f SlotFormatCombinationId_encode_uper; +per_type_decoder_f SlotFormatCombinationId_decode_aper; +per_type_encoder_f SlotFormatCombinationId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlotFormatCombinationId_H_ */ +#include diff --git a/src/codec_utils/RRC/SlotFormatCombinationsPerCell.c b/src/codec_utils/RRC/SlotFormatCombinationsPerCell.c new file mode 100644 index 000000000..fd843b721 --- /dev/null +++ b/src/codec_utils/RRC/SlotFormatCombinationsPerCell.c @@ -0,0 +1,205 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SlotFormatCombinationsPerCell.h" + +#include "SlotFormatCombination.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_slotFormatCombinations_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_slotFormatCombinations_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..512)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_positionInDCI_constr_7 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_slotFormatCombinations_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SlotFormatCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotFormatCombinations_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotFormatCombinations_specs_5 = { + sizeof(struct SlotFormatCombinationsPerCell__slotFormatCombinations), + offsetof(struct SlotFormatCombinationsPerCell__slotFormatCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_slotFormatCombinations_5 = { + "slotFormatCombinations", + "slotFormatCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotFormatCombinations_tags_5, + sizeof(asn_DEF_slotFormatCombinations_tags_5) + /sizeof(asn_DEF_slotFormatCombinations_tags_5[0]) - 1, /* 1 */ + asn_DEF_slotFormatCombinations_tags_5, /* Same as above */ + sizeof(asn_DEF_slotFormatCombinations_tags_5) + /sizeof(asn_DEF_slotFormatCombinations_tags_5[0]), /* 2 */ + { &asn_OER_type_slotFormatCombinations_constr_5, &asn_PER_type_slotFormatCombinations_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_slotFormatCombinations_5, + 1, /* Single element */ + &asn_SPC_slotFormatCombinations_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SlotFormatCombinationsPerCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatCombinationsPerCell, servingCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servingCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatCombinationsPerCell, subcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing" + }, + { ATF_POINTER, 3, offsetof(struct SlotFormatCombinationsPerCell, subcarrierSpacing2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "subcarrierSpacing2" + }, + { ATF_POINTER, 2, offsetof(struct SlotFormatCombinationsPerCell, slotFormatCombinations), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_slotFormatCombinations_5, + 0, + { &asn_OER_memb_slotFormatCombinations_constr_5, &asn_PER_memb_slotFormatCombinations_constr_5, memb_slotFormatCombinations_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombinations" + }, + { ATF_POINTER, 1, offsetof(struct SlotFormatCombinationsPerCell, positionInDCI), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_positionInDCI_constr_7, &asn_PER_memb_positionInDCI_constr_7, memb_positionInDCI_constraint_1 }, + 0, 0, /* No default value */ + "positionInDCI" + }, +}; +static const int asn_MAP_SlotFormatCombinationsPerCell_oms_1[] = { 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SlotFormatCombinationsPerCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SlotFormatCombinationsPerCell_specs_1 = { + sizeof(struct SlotFormatCombinationsPerCell), + offsetof(struct SlotFormatCombinationsPerCell, _asn_ctx), + asn_MAP_SlotFormatCombinationsPerCell_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SlotFormatCombinationsPerCell_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SlotFormatCombinationsPerCell = { + "SlotFormatCombinationsPerCell", + "SlotFormatCombinationsPerCell", + &asn_OP_SEQUENCE, + asn_DEF_SlotFormatCombinationsPerCell_tags_1, + sizeof(asn_DEF_SlotFormatCombinationsPerCell_tags_1) + /sizeof(asn_DEF_SlotFormatCombinationsPerCell_tags_1[0]), /* 1 */ + asn_DEF_SlotFormatCombinationsPerCell_tags_1, /* Same as above */ + sizeof(asn_DEF_SlotFormatCombinationsPerCell_tags_1) + /sizeof(asn_DEF_SlotFormatCombinationsPerCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SlotFormatCombinationsPerCell_1, + 5, /* Elements count */ + &asn_SPC_SlotFormatCombinationsPerCell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SlotFormatCombinationsPerCell.h b/src/codec_utils/RRC/SlotFormatCombinationsPerCell.h new file mode 100644 index 000000000..698dafed0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SlotFormatCombinationsPerCell_H_ +#define _SlotFormatCombinationsPerCell_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include "SubcarrierSpacing.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SlotFormatCombination; + +/* SlotFormatCombinationsPerCell */ +typedef struct SlotFormatCombinationsPerCell { + ServCellIndex_t servingCellId; + SubcarrierSpacing_t subcarrierSpacing; + SubcarrierSpacing_t *subcarrierSpacing2; /* OPTIONAL */ + struct SlotFormatCombinationsPerCell__slotFormatCombinations { + A_SEQUENCE_OF(struct 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; +} SlotFormatCombinationsPerCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlotFormatCombinationsPerCell; +extern asn_SEQUENCE_specifics_t asn_SPC_SlotFormatCombinationsPerCell_specs_1; +extern asn_TYPE_member_t asn_MBR_SlotFormatCombinationsPerCell_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlotFormatCombinationsPerCell_H_ */ +#include diff --git a/src/codec_utils/RRC/SlotFormatIndicator.c b/src/codec_utils/RRC/SlotFormatIndicator.c new file mode 100644 index 000000000..6feaedf60 --- /dev/null +++ b/src/codec_utils/RRC/SlotFormatIndicator.c @@ -0,0 +1,274 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SlotFormatIndicator.h" + +#include "SlotFormatCombinationsPerCell.h" +static int +memb_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_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_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_oer_constraints_t asn_OER_type_slotFormatCombToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_slotFormatCombToReleaseList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_dci_PayloadSize_constr_3 CC_NOTUSED = { + { 1, 1 } /* (1..128) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slotFormatCombToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slotFormatCombToReleaseList_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_slotFormatCombToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SlotFormatCombinationsPerCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotFormatCombToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotFormatCombToAddModList_specs_4 = { + sizeof(struct SlotFormatIndicator__slotFormatCombToAddModList), + offsetof(struct SlotFormatIndicator__slotFormatCombToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_slotFormatCombToAddModList_4 = { + "slotFormatCombToAddModList", + "slotFormatCombToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotFormatCombToAddModList_tags_4, + sizeof(asn_DEF_slotFormatCombToAddModList_tags_4) + /sizeof(asn_DEF_slotFormatCombToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_slotFormatCombToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_slotFormatCombToAddModList_tags_4) + /sizeof(asn_DEF_slotFormatCombToAddModList_tags_4[0]), /* 2 */ + { &asn_OER_type_slotFormatCombToAddModList_constr_4, &asn_PER_type_slotFormatCombToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_slotFormatCombToAddModList_4, + 1, /* Single element */ + &asn_SPC_slotFormatCombToAddModList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_slotFormatCombToReleaseList_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotFormatCombToReleaseList_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotFormatCombToReleaseList_specs_6 = { + sizeof(struct SlotFormatIndicator__slotFormatCombToReleaseList), + offsetof(struct SlotFormatIndicator__slotFormatCombToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_slotFormatCombToReleaseList_6 = { + "slotFormatCombToReleaseList", + "slotFormatCombToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotFormatCombToReleaseList_tags_6, + sizeof(asn_DEF_slotFormatCombToReleaseList_tags_6) + /sizeof(asn_DEF_slotFormatCombToReleaseList_tags_6[0]) - 1, /* 1 */ + asn_DEF_slotFormatCombToReleaseList_tags_6, /* Same as above */ + sizeof(asn_DEF_slotFormatCombToReleaseList_tags_6) + /sizeof(asn_DEF_slotFormatCombToReleaseList_tags_6[0]), /* 2 */ + { &asn_OER_type_slotFormatCombToReleaseList_constr_6, &asn_PER_type_slotFormatCombToReleaseList_constr_6, SEQUENCE_OF_constraint }, + asn_MBR_slotFormatCombToReleaseList_6, + 1, /* Single element */ + &asn_SPC_slotFormatCombToReleaseList_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SlotFormatIndicator_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatIndicator, sfi_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sfi-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct SlotFormatIndicator, dci_PayloadSize), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_dci_PayloadSize_constr_3, &asn_PER_memb_dci_PayloadSize_constr_3, memb_dci_PayloadSize_constraint_1 }, + 0, 0, /* No default value */ + "dci-PayloadSize" + }, + { ATF_POINTER, 2, offsetof(struct SlotFormatIndicator, slotFormatCombToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_slotFormatCombToAddModList_4, + 0, + { &asn_OER_memb_slotFormatCombToAddModList_constr_4, &asn_PER_memb_slotFormatCombToAddModList_constr_4, memb_slotFormatCombToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct SlotFormatIndicator, slotFormatCombToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_slotFormatCombToReleaseList_6, + 0, + { &asn_OER_memb_slotFormatCombToReleaseList_constr_6, &asn_PER_memb_slotFormatCombToReleaseList_constr_6, memb_slotFormatCombToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "slotFormatCombToReleaseList" + }, +}; +static const int asn_MAP_SlotFormatIndicator_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_SlotFormatIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SlotFormatIndicator_specs_1 = { + sizeof(struct SlotFormatIndicator), + offsetof(struct SlotFormatIndicator, _asn_ctx), + asn_MAP_SlotFormatIndicator_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_SlotFormatIndicator_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SlotFormatIndicator = { + "SlotFormatIndicator", + "SlotFormatIndicator", + &asn_OP_SEQUENCE, + asn_DEF_SlotFormatIndicator_tags_1, + sizeof(asn_DEF_SlotFormatIndicator_tags_1) + /sizeof(asn_DEF_SlotFormatIndicator_tags_1[0]), /* 1 */ + asn_DEF_SlotFormatIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_SlotFormatIndicator_tags_1) + /sizeof(asn_DEF_SlotFormatIndicator_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SlotFormatIndicator_1, + 4, /* Elements count */ + &asn_SPC_SlotFormatIndicator_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SlotFormatIndicator.h b/src/codec_utils/RRC/SlotFormatIndicator.h new file mode 100644 index 000000000..6367679a6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SlotFormatIndicator_H_ +#define _SlotFormatIndicator_H_ + + +#include + +/* Including external dependencies */ +#include "RNTI-Value.h" +#include +#include +#include +#include "ServCellIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct SlotFormatCombinationsPerCell; + +/* SlotFormatIndicator */ +typedef struct SlotFormatIndicator { + RNTI_Value_t sfi_RNTI; + long dci_PayloadSize; + struct SlotFormatIndicator__slotFormatCombToAddModList { + A_SEQUENCE_OF(struct SlotFormatCombinationsPerCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotFormatCombToAddModList; + struct SlotFormatIndicator__slotFormatCombToReleaseList { + A_SEQUENCE_OF(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; +} SlotFormatIndicator_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SlotFormatIndicator; +extern asn_SEQUENCE_specifics_t asn_SPC_SlotFormatIndicator_specs_1; +extern asn_TYPE_member_t asn_MBR_SlotFormatIndicator_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SlotFormatIndicator_H_ */ +#include diff --git a/src/codec_utils/RRC/SpCellConfig.c b/src/codec_utils/RRC/SpCellConfig.c new file mode 100644 index 000000000..a3d566d99 --- /dev/null +++ b/src/codec_utils/RRC/SpCellConfig.c @@ -0,0 +1,199 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SpCellConfig.h" + +#include "ReconfigurationWithSync.h" +#include "ServingCellConfig.h" +#include "RLF-TimersAndConstants.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_rlf_TimersAndConstants_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rlf_TimersAndConstants_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_oer_constraints_t asn_OER_type_rlmInSyncOutOfSyncThreshold_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_rlmInSyncOutOfSyncThreshold_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_TYPE_member_t asn_MBR_rlf_TimersAndConstants_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpCellConfig__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 SpCellConfig__rlf_TimersAndConstants, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RLF_TimersAndConstants, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_rlf_TimersAndConstants_tag2el_4[] = { + { (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_rlf_TimersAndConstants_specs_4 = { + sizeof(struct SpCellConfig__rlf_TimersAndConstants), + offsetof(struct SpCellConfig__rlf_TimersAndConstants, _asn_ctx), + offsetof(struct SpCellConfig__rlf_TimersAndConstants, present), + sizeof(((struct SpCellConfig__rlf_TimersAndConstants *)0)->present), + asn_MAP_rlf_TimersAndConstants_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_rlf_TimersAndConstants_4 = { + "rlf-TimersAndConstants", + "rlf-TimersAndConstants", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_rlf_TimersAndConstants_constr_4, &asn_PER_type_rlf_TimersAndConstants_constr_4, CHOICE_constraint }, + asn_MBR_rlf_TimersAndConstants_4, + 2, /* Elements count */ + &asn_SPC_rlf_TimersAndConstants_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_rlmInSyncOutOfSyncThreshold_value2enum_7[] = { + { 0, 2, "n1" } +}; +static const unsigned int asn_MAP_rlmInSyncOutOfSyncThreshold_enum2value_7[] = { + 0 /* n1(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_rlmInSyncOutOfSyncThreshold_specs_7 = { + asn_MAP_rlmInSyncOutOfSyncThreshold_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_rlmInSyncOutOfSyncThreshold_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_rlmInSyncOutOfSyncThreshold_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_rlmInSyncOutOfSyncThreshold_7 = { + "rlmInSyncOutOfSyncThreshold", + "rlmInSyncOutOfSyncThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7, + sizeof(asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7) + /sizeof(asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7[0]) - 1, /* 1 */ + asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7, /* Same as above */ + sizeof(asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7) + /sizeof(asn_DEF_rlmInSyncOutOfSyncThreshold_tags_7[0]), /* 2 */ + { &asn_OER_type_rlmInSyncOutOfSyncThreshold_constr_7, &asn_PER_type_rlmInSyncOutOfSyncThreshold_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_rlmInSyncOutOfSyncThreshold_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SpCellConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct SpCellConfig, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_POINTER, 4, offsetof(struct SpCellConfig, reconfigurationWithSync), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReconfigurationWithSync, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reconfigurationWithSync" + }, + { ATF_POINTER, 3, offsetof(struct SpCellConfig, rlf_TimersAndConstants), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_rlf_TimersAndConstants_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlf-TimersAndConstants" + }, + { ATF_POINTER, 2, offsetof(struct SpCellConfig, rlmInSyncOutOfSyncThreshold), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_rlmInSyncOutOfSyncThreshold_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlmInSyncOutOfSyncThreshold" + }, + { ATF_POINTER, 1, offsetof(struct SpCellConfig, spCellConfigDedicated), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "spCellConfigDedicated" + }, +}; +static const int asn_MAP_SpCellConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SpCellConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SpCellConfig_specs_1 = { + sizeof(struct SpCellConfig), + offsetof(struct SpCellConfig, _asn_ctx), + asn_MAP_SpCellConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_SpCellConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SpCellConfig = { + "SpCellConfig", + "SpCellConfig", + &asn_OP_SEQUENCE, + asn_DEF_SpCellConfig_tags_1, + sizeof(asn_DEF_SpCellConfig_tags_1) + /sizeof(asn_DEF_SpCellConfig_tags_1[0]), /* 1 */ + asn_DEF_SpCellConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SpCellConfig_tags_1) + /sizeof(asn_DEF_SpCellConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpCellConfig_1, + 5, /* Elements count */ + &asn_SPC_SpCellConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SpCellConfig.h b/src/codec_utils/RRC/SpCellConfig.h new file mode 100644 index 000000000..95ff175d1 --- /dev/null +++ b/src/codec_utils/RRC/SpCellConfig.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SpCellConfig_H_ +#define _SpCellConfig_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpCellConfig__rlf_TimersAndConstants_PR { + SpCellConfig__rlf_TimersAndConstants_PR_NOTHING, /* No components present */ + SpCellConfig__rlf_TimersAndConstants_PR_release, + SpCellConfig__rlf_TimersAndConstants_PR_setup +} SpCellConfig__rlf_TimersAndConstants_PR; +typedef enum SpCellConfig__rlmInSyncOutOfSyncThreshold { + SpCellConfig__rlmInSyncOutOfSyncThreshold_n1 = 0 +} e_SpCellConfig__rlmInSyncOutOfSyncThreshold; + +/* Forward declarations */ +struct ReconfigurationWithSync; +struct ServingCellConfig; +struct RLF_TimersAndConstants; + +/* SpCellConfig */ +typedef struct SpCellConfig { + ServCellIndex_t *servCellIndex; /* OPTIONAL */ + struct ReconfigurationWithSync *reconfigurationWithSync; /* OPTIONAL */ + struct SpCellConfig__rlf_TimersAndConstants { + SpCellConfig__rlf_TimersAndConstants_PR present; + union SpCellConfig__rlf_TimersAndConstants_u { + NULL_t release; + struct RLF_TimersAndConstants *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *rlf_TimersAndConstants; + long *rlmInSyncOutOfSyncThreshold; /* OPTIONAL */ + struct ServingCellConfig *spCellConfigDedicated; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpCellConfig_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_rlmInSyncOutOfSyncThreshold_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SpCellConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SpCellConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SpCellConfig_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpCellConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SpeedStateScaleFactors.c b/src/codec_utils/RRC/SpeedStateScaleFactors.c new file mode 100644 index 000000000..35cbc68ed --- /dev/null +++ b/src/codec_utils/RRC/SpeedStateScaleFactors.c @@ -0,0 +1,166 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_sf_Medium_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sf_High_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_sf_Medium_value2enum_2[] = { + { 0, 6, "oDot25" }, + { 1, 5, "oDot5" }, + { 2, 6, "oDot75" }, + { 3, 5, "lDot0" } +}; +static const unsigned int asn_MAP_sf_Medium_enum2value_2[] = { + 3, /* lDot0(3) */ + 0, /* oDot25(0) */ + 1, /* oDot5(1) */ + 2 /* oDot75(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sf_Medium_specs_2 = { + asn_MAP_sf_Medium_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sf_Medium_2 = { + "sf-Medium", + "sf-Medium", + &asn_OP_NativeEnumerated, + asn_DEF_sf_Medium_tags_2, + sizeof(asn_DEF_sf_Medium_tags_2) + /sizeof(asn_DEF_sf_Medium_tags_2[0]) - 1, /* 1 */ + asn_DEF_sf_Medium_tags_2, /* Same as above */ + sizeof(asn_DEF_sf_Medium_tags_2) + /sizeof(asn_DEF_sf_Medium_tags_2[0]), /* 2 */ + { &asn_OER_type_sf_Medium_constr_2, &asn_PER_type_sf_Medium_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sf_Medium_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_sf_High_value2enum_7[] = { + { 0, 6, "oDot25" }, + { 1, 5, "oDot5" }, + { 2, 6, "oDot75" }, + { 3, 5, "lDot0" } +}; +static const unsigned int asn_MAP_sf_High_enum2value_7[] = { + 3, /* lDot0(3) */ + 0, /* oDot25(0) */ + 1, /* oDot5(1) */ + 2 /* oDot75(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_sf_High_specs_7 = { + asn_MAP_sf_High_value2enum_7, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_sf_High_7 = { + "sf-High", + "sf-High", + &asn_OP_NativeEnumerated, + asn_DEF_sf_High_tags_7, + sizeof(asn_DEF_sf_High_tags_7) + /sizeof(asn_DEF_sf_High_tags_7[0]) - 1, /* 1 */ + asn_DEF_sf_High_tags_7, /* Same as above */ + sizeof(asn_DEF_sf_High_tags_7) + /sizeof(asn_DEF_sf_High_tags_7[0]), /* 2 */ + { &asn_OER_type_sf_High_constr_7, &asn_PER_type_sf_High_constr_7, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_sf_High_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SpeedStateScaleFactors_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SpeedStateScaleFactors, sf_Medium), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sf_Medium_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-Medium" + }, + { ATF_NOFLAGS, 0, offsetof(struct SpeedStateScaleFactors, sf_High), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_sf_High_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sf-High" + }, +}; +static const ber_tlv_tag_t asn_DEF_SpeedStateScaleFactors_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SpeedStateScaleFactors_specs_1 = { + sizeof(struct SpeedStateScaleFactors), + offsetof(struct SpeedStateScaleFactors, _asn_ctx), + asn_MAP_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_SpeedStateScaleFactors = { + "SpeedStateScaleFactors", + "SpeedStateScaleFactors", + &asn_OP_SEQUENCE, + asn_DEF_SpeedStateScaleFactors_tags_1, + sizeof(asn_DEF_SpeedStateScaleFactors_tags_1) + /sizeof(asn_DEF_SpeedStateScaleFactors_tags_1[0]), /* 1 */ + asn_DEF_SpeedStateScaleFactors_tags_1, /* Same as above */ + sizeof(asn_DEF_SpeedStateScaleFactors_tags_1) + /sizeof(asn_DEF_SpeedStateScaleFactors_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SpeedStateScaleFactors_1, + 2, /* Elements count */ + &asn_SPC_SpeedStateScaleFactors_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SpeedStateScaleFactors.h b/src/codec_utils/RRC/SpeedStateScaleFactors.h new file mode 100644 index 000000000..c4bde62fe --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SpeedStateScaleFactors_H_ +#define _SpeedStateScaleFactors_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SpeedStateScaleFactors__sf_Medium { + SpeedStateScaleFactors__sf_Medium_oDot25 = 0, + SpeedStateScaleFactors__sf_Medium_oDot5 = 1, + SpeedStateScaleFactors__sf_Medium_oDot75 = 2, + SpeedStateScaleFactors__sf_Medium_lDot0 = 3 +} e_SpeedStateScaleFactors__sf_Medium; +typedef enum SpeedStateScaleFactors__sf_High { + SpeedStateScaleFactors__sf_High_oDot25 = 0, + SpeedStateScaleFactors__sf_High_oDot5 = 1, + SpeedStateScaleFactors__sf_High_oDot75 = 2, + SpeedStateScaleFactors__sf_High_lDot0 = 3 +} e_SpeedStateScaleFactors__sf_High; + +/* SpeedStateScaleFactors */ +typedef struct SpeedStateScaleFactors { + long sf_Medium; + long sf_High; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SpeedStateScaleFactors_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_sf_Medium_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_sf_High_7; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SpeedStateScaleFactors; +extern asn_SEQUENCE_specifics_t asn_SPC_SpeedStateScaleFactors_specs_1; +extern asn_TYPE_member_t asn_MBR_SpeedStateScaleFactors_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SpeedStateScaleFactors_H_ */ +#include diff --git a/src/codec_utils/RRC/SubcarrierSpacing.c b/src/codec_utils/RRC/SubcarrierSpacing.c new file mode 100644 index 000000000..d95292b30 --- /dev/null +++ b/src/codec_utils/RRC/SubcarrierSpacing.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SubcarrierSpacing.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_SubcarrierSpacing_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_SubcarrierSpacing_specs_1 = { + asn_MAP_SubcarrierSpacing_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_SubcarrierSpacing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_SubcarrierSpacing = { + "SubcarrierSpacing", + "SubcarrierSpacing", + &asn_OP_NativeEnumerated, + asn_DEF_SubcarrierSpacing_tags_1, + sizeof(asn_DEF_SubcarrierSpacing_tags_1) + /sizeof(asn_DEF_SubcarrierSpacing_tags_1[0]), /* 1 */ + asn_DEF_SubcarrierSpacing_tags_1, /* Same as above */ + sizeof(asn_DEF_SubcarrierSpacing_tags_1) + /sizeof(asn_DEF_SubcarrierSpacing_tags_1[0]), /* 1 */ + { &asn_OER_type_SubcarrierSpacing_constr_1, &asn_PER_type_SubcarrierSpacing_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_SubcarrierSpacing_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SubcarrierSpacing.h b/src/codec_utils/RRC/SubcarrierSpacing.h new file mode 100644 index 000000000..28f820821 --- /dev/null +++ b/src/codec_utils/RRC/SubcarrierSpacing.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SubcarrierSpacing_H_ +#define _SubcarrierSpacing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SubcarrierSpacing { + SubcarrierSpacing_kHz15 = 0, + SubcarrierSpacing_kHz30 = 1, + SubcarrierSpacing_kHz60 = 2, + SubcarrierSpacing_kHz120 = 3, + SubcarrierSpacing_kHz240 = 4, + SubcarrierSpacing_spare3 = 5, + SubcarrierSpacing_spare2 = 6, + SubcarrierSpacing_spare1 = 7 +} e_SubcarrierSpacing; + +/* SubcarrierSpacing */ +typedef long SubcarrierSpacing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_SubcarrierSpacing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_SubcarrierSpacing; +extern const asn_INTEGER_specifics_t asn_SPC_SubcarrierSpacing_specs_1; +asn_struct_free_f SubcarrierSpacing_free; +asn_struct_print_f SubcarrierSpacing_print; +asn_constr_check_f SubcarrierSpacing_constraint; +ber_type_decoder_f SubcarrierSpacing_decode_ber; +der_type_encoder_f SubcarrierSpacing_encode_der; +xer_type_decoder_f SubcarrierSpacing_decode_xer; +xer_type_encoder_f SubcarrierSpacing_encode_xer; +oer_type_decoder_f SubcarrierSpacing_decode_oer; +oer_type_encoder_f SubcarrierSpacing_encode_oer; +per_type_decoder_f SubcarrierSpacing_decode_uper; +per_type_encoder_f SubcarrierSpacing_encode_uper; +per_type_decoder_f SubcarrierSpacing_decode_aper; +per_type_encoder_f SubcarrierSpacing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _SubcarrierSpacing_H_ */ +#include diff --git a/src/codec_utils/RRC/SupportedBandwidth.c b/src/codec_utils/RRC/SupportedBandwidth.c new file mode 100644 index 000000000..050ab9e70 --- /dev/null +++ b/src/codec_utils/RRC/SupportedBandwidth.c @@ -0,0 +1,185 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_fr1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_fr2_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_SupportedBandwidth_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_fr1_specs_2 = { + asn_MAP_fr1_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_fr1_2 = { + "fr1", + "fr1", + &asn_OP_NativeEnumerated, + asn_DEF_fr1_tags_2, + sizeof(asn_DEF_fr1_tags_2) + /sizeof(asn_DEF_fr1_tags_2[0]) - 1, /* 1 */ + asn_DEF_fr1_tags_2, /* Same as above */ + sizeof(asn_DEF_fr1_tags_2) + /sizeof(asn_DEF_fr1_tags_2[0]), /* 2 */ + { &asn_OER_type_fr1_constr_2, &asn_PER_type_fr1_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fr1_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_fr2_value2enum_14[] = { + { 0, 5, "mhz50" }, + { 1, 6, "mhz100" }, + { 2, 6, "mhz200" }, + { 3, 6, "mhz400" } +}; +static const unsigned int asn_MAP_fr2_enum2value_14[] = { + 1, /* mhz100(1) */ + 2, /* mhz200(2) */ + 3, /* mhz400(3) */ + 0 /* mhz50(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_fr2_specs_14 = { + asn_MAP_fr2_value2enum_14, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_fr2_14 = { + "fr2", + "fr2", + &asn_OP_NativeEnumerated, + asn_DEF_fr2_tags_14, + sizeof(asn_DEF_fr2_tags_14) + /sizeof(asn_DEF_fr2_tags_14[0]) - 1, /* 1 */ + asn_DEF_fr2_tags_14, /* Same as above */ + sizeof(asn_DEF_fr2_tags_14) + /sizeof(asn_DEF_fr2_tags_14[0]), /* 2 */ + { &asn_OER_type_fr2_constr_14, &asn_PER_type_fr2_constr_14, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_fr2_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SupportedBandwidth_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SupportedBandwidth, choice.fr1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fr1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SupportedBandwidth, choice.fr2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_fr2_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SupportedBandwidth_specs_1 = { + sizeof(struct SupportedBandwidth), + offsetof(struct SupportedBandwidth, _asn_ctx), + offsetof(struct SupportedBandwidth, present), + sizeof(((struct SupportedBandwidth *)0)->present), + asn_MAP_SupportedBandwidth_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_SupportedBandwidth = { + "SupportedBandwidth", + "SupportedBandwidth", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_SupportedBandwidth_constr_1, &asn_PER_type_SupportedBandwidth_constr_1, CHOICE_constraint }, + asn_MBR_SupportedBandwidth_1, + 2, /* Elements count */ + &asn_SPC_SupportedBandwidth_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SupportedBandwidth.h b/src/codec_utils/RRC/SupportedBandwidth.h new file mode 100644 index 000000000..820bf8a1b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SupportedBandwidth_H_ +#define _SupportedBandwidth_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SupportedBandwidth_PR { + SupportedBandwidth_PR_NOTHING, /* No components present */ + SupportedBandwidth_PR_fr1, + SupportedBandwidth_PR_fr2 +} SupportedBandwidth_PR; +typedef enum SupportedBandwidth__fr1 { + SupportedBandwidth__fr1_mhz5 = 0, + SupportedBandwidth__fr1_mhz10 = 1, + SupportedBandwidth__fr1_mhz15 = 2, + SupportedBandwidth__fr1_mhz20 = 3, + SupportedBandwidth__fr1_mhz25 = 4, + SupportedBandwidth__fr1_mhz30 = 5, + SupportedBandwidth__fr1_mhz40 = 6, + SupportedBandwidth__fr1_mhz50 = 7, + SupportedBandwidth__fr1_mhz60 = 8, + SupportedBandwidth__fr1_mhz80 = 9, + SupportedBandwidth__fr1_mhz100 = 10 +} e_SupportedBandwidth__fr1; +typedef enum SupportedBandwidth__fr2 { + SupportedBandwidth__fr2_mhz50 = 0, + SupportedBandwidth__fr2_mhz100 = 1, + SupportedBandwidth__fr2_mhz200 = 2, + SupportedBandwidth__fr2_mhz400 = 3 +} e_SupportedBandwidth__fr2; + +/* SupportedBandwidth */ +typedef struct SupportedBandwidth { + SupportedBandwidth_PR present; + union SupportedBandwidth_u { + long fr1; + long fr2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SupportedBandwidth_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_fr1_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_fr2_14; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_SupportedBandwidth; +extern asn_CHOICE_specifics_t asn_SPC_SupportedBandwidth_specs_1; +extern asn_TYPE_member_t asn_MBR_SupportedBandwidth_1[2]; +extern asn_per_constraints_t asn_PER_type_SupportedBandwidth_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _SupportedBandwidth_H_ */ +#include diff --git a/src/codec_utils/RRC/SuspendConfig.c b/src/codec_utils/RRC/SuspendConfig.c new file mode 100644 index 000000000..7713fe608 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SuspendConfig.h" + +#include "RAN-NotificationAreaInfo.h" +asn_TYPE_member_t asn_MBR_SuspendConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SuspendConfig, fullI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_I_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fullI-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuspendConfig, shortI_RNTI), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ShortI_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "shortI-RNTI" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuspendConfig, ran_PagingCycle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PagingCycle, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-PagingCycle" + }, + { ATF_POINTER, 2, offsetof(struct SuspendConfig, ran_NotificationAreaInfo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_RAN_NotificationAreaInfo, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ran-NotificationAreaInfo" + }, + { ATF_POINTER, 1, offsetof(struct SuspendConfig, t380), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PeriodicRNAU_TimerValue, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t380" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuspendConfig, nextHopChainingCount), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NextHopChainingCount, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nextHopChainingCount" + }, +}; +static const int asn_MAP_SuspendConfig_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_SuspendConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SuspendConfig_specs_1 = { + sizeof(struct SuspendConfig), + offsetof(struct SuspendConfig, _asn_ctx), + asn_MAP_SuspendConfig_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_SuspendConfig_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SuspendConfig = { + "SuspendConfig", + "SuspendConfig", + &asn_OP_SEQUENCE, + asn_DEF_SuspendConfig_tags_1, + sizeof(asn_DEF_SuspendConfig_tags_1) + /sizeof(asn_DEF_SuspendConfig_tags_1[0]), /* 1 */ + asn_DEF_SuspendConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_SuspendConfig_tags_1) + /sizeof(asn_DEF_SuspendConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SuspendConfig_1, + 6, /* Elements count */ + &asn_SPC_SuspendConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SuspendConfig.h b/src/codec_utils/RRC/SuspendConfig.h new file mode 100644 index 000000000..8863cf2e9 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SuspendConfig_H_ +#define _SuspendConfig_H_ + + +#include + +/* Including external dependencies */ +#include "I-RNTI-Value.h" +#include "ShortI-RNTI-Value.h" +#include "PagingCycle.h" +#include "PeriodicRNAU-TimerValue.h" +#include "NextHopChainingCount.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RAN_NotificationAreaInfo; + +/* SuspendConfig */ +typedef struct SuspendConfig { + I_RNTI_Value_t fullI_RNTI; + ShortI_RNTI_Value_t shortI_RNTI; + PagingCycle_t ran_PagingCycle; + struct RAN_NotificationAreaInfo *ran_NotificationAreaInfo; /* OPTIONAL */ + PeriodicRNAU_TimerValue_t *t380; /* OPTIONAL */ + NextHopChainingCount_t nextHopChainingCount; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SuspendConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SuspendConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_SuspendConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_SuspendConfig_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SuspendConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/SystemInformation-IEs.c b/src/codec_utils/RRC/SystemInformation-IEs.c new file mode 100644 index 000000000..750a19e50 --- /dev/null +++ b/src/codec_utils/RRC/SystemInformation-IEs.c @@ -0,0 +1,304 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SystemInformation-IEs.h" + +#include "SIB2.h" +#include "SIB3.h" +#include "SIB4.h" +#include "SIB5.h" +#include "SIB6.h" +#include "SIB7.h" +#include "SIB8.h" +#include "SIB9.h" +static int +memb_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_oer_constraints_t asn_OER_type_Member_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_sib_TypeAndInfo_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_sib_TypeAndInfo_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_memb_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_Member_3[] = { + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib2), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib2" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib3), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib3" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib4), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib4" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib5), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib5" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib6), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib6" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib7), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib7" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib8), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib8" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, choice.sib9), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SIB9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sib9" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_Member_specs_3 = { + sizeof(struct SystemInformation_IEs__sib_TypeAndInfo__Member), + offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, _asn_ctx), + offsetof(struct SystemInformation_IEs__sib_TypeAndInfo__Member, present), + sizeof(((struct SystemInformation_IEs__sib_TypeAndInfo__Member *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_Member_constr_3, &asn_PER_type_Member_constr_3, CHOICE_constraint }, + asn_MBR_Member_3, + 8, /* Elements count */ + &asn_SPC_Member_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_sib_TypeAndInfo_2[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_Member_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_sib_TypeAndInfo_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_sib_TypeAndInfo_specs_2 = { + sizeof(struct SystemInformation_IEs__sib_TypeAndInfo), + offsetof(struct SystemInformation_IEs__sib_TypeAndInfo, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_sib_TypeAndInfo_2 = { + "sib-TypeAndInfo", + "sib-TypeAndInfo", + &asn_OP_SEQUENCE_OF, + asn_DEF_sib_TypeAndInfo_tags_2, + sizeof(asn_DEF_sib_TypeAndInfo_tags_2) + /sizeof(asn_DEF_sib_TypeAndInfo_tags_2[0]) - 1, /* 1 */ + asn_DEF_sib_TypeAndInfo_tags_2, /* Same as above */ + sizeof(asn_DEF_sib_TypeAndInfo_tags_2) + /sizeof(asn_DEF_sib_TypeAndInfo_tags_2[0]), /* 2 */ + { &asn_OER_type_sib_TypeAndInfo_constr_2, &asn_PER_type_sib_TypeAndInfo_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_sib_TypeAndInfo_2, + 1, /* Single element */ + &asn_SPC_sib_TypeAndInfo_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_14 = { + sizeof(struct SystemInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_14 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_14, + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_14, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_14 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SystemInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SystemInformation_IEs, sib_TypeAndInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_sib_TypeAndInfo_2, + 0, + { &asn_OER_memb_sib_TypeAndInfo_constr_2, &asn_PER_memb_sib_TypeAndInfo_constr_2, memb_sib_TypeAndInfo_constraint_1 }, + 0, 0, /* No default value */ + "sib-TypeAndInfo" + }, + { ATF_POINTER, 2, offsetof(struct 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 SystemInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_SystemInformation_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_SystemInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_SystemInformation_IEs_specs_1 = { + sizeof(struct SystemInformation_IEs), + offsetof(struct SystemInformation_IEs, _asn_ctx), + asn_MAP_SystemInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_SystemInformation_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SystemInformation_IEs = { + "SystemInformation-IEs", + "SystemInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_SystemInformation_IEs_tags_1, + sizeof(asn_DEF_SystemInformation_IEs_tags_1) + /sizeof(asn_DEF_SystemInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_SystemInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_SystemInformation_IEs_tags_1) + /sizeof(asn_DEF_SystemInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SystemInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_SystemInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SystemInformation-IEs.h b/src/codec_utils/RRC/SystemInformation-IEs.h new file mode 100644 index 000000000..7c3c1803c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SystemInformation_IEs_H_ +#define _SystemInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SystemInformation_IEs__sib_TypeAndInfo__Member_PR { + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_NOTHING, /* No components present */ + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib2, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib3, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib4, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib5, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib6, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib7, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib8, + SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib9 + /* Extensions may appear below */ + +} SystemInformation_IEs__sib_TypeAndInfo__Member_PR; + +/* Forward declarations */ +struct SIB2; +struct SIB3; +struct SIB4; +struct SIB5; +struct SIB6; +struct SIB7; +struct SIB8; +struct SIB9; + +/* Forward definitions */ +typedef struct SystemInformation_IEs__sib_TypeAndInfo__Member { + SystemInformation_IEs__sib_TypeAndInfo__Member_PR present; + union SystemInformation_IEs__sib_TypeAndInfo__Member_u { + struct SIB2 *sib2; + struct SIB3 *sib3; + struct SIB4 *sib4; + struct SIB5 *sib5; + struct SIB6 *sib6; + struct SIB7 *sib7; + struct SIB8 *sib8; + struct 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; + +/* SystemInformation-IEs */ +typedef struct SystemInformation_IEs { + struct 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 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; +} SystemInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SystemInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_SystemInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_SystemInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SystemInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/SystemInformation.c b/src/codec_utils/RRC/SystemInformation.c new file mode 100644 index 000000000..d6169203b --- /dev/null +++ b/src/codec_utils/RRC/SystemInformation.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "SystemInformation.h" + +#include "SystemInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct SystemInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct SystemInformation__criticalExtensions, choice.systemInformation_r15), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SystemInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "systemInformation-r15" + }, + { ATF_POINTER, 0, offsetof(struct SystemInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_criticalExtensions_tag2el_2[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* systemInformation-r15 */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* criticalExtensionsFuture */ +}; +static asn_CHOICE_specifics_t asn_SPC_criticalExtensions_specs_2 = { + sizeof(struct SystemInformation__criticalExtensions), + offsetof(struct SystemInformation__criticalExtensions, _asn_ctx), + offsetof(struct SystemInformation__criticalExtensions, present), + sizeof(((struct SystemInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_SystemInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SystemInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_SystemInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SystemInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SystemInformation_specs_1 = { + sizeof(struct SystemInformation), + offsetof(struct SystemInformation, _asn_ctx), + asn_MAP_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_SystemInformation = { + "SystemInformation", + "SystemInformation", + &asn_OP_SEQUENCE, + asn_DEF_SystemInformation_tags_1, + sizeof(asn_DEF_SystemInformation_tags_1) + /sizeof(asn_DEF_SystemInformation_tags_1[0]), /* 1 */ + asn_DEF_SystemInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_SystemInformation_tags_1) + /sizeof(asn_DEF_SystemInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SystemInformation_1, + 1, /* Elements count */ + &asn_SPC_SystemInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/SystemInformation.h b/src/codec_utils/RRC/SystemInformation.h new file mode 100644 index 000000000..567caf4eb --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _SystemInformation_H_ +#define _SystemInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum SystemInformation__criticalExtensions_PR { + SystemInformation__criticalExtensions_PR_NOTHING, /* No components present */ + SystemInformation__criticalExtensions_PR_systemInformation_r15, + SystemInformation__criticalExtensions_PR_criticalExtensionsFuture +} SystemInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct SystemInformation_IEs; + +/* SystemInformation */ +typedef struct SystemInformation { + struct SystemInformation__criticalExtensions { + SystemInformation__criticalExtensions_PR present; + union SystemInformation__criticalExtensions_u { + struct SystemInformation_IEs *systemInformation_r15; + struct 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; +} SystemInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SystemInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_SystemInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_SystemInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SystemInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/T-PollRetransmit.c b/src/codec_utils/RRC/T-PollRetransmit.c new file mode 100644 index 000000000..61bf3b4b1 --- /dev/null +++ b/src/codec_utils/RRC/T-PollRetransmit.c @@ -0,0 +1,180 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "T-PollRetransmit.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_T_PollRetransmit_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_T_PollRetransmit_specs_1 = { + asn_MAP_T_PollRetransmit_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_T_PollRetransmit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_T_PollRetransmit = { + "T-PollRetransmit", + "T-PollRetransmit", + &asn_OP_NativeEnumerated, + asn_DEF_T_PollRetransmit_tags_1, + sizeof(asn_DEF_T_PollRetransmit_tags_1) + /sizeof(asn_DEF_T_PollRetransmit_tags_1[0]), /* 1 */ + asn_DEF_T_PollRetransmit_tags_1, /* Same as above */ + sizeof(asn_DEF_T_PollRetransmit_tags_1) + /sizeof(asn_DEF_T_PollRetransmit_tags_1[0]), /* 1 */ + { &asn_OER_type_T_PollRetransmit_constr_1, &asn_PER_type_T_PollRetransmit_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_T_PollRetransmit_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/T-PollRetransmit.h b/src/codec_utils/RRC/T-PollRetransmit.h new file mode 100644 index 000000000..fdb19ee42 --- /dev/null +++ b/src/codec_utils/RRC/T-PollRetransmit.h @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _T_PollRetransmit_H_ +#define _T_PollRetransmit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum T_PollRetransmit { + T_PollRetransmit_ms5 = 0, + T_PollRetransmit_ms10 = 1, + T_PollRetransmit_ms15 = 2, + T_PollRetransmit_ms20 = 3, + T_PollRetransmit_ms25 = 4, + T_PollRetransmit_ms30 = 5, + T_PollRetransmit_ms35 = 6, + T_PollRetransmit_ms40 = 7, + T_PollRetransmit_ms45 = 8, + T_PollRetransmit_ms50 = 9, + T_PollRetransmit_ms55 = 10, + T_PollRetransmit_ms60 = 11, + T_PollRetransmit_ms65 = 12, + T_PollRetransmit_ms70 = 13, + T_PollRetransmit_ms75 = 14, + T_PollRetransmit_ms80 = 15, + T_PollRetransmit_ms85 = 16, + T_PollRetransmit_ms90 = 17, + T_PollRetransmit_ms95 = 18, + T_PollRetransmit_ms100 = 19, + T_PollRetransmit_ms105 = 20, + T_PollRetransmit_ms110 = 21, + T_PollRetransmit_ms115 = 22, + T_PollRetransmit_ms120 = 23, + T_PollRetransmit_ms125 = 24, + T_PollRetransmit_ms130 = 25, + T_PollRetransmit_ms135 = 26, + T_PollRetransmit_ms140 = 27, + T_PollRetransmit_ms145 = 28, + T_PollRetransmit_ms150 = 29, + T_PollRetransmit_ms155 = 30, + T_PollRetransmit_ms160 = 31, + T_PollRetransmit_ms165 = 32, + T_PollRetransmit_ms170 = 33, + T_PollRetransmit_ms175 = 34, + T_PollRetransmit_ms180 = 35, + T_PollRetransmit_ms185 = 36, + T_PollRetransmit_ms190 = 37, + T_PollRetransmit_ms195 = 38, + T_PollRetransmit_ms200 = 39, + T_PollRetransmit_ms205 = 40, + T_PollRetransmit_ms210 = 41, + T_PollRetransmit_ms215 = 42, + T_PollRetransmit_ms220 = 43, + T_PollRetransmit_ms225 = 44, + T_PollRetransmit_ms230 = 45, + T_PollRetransmit_ms235 = 46, + T_PollRetransmit_ms240 = 47, + T_PollRetransmit_ms245 = 48, + T_PollRetransmit_ms250 = 49, + T_PollRetransmit_ms300 = 50, + T_PollRetransmit_ms350 = 51, + T_PollRetransmit_ms400 = 52, + T_PollRetransmit_ms450 = 53, + T_PollRetransmit_ms500 = 54, + T_PollRetransmit_ms800 = 55, + T_PollRetransmit_ms1000 = 56, + T_PollRetransmit_ms2000 = 57, + T_PollRetransmit_ms4000 = 58, + T_PollRetransmit_spare5 = 59, + T_PollRetransmit_spare4 = 60, + T_PollRetransmit_spare3 = 61, + T_PollRetransmit_spare2 = 62, + T_PollRetransmit_spare1 = 63 +} e_T_PollRetransmit; + +/* T-PollRetransmit */ +typedef long T_PollRetransmit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_T_PollRetransmit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_T_PollRetransmit; +extern const asn_INTEGER_specifics_t asn_SPC_T_PollRetransmit_specs_1; +asn_struct_free_f T_PollRetransmit_free; +asn_struct_print_f T_PollRetransmit_print; +asn_constr_check_f T_PollRetransmit_constraint; +ber_type_decoder_f T_PollRetransmit_decode_ber; +der_type_encoder_f T_PollRetransmit_encode_der; +xer_type_decoder_f T_PollRetransmit_decode_xer; +xer_type_encoder_f T_PollRetransmit_encode_xer; +oer_type_decoder_f T_PollRetransmit_decode_oer; +oer_type_encoder_f T_PollRetransmit_encode_oer; +per_type_decoder_f T_PollRetransmit_decode_uper; +per_type_encoder_f T_PollRetransmit_encode_uper; +per_type_decoder_f T_PollRetransmit_decode_aper; +per_type_encoder_f T_PollRetransmit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _T_PollRetransmit_H_ */ +#include diff --git a/src/codec_utils/RRC/T-Reassembly.c b/src/codec_utils/RRC/T-Reassembly.c new file mode 100644 index 000000000..381d3519d --- /dev/null +++ b/src/codec_utils/RRC/T-Reassembly.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "T-Reassembly.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_T_Reassembly_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_T_Reassembly_specs_1 = { + asn_MAP_T_Reassembly_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_T_Reassembly_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_T_Reassembly = { + "T-Reassembly", + "T-Reassembly", + &asn_OP_NativeEnumerated, + asn_DEF_T_Reassembly_tags_1, + sizeof(asn_DEF_T_Reassembly_tags_1) + /sizeof(asn_DEF_T_Reassembly_tags_1[0]), /* 1 */ + asn_DEF_T_Reassembly_tags_1, /* Same as above */ + sizeof(asn_DEF_T_Reassembly_tags_1) + /sizeof(asn_DEF_T_Reassembly_tags_1[0]), /* 1 */ + { &asn_OER_type_T_Reassembly_constr_1, &asn_PER_type_T_Reassembly_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_T_Reassembly_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/T-Reassembly.h b/src/codec_utils/RRC/T-Reassembly.h new file mode 100644 index 000000000..62a7e6a75 --- /dev/null +++ b/src/codec_utils/RRC/T-Reassembly.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _T_Reassembly_H_ +#define _T_Reassembly_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum T_Reassembly { + T_Reassembly_ms0 = 0, + T_Reassembly_ms5 = 1, + T_Reassembly_ms10 = 2, + T_Reassembly_ms15 = 3, + T_Reassembly_ms20 = 4, + T_Reassembly_ms25 = 5, + T_Reassembly_ms30 = 6, + T_Reassembly_ms35 = 7, + T_Reassembly_ms40 = 8, + T_Reassembly_ms45 = 9, + T_Reassembly_ms50 = 10, + T_Reassembly_ms55 = 11, + T_Reassembly_ms60 = 12, + T_Reassembly_ms65 = 13, + T_Reassembly_ms70 = 14, + T_Reassembly_ms75 = 15, + T_Reassembly_ms80 = 16, + T_Reassembly_ms85 = 17, + T_Reassembly_ms90 = 18, + T_Reassembly_ms95 = 19, + T_Reassembly_ms100 = 20, + T_Reassembly_ms110 = 21, + T_Reassembly_ms120 = 22, + T_Reassembly_ms130 = 23, + T_Reassembly_ms140 = 24, + T_Reassembly_ms150 = 25, + T_Reassembly_ms160 = 26, + T_Reassembly_ms170 = 27, + T_Reassembly_ms180 = 28, + T_Reassembly_ms190 = 29, + T_Reassembly_ms200 = 30, + T_Reassembly_spare1 = 31 +} e_T_Reassembly; + +/* T-Reassembly */ +typedef long T_Reassembly_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_T_Reassembly_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_T_Reassembly; +extern const asn_INTEGER_specifics_t asn_SPC_T_Reassembly_specs_1; +asn_struct_free_f T_Reassembly_free; +asn_struct_print_f T_Reassembly_print; +asn_constr_check_f T_Reassembly_constraint; +ber_type_decoder_f T_Reassembly_decode_ber; +der_type_encoder_f T_Reassembly_encode_der; +xer_type_decoder_f T_Reassembly_decode_xer; +xer_type_encoder_f T_Reassembly_encode_xer; +oer_type_decoder_f T_Reassembly_decode_oer; +oer_type_encoder_f T_Reassembly_encode_oer; +per_type_decoder_f T_Reassembly_decode_uper; +per_type_encoder_f T_Reassembly_encode_uper; +per_type_decoder_f T_Reassembly_decode_aper; +per_type_encoder_f T_Reassembly_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _T_Reassembly_H_ */ +#include diff --git a/src/codec_utils/RRC/T-Reselection.c b/src/codec_utils/RRC/T-Reselection.c new file mode 100644 index 000000000..b42e1a620 --- /dev/null +++ b/src/codec_utils/RRC/T-Reselection.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "T-Reselection.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_T_Reselection_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..7) */, + -1}; +asn_per_constraints_t asn_PER_type_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_T_Reselection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_T_Reselection = { + "T-Reselection", + "T-Reselection", + &asn_OP_NativeInteger, + asn_DEF_T_Reselection_tags_1, + sizeof(asn_DEF_T_Reselection_tags_1) + /sizeof(asn_DEF_T_Reselection_tags_1[0]), /* 1 */ + asn_DEF_T_Reselection_tags_1, /* Same as above */ + sizeof(asn_DEF_T_Reselection_tags_1) + /sizeof(asn_DEF_T_Reselection_tags_1[0]), /* 1 */ + { &asn_OER_type_T_Reselection_constr_1, &asn_PER_type_T_Reselection_constr_1, T_Reselection_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/T-Reselection.h b/src/codec_utils/RRC/T-Reselection.h new file mode 100644 index 000000000..37e83a9d6 --- /dev/null +++ b/src/codec_utils/RRC/T-Reselection.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _T_Reselection_H_ +#define _T_Reselection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* T-Reselection */ +typedef long T_Reselection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_T_Reselection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_T_Reselection; +asn_struct_free_f T_Reselection_free; +asn_struct_print_f T_Reselection_print; +asn_constr_check_f T_Reselection_constraint; +ber_type_decoder_f T_Reselection_decode_ber; +der_type_encoder_f T_Reselection_encode_der; +xer_type_decoder_f T_Reselection_decode_xer; +xer_type_encoder_f T_Reselection_encode_xer; +oer_type_decoder_f T_Reselection_decode_oer; +oer_type_encoder_f T_Reselection_encode_oer; +per_type_decoder_f T_Reselection_decode_uper; +per_type_encoder_f T_Reselection_encode_uper; +per_type_decoder_f T_Reselection_decode_aper; +per_type_encoder_f T_Reselection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _T_Reselection_H_ */ +#include diff --git a/src/codec_utils/RRC/T-StatusProhibit.c b/src/codec_utils/RRC/T-StatusProhibit.c new file mode 100644 index 000000000..dda569c8c --- /dev/null +++ b/src/codec_utils/RRC/T-StatusProhibit.c @@ -0,0 +1,180 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "T-StatusProhibit.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_T_StatusProhibit_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_T_StatusProhibit_specs_1 = { + asn_MAP_T_StatusProhibit_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_T_StatusProhibit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_T_StatusProhibit = { + "T-StatusProhibit", + "T-StatusProhibit", + &asn_OP_NativeEnumerated, + asn_DEF_T_StatusProhibit_tags_1, + sizeof(asn_DEF_T_StatusProhibit_tags_1) + /sizeof(asn_DEF_T_StatusProhibit_tags_1[0]), /* 1 */ + asn_DEF_T_StatusProhibit_tags_1, /* Same as above */ + sizeof(asn_DEF_T_StatusProhibit_tags_1) + /sizeof(asn_DEF_T_StatusProhibit_tags_1[0]), /* 1 */ + { &asn_OER_type_T_StatusProhibit_constr_1, &asn_PER_type_T_StatusProhibit_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_T_StatusProhibit_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/T-StatusProhibit.h b/src/codec_utils/RRC/T-StatusProhibit.h new file mode 100644 index 000000000..528dac0b7 --- /dev/null +++ b/src/codec_utils/RRC/T-StatusProhibit.h @@ -0,0 +1,115 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _T_StatusProhibit_H_ +#define _T_StatusProhibit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum T_StatusProhibit { + T_StatusProhibit_ms0 = 0, + T_StatusProhibit_ms5 = 1, + T_StatusProhibit_ms10 = 2, + T_StatusProhibit_ms15 = 3, + T_StatusProhibit_ms20 = 4, + T_StatusProhibit_ms25 = 5, + T_StatusProhibit_ms30 = 6, + T_StatusProhibit_ms35 = 7, + T_StatusProhibit_ms40 = 8, + T_StatusProhibit_ms45 = 9, + T_StatusProhibit_ms50 = 10, + T_StatusProhibit_ms55 = 11, + T_StatusProhibit_ms60 = 12, + T_StatusProhibit_ms65 = 13, + T_StatusProhibit_ms70 = 14, + T_StatusProhibit_ms75 = 15, + T_StatusProhibit_ms80 = 16, + T_StatusProhibit_ms85 = 17, + T_StatusProhibit_ms90 = 18, + T_StatusProhibit_ms95 = 19, + T_StatusProhibit_ms100 = 20, + T_StatusProhibit_ms105 = 21, + T_StatusProhibit_ms110 = 22, + T_StatusProhibit_ms115 = 23, + T_StatusProhibit_ms120 = 24, + T_StatusProhibit_ms125 = 25, + T_StatusProhibit_ms130 = 26, + T_StatusProhibit_ms135 = 27, + T_StatusProhibit_ms140 = 28, + T_StatusProhibit_ms145 = 29, + T_StatusProhibit_ms150 = 30, + T_StatusProhibit_ms155 = 31, + T_StatusProhibit_ms160 = 32, + T_StatusProhibit_ms165 = 33, + T_StatusProhibit_ms170 = 34, + T_StatusProhibit_ms175 = 35, + T_StatusProhibit_ms180 = 36, + T_StatusProhibit_ms185 = 37, + T_StatusProhibit_ms190 = 38, + T_StatusProhibit_ms195 = 39, + T_StatusProhibit_ms200 = 40, + T_StatusProhibit_ms205 = 41, + T_StatusProhibit_ms210 = 42, + T_StatusProhibit_ms215 = 43, + T_StatusProhibit_ms220 = 44, + T_StatusProhibit_ms225 = 45, + T_StatusProhibit_ms230 = 46, + T_StatusProhibit_ms235 = 47, + T_StatusProhibit_ms240 = 48, + T_StatusProhibit_ms245 = 49, + T_StatusProhibit_ms250 = 50, + T_StatusProhibit_ms300 = 51, + T_StatusProhibit_ms350 = 52, + T_StatusProhibit_ms400 = 53, + T_StatusProhibit_ms450 = 54, + T_StatusProhibit_ms500 = 55, + T_StatusProhibit_ms800 = 56, + T_StatusProhibit_ms1000 = 57, + T_StatusProhibit_ms1200 = 58, + T_StatusProhibit_ms1600 = 59, + T_StatusProhibit_ms2000 = 60, + T_StatusProhibit_ms2400 = 61, + T_StatusProhibit_spare2 = 62, + T_StatusProhibit_spare1 = 63 +} e_T_StatusProhibit; + +/* T-StatusProhibit */ +typedef long T_StatusProhibit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_T_StatusProhibit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_T_StatusProhibit; +extern const asn_INTEGER_specifics_t asn_SPC_T_StatusProhibit_specs_1; +asn_struct_free_f T_StatusProhibit_free; +asn_struct_print_f T_StatusProhibit_print; +asn_constr_check_f T_StatusProhibit_constraint; +ber_type_decoder_f T_StatusProhibit_decode_ber; +der_type_encoder_f T_StatusProhibit_encode_der; +xer_type_decoder_f T_StatusProhibit_decode_xer; +xer_type_encoder_f T_StatusProhibit_encode_xer; +oer_type_decoder_f T_StatusProhibit_decode_oer; +oer_type_encoder_f T_StatusProhibit_encode_oer; +per_type_decoder_f T_StatusProhibit_decode_uper; +per_type_encoder_f T_StatusProhibit_encode_uper; +per_type_decoder_f T_StatusProhibit_decode_aper; +per_type_encoder_f T_StatusProhibit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _T_StatusProhibit_H_ */ +#include diff --git a/src/codec_utils/RRC/TAG-Config.c b/src/codec_utils/RRC/TAG-Config.c new file mode 100644 index 000000000..906f5f81e --- /dev/null +++ b/src/codec_utils/RRC/TAG-Config.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TAG-Config.h" + +#include "TAG.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_tag_ToReleaseList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tag_ToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_tag_ToReleaseList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tag_ToAddModList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_tag_ToReleaseList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_tag_ToReleaseList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_tag_ToReleaseList_specs_2 = { + sizeof(struct TAG_Config__tag_ToReleaseList), + offsetof(struct TAG_Config__tag_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tag_ToReleaseList_2 = { + "tag-ToReleaseList", + "tag-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tag_ToReleaseList_tags_2, + sizeof(asn_DEF_tag_ToReleaseList_tags_2) + /sizeof(asn_DEF_tag_ToReleaseList_tags_2[0]) - 1, /* 1 */ + asn_DEF_tag_ToReleaseList_tags_2, /* Same as above */ + sizeof(asn_DEF_tag_ToReleaseList_tags_2) + /sizeof(asn_DEF_tag_ToReleaseList_tags_2[0]), /* 2 */ + { &asn_OER_type_tag_ToReleaseList_constr_2, &asn_PER_type_tag_ToReleaseList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_tag_ToReleaseList_2, + 1, /* Single element */ + &asn_SPC_tag_ToReleaseList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_tag_ToAddModList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TAG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_tag_ToAddModList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_tag_ToAddModList_specs_4 = { + sizeof(struct TAG_Config__tag_ToAddModList), + offsetof(struct TAG_Config__tag_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_tag_ToAddModList_4 = { + "tag-ToAddModList", + "tag-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_tag_ToAddModList_tags_4, + sizeof(asn_DEF_tag_ToAddModList_tags_4) + /sizeof(asn_DEF_tag_ToAddModList_tags_4[0]) - 1, /* 1 */ + asn_DEF_tag_ToAddModList_tags_4, /* Same as above */ + sizeof(asn_DEF_tag_ToAddModList_tags_4) + /sizeof(asn_DEF_tag_ToAddModList_tags_4[0]), /* 2 */ + { &asn_OER_type_tag_ToAddModList_constr_4, &asn_PER_type_tag_ToAddModList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_tag_ToAddModList_4, + 1, /* Single element */ + &asn_SPC_tag_ToAddModList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TAG_Config_1[] = { + { ATF_POINTER, 2, offsetof(struct TAG_Config, tag_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_tag_ToReleaseList_2, + 0, + { &asn_OER_memb_tag_ToReleaseList_constr_2, &asn_PER_memb_tag_ToReleaseList_constr_2, memb_tag_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "tag-ToReleaseList" + }, + { ATF_POINTER, 1, offsetof(struct TAG_Config, tag_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_tag_ToAddModList_4, + 0, + { &asn_OER_memb_tag_ToAddModList_constr_4, &asn_PER_memb_tag_ToAddModList_constr_4, memb_tag_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "tag-ToAddModList" + }, +}; +static const int asn_MAP_TAG_Config_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TAG_Config_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TAG_Config_specs_1 = { + sizeof(struct TAG_Config), + offsetof(struct TAG_Config, _asn_ctx), + asn_MAP_TAG_Config_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TAG_Config_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TAG_Config = { + "TAG-Config", + "TAG-Config", + &asn_OP_SEQUENCE, + asn_DEF_TAG_Config_tags_1, + sizeof(asn_DEF_TAG_Config_tags_1) + /sizeof(asn_DEF_TAG_Config_tags_1[0]), /* 1 */ + asn_DEF_TAG_Config_tags_1, /* Same as above */ + sizeof(asn_DEF_TAG_Config_tags_1) + /sizeof(asn_DEF_TAG_Config_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TAG_Config_1, + 2, /* Elements count */ + &asn_SPC_TAG_Config_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TAG-Config.h b/src/codec_utils/RRC/TAG-Config.h new file mode 100644 index 000000000..6c126ef62 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TAG_Config_H_ +#define _TAG_Config_H_ + + +#include + +/* Including external dependencies */ +#include "TAG-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TAG; + +/* TAG-Config */ +typedef struct TAG_Config { + struct TAG_Config__tag_ToReleaseList { + A_SEQUENCE_OF(TAG_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *tag_ToReleaseList; + struct TAG_Config__tag_ToAddModList { + A_SEQUENCE_OF(struct 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; +} TAG_Config_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TAG_Config; +extern asn_SEQUENCE_specifics_t asn_SPC_TAG_Config_specs_1; +extern asn_TYPE_member_t asn_MBR_TAG_Config_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TAG_Config_H_ */ +#include diff --git a/src/codec_utils/RRC/TAG-Id.c b/src/codec_utils/RRC/TAG-Id.c new file mode 100644 index 000000000..e31980a41 --- /dev/null +++ b/src/codec_utils/RRC/TAG-Id.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TAG-Id.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_TAG_Id_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..3) */, + -1}; +asn_per_constraints_t asn_PER_type_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_TAG_Id_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TAG_Id = { + "TAG-Id", + "TAG-Id", + &asn_OP_NativeInteger, + asn_DEF_TAG_Id_tags_1, + sizeof(asn_DEF_TAG_Id_tags_1) + /sizeof(asn_DEF_TAG_Id_tags_1[0]), /* 1 */ + asn_DEF_TAG_Id_tags_1, /* Same as above */ + sizeof(asn_DEF_TAG_Id_tags_1) + /sizeof(asn_DEF_TAG_Id_tags_1[0]), /* 1 */ + { &asn_OER_type_TAG_Id_constr_1, &asn_PER_type_TAG_Id_constr_1, TAG_Id_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/TAG-Id.h b/src/codec_utils/RRC/TAG-Id.h new file mode 100644 index 000000000..8a4acedad --- /dev/null +++ b/src/codec_utils/RRC/TAG-Id.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TAG_Id_H_ +#define _TAG_Id_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TAG-Id */ +typedef long TAG_Id_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TAG_Id_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TAG_Id; +asn_struct_free_f TAG_Id_free; +asn_struct_print_f TAG_Id_print; +asn_constr_check_f TAG_Id_constraint; +ber_type_decoder_f TAG_Id_decode_ber; +der_type_encoder_f TAG_Id_encode_der; +xer_type_decoder_f TAG_Id_decode_xer; +xer_type_encoder_f TAG_Id_encode_xer; +oer_type_decoder_f TAG_Id_decode_oer; +oer_type_encoder_f TAG_Id_encode_oer; +per_type_decoder_f TAG_Id_decode_uper; +per_type_encoder_f TAG_Id_encode_uper; +per_type_decoder_f TAG_Id_decode_aper; +per_type_encoder_f TAG_Id_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TAG_Id_H_ */ +#include diff --git a/src/codec_utils/RRC/TAG.c b/src/codec_utils/RRC/TAG.c new file mode 100644 index 000000000..16ee8c57b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TAG.h" + +asn_TYPE_member_t asn_MBR_TAG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TAG, tag_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TAG_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tag-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct TAG, timeAlignmentTimer), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeAlignmentTimer" + }, +}; +static const ber_tlv_tag_t asn_DEF_TAG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TAG_specs_1 = { + sizeof(struct TAG), + offsetof(struct TAG, _asn_ctx), + asn_MAP_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_TAG = { + "TAG", + "TAG", + &asn_OP_SEQUENCE, + asn_DEF_TAG_tags_1, + sizeof(asn_DEF_TAG_tags_1) + /sizeof(asn_DEF_TAG_tags_1[0]), /* 1 */ + asn_DEF_TAG_tags_1, /* Same as above */ + sizeof(asn_DEF_TAG_tags_1) + /sizeof(asn_DEF_TAG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TAG_1, + 2, /* Elements count */ + &asn_SPC_TAG_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TAG.h b/src/codec_utils/RRC/TAG.h new file mode 100644 index 000000000..f522ffe3d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TAG_H_ +#define _TAG_H_ + + +#include + +/* Including external dependencies */ +#include "TAG-Id.h" +#include "TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TAG */ +typedef struct TAG { + TAG_Id_t tag_Id; + TimeAlignmentTimer_t timeAlignmentTimer; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TAG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TAG; +extern asn_SEQUENCE_specifics_t asn_SPC_TAG_specs_1; +extern asn_TYPE_member_t asn_MBR_TAG_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TAG_H_ */ +#include diff --git a/src/codec_utils/RRC/TCI-State.c b/src/codec_utils/RRC/TCI-State.c new file mode 100644 index 000000000..623231af0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TCI-State.h" + +#include "QCL-Info.h" +asn_TYPE_member_t asn_MBR_TCI_State_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TCI_State, tci_StateId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TCI_StateId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tci-StateId" + }, + { ATF_NOFLAGS, 0, offsetof(struct TCI_State, qcl_Type1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCL_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type1" + }, + { ATF_POINTER, 1, offsetof(struct TCI_State, qcl_Type2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QCL_Info, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "qcl-Type2" + }, +}; +static const int asn_MAP_TCI_State_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_TCI_State_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TCI_State_specs_1 = { + sizeof(struct TCI_State), + offsetof(struct TCI_State, _asn_ctx), + asn_MAP_TCI_State_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_TCI_State_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TCI_State = { + "TCI-State", + "TCI-State", + &asn_OP_SEQUENCE, + asn_DEF_TCI_State_tags_1, + sizeof(asn_DEF_TCI_State_tags_1) + /sizeof(asn_DEF_TCI_State_tags_1[0]), /* 1 */ + asn_DEF_TCI_State_tags_1, /* Same as above */ + sizeof(asn_DEF_TCI_State_tags_1) + /sizeof(asn_DEF_TCI_State_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TCI_State_1, + 3, /* Elements count */ + &asn_SPC_TCI_State_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TCI-State.h b/src/codec_utils/RRC/TCI-State.h new file mode 100644 index 000000000..1b6026190 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TCI_State_H_ +#define _TCI_State_H_ + + +#include + +/* Including external dependencies */ +#include "TCI-StateId.h" +#include "QCL-Info.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct QCL_Info; + +/* TCI-State */ +typedef struct TCI_State { + TCI_StateId_t tci_StateId; + QCL_Info_t qcl_Type1; + struct 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; +} TCI_State_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TCI_State; +extern asn_SEQUENCE_specifics_t asn_SPC_TCI_State_specs_1; +extern asn_TYPE_member_t asn_MBR_TCI_State_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TCI_State_H_ */ +#include diff --git a/src/codec_utils/RRC/TCI-StateId.c b/src/codec_utils/RRC/TCI-StateId.c new file mode 100644 index 000000000..25cc0f103 --- /dev/null +++ b/src/codec_utils/RRC/TCI-StateId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TCI-StateId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_TCI_StateId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..127) */, + -1}; +asn_per_constraints_t asn_PER_type_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_TCI_StateId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TCI_StateId = { + "TCI-StateId", + "TCI-StateId", + &asn_OP_NativeInteger, + asn_DEF_TCI_StateId_tags_1, + sizeof(asn_DEF_TCI_StateId_tags_1) + /sizeof(asn_DEF_TCI_StateId_tags_1[0]), /* 1 */ + asn_DEF_TCI_StateId_tags_1, /* Same as above */ + sizeof(asn_DEF_TCI_StateId_tags_1) + /sizeof(asn_DEF_TCI_StateId_tags_1[0]), /* 1 */ + { &asn_OER_type_TCI_StateId_constr_1, &asn_PER_type_TCI_StateId_constr_1, TCI_StateId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/TCI-StateId.h b/src/codec_utils/RRC/TCI-StateId.h new file mode 100644 index 000000000..9bd7c334a --- /dev/null +++ b/src/codec_utils/RRC/TCI-StateId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TCI_StateId_H_ +#define _TCI_StateId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TCI-StateId */ +typedef long TCI_StateId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TCI_StateId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TCI_StateId; +asn_struct_free_f TCI_StateId_free; +asn_struct_print_f TCI_StateId_print; +asn_constr_check_f TCI_StateId_constraint; +ber_type_decoder_f TCI_StateId_decode_ber; +der_type_encoder_f TCI_StateId_encode_der; +xer_type_decoder_f TCI_StateId_decode_xer; +xer_type_encoder_f TCI_StateId_encode_xer; +oer_type_decoder_f TCI_StateId_decode_oer; +oer_type_encoder_f TCI_StateId_encode_oer; +per_type_decoder_f TCI_StateId_decode_uper; +per_type_encoder_f TCI_StateId_encode_uper; +per_type_decoder_f TCI_StateId_decode_aper; +per_type_encoder_f TCI_StateId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TCI_StateId_H_ */ +#include diff --git a/src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.c b/src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.c new file mode 100644 index 000000000..2d2d32a49 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TDD-UL-DL-ConfigCommon.h" + +#include "TDD-UL-DL-Pattern.h" +asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigCommon_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_ConfigCommon, referenceSubcarrierSpacing), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SubcarrierSpacing, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "referenceSubcarrierSpacing" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_ConfigCommon, pattern1), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_Pattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern1" + }, + { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_ConfigCommon, pattern2), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_Pattern, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pattern2" + }, +}; +static const int asn_MAP_TDD_UL_DL_ConfigCommon_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_ConfigCommon_specs_1 = { + sizeof(struct TDD_UL_DL_ConfigCommon), + offsetof(struct TDD_UL_DL_ConfigCommon, _asn_ctx), + asn_MAP_TDD_UL_DL_ConfigCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_TDD_UL_DL_ConfigCommon_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigCommon = { + "TDD-UL-DL-ConfigCommon", + "TDD-UL-DL-ConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_TDD_UL_DL_ConfigCommon_tags_1, + sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_TDD_UL_DL_ConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_UL_DL_ConfigCommon_1, + 3, /* Elements count */ + &asn_SPC_TDD_UL_DL_ConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.h b/src/codec_utils/RRC/TDD-UL-DL-ConfigCommon.h new file mode 100644 index 000000000..92b741026 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_UL_DL_ConfigCommon_H_ +#define _TDD_UL_DL_ConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "SubcarrierSpacing.h" +#include "TDD-UL-DL-Pattern.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TDD_UL_DL_Pattern; + +/* TDD-UL-DL-ConfigCommon */ +typedef struct TDD_UL_DL_ConfigCommon { + SubcarrierSpacing_t referenceSubcarrierSpacing; + TDD_UL_DL_Pattern_t pattern1; + struct 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; +} TDD_UL_DL_ConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_ConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_UL_DL_ConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.c b/src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.c new file mode 100644 index 000000000..fda506899 --- /dev/null +++ b/src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.c @@ -0,0 +1,221 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TDD-UL-DL-ConfigDedicated.h" + +#include "TDD-UL-DL-SlotConfig.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_slotSpecificConfigurationsToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..320)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_slotSpecificConfigurationsToreleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..320)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_slotSpecificConfigurationsToAddModList_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..320)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_slotSpecificConfigurationsToreleaseList_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..320)) */}; +static asn_per_constraints_t asn_PER_memb_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_slotSpecificConfigurationsToAddModList_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_TDD_UL_DL_SlotConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotSpecificConfigurationsToAddModList_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotSpecificConfigurationsToAddModList_specs_2 = { + sizeof(struct TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToAddModList), + offsetof(struct 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_slotSpecificConfigurationsToAddModList_2 = { + "slotSpecificConfigurationsToAddModList", + "slotSpecificConfigurationsToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotSpecificConfigurationsToAddModList_tags_2, + sizeof(asn_DEF_slotSpecificConfigurationsToAddModList_tags_2) + /sizeof(asn_DEF_slotSpecificConfigurationsToAddModList_tags_2[0]) - 1, /* 1 */ + asn_DEF_slotSpecificConfigurationsToAddModList_tags_2, /* Same as above */ + sizeof(asn_DEF_slotSpecificConfigurationsToAddModList_tags_2) + /sizeof(asn_DEF_slotSpecificConfigurationsToAddModList_tags_2[0]), /* 2 */ + { &asn_OER_type_slotSpecificConfigurationsToAddModList_constr_2, &asn_PER_type_slotSpecificConfigurationsToAddModList_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_slotSpecificConfigurationsToAddModList_2, + 1, /* Single element */ + &asn_SPC_slotSpecificConfigurationsToAddModList_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_slotSpecificConfigurationsToreleaseList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TDD_UL_DL_SlotIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_slotSpecificConfigurationsToreleaseList_specs_4 = { + sizeof(struct TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToreleaseList), + offsetof(struct 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_slotSpecificConfigurationsToreleaseList_4 = { + "slotSpecificConfigurationsToreleaseList", + "slotSpecificConfigurationsToreleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4, + sizeof(asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4) + /sizeof(asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4[0]) - 1, /* 1 */ + asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4, /* Same as above */ + sizeof(asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4) + /sizeof(asn_DEF_slotSpecificConfigurationsToreleaseList_tags_4[0]), /* 2 */ + { &asn_OER_type_slotSpecificConfigurationsToreleaseList_constr_4, &asn_PER_type_slotSpecificConfigurationsToreleaseList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_slotSpecificConfigurationsToreleaseList_4, + 1, /* Single element */ + &asn_SPC_slotSpecificConfigurationsToreleaseList_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigDedicated_1[] = { + { ATF_POINTER, 2, offsetof(struct TDD_UL_DL_ConfigDedicated, slotSpecificConfigurationsToAddModList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_slotSpecificConfigurationsToAddModList_2, + 0, + { &asn_OER_memb_slotSpecificConfigurationsToAddModList_constr_2, &asn_PER_memb_slotSpecificConfigurationsToAddModList_constr_2, memb_slotSpecificConfigurationsToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "slotSpecificConfigurationsToAddModList" + }, + { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_ConfigDedicated, slotSpecificConfigurationsToreleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_slotSpecificConfigurationsToreleaseList_4, + 0, + { &asn_OER_memb_slotSpecificConfigurationsToreleaseList_constr_4, &asn_PER_memb_slotSpecificConfigurationsToreleaseList_constr_4, memb_slotSpecificConfigurationsToreleaseList_constraint_1 }, + 0, 0, /* No default value */ + "slotSpecificConfigurationsToreleaseList" + }, +}; +static const int asn_MAP_TDD_UL_DL_ConfigDedicated_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_ConfigDedicated_specs_1 = { + sizeof(struct TDD_UL_DL_ConfigDedicated), + offsetof(struct TDD_UL_DL_ConfigDedicated, _asn_ctx), + asn_MAP_TDD_UL_DL_ConfigDedicated_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TDD_UL_DL_ConfigDedicated_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigDedicated = { + "TDD-UL-DL-ConfigDedicated", + "TDD-UL-DL-ConfigDedicated", + &asn_OP_SEQUENCE, + asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1, + sizeof(asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1[0]), /* 1 */ + asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_ConfigDedicated_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_UL_DL_ConfigDedicated_1, + 2, /* Elements count */ + &asn_SPC_TDD_UL_DL_ConfigDedicated_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.h b/src/codec_utils/RRC/TDD-UL-DL-ConfigDedicated.h new file mode 100644 index 000000000..6f9291b7b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_UL_DL_ConfigDedicated_H_ +#define _TDD_UL_DL_ConfigDedicated_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include "TDD-UL-DL-SlotIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct TDD_UL_DL_SlotConfig; + +/* TDD-UL-DL-ConfigDedicated */ +typedef struct TDD_UL_DL_ConfigDedicated { + struct TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToAddModList { + A_SEQUENCE_OF(struct TDD_UL_DL_SlotConfig) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *slotSpecificConfigurationsToAddModList; + struct TDD_UL_DL_ConfigDedicated__slotSpecificConfigurationsToreleaseList { + A_SEQUENCE_OF(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; +} TDD_UL_DL_ConfigDedicated_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigDedicated; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_ConfigDedicated_specs_1; +extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigDedicated_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_UL_DL_ConfigDedicated_H_ */ +#include diff --git a/src/codec_utils/RRC/TDD-UL-DL-Pattern.c b/src/codec_utils/RRC/TDD-UL-DL-Pattern.c new file mode 100644 index 000000000..7fb3bc5c9 --- /dev/null +++ b/src/codec_utils/RRC/TDD-UL-DL-Pattern.c @@ -0,0 +1,389 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_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_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_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_oer_constraints_t asn_OER_type_dl_UL_TransmissionPeriodicity_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofDownlinkSlots_constr_11 CC_NOTUSED = { + { 2, 1 } /* (0..320) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofDownlinkSymbols_constr_12 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofUplinkSlots_constr_13 CC_NOTUSED = { + { 2, 1 } /* (0..320) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofUplinkSymbols_constr_14 CC_NOTUSED = { + { 1, 1 } /* (0..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_dl_UL_TransmissionPeriodicity_specs_2 = { + asn_MAP_dl_UL_TransmissionPeriodicity_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dl_UL_TransmissionPeriodicity_2 = { + "dl-UL-TransmissionPeriodicity", + "dl-UL-TransmissionPeriodicity", + &asn_OP_NativeEnumerated, + asn_DEF_dl_UL_TransmissionPeriodicity_tags_2, + sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2) + /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2[0]) - 1, /* 1 */ + asn_DEF_dl_UL_TransmissionPeriodicity_tags_2, /* Same as above */ + sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2) + /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2[0]), /* 2 */ + { &asn_OER_type_dl_UL_TransmissionPeriodicity_constr_2, &asn_PER_type_dl_UL_TransmissionPeriodicity_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dl_UL_TransmissionPeriodicity_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_dl_UL_TransmissionPeriodicity_v1530_value2enum_17[] = { + { 0, 3, "ms3" }, + { 1, 3, "ms4" } +}; +static const unsigned int asn_MAP_dl_UL_TransmissionPeriodicity_v1530_enum2value_17[] = { + 0, /* ms3(0) */ + 1 /* ms4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_dl_UL_TransmissionPeriodicity_v1530_specs_17 = { + asn_MAP_dl_UL_TransmissionPeriodicity_v1530_value2enum_17, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_dl_UL_TransmissionPeriodicity_v1530_17 = { + "dl-UL-TransmissionPeriodicity-v1530", + "dl-UL-TransmissionPeriodicity-v1530", + &asn_OP_NativeEnumerated, + asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17, + sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17) + /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]) - 1, /* 1 */ + asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17, /* Same as above */ + sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17) + /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]), /* 2 */ + { &asn_OER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17, &asn_PER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_dl_UL_TransmissionPeriodicity_v1530_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_16[] = { + { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_Pattern__ext1, dl_UL_TransmissionPeriodicity_v1530), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dl_UL_TransmissionPeriodicity_v1530_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UL-TransmissionPeriodicity-v1530" + }, +}; +static const int asn_MAP_ext1_oms_16[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_16[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_16[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dl-UL-TransmissionPeriodicity-v1530 */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_16 = { + sizeof(struct TDD_UL_DL_Pattern__ext1), + offsetof(struct TDD_UL_DL_Pattern__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_16, + 1, /* Count of tags in the map */ + asn_MAP_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_ext1_16 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_16, + sizeof(asn_DEF_ext1_tags_16) + /sizeof(asn_DEF_ext1_tags_16[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_16, /* Same as above */ + sizeof(asn_DEF_ext1_tags_16) + /sizeof(asn_DEF_ext1_tags_16[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_16, + 1, /* Elements count */ + &asn_SPC_ext1_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TDD_UL_DL_Pattern_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, dl_UL_TransmissionPeriodicity), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_dl_UL_TransmissionPeriodicity_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dl-UL-TransmissionPeriodicity" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofDownlinkSlots), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofDownlinkSlots_constr_11, &asn_PER_memb_nrofDownlinkSlots_constr_11, memb_nrofDownlinkSlots_constraint_1 }, + 0, 0, /* No default value */ + "nrofDownlinkSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofDownlinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofDownlinkSymbols_constr_12, &asn_PER_memb_nrofDownlinkSymbols_constr_12, memb_nrofDownlinkSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofDownlinkSymbols" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofUplinkSlots), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofUplinkSlots_constr_13, &asn_PER_memb_nrofUplinkSlots_constr_13, memb_nrofUplinkSlots_constraint_1 }, + 0, 0, /* No default value */ + "nrofUplinkSlots" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofUplinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofUplinkSymbols_constr_14, &asn_PER_memb_nrofUplinkSymbols_constr_14, memb_nrofUplinkSymbols_constraint_1 }, + 0, 0, /* No default value */ + "nrofUplinkSymbols" + }, + { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_Pattern, ext1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_ext1_16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_TDD_UL_DL_Pattern_oms_1[] = { 5 }; +static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_Pattern_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_Pattern_specs_1 = { + sizeof(struct TDD_UL_DL_Pattern), + offsetof(struct TDD_UL_DL_Pattern, _asn_ctx), + asn_MAP_TDD_UL_DL_Pattern_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_TDD_UL_DL_Pattern_oms_1, /* Optional members */ + 0, 1, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_Pattern = { + "TDD-UL-DL-Pattern", + "TDD-UL-DL-Pattern", + &asn_OP_SEQUENCE, + asn_DEF_TDD_UL_DL_Pattern_tags_1, + sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ + asn_DEF_TDD_UL_DL_Pattern_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_UL_DL_Pattern_1, + 6, /* Elements count */ + &asn_SPC_TDD_UL_DL_Pattern_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TDD-UL-DL-Pattern.h b/src/codec_utils/RRC/TDD-UL-DL-Pattern.h new file mode 100644 index 000000000..7ada6b028 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_UL_DL_Pattern_H_ +#define _TDD_UL_DL_Pattern_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity { + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5 = 0, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p625 = 1, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1 = 2, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1p25 = 3, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2 = 4, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2p5 = 5, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5 = 6, + TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms10 = 7 +} e_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity; +typedef enum TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530 { + TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms3 = 0, + TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms4 = 1 +} e_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530; + +/* TDD-UL-DL-Pattern */ +typedef struct 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 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; +} TDD_UL_DL_Pattern_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_dl_UL_TransmissionPeriodicity_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_dl_UL_TransmissionPeriodicity_v1530_17; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_Pattern; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_Pattern_specs_1; +extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_Pattern_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_UL_DL_Pattern_H_ */ +#include diff --git a/src/codec_utils/RRC/TDD-UL-DL-SlotConfig.c b/src/codec_utils/RRC/TDD-UL-DL-SlotConfig.c new file mode 100644 index 000000000..d905f565b --- /dev/null +++ b/src/codec_utils/RRC/TDD-UL-DL-SlotConfig.c @@ -0,0 +1,248 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TDD-UL-DL-SlotConfig.h" + +static int +memb_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_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_oer_constraints_t asn_OER_memb_nrofDownlinkSymbols_constr_7 CC_NOTUSED = { + { 1, 1 } /* (1..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofUplinkSymbols_constr_8 CC_NOTUSED = { + { 1, 1 } /* (1..13) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_symbols_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_explicit_6[] = { + { ATF_POINTER, 2, offsetof(struct TDD_UL_DL_SlotConfig__symbols__explicit, nrofDownlinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofDownlinkSymbols_constr_7, &asn_PER_memb_nrofDownlinkSymbols_constr_7, memb_nrofDownlinkSymbols_constraint_6 }, + 0, 0, /* No default value */ + "nrofDownlinkSymbols" + }, + { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_SlotConfig__symbols__explicit, nrofUplinkSymbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_nrofUplinkSymbols_constr_8, &asn_PER_memb_nrofUplinkSymbols_constr_8, memb_nrofUplinkSymbols_constraint_6 }, + 0, 0, /* No default value */ + "nrofUplinkSymbols" + }, +}; +static const int asn_MAP_explicit_oms_6[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_explicit_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_explicit_specs_6 = { + sizeof(struct TDD_UL_DL_SlotConfig__symbols__explicit), + offsetof(struct TDD_UL_DL_SlotConfig__symbols__explicit, _asn_ctx), + asn_MAP_explicit_tag2el_6, + 2, /* Count of tags in the map */ + asn_MAP_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_explicit_6 = { + "explicit", + "explicit", + &asn_OP_SEQUENCE, + asn_DEF_explicit_tags_6, + sizeof(asn_DEF_explicit_tags_6) + /sizeof(asn_DEF_explicit_tags_6[0]) - 1, /* 1 */ + asn_DEF_explicit_tags_6, /* Same as above */ + sizeof(asn_DEF_explicit_tags_6) + /sizeof(asn_DEF_explicit_tags_6[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_explicit_6, + 2, /* Elements count */ + &asn_SPC_explicit_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_symbols_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct 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 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 TDD_UL_DL_SlotConfig__symbols, choice.Explicit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_explicit_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "explicit" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_symbols_specs_3 = { + sizeof(struct TDD_UL_DL_SlotConfig__symbols), + offsetof(struct TDD_UL_DL_SlotConfig__symbols, _asn_ctx), + offsetof(struct TDD_UL_DL_SlotConfig__symbols, present), + sizeof(((struct TDD_UL_DL_SlotConfig__symbols *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_symbols_constr_3, &asn_PER_type_symbols_constr_3, CHOICE_constraint }, + asn_MBR_symbols_3, + 3, /* Elements count */ + &asn_SPC_symbols_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TDD_UL_DL_SlotConfig_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_SlotConfig, slotIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TDD_UL_DL_SlotIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "slotIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_SlotConfig, symbols), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_symbols_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "symbols" + }, +}; +static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_SlotConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_SlotConfig_specs_1 = { + sizeof(struct TDD_UL_DL_SlotConfig), + offsetof(struct TDD_UL_DL_SlotConfig, _asn_ctx), + asn_MAP_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_TDD_UL_DL_SlotConfig = { + "TDD-UL-DL-SlotConfig", + "TDD-UL-DL-SlotConfig", + &asn_OP_SEQUENCE, + asn_DEF_TDD_UL_DL_SlotConfig_tags_1, + sizeof(asn_DEF_TDD_UL_DL_SlotConfig_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_SlotConfig_tags_1[0]), /* 1 */ + asn_DEF_TDD_UL_DL_SlotConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_UL_DL_SlotConfig_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_SlotConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TDD_UL_DL_SlotConfig_1, + 2, /* Elements count */ + &asn_SPC_TDD_UL_DL_SlotConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TDD-UL-DL-SlotConfig.h b/src/codec_utils/RRC/TDD-UL-DL-SlotConfig.h new file mode 100644 index 000000000..74281839c --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_UL_DL_SlotConfig_H_ +#define _TDD_UL_DL_SlotConfig_H_ + + +#include + +/* Including external dependencies */ +#include "TDD-UL-DL-SlotIndex.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TDD_UL_DL_SlotConfig__symbols_PR { + TDD_UL_DL_SlotConfig__symbols_PR_NOTHING, /* No components present */ + TDD_UL_DL_SlotConfig__symbols_PR_allDownlink, + TDD_UL_DL_SlotConfig__symbols_PR_allUplink, + TDD_UL_DL_SlotConfig__symbols_PR_explicit +} TDD_UL_DL_SlotConfig__symbols_PR; + +/* TDD-UL-DL-SlotConfig */ +typedef struct TDD_UL_DL_SlotConfig { + TDD_UL_DL_SlotIndex_t slotIndex; + struct TDD_UL_DL_SlotConfig__symbols { + TDD_UL_DL_SlotConfig__symbols_PR present; + union TDD_UL_DL_SlotConfig__symbols_u { + NULL_t allDownlink; + NULL_t allUplink; + struct 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; +} TDD_UL_DL_SlotConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_SlotConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_SlotConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_SlotConfig_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_UL_DL_SlotConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.c b/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.c new file mode 100644 index 000000000..ab0e8770b --- /dev/null +++ b/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TDD-UL-DL-SlotIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_TDD_UL_DL_SlotIndex_constr_1 CC_NOTUSED = { + { 2, 1 } /* (0..319) */, + -1}; +asn_per_constraints_t asn_PER_type_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_TDD_UL_DL_SlotIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_SlotIndex = { + "TDD-UL-DL-SlotIndex", + "TDD-UL-DL-SlotIndex", + &asn_OP_NativeInteger, + asn_DEF_TDD_UL_DL_SlotIndex_tags_1, + sizeof(asn_DEF_TDD_UL_DL_SlotIndex_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_SlotIndex_tags_1[0]), /* 1 */ + asn_DEF_TDD_UL_DL_SlotIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_TDD_UL_DL_SlotIndex_tags_1) + /sizeof(asn_DEF_TDD_UL_DL_SlotIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_TDD_UL_DL_SlotIndex_constr_1, &asn_PER_type_TDD_UL_DL_SlotIndex_constr_1, TDD_UL_DL_SlotIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.h b/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.h new file mode 100644 index 000000000..92e29dbde --- /dev/null +++ b/src/codec_utils/RRC/TDD-UL-DL-SlotIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TDD_UL_DL_SlotIndex_H_ +#define _TDD_UL_DL_SlotIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TDD-UL-DL-SlotIndex */ +typedef long TDD_UL_DL_SlotIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TDD_UL_DL_SlotIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_SlotIndex; +asn_struct_free_f TDD_UL_DL_SlotIndex_free; +asn_struct_print_f TDD_UL_DL_SlotIndex_print; +asn_constr_check_f TDD_UL_DL_SlotIndex_constraint; +ber_type_decoder_f TDD_UL_DL_SlotIndex_decode_ber; +der_type_encoder_f TDD_UL_DL_SlotIndex_encode_der; +xer_type_decoder_f TDD_UL_DL_SlotIndex_decode_xer; +xer_type_encoder_f TDD_UL_DL_SlotIndex_encode_xer; +oer_type_decoder_f TDD_UL_DL_SlotIndex_decode_oer; +oer_type_encoder_f TDD_UL_DL_SlotIndex_encode_oer; +per_type_decoder_f TDD_UL_DL_SlotIndex_decode_uper; +per_type_encoder_f TDD_UL_DL_SlotIndex_encode_uper; +per_type_decoder_f TDD_UL_DL_SlotIndex_decode_aper; +per_type_encoder_f TDD_UL_DL_SlotIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TDD_UL_DL_SlotIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/ThresholdNR.c b/src/codec_utils/RRC/ThresholdNR.c new file mode 100644 index 000000000..cc0ad6f10 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ThresholdNR.h" + +asn_TYPE_member_t asn_MBR_ThresholdNR_1[] = { + { ATF_POINTER, 3, offsetof(struct ThresholdNR, thresholdRSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdRSRP" + }, + { ATF_POINTER, 2, offsetof(struct ThresholdNR, thresholdRSRQ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRQ_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdRSRQ" + }, + { ATF_POINTER, 1, offsetof(struct ThresholdNR, thresholdSINR), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SINR_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "thresholdSINR" + }, +}; +static const int asn_MAP_ThresholdNR_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ThresholdNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ThresholdNR_specs_1 = { + sizeof(struct ThresholdNR), + offsetof(struct ThresholdNR, _asn_ctx), + asn_MAP_ThresholdNR_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ThresholdNR_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ThresholdNR = { + "ThresholdNR", + "ThresholdNR", + &asn_OP_SEQUENCE, + asn_DEF_ThresholdNR_tags_1, + sizeof(asn_DEF_ThresholdNR_tags_1) + /sizeof(asn_DEF_ThresholdNR_tags_1[0]), /* 1 */ + asn_DEF_ThresholdNR_tags_1, /* Same as above */ + sizeof(asn_DEF_ThresholdNR_tags_1) + /sizeof(asn_DEF_ThresholdNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ThresholdNR_1, + 3, /* Elements count */ + &asn_SPC_ThresholdNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ThresholdNR.h b/src/codec_utils/RRC/ThresholdNR.h new file mode 100644 index 000000000..d11177dce --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ThresholdNR_H_ +#define _ThresholdNR_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include "RSRQ-Range.h" +#include "SINR-Range.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ThresholdNR */ +typedef struct ThresholdNR { + RSRP_Range_t *thresholdRSRP; /* OPTIONAL */ + RSRQ_Range_t *thresholdRSRQ; /* OPTIONAL */ + SINR_Range_t *thresholdSINR; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ThresholdNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ThresholdNR; +extern asn_SEQUENCE_specifics_t asn_SPC_ThresholdNR_specs_1; +extern asn_TYPE_member_t asn_MBR_ThresholdNR_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ThresholdNR_H_ */ +#include diff --git a/src/codec_utils/RRC/TimeAlignmentTimer.c b/src/codec_utils/RRC/TimeAlignmentTimer.c new file mode 100644 index 000000000..fec69a4a4 --- /dev/null +++ b/src/codec_utils/RRC/TimeAlignmentTimer.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TimeAlignmentTimer.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeAlignmentTimer_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_TimeAlignmentTimer_specs_1 = { + asn_MAP_TimeAlignmentTimer_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_TimeAlignmentTimer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeAlignmentTimer = { + "TimeAlignmentTimer", + "TimeAlignmentTimer", + &asn_OP_NativeEnumerated, + asn_DEF_TimeAlignmentTimer_tags_1, + sizeof(asn_DEF_TimeAlignmentTimer_tags_1) + /sizeof(asn_DEF_TimeAlignmentTimer_tags_1[0]), /* 1 */ + asn_DEF_TimeAlignmentTimer_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeAlignmentTimer_tags_1) + /sizeof(asn_DEF_TimeAlignmentTimer_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeAlignmentTimer_constr_1, &asn_PER_type_TimeAlignmentTimer_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeAlignmentTimer_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TimeAlignmentTimer.h b/src/codec_utils/RRC/TimeAlignmentTimer.h new file mode 100644 index 000000000..fb14c20ab --- /dev/null +++ b/src/codec_utils/RRC/TimeAlignmentTimer.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TimeAlignmentTimer_H_ +#define _TimeAlignmentTimer_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeAlignmentTimer { + TimeAlignmentTimer_ms500 = 0, + TimeAlignmentTimer_ms750 = 1, + TimeAlignmentTimer_ms1280 = 2, + TimeAlignmentTimer_ms1920 = 3, + TimeAlignmentTimer_ms2560 = 4, + TimeAlignmentTimer_ms5120 = 5, + TimeAlignmentTimer_ms10240 = 6, + TimeAlignmentTimer_infinity = 7 +} e_TimeAlignmentTimer; + +/* TimeAlignmentTimer */ +typedef long TimeAlignmentTimer_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeAlignmentTimer_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeAlignmentTimer; +extern const asn_INTEGER_specifics_t asn_SPC_TimeAlignmentTimer_specs_1; +asn_struct_free_f TimeAlignmentTimer_free; +asn_struct_print_f TimeAlignmentTimer_print; +asn_constr_check_f TimeAlignmentTimer_constraint; +ber_type_decoder_f TimeAlignmentTimer_decode_ber; +der_type_encoder_f TimeAlignmentTimer_encode_der; +xer_type_decoder_f TimeAlignmentTimer_decode_xer; +xer_type_encoder_f TimeAlignmentTimer_encode_xer; +oer_type_decoder_f TimeAlignmentTimer_decode_oer; +oer_type_encoder_f TimeAlignmentTimer_encode_oer; +per_type_decoder_f TimeAlignmentTimer_decode_uper; +per_type_encoder_f TimeAlignmentTimer_encode_uper; +per_type_decoder_f TimeAlignmentTimer_decode_aper; +per_type_encoder_f TimeAlignmentTimer_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeAlignmentTimer_H_ */ +#include diff --git a/src/codec_utils/RRC/TimeToTrigger.c b/src/codec_utils/RRC/TimeToTrigger.c new file mode 100644 index 000000000..996dbae5b --- /dev/null +++ b/src/codec_utils/RRC/TimeToTrigger.c @@ -0,0 +1,84 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TimeToTrigger.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TimeToTrigger_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_TimeToTrigger_specs_1 = { + asn_MAP_TimeToTrigger_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_TimeToTrigger_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TimeToTrigger = { + "TimeToTrigger", + "TimeToTrigger", + &asn_OP_NativeEnumerated, + asn_DEF_TimeToTrigger_tags_1, + sizeof(asn_DEF_TimeToTrigger_tags_1) + /sizeof(asn_DEF_TimeToTrigger_tags_1[0]), /* 1 */ + asn_DEF_TimeToTrigger_tags_1, /* Same as above */ + sizeof(asn_DEF_TimeToTrigger_tags_1) + /sizeof(asn_DEF_TimeToTrigger_tags_1[0]), /* 1 */ + { &asn_OER_type_TimeToTrigger_constr_1, &asn_PER_type_TimeToTrigger_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TimeToTrigger_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TimeToTrigger.h b/src/codec_utils/RRC/TimeToTrigger.h new file mode 100644 index 000000000..51bc980b9 --- /dev/null +++ b/src/codec_utils/RRC/TimeToTrigger.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TimeToTrigger_H_ +#define _TimeToTrigger_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TimeToTrigger { + TimeToTrigger_ms0 = 0, + TimeToTrigger_ms40 = 1, + TimeToTrigger_ms64 = 2, + TimeToTrigger_ms80 = 3, + TimeToTrigger_ms100 = 4, + TimeToTrigger_ms128 = 5, + TimeToTrigger_ms160 = 6, + TimeToTrigger_ms256 = 7, + TimeToTrigger_ms320 = 8, + TimeToTrigger_ms480 = 9, + TimeToTrigger_ms512 = 10, + TimeToTrigger_ms640 = 11, + TimeToTrigger_ms1024 = 12, + TimeToTrigger_ms1280 = 13, + TimeToTrigger_ms2560 = 14, + TimeToTrigger_ms5120 = 15 +} e_TimeToTrigger; + +/* TimeToTrigger */ +typedef long TimeToTrigger_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TimeToTrigger_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TimeToTrigger; +extern const asn_INTEGER_specifics_t asn_SPC_TimeToTrigger_specs_1; +asn_struct_free_f TimeToTrigger_free; +asn_struct_print_f TimeToTrigger_print; +asn_constr_check_f TimeToTrigger_constraint; +ber_type_decoder_f TimeToTrigger_decode_ber; +der_type_encoder_f TimeToTrigger_encode_der; +xer_type_decoder_f TimeToTrigger_decode_xer; +xer_type_encoder_f TimeToTrigger_encode_xer; +oer_type_decoder_f TimeToTrigger_decode_oer; +oer_type_encoder_f TimeToTrigger_encode_oer; +per_type_decoder_f TimeToTrigger_decode_uper; +per_type_encoder_f TimeToTrigger_encode_uper; +per_type_decoder_f TimeToTrigger_decode_aper; +per_type_encoder_f TimeToTrigger_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TimeToTrigger_H_ */ +#include diff --git a/src/codec_utils/RRC/TrackingAreaCode.c b/src/codec_utils/RRC/TrackingAreaCode.c new file mode 100644 index 000000000..f5f319ee7 --- /dev/null +++ b/src/codec_utils/RRC/TrackingAreaCode.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TrackingAreaCode.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_TrackingAreaCode_constr_1 CC_NOTUSED = { + { 0, 0 }, + 24 /* (SIZE(24..24)) */}; +asn_per_constraints_t asn_PER_type_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_TrackingAreaCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TrackingAreaCode = { + "TrackingAreaCode", + "TrackingAreaCode", + &asn_OP_BIT_STRING, + asn_DEF_TrackingAreaCode_tags_1, + sizeof(asn_DEF_TrackingAreaCode_tags_1) + /sizeof(asn_DEF_TrackingAreaCode_tags_1[0]), /* 1 */ + asn_DEF_TrackingAreaCode_tags_1, /* Same as above */ + sizeof(asn_DEF_TrackingAreaCode_tags_1) + /sizeof(asn_DEF_TrackingAreaCode_tags_1[0]), /* 1 */ + { &asn_OER_type_TrackingAreaCode_constr_1, &asn_PER_type_TrackingAreaCode_constr_1, TrackingAreaCode_constraint }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TrackingAreaCode.h b/src/codec_utils/RRC/TrackingAreaCode.h new file mode 100644 index 000000000..4fa5cefbe --- /dev/null +++ b/src/codec_utils/RRC/TrackingAreaCode.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TrackingAreaCode_H_ +#define _TrackingAreaCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TrackingAreaCode */ +typedef BIT_STRING_t TrackingAreaCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TrackingAreaCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TrackingAreaCode; +asn_struct_free_f TrackingAreaCode_free; +asn_struct_print_f TrackingAreaCode_print; +asn_constr_check_f TrackingAreaCode_constraint; +ber_type_decoder_f TrackingAreaCode_decode_ber; +der_type_encoder_f TrackingAreaCode_encode_der; +xer_type_decoder_f TrackingAreaCode_decode_xer; +xer_type_encoder_f TrackingAreaCode_encode_xer; +oer_type_decoder_f TrackingAreaCode_decode_oer; +oer_type_encoder_f TrackingAreaCode_encode_oer; +per_type_decoder_f TrackingAreaCode_decode_uper; +per_type_encoder_f TrackingAreaCode_encode_uper; +per_type_decoder_f TrackingAreaCode_decode_aper; +per_type_encoder_f TrackingAreaCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TrackingAreaCode_H_ */ +#include diff --git a/src/codec_utils/RRC/TypeI-MultiPanelCodebook.c b/src/codec_utils/RRC/TypeI-MultiPanelCodebook.c new file mode 100644 index 000000000..d45872e88 --- /dev/null +++ b/src/codec_utils/RRC/TypeI-MultiPanelCodebook.c @@ -0,0 +1,350 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TypeI-MultiPanelCodebook.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_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_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_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_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_supportedCodebookMode_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_supportedNumberPanels_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberResources_constr_6 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_7 CC_NOTUSED = { + { 2, 1 } /* (2..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_maxNumberTxPortsPerResource_value2enum_2[] = { + { 0, 2, "p8" }, + { 1, 3, "p16" }, + { 2, 3, "p32" } +}; +static const unsigned int asn_MAP_maxNumberTxPortsPerResource_enum2value_2[] = { + 1, /* p16(1) */ + 2, /* p32(2) */ + 0 /* p8(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedCodebookMode_value2enum_8[] = { + { 0, 5, "mode1" }, + { 1, 5, "mode2" }, + { 2, 4, "both" } +}; +static const unsigned int asn_MAP_supportedCodebookMode_enum2value_8[] = { + 2, /* both(2) */ + 0, /* mode1(0) */ + 1 /* mode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedCodebookMode_specs_8 = { + asn_MAP_supportedCodebookMode_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedCodebookMode_8 = { + "supportedCodebookMode", + "supportedCodebookMode", + &asn_OP_NativeEnumerated, + asn_DEF_supportedCodebookMode_tags_8, + sizeof(asn_DEF_supportedCodebookMode_tags_8) + /sizeof(asn_DEF_supportedCodebookMode_tags_8[0]) - 1, /* 1 */ + asn_DEF_supportedCodebookMode_tags_8, /* Same as above */ + sizeof(asn_DEF_supportedCodebookMode_tags_8) + /sizeof(asn_DEF_supportedCodebookMode_tags_8[0]), /* 2 */ + { &asn_OER_type_supportedCodebookMode_constr_8, &asn_PER_type_supportedCodebookMode_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedCodebookMode_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedNumberPanels_value2enum_12[] = { + { 0, 2, "n2" }, + { 1, 2, "n4" } +}; +static const unsigned int asn_MAP_supportedNumberPanels_enum2value_12[] = { + 0, /* n2(0) */ + 1 /* n4(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedNumberPanels_specs_12 = { + asn_MAP_supportedNumberPanels_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedNumberPanels_12 = { + "supportedNumberPanels", + "supportedNumberPanels", + &asn_OP_NativeEnumerated, + asn_DEF_supportedNumberPanels_tags_12, + sizeof(asn_DEF_supportedNumberPanels_tags_12) + /sizeof(asn_DEF_supportedNumberPanels_tags_12[0]) - 1, /* 1 */ + asn_DEF_supportedNumberPanels_tags_12, /* Same as above */ + sizeof(asn_DEF_supportedNumberPanels_tags_12) + /sizeof(asn_DEF_supportedNumberPanels_tags_12[0]), /* 2 */ + { &asn_OER_type_supportedNumberPanels_constr_12, &asn_PER_type_supportedNumberPanels_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedNumberPanels_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TypeI_MultiPanelCodebook_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberResources_constr_6, &asn_PER_memb_maxNumberResources_constr_6, memb_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberTxPorts_constr_7, &asn_PER_memb_totalNumberTxPorts_constr_7, memb_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, supportedCodebookMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedCodebookMode_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCodebookMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, supportedNumberPanels), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedNumberPanels_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedNumberPanels" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_TypeI_MultiPanelCodebook_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TypeI_MultiPanelCodebook_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_TypeI_MultiPanelCodebook_specs_1 = { + sizeof(struct TypeI_MultiPanelCodebook), + offsetof(struct TypeI_MultiPanelCodebook, _asn_ctx), + asn_MAP_TypeI_MultiPanelCodebook_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_TypeI_MultiPanelCodebook = { + "TypeI-MultiPanelCodebook", + "TypeI-MultiPanelCodebook", + &asn_OP_SEQUENCE, + asn_DEF_TypeI_MultiPanelCodebook_tags_1, + sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1) + /sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1[0]), /* 1 */ + asn_DEF_TypeI_MultiPanelCodebook_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1) + /sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TypeI_MultiPanelCodebook_1, + 6, /* Elements count */ + &asn_SPC_TypeI_MultiPanelCodebook_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TypeI-MultiPanelCodebook.h b/src/codec_utils/RRC/TypeI-MultiPanelCodebook.h new file mode 100644 index 000000000..fdd9fde2f --- /dev/null +++ b/src/codec_utils/RRC/TypeI-MultiPanelCodebook.h @@ -0,0 +1,65 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TypeI_MultiPanelCodebook_H_ +#define _TypeI_MultiPanelCodebook_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeI_MultiPanelCodebook__maxNumberTxPortsPerResource { + TypeI_MultiPanelCodebook__maxNumberTxPortsPerResource_p8 = 0, + TypeI_MultiPanelCodebook__maxNumberTxPortsPerResource_p16 = 1, + TypeI_MultiPanelCodebook__maxNumberTxPortsPerResource_p32 = 2 +} e_TypeI_MultiPanelCodebook__maxNumberTxPortsPerResource; +typedef enum TypeI_MultiPanelCodebook__supportedCodebookMode { + TypeI_MultiPanelCodebook__supportedCodebookMode_mode1 = 0, + TypeI_MultiPanelCodebook__supportedCodebookMode_mode2 = 1, + TypeI_MultiPanelCodebook__supportedCodebookMode_both = 2 +} e_TypeI_MultiPanelCodebook__supportedCodebookMode; +typedef enum TypeI_MultiPanelCodebook__supportedNumberPanels { + TypeI_MultiPanelCodebook__supportedNumberPanels_n2 = 0, + TypeI_MultiPanelCodebook__supportedNumberPanels_n4 = 1 +} e_TypeI_MultiPanelCodebook__supportedNumberPanels; + +/* TypeI-MultiPanelCodebook */ +typedef struct TypeI_MultiPanelCodebook { + 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; +} TypeI_MultiPanelCodebook_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedCodebookMode_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedNumberPanels_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TypeI_MultiPanelCodebook; +extern asn_SEQUENCE_specifics_t asn_SPC_TypeI_MultiPanelCodebook_specs_1; +extern asn_TYPE_member_t asn_MBR_TypeI_MultiPanelCodebook_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeI_MultiPanelCodebook_H_ */ +#include diff --git a/src/codec_utils/RRC/TypeI-SinglePanelCodebook.c b/src/codec_utils/RRC/TypeI-SinglePanelCodebook.c new file mode 100644 index 000000000..ac5910b9b --- /dev/null +++ b/src/codec_utils/RRC/TypeI-SinglePanelCodebook.c @@ -0,0 +1,297 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TypeI-SinglePanelCodebook.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_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_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_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_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_supportedCodebookMode_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberResources_constr_10 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_11 CC_NOTUSED = { + { 2, 1 } /* (2..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_supportedCodebookMode_value2enum_12[] = { + { 0, 5, "mode1" }, + { 1, 13, "mode1AndMode2" } +}; +static const unsigned int asn_MAP_supportedCodebookMode_enum2value_12[] = { + 0, /* mode1(0) */ + 1 /* mode1AndMode2(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_supportedCodebookMode_specs_12 = { + asn_MAP_supportedCodebookMode_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_supportedCodebookMode_12 = { + "supportedCodebookMode", + "supportedCodebookMode", + &asn_OP_NativeEnumerated, + asn_DEF_supportedCodebookMode_tags_12, + sizeof(asn_DEF_supportedCodebookMode_tags_12) + /sizeof(asn_DEF_supportedCodebookMode_tags_12[0]) - 1, /* 1 */ + asn_DEF_supportedCodebookMode_tags_12, /* Same as above */ + sizeof(asn_DEF_supportedCodebookMode_tags_12) + /sizeof(asn_DEF_supportedCodebookMode_tags_12[0]), /* 2 */ + { &asn_OER_type_supportedCodebookMode_constr_12, &asn_PER_type_supportedCodebookMode_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_supportedCodebookMode_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TypeI_SinglePanelCodebook_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TypeI_SinglePanelCodebook, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_SinglePanelCodebook, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberResources_constr_10, &asn_PER_memb_maxNumberResources_constr_10, memb_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_SinglePanelCodebook, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberTxPorts_constr_11, &asn_PER_memb_totalNumberTxPorts_constr_11, memb_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_SinglePanelCodebook, supportedCodebookMode), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_supportedCodebookMode_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "supportedCodebookMode" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeI_SinglePanelCodebook, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_TypeI_SinglePanelCodebook_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TypeI_SinglePanelCodebook_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_TypeI_SinglePanelCodebook_specs_1 = { + sizeof(struct TypeI_SinglePanelCodebook), + offsetof(struct TypeI_SinglePanelCodebook, _asn_ctx), + asn_MAP_TypeI_SinglePanelCodebook_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_TypeI_SinglePanelCodebook = { + "TypeI-SinglePanelCodebook", + "TypeI-SinglePanelCodebook", + &asn_OP_SEQUENCE, + asn_DEF_TypeI_SinglePanelCodebook_tags_1, + sizeof(asn_DEF_TypeI_SinglePanelCodebook_tags_1) + /sizeof(asn_DEF_TypeI_SinglePanelCodebook_tags_1[0]), /* 1 */ + asn_DEF_TypeI_SinglePanelCodebook_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeI_SinglePanelCodebook_tags_1) + /sizeof(asn_DEF_TypeI_SinglePanelCodebook_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TypeI_SinglePanelCodebook_1, + 5, /* Elements count */ + &asn_SPC_TypeI_SinglePanelCodebook_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TypeI-SinglePanelCodebook.h b/src/codec_utils/RRC/TypeI-SinglePanelCodebook.h new file mode 100644 index 000000000..d2c334826 --- /dev/null +++ b/src/codec_utils/RRC/TypeI-SinglePanelCodebook.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TypeI_SinglePanelCodebook_H_ +#define _TypeI_SinglePanelCodebook_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource { + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p2 = 0, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p4 = 1, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p8 = 2, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p12 = 3, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p16 = 4, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p24 = 5, + TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource_p32 = 6 +} e_TypeI_SinglePanelCodebook__maxNumberTxPortsPerResource; +typedef enum TypeI_SinglePanelCodebook__supportedCodebookMode { + TypeI_SinglePanelCodebook__supportedCodebookMode_mode1 = 0, + TypeI_SinglePanelCodebook__supportedCodebookMode_mode1AndMode2 = 1 +} e_TypeI_SinglePanelCodebook__supportedCodebookMode; + +/* TypeI-SinglePanelCodebook */ +typedef struct TypeI_SinglePanelCodebook { + long maxNumberTxPortsPerResource; + long maxNumberResources; + long totalNumberTxPorts; + long supportedCodebookMode; + long maxNumberCSI_RS_PerResourceSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TypeI_SinglePanelCodebook_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_supportedCodebookMode_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TypeI_SinglePanelCodebook; +extern asn_SEQUENCE_specifics_t asn_SPC_TypeI_SinglePanelCodebook_specs_1; +extern asn_TYPE_member_t asn_MBR_TypeI_SinglePanelCodebook_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeI_SinglePanelCodebook_H_ */ +#include diff --git a/src/codec_utils/RRC/TypeII-Codebook.c b/src/codec_utils/RRC/TypeII-Codebook.c new file mode 100644 index 000000000..cef80da9d --- /dev/null +++ b/src/codec_utils/RRC/TypeII-Codebook.c @@ -0,0 +1,397 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TypeII-Codebook.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_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_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_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_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_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_amplitudeScalingType_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_amplitudeSubsetRestriction_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberResources_constr_9 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_10 CC_NOTUSED = { + { 2, 1 } /* (2..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_parameterLx_constr_11 CC_NOTUSED = { + { 1, 1 } /* (2..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_17 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_amplitudeScalingType_value2enum_12[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_amplitudeScalingType_enum2value_12[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_amplitudeScalingType_specs_12 = { + asn_MAP_amplitudeScalingType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_amplitudeScalingType_12 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_amplitudeScalingType_tags_12, + sizeof(asn_DEF_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]) - 1, /* 1 */ + asn_DEF_amplitudeScalingType_tags_12, /* Same as above */ + sizeof(asn_DEF_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]), /* 2 */ + { &asn_OER_type_amplitudeScalingType_constr_12, &asn_PER_type_amplitudeScalingType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_amplitudeScalingType_specs_12 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_amplitudeSubsetRestriction_value2enum_15[] = { + { 0, 9, "supported" } +}; +static const unsigned int asn_MAP_amplitudeSubsetRestriction_enum2value_15[] = { + 0 /* supported(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_amplitudeSubsetRestriction_specs_15 = { + asn_MAP_amplitudeSubsetRestriction_value2enum_15, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_amplitudeSubsetRestriction_15 = { + "amplitudeSubsetRestriction", + "amplitudeSubsetRestriction", + &asn_OP_NativeEnumerated, + asn_DEF_amplitudeSubsetRestriction_tags_15, + sizeof(asn_DEF_amplitudeSubsetRestriction_tags_15) + /sizeof(asn_DEF_amplitudeSubsetRestriction_tags_15[0]) - 1, /* 1 */ + asn_DEF_amplitudeSubsetRestriction_tags_15, /* Same as above */ + sizeof(asn_DEF_amplitudeSubsetRestriction_tags_15) + /sizeof(asn_DEF_amplitudeSubsetRestriction_tags_15[0]), /* 2 */ + { &asn_OER_type_amplitudeSubsetRestriction_constr_15, &asn_PER_type_amplitudeSubsetRestriction_constr_15, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_amplitudeSubsetRestriction_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TypeII_Codebook_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberResources_constr_9, &asn_PER_memb_maxNumberResources_constr_9, memb_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberTxPorts_constr_10, &asn_PER_memb_totalNumberTxPorts_constr_10, memb_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_parameterLx_constr_11, &asn_PER_memb_parameterLx_constr_11, memb_parameterLx_constraint_1 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_amplitudeScalingType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, + { ATF_POINTER, 1, offsetof(struct TypeII_Codebook, amplitudeSubsetRestriction), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_amplitudeSubsetRestriction_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeSubsetRestriction" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_Codebook, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_17, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_17, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const int asn_MAP_TypeII_Codebook_oms_1[] = { 5 }; +static const ber_tlv_tag_t asn_DEF_TypeII_Codebook_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TypeII_Codebook_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_TypeII_Codebook_specs_1 = { + sizeof(struct TypeII_Codebook), + offsetof(struct TypeII_Codebook, _asn_ctx), + asn_MAP_TypeII_Codebook_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_TypeII_Codebook_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TypeII_Codebook = { + "TypeII-Codebook", + "TypeII-Codebook", + &asn_OP_SEQUENCE, + asn_DEF_TypeII_Codebook_tags_1, + sizeof(asn_DEF_TypeII_Codebook_tags_1) + /sizeof(asn_DEF_TypeII_Codebook_tags_1[0]), /* 1 */ + asn_DEF_TypeII_Codebook_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeII_Codebook_tags_1) + /sizeof(asn_DEF_TypeII_Codebook_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TypeII_Codebook_1, + 7, /* Elements count */ + &asn_SPC_TypeII_Codebook_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TypeII-Codebook.h b/src/codec_utils/RRC/TypeII-Codebook.h new file mode 100644 index 000000000..6a3cff526 --- /dev/null +++ b/src/codec_utils/RRC/TypeII-Codebook.h @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TypeII_Codebook_H_ +#define _TypeII_Codebook_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeII_Codebook__maxNumberTxPortsPerResource { + TypeII_Codebook__maxNumberTxPortsPerResource_p4 = 0, + TypeII_Codebook__maxNumberTxPortsPerResource_p8 = 1, + TypeII_Codebook__maxNumberTxPortsPerResource_p12 = 2, + TypeII_Codebook__maxNumberTxPortsPerResource_p16 = 3, + TypeII_Codebook__maxNumberTxPortsPerResource_p24 = 4, + TypeII_Codebook__maxNumberTxPortsPerResource_p32 = 5 +} e_TypeII_Codebook__maxNumberTxPortsPerResource; +typedef enum TypeII_Codebook__amplitudeScalingType { + TypeII_Codebook__amplitudeScalingType_wideband = 0, + TypeII_Codebook__amplitudeScalingType_widebandAndSubband = 1 +} e_TypeII_Codebook__amplitudeScalingType; +typedef enum TypeII_Codebook__amplitudeSubsetRestriction { + TypeII_Codebook__amplitudeSubsetRestriction_supported = 0 +} e_TypeII_Codebook__amplitudeSubsetRestriction; + +/* TypeII-Codebook */ +typedef struct TypeII_Codebook { + 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; +} TypeII_Codebook_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_amplitudeScalingType_12; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_amplitudeSubsetRestriction_15; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TypeII_Codebook; +extern asn_SEQUENCE_specifics_t asn_SPC_TypeII_Codebook_specs_1; +extern asn_TYPE_member_t asn_MBR_TypeII_Codebook_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeII_Codebook_H_ */ +#include diff --git a/src/codec_utils/RRC/TypeII-CodebookPortSelection.c b/src/codec_utils/RRC/TypeII-CodebookPortSelection.c new file mode 100644 index 000000000..38cdb4025 --- /dev/null +++ b/src/codec_utils/RRC/TypeII-CodebookPortSelection.c @@ -0,0 +1,338 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TypeII-CodebookPortSelection.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_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_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_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_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_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_amplitudeScalingType_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_maxNumberResources_constr_9 CC_NOTUSED = { + { 1, 1 } /* (1..64) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_10 CC_NOTUSED = { + { 2, 1 } /* (2..256) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_parameterLx_constr_11 CC_NOTUSED = { + { 1, 1 } /* (2..4) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_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_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_maxNumberTxPortsPerResource_specs_2 = { + asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxNumberTxPortsPerResource_2 = { + "maxNumberTxPortsPerResource", + "maxNumberTxPortsPerResource", + &asn_OP_NativeEnumerated, + asn_DEF_maxNumberTxPortsPerResource_tags_2, + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */ + asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */ + sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2) + /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */ + { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_amplitudeScalingType_value2enum_12[] = { + { 0, 8, "wideband" }, + { 1, 18, "widebandAndSubband" } +}; +static const unsigned int asn_MAP_amplitudeScalingType_enum2value_12[] = { + 0, /* wideband(0) */ + 1 /* widebandAndSubband(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_amplitudeScalingType_specs_12 = { + asn_MAP_amplitudeScalingType_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_amplitudeScalingType_12 = { + "amplitudeScalingType", + "amplitudeScalingType", + &asn_OP_NativeEnumerated, + asn_DEF_amplitudeScalingType_tags_12, + sizeof(asn_DEF_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]) - 1, /* 1 */ + asn_DEF_amplitudeScalingType_tags_12, /* Same as above */ + sizeof(asn_DEF_amplitudeScalingType_tags_12) + /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]), /* 2 */ + { &asn_OER_type_amplitudeScalingType_constr_12, &asn_PER_type_amplitudeScalingType_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_amplitudeScalingType_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_TypeII_CodebookPortSelection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberTxPortsPerResource), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxNumberTxPortsPerResource_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxNumberTxPortsPerResource" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberResources), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberResources_constr_9, &asn_PER_memb_maxNumberResources_constr_9, memb_maxNumberResources_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberResources" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, totalNumberTxPorts), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_totalNumberTxPorts_constr_10, &asn_PER_memb_totalNumberTxPorts_constr_10, memb_totalNumberTxPorts_constraint_1 }, + 0, 0, /* No default value */ + "totalNumberTxPorts" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, parameterLx), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_parameterLx_constr_11, &asn_PER_memb_parameterLx_constr_11, memb_parameterLx_constraint_1 }, + 0, 0, /* No default value */ + "parameterLx" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, amplitudeScalingType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_amplitudeScalingType_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amplitudeScalingType" + }, + { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberCSI_RS_PerResourceSet), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 }, + 0, 0, /* No default value */ + "maxNumberCSI-RS-PerResourceSet" + }, +}; +static const ber_tlv_tag_t asn_DEF_TypeII_CodebookPortSelection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TypeII_CodebookPortSelection_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_TypeII_CodebookPortSelection_specs_1 = { + sizeof(struct TypeII_CodebookPortSelection), + offsetof(struct TypeII_CodebookPortSelection, _asn_ctx), + asn_MAP_TypeII_CodebookPortSelection_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_TypeII_CodebookPortSelection = { + "TypeII-CodebookPortSelection", + "TypeII-CodebookPortSelection", + &asn_OP_SEQUENCE, + asn_DEF_TypeII_CodebookPortSelection_tags_1, + sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1) + /sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1[0]), /* 1 */ + asn_DEF_TypeII_CodebookPortSelection_tags_1, /* Same as above */ + sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1) + /sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TypeII_CodebookPortSelection_1, + 6, /* Elements count */ + &asn_SPC_TypeII_CodebookPortSelection_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/TypeII-CodebookPortSelection.h b/src/codec_utils/RRC/TypeII-CodebookPortSelection.h new file mode 100644 index 000000000..007044eb9 --- /dev/null +++ b/src/codec_utils/RRC/TypeII-CodebookPortSelection.h @@ -0,0 +1,62 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TypeII_CodebookPortSelection_H_ +#define _TypeII_CodebookPortSelection_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TypeII_CodebookPortSelection__maxNumberTxPortsPerResource { + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p4 = 0, + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p8 = 1, + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p12 = 2, + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p16 = 3, + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p24 = 4, + TypeII_CodebookPortSelection__maxNumberTxPortsPerResource_p32 = 5 +} e_TypeII_CodebookPortSelection__maxNumberTxPortsPerResource; +typedef enum TypeII_CodebookPortSelection__amplitudeScalingType { + TypeII_CodebookPortSelection__amplitudeScalingType_wideband = 0, + TypeII_CodebookPortSelection__amplitudeScalingType_widebandAndSubband = 1 +} e_TypeII_CodebookPortSelection__amplitudeScalingType; + +/* TypeII-CodebookPortSelection */ +typedef struct TypeII_CodebookPortSelection { + 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; +} TypeII_CodebookPortSelection_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_amplitudeScalingType_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_TypeII_CodebookPortSelection; +extern asn_SEQUENCE_specifics_t asn_SPC_TypeII_CodebookPortSelection_specs_1; +extern asn_TYPE_member_t asn_MBR_TypeII_CodebookPortSelection_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TypeII_CodebookPortSelection_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.c b/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.c new file mode 100644 index 000000000..5247d2373 --- /dev/null +++ b/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.c @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-AccessCategory1-SelectionAssistanceInfo.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1[] = { + { 0, 1, "a" }, + { 1, 1, "b" }, + { 2, 1, "c" } +}; +static const unsigned int asn_MAP_UAC_AccessCategory1_SelectionAssistanceInfo_enum2value_1[] = { + 0, /* a(0) */ + 1, /* b(1) */ + 2 /* c(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 = { + asn_MAP_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo = { + "UAC-AccessCategory1-SelectionAssistanceInfo", + "UAC-AccessCategory1-SelectionAssistanceInfo", + &asn_OP_NativeEnumerated, + asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, + sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) + /sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ + asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) + /sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ + { &asn_OER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1, &asn_PER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.h b/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.h new file mode 100644 index 000000000..bd167291f --- /dev/null +++ b/src/codec_utils/RRC/UAC-AccessCategory1-SelectionAssistanceInfo.h @@ -0,0 +1,54 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_AccessCategory1_SelectionAssistanceInfo_H_ +#define _UAC_AccessCategory1_SelectionAssistanceInfo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UAC_AccessCategory1_SelectionAssistanceInfo { + UAC_AccessCategory1_SelectionAssistanceInfo_a = 0, + UAC_AccessCategory1_SelectionAssistanceInfo_b = 1, + UAC_AccessCategory1_SelectionAssistanceInfo_c = 2 +} e_UAC_AccessCategory1_SelectionAssistanceInfo; + +/* UAC-AccessCategory1-SelectionAssistanceInfo */ +typedef long UAC_AccessCategory1_SelectionAssistanceInfo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo; +extern const asn_INTEGER_specifics_t asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1; +asn_struct_free_f UAC_AccessCategory1_SelectionAssistanceInfo_free; +asn_struct_print_f UAC_AccessCategory1_SelectionAssistanceInfo_print; +asn_constr_check_f UAC_AccessCategory1_SelectionAssistanceInfo_constraint; +ber_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_ber; +der_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_der; +xer_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_xer; +xer_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_xer; +oer_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_oer; +oer_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_oer; +per_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_uper; +per_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_uper; +per_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_aper; +per_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_AccessCategory1_SelectionAssistanceInfo_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringInfoSet.c b/src/codec_utils/RRC/UAC-BarringInfoSet.c new file mode 100644 index 000000000..b3db4f426 --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringInfoSet.c @@ -0,0 +1,247 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_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_oer_constraints_t asn_OER_type_uac_BarringFactor_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_uac_BarringTime_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_uac_BarringForAccessIdentity_constr_28 CC_NOTUSED = { + { 0, 0 }, + 7 /* (SIZE(7..7)) */}; +static asn_per_constraints_t asn_PER_memb_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_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_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_uac_BarringFactor_specs_2 = { + asn_MAP_uac_BarringFactor_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_uac_BarringFactor_2 = { + "uac-BarringFactor", + "uac-BarringFactor", + &asn_OP_NativeEnumerated, + asn_DEF_uac_BarringFactor_tags_2, + sizeof(asn_DEF_uac_BarringFactor_tags_2) + /sizeof(asn_DEF_uac_BarringFactor_tags_2[0]) - 1, /* 1 */ + asn_DEF_uac_BarringFactor_tags_2, /* Same as above */ + sizeof(asn_DEF_uac_BarringFactor_tags_2) + /sizeof(asn_DEF_uac_BarringFactor_tags_2[0]), /* 2 */ + { &asn_OER_type_uac_BarringFactor_constr_2, &asn_PER_type_uac_BarringFactor_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_uac_BarringFactor_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_uac_BarringTime_specs_19 = { + asn_MAP_uac_BarringTime_value2enum_19, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_uac_BarringTime_19 = { + "uac-BarringTime", + "uac-BarringTime", + &asn_OP_NativeEnumerated, + asn_DEF_uac_BarringTime_tags_19, + sizeof(asn_DEF_uac_BarringTime_tags_19) + /sizeof(asn_DEF_uac_BarringTime_tags_19[0]) - 1, /* 1 */ + asn_DEF_uac_BarringTime_tags_19, /* Same as above */ + sizeof(asn_DEF_uac_BarringTime_tags_19) + /sizeof(asn_DEF_uac_BarringTime_tags_19[0]), /* 2 */ + { &asn_OER_type_uac_BarringTime_constr_19, &asn_PER_type_uac_BarringTime_constr_19, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_uac_BarringTime_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UAC_BarringInfoSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringFactor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_uac_BarringFactor_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringFactor" + }, + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_uac_BarringTime_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-BarringTime" + }, + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringForAccessIdentity), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_uac_BarringForAccessIdentity_constr_28, &asn_PER_memb_uac_BarringForAccessIdentity_constr_28, memb_uac_BarringForAccessIdentity_constraint_1 }, + 0, 0, /* No default value */ + "uac-BarringForAccessIdentity" + }, +}; +static const ber_tlv_tag_t asn_DEF_UAC_BarringInfoSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringInfoSet_specs_1 = { + sizeof(struct UAC_BarringInfoSet), + offsetof(struct UAC_BarringInfoSet, _asn_ctx), + asn_MAP_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_UAC_BarringInfoSet = { + "UAC-BarringInfoSet", + "UAC-BarringInfoSet", + &asn_OP_SEQUENCE, + asn_DEF_UAC_BarringInfoSet_tags_1, + sizeof(asn_DEF_UAC_BarringInfoSet_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSet_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringInfoSet_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringInfoSet_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UAC_BarringInfoSet_1, + 3, /* Elements count */ + &asn_SPC_UAC_BarringInfoSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringInfoSet.h b/src/codec_utils/RRC/UAC-BarringInfoSet.h new file mode 100644 index 000000000..e84e06be8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringInfoSet_H_ +#define _UAC_BarringInfoSet_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UAC_BarringInfoSet__uac_BarringFactor { + UAC_BarringInfoSet__uac_BarringFactor_p00 = 0, + UAC_BarringInfoSet__uac_BarringFactor_p05 = 1, + UAC_BarringInfoSet__uac_BarringFactor_p10 = 2, + UAC_BarringInfoSet__uac_BarringFactor_p15 = 3, + UAC_BarringInfoSet__uac_BarringFactor_p20 = 4, + UAC_BarringInfoSet__uac_BarringFactor_p25 = 5, + UAC_BarringInfoSet__uac_BarringFactor_p30 = 6, + UAC_BarringInfoSet__uac_BarringFactor_p40 = 7, + UAC_BarringInfoSet__uac_BarringFactor_p50 = 8, + UAC_BarringInfoSet__uac_BarringFactor_p60 = 9, + UAC_BarringInfoSet__uac_BarringFactor_p70 = 10, + UAC_BarringInfoSet__uac_BarringFactor_p75 = 11, + UAC_BarringInfoSet__uac_BarringFactor_p80 = 12, + UAC_BarringInfoSet__uac_BarringFactor_p85 = 13, + UAC_BarringInfoSet__uac_BarringFactor_p90 = 14, + UAC_BarringInfoSet__uac_BarringFactor_p95 = 15 +} e_UAC_BarringInfoSet__uac_BarringFactor; +typedef enum UAC_BarringInfoSet__uac_BarringTime { + UAC_BarringInfoSet__uac_BarringTime_s4 = 0, + UAC_BarringInfoSet__uac_BarringTime_s8 = 1, + UAC_BarringInfoSet__uac_BarringTime_s16 = 2, + UAC_BarringInfoSet__uac_BarringTime_s32 = 3, + UAC_BarringInfoSet__uac_BarringTime_s64 = 4, + UAC_BarringInfoSet__uac_BarringTime_s128 = 5, + UAC_BarringInfoSet__uac_BarringTime_s256 = 6, + UAC_BarringInfoSet__uac_BarringTime_s512 = 7 +} e_UAC_BarringInfoSet__uac_BarringTime; + +/* UAC-BarringInfoSet */ +typedef struct 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; +} UAC_BarringInfoSet_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_uac_BarringFactor_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_uac_BarringTime_19; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSet; +extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringInfoSet_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringInfoSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringInfoSet_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringInfoSetIndex.c b/src/codec_utils/RRC/UAC-BarringInfoSetIndex.c new file mode 100644 index 000000000..b04aca95c --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringInfoSetIndex.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringInfoSetIndex.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_UAC_BarringInfoSetIndex_constr_1 CC_NOTUSED = { + { 1, 1 } /* (1..8) */, + -1}; +asn_per_constraints_t asn_PER_type_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_UAC_BarringInfoSetIndex_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetIndex = { + "UAC-BarringInfoSetIndex", + "UAC-BarringInfoSetIndex", + &asn_OP_NativeInteger, + asn_DEF_UAC_BarringInfoSetIndex_tags_1, + sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringInfoSetIndex_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ + { &asn_OER_type_UAC_BarringInfoSetIndex_constr_1, &asn_PER_type_UAC_BarringInfoSetIndex_constr_1, UAC_BarringInfoSetIndex_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringInfoSetIndex.h b/src/codec_utils/RRC/UAC-BarringInfoSetIndex.h new file mode 100644 index 000000000..b4032b76e --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringInfoSetIndex.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringInfoSetIndex_H_ +#define _UAC_BarringInfoSetIndex_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UAC-BarringInfoSetIndex */ +typedef long UAC_BarringInfoSetIndex_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UAC_BarringInfoSetIndex_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetIndex; +asn_struct_free_f UAC_BarringInfoSetIndex_free; +asn_struct_print_f UAC_BarringInfoSetIndex_print; +asn_constr_check_f UAC_BarringInfoSetIndex_constraint; +ber_type_decoder_f UAC_BarringInfoSetIndex_decode_ber; +der_type_encoder_f UAC_BarringInfoSetIndex_encode_der; +xer_type_decoder_f UAC_BarringInfoSetIndex_decode_xer; +xer_type_encoder_f UAC_BarringInfoSetIndex_encode_xer; +oer_type_decoder_f UAC_BarringInfoSetIndex_decode_oer; +oer_type_encoder_f UAC_BarringInfoSetIndex_encode_oer; +per_type_decoder_f UAC_BarringInfoSetIndex_decode_uper; +per_type_encoder_f UAC_BarringInfoSetIndex_encode_uper; +per_type_decoder_f UAC_BarringInfoSetIndex_decode_aper; +per_type_encoder_f UAC_BarringInfoSetIndex_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringInfoSetIndex_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringInfoSetList.c b/src/codec_utils/RRC/UAC-BarringInfoSetList.c new file mode 100644 index 000000000..aaff9c419 --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringInfoSetList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringInfoSetList.h" + +#include "UAC-BarringInfoSet.h" +static asn_oer_constraints_t asn_OER_type_UAC_BarringInfoSetList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_UAC_BarringInfoSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UAC_BarringInfoSet, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UAC_BarringInfoSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UAC_BarringInfoSetList_specs_1 = { + sizeof(struct UAC_BarringInfoSetList), + offsetof(struct UAC_BarringInfoSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetList = { + "UAC-BarringInfoSetList", + "UAC-BarringInfoSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UAC_BarringInfoSetList_tags_1, + sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringInfoSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1) + /sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ + { &asn_OER_type_UAC_BarringInfoSetList_constr_1, &asn_PER_type_UAC_BarringInfoSetList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UAC_BarringInfoSetList_1, + 1, /* Single element */ + &asn_SPC_UAC_BarringInfoSetList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringInfoSetList.h b/src/codec_utils/RRC/UAC-BarringInfoSetList.h new file mode 100644 index 000000000..862b92316 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringInfoSetList_H_ +#define _UAC_BarringInfoSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UAC_BarringInfoSet; + +/* UAC-BarringInfoSetList */ +typedef struct UAC_BarringInfoSetList { + A_SEQUENCE_OF(struct UAC_BarringInfoSet) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UAC_BarringInfoSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetList; +extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringInfoSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringInfoSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_UAC_BarringInfoSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringInfoSetList_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringPerCat.c b/src/codec_utils/RRC/UAC-BarringPerCat.c new file mode 100644 index 000000000..f4af99af8 --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringPerCat.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringPerCat.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_accessCategory_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..63) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_UAC_BarringPerCat_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerCat, accessCategory), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_accessCategory_constr_2, &asn_PER_memb_accessCategory_constr_2, memb_accessCategory_constraint_1 }, + 0, 0, /* No default value */ + "accessCategory" + }, + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerCat, uac_barringInfoSetIndex), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_BarringInfoSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-barringInfoSetIndex" + }, +}; +static const ber_tlv_tag_t asn_DEF_UAC_BarringPerCat_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringPerCat_specs_1 = { + sizeof(struct UAC_BarringPerCat), + offsetof(struct UAC_BarringPerCat, _asn_ctx), + asn_MAP_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_UAC_BarringPerCat = { + "UAC-BarringPerCat", + "UAC-BarringPerCat", + &asn_OP_SEQUENCE, + asn_DEF_UAC_BarringPerCat_tags_1, + sizeof(asn_DEF_UAC_BarringPerCat_tags_1) + /sizeof(asn_DEF_UAC_BarringPerCat_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringPerCat_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringPerCat_tags_1) + /sizeof(asn_DEF_UAC_BarringPerCat_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UAC_BarringPerCat_1, + 2, /* Elements count */ + &asn_SPC_UAC_BarringPerCat_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringPerCat.h b/src/codec_utils/RRC/UAC-BarringPerCat.h new file mode 100644 index 000000000..9dcad399f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringPerCat_H_ +#define _UAC_BarringPerCat_H_ + + +#include + +/* Including external dependencies */ +#include +#include "UAC-BarringInfoSetIndex.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UAC-BarringPerCat */ +typedef struct UAC_BarringPerCat { + long accessCategory; + UAC_BarringInfoSetIndex_t uac_barringInfoSetIndex; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UAC_BarringPerCat_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCat; +extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringPerCat_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringPerCat_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringPerCat_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringPerCatList.c b/src/codec_utils/RRC/UAC-BarringPerCatList.c new file mode 100644 index 000000000..71fed37ab --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringPerCatList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringPerCatList.h" + +#include "UAC-BarringPerCat.h" +static asn_oer_constraints_t asn_OER_type_UAC_BarringPerCatList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..63)) */}; +asn_per_constraints_t asn_PER_type_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_UAC_BarringPerCatList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UAC_BarringPerCat, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UAC_BarringPerCatList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerCatList_specs_1 = { + sizeof(struct UAC_BarringPerCatList), + offsetof(struct UAC_BarringPerCatList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCatList = { + "UAC-BarringPerCatList", + "UAC-BarringPerCatList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UAC_BarringPerCatList_tags_1, + sizeof(asn_DEF_UAC_BarringPerCatList_tags_1) + /sizeof(asn_DEF_UAC_BarringPerCatList_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringPerCatList_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringPerCatList_tags_1) + /sizeof(asn_DEF_UAC_BarringPerCatList_tags_1[0]), /* 1 */ + { &asn_OER_type_UAC_BarringPerCatList_constr_1, &asn_PER_type_UAC_BarringPerCatList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UAC_BarringPerCatList_1, + 1, /* Single element */ + &asn_SPC_UAC_BarringPerCatList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringPerCatList.h b/src/codec_utils/RRC/UAC-BarringPerCatList.h new file mode 100644 index 000000000..05d0a4725 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringPerCatList_H_ +#define _UAC_BarringPerCatList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UAC_BarringPerCat; + +/* UAC-BarringPerCatList */ +typedef struct UAC_BarringPerCatList { + A_SEQUENCE_OF(struct UAC_BarringPerCat) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UAC_BarringPerCatList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCatList; +extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerCatList_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringPerCatList_1[1]; +extern asn_per_constraints_t asn_PER_type_UAC_BarringPerCatList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringPerCatList_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringPerPLMN-List.c b/src/codec_utils/RRC/UAC-BarringPerPLMN-List.c new file mode 100644 index 000000000..fae99ecee --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringPerPLMN-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringPerPLMN-List.h" + +#include "UAC-BarringPerPLMN.h" +static asn_oer_constraints_t asn_OER_type_UAC_BarringPerPLMN_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..12)) */}; +asn_per_constraints_t asn_PER_type_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_UAC_BarringPerPLMN_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UAC_BarringPerPLMN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UAC_BarringPerPLMN_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerPLMN_List_specs_1 = { + sizeof(struct UAC_BarringPerPLMN_List), + offsetof(struct UAC_BarringPerPLMN_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN_List = { + "UAC-BarringPerPLMN-List", + "UAC-BarringPerPLMN-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_UAC_BarringPerPLMN_List_tags_1, + sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1) + /sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringPerPLMN_List_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1) + /sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ + { &asn_OER_type_UAC_BarringPerPLMN_List_constr_1, &asn_PER_type_UAC_BarringPerPLMN_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UAC_BarringPerPLMN_List_1, + 1, /* Single element */ + &asn_SPC_UAC_BarringPerPLMN_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringPerPLMN-List.h b/src/codec_utils/RRC/UAC-BarringPerPLMN-List.h new file mode 100644 index 000000000..272ef3a12 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringPerPLMN_List_H_ +#define _UAC_BarringPerPLMN_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UAC_BarringPerPLMN; + +/* UAC-BarringPerPLMN-List */ +typedef struct UAC_BarringPerPLMN_List { + A_SEQUENCE_OF(struct UAC_BarringPerPLMN) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UAC_BarringPerPLMN_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN_List; +extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerPLMN_List_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_List_1[1]; +extern asn_per_constraints_t asn_PER_type_UAC_BarringPerPLMN_List_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringPerPLMN_List_H_ */ +#include diff --git a/src/codec_utils/RRC/UAC-BarringPerPLMN.c b/src/codec_utils/RRC/UAC-BarringPerPLMN.c new file mode 100644 index 000000000..ff1c4a292 --- /dev/null +++ b/src/codec_utils/RRC/UAC-BarringPerPLMN.c @@ -0,0 +1,232 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UAC-BarringPerPLMN.h" + +#include "UAC-BarringPerCatList.h" +static int +memb_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_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_oer_constraints_t asn_OER_type_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { + { 0, 0 }, + 63 /* (SIZE(63..63)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { + { 0, 0 }, + 63 /* (SIZE(63..63)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_uac_ACBarringListType_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_plmn_IdentityIndex_constr_2 CC_NOTUSED = { + { 1, 1 } /* (1..12) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_uac_ImplicitACBarringList_4[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_UAC_BarringInfoSetIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_uac_ImplicitACBarringList_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_uac_ImplicitACBarringList_specs_4 = { + sizeof(struct UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList), + offsetof(struct 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_uac_ImplicitACBarringList_4 = { + "uac-ImplicitACBarringList", + "uac-ImplicitACBarringList", + &asn_OP_SEQUENCE_OF, + asn_DEF_uac_ImplicitACBarringList_tags_4, + sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4) + /sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4[0]) - 1, /* 1 */ + asn_DEF_uac_ImplicitACBarringList_tags_4, /* Same as above */ + sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4) + /sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4[0]), /* 2 */ + { &asn_OER_type_uac_ImplicitACBarringList_constr_4, &asn_PER_type_uac_ImplicitACBarringList_constr_4, SEQUENCE_OF_constraint }, + asn_MBR_uac_ImplicitACBarringList_4, + 1, /* Single element */ + &asn_SPC_uac_ImplicitACBarringList_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uac_ACBarringListType_3[] = { + { ATF_POINTER, 0, offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ImplicitACBarringList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_uac_ImplicitACBarringList_4, + 0, + { &asn_OER_memb_uac_ImplicitACBarringList_constr_4, &asn_PER_memb_uac_ImplicitACBarringList_constr_4, memb_uac_ImplicitACBarringList_constraint_3 }, + 0, 0, /* No default value */ + "uac-ImplicitACBarringList" + }, + { ATF_POINTER, 0, offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ExplicitACBarringList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UAC_BarringPerCatList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-ExplicitACBarringList" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_uac_ACBarringListType_specs_3 = { + sizeof(struct UAC_BarringPerPLMN__uac_ACBarringListType), + offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, _asn_ctx), + offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, present), + sizeof(((struct UAC_BarringPerPLMN__uac_ACBarringListType *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_uac_ACBarringListType_constr_3, &asn_PER_type_uac_ACBarringListType_constr_3, CHOICE_constraint }, + asn_MBR_uac_ACBarringListType_3, + 2, /* Elements count */ + &asn_SPC_uac_ACBarringListType_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerPLMN, plmn_IdentityIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_plmn_IdentityIndex_constr_2, &asn_PER_memb_plmn_IdentityIndex_constr_2, memb_plmn_IdentityIndex_constraint_1 }, + 0, 0, /* No default value */ + "plmn-IdentityIndex" + }, + { ATF_POINTER, 1, offsetof(struct UAC_BarringPerPLMN, uac_ACBarringListType), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_uac_ACBarringListType_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "uac-ACBarringListType" + }, +}; +static const int asn_MAP_UAC_BarringPerPLMN_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_UAC_BarringPerPLMN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringPerPLMN_specs_1 = { + sizeof(struct UAC_BarringPerPLMN), + offsetof(struct UAC_BarringPerPLMN, _asn_ctx), + asn_MAP_UAC_BarringPerPLMN_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UAC_BarringPerPLMN_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN = { + "UAC-BarringPerPLMN", + "UAC-BarringPerPLMN", + &asn_OP_SEQUENCE, + asn_DEF_UAC_BarringPerPLMN_tags_1, + sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1) + /sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ + asn_DEF_UAC_BarringPerPLMN_tags_1, /* Same as above */ + sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1) + /sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UAC_BarringPerPLMN_1, + 2, /* Elements count */ + &asn_SPC_UAC_BarringPerPLMN_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UAC-BarringPerPLMN.h b/src/codec_utils/RRC/UAC-BarringPerPLMN.h new file mode 100644 index 000000000..b24671924 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UAC_BarringPerPLMN_H_ +#define _UAC_BarringPerPLMN_H_ + + +#include + +/* Including external dependencies */ +#include +#include "UAC-BarringInfoSetIndex.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UAC_BarringPerPLMN__uac_ACBarringListType_PR { + UAC_BarringPerPLMN__uac_ACBarringListType_PR_NOTHING, /* No components present */ + UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ImplicitACBarringList, + UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ExplicitACBarringList +} UAC_BarringPerPLMN__uac_ACBarringListType_PR; + +/* Forward declarations */ +struct UAC_BarringPerCatList; + +/* UAC-BarringPerPLMN */ +typedef struct UAC_BarringPerPLMN { + long plmn_IdentityIndex; + struct UAC_BarringPerPLMN__uac_ACBarringListType { + UAC_BarringPerPLMN__uac_ACBarringListType_PR present; + union UAC_BarringPerPLMN__uac_ACBarringListType_u { + struct UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList { + A_SEQUENCE_OF(UAC_BarringInfoSetIndex_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uac_ImplicitACBarringList; + struct 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; +} UAC_BarringPerPLMN_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN; +extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringPerPLMN_specs_1; +extern asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UAC_BarringPerPLMN_H_ */ +#include diff --git a/src/codec_utils/RRC/UCI-OnPUSCH.c b/src/codec_utils/RRC/UCI-OnPUSCH.c new file mode 100644 index 000000000..ac48932c3 --- /dev/null +++ b/src/codec_utils/RRC/UCI-OnPUSCH.c @@ -0,0 +1,252 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UCI-OnPUSCH.h" + +#include "BetaOffsets.h" +static int +memb_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_oer_constraints_t asn_OER_type_dynamic_constr_3 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_dynamic_constr_3 CC_NOTUSED = { + { 0, 0 }, + 4 /* (SIZE(4..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_betaOffsets_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_scaling_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_dynamic_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_dynamic_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_dynamic_specs_3 = { + sizeof(struct UCI_OnPUSCH__betaOffsets__dynamic), + offsetof(struct UCI_OnPUSCH__betaOffsets__dynamic, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_dynamic_3 = { + "dynamic", + "dynamic", + &asn_OP_SEQUENCE_OF, + asn_DEF_dynamic_tags_3, + sizeof(asn_DEF_dynamic_tags_3) + /sizeof(asn_DEF_dynamic_tags_3[0]) - 1, /* 1 */ + asn_DEF_dynamic_tags_3, /* Same as above */ + sizeof(asn_DEF_dynamic_tags_3) + /sizeof(asn_DEF_dynamic_tags_3[0]), /* 2 */ + { &asn_OER_type_dynamic_constr_3, &asn_PER_type_dynamic_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_dynamic_3, + 1, /* Single element */ + &asn_SPC_dynamic_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_betaOffsets_2[] = { + { ATF_POINTER, 0, offsetof(struct UCI_OnPUSCH__betaOffsets, choice.dynamic), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_dynamic_3, + 0, + { &asn_OER_memb_dynamic_constr_3, &asn_PER_memb_dynamic_constr_3, memb_dynamic_constraint_2 }, + 0, 0, /* No default value */ + "dynamic" + }, + { ATF_POINTER, 0, offsetof(struct UCI_OnPUSCH__betaOffsets, choice.semiStatic), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BetaOffsets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "semiStatic" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_betaOffsets_specs_2 = { + sizeof(struct UCI_OnPUSCH__betaOffsets), + offsetof(struct UCI_OnPUSCH__betaOffsets, _asn_ctx), + offsetof(struct UCI_OnPUSCH__betaOffsets, present), + sizeof(((struct UCI_OnPUSCH__betaOffsets *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_betaOffsets_constr_2, &asn_PER_type_betaOffsets_constr_2, CHOICE_constraint }, + asn_MBR_betaOffsets_2, + 2, /* Elements count */ + &asn_SPC_betaOffsets_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_scaling_value2enum_6[] = { + { 0, 4, "f0p5" }, + { 1, 5, "f0p65" }, + { 2, 4, "f0p8" }, + { 3, 2, "f1" } +}; +static const unsigned int asn_MAP_scaling_enum2value_6[] = { + 0, /* f0p5(0) */ + 1, /* f0p65(1) */ + 2, /* f0p8(2) */ + 3 /* f1(3) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_scaling_specs_6 = { + asn_MAP_scaling_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_scaling_6 = { + "scaling", + "scaling", + &asn_OP_NativeEnumerated, + asn_DEF_scaling_tags_6, + sizeof(asn_DEF_scaling_tags_6) + /sizeof(asn_DEF_scaling_tags_6[0]) - 1, /* 1 */ + asn_DEF_scaling_tags_6, /* Same as above */ + sizeof(asn_DEF_scaling_tags_6) + /sizeof(asn_DEF_scaling_tags_6[0]), /* 2 */ + { &asn_OER_type_scaling_constr_6, &asn_PER_type_scaling_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_scaling_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UCI_OnPUSCH_1[] = { + { ATF_POINTER, 1, offsetof(struct UCI_OnPUSCH, betaOffsets), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_betaOffsets_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "betaOffsets" + }, + { ATF_NOFLAGS, 0, offsetof(struct UCI_OnPUSCH, scaling), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_scaling_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "scaling" + }, +}; +static const int asn_MAP_UCI_OnPUSCH_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_UCI_OnPUSCH_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UCI_OnPUSCH_specs_1 = { + sizeof(struct UCI_OnPUSCH), + offsetof(struct UCI_OnPUSCH, _asn_ctx), + asn_MAP_UCI_OnPUSCH_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UCI_OnPUSCH_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UCI_OnPUSCH = { + "UCI-OnPUSCH", + "UCI-OnPUSCH", + &asn_OP_SEQUENCE, + asn_DEF_UCI_OnPUSCH_tags_1, + sizeof(asn_DEF_UCI_OnPUSCH_tags_1) + /sizeof(asn_DEF_UCI_OnPUSCH_tags_1[0]), /* 1 */ + asn_DEF_UCI_OnPUSCH_tags_1, /* Same as above */ + sizeof(asn_DEF_UCI_OnPUSCH_tags_1) + /sizeof(asn_DEF_UCI_OnPUSCH_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UCI_OnPUSCH_1, + 2, /* Elements count */ + &asn_SPC_UCI_OnPUSCH_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UCI-OnPUSCH.h b/src/codec_utils/RRC/UCI-OnPUSCH.h new file mode 100644 index 000000000..633bb0cef --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UCI_OnPUSCH_H_ +#define _UCI_OnPUSCH_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UCI_OnPUSCH__betaOffsets_PR { + UCI_OnPUSCH__betaOffsets_PR_NOTHING, /* No components present */ + UCI_OnPUSCH__betaOffsets_PR_dynamic, + UCI_OnPUSCH__betaOffsets_PR_semiStatic +} UCI_OnPUSCH__betaOffsets_PR; +typedef enum UCI_OnPUSCH__scaling { + UCI_OnPUSCH__scaling_f0p5 = 0, + UCI_OnPUSCH__scaling_f0p65 = 1, + UCI_OnPUSCH__scaling_f0p8 = 2, + UCI_OnPUSCH__scaling_f1 = 3 +} e_UCI_OnPUSCH__scaling; + +/* Forward declarations */ +struct BetaOffsets; + +/* UCI-OnPUSCH */ +typedef struct UCI_OnPUSCH { + struct UCI_OnPUSCH__betaOffsets { + UCI_OnPUSCH__betaOffsets_PR present; + union UCI_OnPUSCH__betaOffsets_u { + struct UCI_OnPUSCH__betaOffsets__dynamic { + A_SEQUENCE_OF(struct BetaOffsets) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *dynamic; + struct 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; +} UCI_OnPUSCH_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_scaling_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_UCI_OnPUSCH; +extern asn_SEQUENCE_specifics_t asn_SPC_UCI_OnPUSCH_specs_1; +extern asn_TYPE_member_t asn_MBR_UCI_OnPUSCH_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UCI_OnPUSCH_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-Container.c b/src/codec_utils/RRC/UE-CapabilityRAT-Container.c new file mode 100644 index 000000000..b6279c316 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRAT-Container.h" + +asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_Container_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_CapabilityRAT_Container, rat_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RAT_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rat-Type" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_UE_CapabilityRAT_Container_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_CapabilityRAT_Container_specs_1 = { + sizeof(struct UE_CapabilityRAT_Container), + offsetof(struct UE_CapabilityRAT_Container, _asn_ctx), + asn_MAP_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_UE_CapabilityRAT_Container = { + "UE-CapabilityRAT-Container", + "UE-CapabilityRAT-Container", + &asn_OP_SEQUENCE, + asn_DEF_UE_CapabilityRAT_Container_tags_1, + sizeof(asn_DEF_UE_CapabilityRAT_Container_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_Container_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRAT_Container_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRAT_Container_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_Container_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_CapabilityRAT_Container_1, + 2, /* Elements count */ + &asn_SPC_UE_CapabilityRAT_Container_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-Container.h b/src/codec_utils/RRC/UE-CapabilityRAT-Container.h new file mode 100644 index 000000000..dc51176e7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRAT_Container_H_ +#define _UE_CapabilityRAT_Container_H_ + + +#include + +/* Including external dependencies */ +#include "RAT-Type.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UE-CapabilityRAT-Container */ +typedef struct UE_CapabilityRAT_Container { + RAT_Type_t rat_Type; + OCTET_STRING_t ue_CapabilityRAT_Container; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_CapabilityRAT_Container_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_Container; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_CapabilityRAT_Container_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_Container_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRAT_Container_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.c b/src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.c new file mode 100644 index 000000000..a1d0a0d69 --- /dev/null +++ b/src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRAT-ContainerList.h" + +#include "UE-CapabilityRAT-Container.h" +static asn_oer_constraints_t asn_OER_type_UE_CapabilityRAT_ContainerList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..8)) */}; +asn_per_constraints_t asn_PER_type_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_UE_CapabilityRAT_ContainerList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_CapabilityRAT_Container, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UE_CapabilityRAT_ContainerList_specs_1 = { + sizeof(struct UE_CapabilityRAT_ContainerList), + offsetof(struct UE_CapabilityRAT_ContainerList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_ContainerList = { + "UE-CapabilityRAT-ContainerList", + "UE-CapabilityRAT-ContainerList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UE_CapabilityRAT_ContainerList_tags_1, + sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRAT_ContainerList_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_ContainerList_tags_1[0]), /* 1 */ + { &asn_OER_type_UE_CapabilityRAT_ContainerList_constr_1, &asn_PER_type_UE_CapabilityRAT_ContainerList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UE_CapabilityRAT_ContainerList_1, + 1, /* Single element */ + &asn_SPC_UE_CapabilityRAT_ContainerList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.h b/src/codec_utils/RRC/UE-CapabilityRAT-ContainerList.h new file mode 100644 index 000000000..2846b7d59 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRAT_ContainerList_H_ +#define _UE_CapabilityRAT_ContainerList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UE_CapabilityRAT_Container; + +/* UE-CapabilityRAT-ContainerList */ +typedef struct UE_CapabilityRAT_ContainerList { + A_SEQUENCE_OF(struct UE_CapabilityRAT_Container) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_CapabilityRAT_ContainerList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_ContainerList; +extern asn_SET_OF_specifics_t asn_SPC_UE_CapabilityRAT_ContainerList_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_ContainerList_1[1]; +extern asn_per_constraints_t asn_PER_type_UE_CapabilityRAT_ContainerList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRAT_ContainerList_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-Request.c b/src/codec_utils/RRC/UE-CapabilityRAT-Request.c new file mode 100644 index 000000000..90aee01f4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRAT-Request.h" + +asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_Request_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_CapabilityRAT_Request, rat_Type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RAT_Type, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rat-Type" + }, + { ATF_POINTER, 1, offsetof(struct 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_UE_CapabilityRAT_Request_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_UE_CapabilityRAT_Request_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_CapabilityRAT_Request_specs_1 = { + sizeof(struct UE_CapabilityRAT_Request), + offsetof(struct UE_CapabilityRAT_Request, _asn_ctx), + asn_MAP_UE_CapabilityRAT_Request_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UE_CapabilityRAT_Request_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_Request = { + "UE-CapabilityRAT-Request", + "UE-CapabilityRAT-Request", + &asn_OP_SEQUENCE, + asn_DEF_UE_CapabilityRAT_Request_tags_1, + sizeof(asn_DEF_UE_CapabilityRAT_Request_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_Request_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRAT_Request_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRAT_Request_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_Request_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_CapabilityRAT_Request_1, + 2, /* Elements count */ + &asn_SPC_UE_CapabilityRAT_Request_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-Request.h b/src/codec_utils/RRC/UE-CapabilityRAT-Request.h new file mode 100644 index 000000000..7dd46f3e5 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRAT_Request_H_ +#define _UE_CapabilityRAT_Request_H_ + + +#include + +/* Including external dependencies */ +#include "RAT-Type.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UE-CapabilityRAT-Request */ +typedef struct UE_CapabilityRAT_Request { + 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; +} UE_CapabilityRAT_Request_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_Request; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_CapabilityRAT_Request_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_Request_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRAT_Request_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-RequestList.c b/src/codec_utils/RRC/UE-CapabilityRAT-RequestList.c new file mode 100644 index 000000000..0c4b9bc9f --- /dev/null +++ b/src/codec_utils/RRC/UE-CapabilityRAT-RequestList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRAT-RequestList.h" + +#include "UE-CapabilityRAT-Request.h" +static asn_oer_constraints_t asn_OER_type_UE_CapabilityRAT_RequestList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..8)) */}; +asn_per_constraints_t asn_PER_type_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_UE_CapabilityRAT_RequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UE_CapabilityRAT_Request, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_CapabilityRAT_RequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UE_CapabilityRAT_RequestList_specs_1 = { + sizeof(struct UE_CapabilityRAT_RequestList), + offsetof(struct UE_CapabilityRAT_RequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_RequestList = { + "UE-CapabilityRAT-RequestList", + "UE-CapabilityRAT-RequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UE_CapabilityRAT_RequestList_tags_1, + sizeof(asn_DEF_UE_CapabilityRAT_RequestList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_RequestList_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRAT_RequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRAT_RequestList_tags_1) + /sizeof(asn_DEF_UE_CapabilityRAT_RequestList_tags_1[0]), /* 1 */ + { &asn_OER_type_UE_CapabilityRAT_RequestList_constr_1, &asn_PER_type_UE_CapabilityRAT_RequestList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UE_CapabilityRAT_RequestList_1, + 1, /* Single element */ + &asn_SPC_UE_CapabilityRAT_RequestList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-CapabilityRAT-RequestList.h b/src/codec_utils/RRC/UE-CapabilityRAT-RequestList.h new file mode 100644 index 000000000..babcff0ba --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRAT_RequestList_H_ +#define _UE_CapabilityRAT_RequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UE_CapabilityRAT_Request; + +/* UE-CapabilityRAT-RequestList */ +typedef struct UE_CapabilityRAT_RequestList { + A_SEQUENCE_OF(struct UE_CapabilityRAT_Request) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_CapabilityRAT_RequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRAT_RequestList; +extern asn_SET_OF_specifics_t asn_SPC_UE_CapabilityRAT_RequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_CapabilityRAT_RequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_UE_CapabilityRAT_RequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRAT_RequestList_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.c b/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.c new file mode 100644 index 000000000..a49b12251 --- /dev/null +++ b/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.c @@ -0,0 +1,91 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-CapabilityRequestFilterNR.h" + +#include "FreqBandList.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct UE_CapabilityRequestFilterNR__nonCriticalExtension), + offsetof(struct UE_CapabilityRequestFilterNR__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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_UE_CapabilityRequestFilterNR_1[] = { + { ATF_POINTER, 2, offsetof(struct UE_CapabilityRequestFilterNR, frequencyBandListr), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FreqBandList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyBandListr" + }, + { ATF_POINTER, 1, offsetof(struct UE_CapabilityRequestFilterNR, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UE_CapabilityRequestFilterNR_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UE_CapabilityRequestFilterNR_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_CapabilityRequestFilterNR_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyBandListr */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* nonCriticalExtension */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UE_CapabilityRequestFilterNR_specs_1 = { + sizeof(struct UE_CapabilityRequestFilterNR), + offsetof(struct UE_CapabilityRequestFilterNR, _asn_ctx), + asn_MAP_UE_CapabilityRequestFilterNR_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UE_CapabilityRequestFilterNR_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRequestFilterNR = { + "UE-CapabilityRequestFilterNR", + "UE-CapabilityRequestFilterNR", + &asn_OP_SEQUENCE, + asn_DEF_UE_CapabilityRequestFilterNR_tags_1, + sizeof(asn_DEF_UE_CapabilityRequestFilterNR_tags_1) + /sizeof(asn_DEF_UE_CapabilityRequestFilterNR_tags_1[0]), /* 1 */ + asn_DEF_UE_CapabilityRequestFilterNR_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_CapabilityRequestFilterNR_tags_1) + /sizeof(asn_DEF_UE_CapabilityRequestFilterNR_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_CapabilityRequestFilterNR_1, + 2, /* Elements count */ + &asn_SPC_UE_CapabilityRequestFilterNR_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.h b/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.h new file mode 100644 index 000000000..7e55777ae --- /dev/null +++ b/src/codec_utils/RRC/UE-CapabilityRequestFilterNR.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_CapabilityRequestFilterNR_H_ +#define _UE_CapabilityRequestFilterNR_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FreqBandList; + +/* UE-CapabilityRequestFilterNR */ +typedef struct UE_CapabilityRequestFilterNR { + struct FreqBandList *frequencyBandListr; /* OPTIONAL */ + struct UE_CapabilityRequestFilterNR__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; +} UE_CapabilityRequestFilterNR_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_CapabilityRequestFilterNR; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_CapabilityRequestFilterNR_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-MRDC-Capability.c b/src/codec_utils/RRC/UE-MRDC-Capability.c new file mode 100644 index 000000000..e551bd09d --- /dev/null +++ b/src/codec_utils/RRC/UE-MRDC-Capability.c @@ -0,0 +1,276 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-MRDC-Capability.h" + +#include "MeasAndMobParametersMRDC.h" +#include "Phy-ParametersMRDC.h" +#include "GeneralParametersMRDC-XDD-Diff.h" +#include "UE-MRDC-CapabilityAddXDD-Mode.h" +#include "UE-MRDC-CapabilityAddFRX-Mode.h" +#include "PDCP-ParametersMRDC.h" +#include "FeatureSetCombination.h" +static int +memb_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_oer_constraints_t asn_OER_type_featureSetCombinations_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_featureSetCombinations_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_featureSetCombinations_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetCombinations_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetCombinations_specs_10 = { + sizeof(struct UE_MRDC_Capability__featureSetCombinations), + offsetof(struct UE_MRDC_Capability__featureSetCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetCombinations_10 = { + "featureSetCombinations", + "featureSetCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetCombinations_tags_10, + sizeof(asn_DEF_featureSetCombinations_tags_10) + /sizeof(asn_DEF_featureSetCombinations_tags_10[0]) - 1, /* 1 */ + asn_DEF_featureSetCombinations_tags_10, /* Same as above */ + sizeof(asn_DEF_featureSetCombinations_tags_10) + /sizeof(asn_DEF_featureSetCombinations_tags_10[0]), /* 2 */ + { &asn_OER_type_featureSetCombinations_constr_10, &asn_PER_type_featureSetCombinations_constr_10, SEQUENCE_OF_constraint }, + asn_MBR_featureSetCombinations_10, + 1, /* Single element */ + &asn_SPC_featureSetCombinations_specs_10 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_14 = { + sizeof(struct UE_MRDC_Capability__nonCriticalExtension), + offsetof(struct UE_MRDC_Capability__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_nonCriticalExtension_14 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_14, + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_14, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_14) + /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_14 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_UE_MRDC_Capability_1[] = { + { ATF_POINTER, 2, offsetof(struct UE_MRDC_Capability, measAndMobParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC" + }, + { ATF_POINTER, 1, offsetof(struct UE_MRDC_Capability, phy_ParametersMRDC_v1530), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersMRDC-v1530" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_MRDC_Capability, rf_ParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RF_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rf-ParametersMRDC" + }, + { ATF_POINTER, 9, offsetof(struct UE_MRDC_Capability, generalParametersMRDC), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeneralParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generalParametersMRDC" + }, + { ATF_POINTER, 8, offsetof(struct UE_MRDC_Capability, fdd_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 7, offsetof(struct UE_MRDC_Capability, tdd_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_MRDC_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 6, offsetof(struct UE_MRDC_Capability, fr1_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 5, offsetof(struct UE_MRDC_Capability, fr2_Add_UE_MRDC_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_MRDC_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-MRDC-Capabilities" + }, + { ATF_POINTER, 4, offsetof(struct UE_MRDC_Capability, featureSetCombinations), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_featureSetCombinations_10, + 0, + { &asn_OER_memb_featureSetCombinations_constr_10, &asn_PER_memb_featureSetCombinations_constr_10, memb_featureSetCombinations_constraint_1 }, + 0, 0, /* No default value */ + "featureSetCombinations" + }, + { ATF_POINTER, 3, offsetof(struct UE_MRDC_Capability, pdcp_ParametersMRDC_v1530), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_ParametersMRDC, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-ParametersMRDC-v1530" + }, + { ATF_POINTER, 2, offsetof(struct 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 UE_MRDC_Capability, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + 0, + &asn_DEF_nonCriticalExtension_14, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UE_MRDC_Capability_oms_1[] = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; +static const ber_tlv_tag_t asn_DEF_UE_MRDC_Capability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_MRDC_Capability_specs_1 = { + sizeof(struct UE_MRDC_Capability), + offsetof(struct UE_MRDC_Capability, _asn_ctx), + asn_MAP_UE_MRDC_Capability_tag2el_1, + 12, /* Count of tags in the map */ + asn_MAP_UE_MRDC_Capability_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_MRDC_Capability = { + "UE-MRDC-Capability", + "UE-MRDC-Capability", + &asn_OP_SEQUENCE, + asn_DEF_UE_MRDC_Capability_tags_1, + sizeof(asn_DEF_UE_MRDC_Capability_tags_1) + /sizeof(asn_DEF_UE_MRDC_Capability_tags_1[0]), /* 1 */ + asn_DEF_UE_MRDC_Capability_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_MRDC_Capability_tags_1) + /sizeof(asn_DEF_UE_MRDC_Capability_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_MRDC_Capability_1, + 12, /* Elements count */ + &asn_SPC_UE_MRDC_Capability_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-MRDC-Capability.h b/src/codec_utils/RRC/UE-MRDC-Capability.h new file mode 100644 index 000000000..b80a6cb67 --- /dev/null +++ b/src/codec_utils/RRC/UE-MRDC-Capability.h @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_MRDC_Capability_H_ +#define _UE_MRDC_Capability_H_ + + +#include + +/* Including external dependencies */ +#include "RF-ParametersMRDC.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasAndMobParametersMRDC; +struct Phy_ParametersMRDC; +struct GeneralParametersMRDC_XDD_Diff; +struct UE_MRDC_CapabilityAddXDD_Mode; +struct UE_MRDC_CapabilityAddFRX_Mode; +struct PDCP_ParametersMRDC; +struct FeatureSetCombination; + +/* UE-MRDC-Capability */ +typedef struct UE_MRDC_Capability { + struct MeasAndMobParametersMRDC *measAndMobParametersMRDC; /* OPTIONAL */ + struct Phy_ParametersMRDC *phy_ParametersMRDC_v1530; /* OPTIONAL */ + RF_ParametersMRDC_t rf_ParametersMRDC; + struct GeneralParametersMRDC_XDD_Diff *generalParametersMRDC; /* OPTIONAL */ + struct UE_MRDC_CapabilityAddXDD_Mode *fdd_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct UE_MRDC_CapabilityAddXDD_Mode *tdd_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct UE_MRDC_CapabilityAddFRX_Mode *fr1_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct UE_MRDC_CapabilityAddFRX_Mode *fr2_Add_UE_MRDC_Capabilities; /* OPTIONAL */ + struct UE_MRDC_Capability__featureSetCombinations { + A_SEQUENCE_OF(struct FeatureSetCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetCombinations; + struct PDCP_ParametersMRDC *pdcp_ParametersMRDC_v1530; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct UE_MRDC_Capability__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; +} UE_MRDC_Capability_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_MRDC_Capability; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_MRDC_Capability_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.c b/src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.c new file mode 100644 index 000000000..ba90f0e41 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-MRDC-CapabilityAddFRX-Mode.h" + +asn_TYPE_member_t asn_MBR_UE_MRDC_CapabilityAddFRX_Mode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_MRDC_CapabilityAddFRX_Mode, measAndMobParametersMRDC_FRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC_FRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-FRX-Diff" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UE_MRDC_CapabilityAddFRX_Mode_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* measAndMobParametersMRDC-FRX-Diff */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UE_MRDC_CapabilityAddFRX_Mode_specs_1 = { + sizeof(struct UE_MRDC_CapabilityAddFRX_Mode), + offsetof(struct UE_MRDC_CapabilityAddFRX_Mode, _asn_ctx), + asn_MAP_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_UE_MRDC_CapabilityAddFRX_Mode = { + "UE-MRDC-CapabilityAddFRX-Mode", + "UE-MRDC-CapabilityAddFRX-Mode", + &asn_OP_SEQUENCE, + asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1, + sizeof(asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_UE_MRDC_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_MRDC_CapabilityAddFRX_Mode_1, + 1, /* Elements count */ + &asn_SPC_UE_MRDC_CapabilityAddFRX_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.h b/src/codec_utils/RRC/UE-MRDC-CapabilityAddFRX-Mode.h new file mode 100644 index 000000000..1026898cd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_MRDC_CapabilityAddFRX_Mode_H_ +#define _UE_MRDC_CapabilityAddFRX_Mode_H_ + + +#include + +/* Including external dependencies */ +#include "MeasAndMobParametersMRDC-FRX-Diff.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UE-MRDC-CapabilityAddFRX-Mode */ +typedef struct UE_MRDC_CapabilityAddFRX_Mode { + MeasAndMobParametersMRDC_FRX_Diff_t measAndMobParametersMRDC_FRX_Diff; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_MRDC_CapabilityAddFRX_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_MRDC_CapabilityAddFRX_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_MRDC_CapabilityAddFRX_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_MRDC_CapabilityAddFRX_Mode_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_MRDC_CapabilityAddFRX_Mode_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.c b/src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.c new file mode 100644 index 000000000..8f9f69f86 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-MRDC-CapabilityAddXDD-Mode.h" + +#include "MeasAndMobParametersMRDC-XDD-Diff.h" +#include "GeneralParametersMRDC-XDD-Diff.h" +asn_TYPE_member_t asn_MBR_UE_MRDC_CapabilityAddXDD_Mode_1[] = { + { ATF_POINTER, 2, offsetof(struct UE_MRDC_CapabilityAddXDD_Mode, measAndMobParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersMRDC-XDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct UE_MRDC_CapabilityAddXDD_Mode, generalParametersMRDC_XDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GeneralParametersMRDC_XDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "generalParametersMRDC-XDD-Diff" + }, +}; +static const int asn_MAP_UE_MRDC_CapabilityAddXDD_Mode_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_MRDC_CapabilityAddXDD_Mode_specs_1 = { + sizeof(struct UE_MRDC_CapabilityAddXDD_Mode), + offsetof(struct UE_MRDC_CapabilityAddXDD_Mode, _asn_ctx), + asn_MAP_UE_MRDC_CapabilityAddXDD_Mode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UE_MRDC_CapabilityAddXDD_Mode_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_MRDC_CapabilityAddXDD_Mode = { + "UE-MRDC-CapabilityAddXDD-Mode", + "UE-MRDC-CapabilityAddXDD-Mode", + &asn_OP_SEQUENCE, + asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1, + sizeof(asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_UE_MRDC_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_MRDC_CapabilityAddXDD_Mode_1, + 2, /* Elements count */ + &asn_SPC_UE_MRDC_CapabilityAddXDD_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.h b/src/codec_utils/RRC/UE-MRDC-CapabilityAddXDD-Mode.h new file mode 100644 index 000000000..f1443ea10 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_MRDC_CapabilityAddXDD_Mode_H_ +#define _UE_MRDC_CapabilityAddXDD_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct MeasAndMobParametersMRDC_XDD_Diff; +struct GeneralParametersMRDC_XDD_Diff; + +/* UE-MRDC-CapabilityAddXDD-Mode */ +typedef struct UE_MRDC_CapabilityAddXDD_Mode { + struct MeasAndMobParametersMRDC_XDD_Diff *measAndMobParametersMRDC_XDD_Diff; /* OPTIONAL */ + struct GeneralParametersMRDC_XDD_Diff *generalParametersMRDC_XDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_MRDC_CapabilityAddXDD_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_MRDC_CapabilityAddXDD_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_MRDC_CapabilityAddXDD_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_MRDC_CapabilityAddXDD_Mode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_MRDC_CapabilityAddXDD_Mode_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-NR-Capability.c b/src/codec_utils/RRC/UE-NR-Capability.c new file mode 100644 index 000000000..81bf7256d --- /dev/null +++ b/src/codec_utils/RRC/UE-NR-Capability.c @@ -0,0 +1,306 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-NR-Capability.h" + +#include "RLC-Parameters.h" +#include "MAC-Parameters.h" +#include "MeasAndMobParameters.h" +#include "UE-NR-CapabilityAddXDD-Mode.h" +#include "UE-NR-CapabilityAddFRX-Mode.h" +#include "FeatureSets.h" +#include "FeatureSetCombination.h" +static int +memb_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_oer_constraints_t asn_OER_type_featureSetCombinations_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_featureSetCombinations_constr_14 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_featureSetCombinations_14[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_FeatureSetCombination, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_featureSetCombinations_tags_14[] = { + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_featureSetCombinations_specs_14 = { + sizeof(struct UE_NR_Capability__featureSetCombinations), + offsetof(struct UE_NR_Capability__featureSetCombinations, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_featureSetCombinations_14 = { + "featureSetCombinations", + "featureSetCombinations", + &asn_OP_SEQUENCE_OF, + asn_DEF_featureSetCombinations_tags_14, + sizeof(asn_DEF_featureSetCombinations_tags_14) + /sizeof(asn_DEF_featureSetCombinations_tags_14[0]) - 1, /* 1 */ + asn_DEF_featureSetCombinations_tags_14, /* Same as above */ + sizeof(asn_DEF_featureSetCombinations_tags_14) + /sizeof(asn_DEF_featureSetCombinations_tags_14[0]), /* 2 */ + { &asn_OER_type_featureSetCombinations_constr_14, &asn_PER_type_featureSetCombinations_constr_14, SEQUENCE_OF_constraint }, + asn_MBR_featureSetCombinations_14, + 1, /* Single element */ + &asn_SPC_featureSetCombinations_specs_14 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_17 = { + sizeof(struct UE_NR_Capability__nonCriticalExtension), + offsetof(struct UE_NR_Capability__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_nonCriticalExtension_17 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_17, + sizeof(asn_DEF_nonCriticalExtension_tags_17) + /sizeof(asn_DEF_nonCriticalExtension_tags_17[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_17, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_17) + /sizeof(asn_DEF_nonCriticalExtension_tags_17[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_UE_NR_Capability_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, accessStratumRelease), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AccessStratumRelease, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "accessStratumRelease" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, pdcp_Parameters), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PDCP_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pdcp-Parameters" + }, + { ATF_POINTER, 2, offsetof(struct UE_NR_Capability, rlc_Parameters), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RLC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rlc-Parameters" + }, + { ATF_POINTER, 1, offsetof(struct UE_NR_Capability, mac_Parameters), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MAC_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-Parameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, phy_Parameters), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-Parameters" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, rf_Parameters), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RF_Parameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rf-Parameters" + }, + { ATF_POINTER, 9, offsetof(struct UE_NR_Capability, measAndMobParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParameters, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParameters" + }, + { ATF_POINTER, 8, offsetof(struct UE_NR_Capability, fdd_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_NR_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fdd-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 7, offsetof(struct UE_NR_Capability, tdd_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_NR_CapabilityAddXDD_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tdd-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 6, offsetof(struct UE_NR_Capability, fr1_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_NR_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr1-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 5, offsetof(struct UE_NR_Capability, fr2_Add_UE_NR_Capabilities), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_NR_CapabilityAddFRX_Mode, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "fr2-Add-UE-NR-Capabilities" + }, + { ATF_POINTER, 4, offsetof(struct UE_NR_Capability, featureSets), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FeatureSets, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "featureSets" + }, + { ATF_POINTER, 3, offsetof(struct UE_NR_Capability, featureSetCombinations), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + 0, + &asn_DEF_featureSetCombinations_14, + 0, + { &asn_OER_memb_featureSetCombinations_constr_14, &asn_PER_memb_featureSetCombinations_constr_14, memb_featureSetCombinations_constraint_1 }, + 0, 0, /* No default value */ + "featureSetCombinations" + }, + { ATF_POINTER, 2, offsetof(struct 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 UE_NR_Capability, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (14 << 2)), + 0, + &asn_DEF_nonCriticalExtension_17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UE_NR_Capability_oms_1[] = { 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; +static const ber_tlv_tag_t asn_DEF_UE_NR_Capability_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_NR_Capability_specs_1 = { + sizeof(struct UE_NR_Capability), + offsetof(struct UE_NR_Capability, _asn_ctx), + asn_MAP_UE_NR_Capability_tag2el_1, + 15, /* Count of tags in the map */ + asn_MAP_UE_NR_Capability_oms_1, /* Optional members */ + 11, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_NR_Capability = { + "UE-NR-Capability", + "UE-NR-Capability", + &asn_OP_SEQUENCE, + asn_DEF_UE_NR_Capability_tags_1, + sizeof(asn_DEF_UE_NR_Capability_tags_1) + /sizeof(asn_DEF_UE_NR_Capability_tags_1[0]), /* 1 */ + asn_DEF_UE_NR_Capability_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_NR_Capability_tags_1) + /sizeof(asn_DEF_UE_NR_Capability_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_NR_Capability_1, + 15, /* Elements count */ + &asn_SPC_UE_NR_Capability_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-NR-Capability.h b/src/codec_utils/RRC/UE-NR-Capability.h new file mode 100644 index 000000000..8a42402f8 --- /dev/null +++ b/src/codec_utils/RRC/UE-NR-Capability.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_NR_Capability_H_ +#define _UE_NR_Capability_H_ + + +#include + +/* Including external dependencies */ +#include "AccessStratumRelease.h" +#include "PDCP-Parameters.h" +#include "Phy-Parameters.h" +#include "RF-Parameters.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct RLC_Parameters; +struct MAC_Parameters; +struct MeasAndMobParameters; +struct UE_NR_CapabilityAddXDD_Mode; +struct UE_NR_CapabilityAddFRX_Mode; +struct FeatureSets; +struct FeatureSetCombination; + +/* UE-NR-Capability */ +typedef struct UE_NR_Capability { + AccessStratumRelease_t accessStratumRelease; + PDCP_Parameters_t pdcp_Parameters; + struct RLC_Parameters *rlc_Parameters; /* OPTIONAL */ + struct MAC_Parameters *mac_Parameters; /* OPTIONAL */ + Phy_Parameters_t phy_Parameters; + RF_Parameters_t rf_Parameters; + struct MeasAndMobParameters *measAndMobParameters; /* OPTIONAL */ + struct UE_NR_CapabilityAddXDD_Mode *fdd_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct UE_NR_CapabilityAddXDD_Mode *tdd_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct UE_NR_CapabilityAddFRX_Mode *fr1_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct UE_NR_CapabilityAddFRX_Mode *fr2_Add_UE_NR_Capabilities; /* OPTIONAL */ + struct FeatureSets *featureSets; /* OPTIONAL */ + struct UE_NR_Capability__featureSetCombinations { + A_SEQUENCE_OF(struct FeatureSetCombination) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *featureSetCombinations; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct UE_NR_Capability__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; +} UE_NR_Capability_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_NR_Capability; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_NR_Capability_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.c b/src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.c new file mode 100644 index 000000000..2e21d3dfd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-NR-CapabilityAddFRX-Mode.h" + +#include "Phy-ParametersFRX-Diff.h" +#include "MeasAndMobParametersFRX-Diff.h" +asn_TYPE_member_t asn_MBR_UE_NR_CapabilityAddFRX_Mode_1[] = { + { ATF_POINTER, 2, offsetof(struct UE_NR_CapabilityAddFRX_Mode, phy_ParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersFRX-Diff" + }, + { ATF_POINTER, 1, offsetof(struct UE_NR_CapabilityAddFRX_Mode, measAndMobParametersFRX_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersFRX_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersFRX-Diff" + }, +}; +static const int asn_MAP_UE_NR_CapabilityAddFRX_Mode_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_NR_CapabilityAddFRX_Mode_specs_1 = { + sizeof(struct UE_NR_CapabilityAddFRX_Mode), + offsetof(struct UE_NR_CapabilityAddFRX_Mode, _asn_ctx), + asn_MAP_UE_NR_CapabilityAddFRX_Mode_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UE_NR_CapabilityAddFRX_Mode_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_NR_CapabilityAddFRX_Mode = { + "UE-NR-CapabilityAddFRX-Mode", + "UE-NR-CapabilityAddFRX-Mode", + &asn_OP_SEQUENCE, + asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1, + sizeof(asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1) + /sizeof(asn_DEF_UE_NR_CapabilityAddFRX_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_NR_CapabilityAddFRX_Mode_1, + 2, /* Elements count */ + &asn_SPC_UE_NR_CapabilityAddFRX_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.h b/src/codec_utils/RRC/UE-NR-CapabilityAddFRX-Mode.h new file mode 100644 index 000000000..804f162e2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_NR_CapabilityAddFRX_Mode_H_ +#define _UE_NR_CapabilityAddFRX_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Phy_ParametersFRX_Diff; +struct MeasAndMobParametersFRX_Diff; + +/* UE-NR-CapabilityAddFRX-Mode */ +typedef struct UE_NR_CapabilityAddFRX_Mode { + struct Phy_ParametersFRX_Diff *phy_ParametersFRX_Diff; /* OPTIONAL */ + struct MeasAndMobParametersFRX_Diff *measAndMobParametersFRX_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_NR_CapabilityAddFRX_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_NR_CapabilityAddFRX_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_NR_CapabilityAddFRX_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_NR_CapabilityAddFRX_Mode_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_NR_CapabilityAddFRX_Mode_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.c b/src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.c new file mode 100644 index 000000000..eafb83fc7 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UE-NR-CapabilityAddXDD-Mode.h" + +#include "Phy-ParametersXDD-Diff.h" +#include "MAC-ParametersXDD-Diff.h" +#include "MeasAndMobParametersXDD-Diff.h" +asn_TYPE_member_t asn_MBR_UE_NR_CapabilityAddXDD_Mode_1[] = { + { ATF_POINTER, 3, offsetof(struct UE_NR_CapabilityAddXDD_Mode, phy_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Phy_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "phy-ParametersXDD-Diff" + }, + { ATF_POINTER, 2, offsetof(struct UE_NR_CapabilityAddXDD_Mode, mac_ParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MAC_ParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mac-ParametersXDD-Diff" + }, + { ATF_POINTER, 1, offsetof(struct UE_NR_CapabilityAddXDD_Mode, measAndMobParametersXDD_Diff), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasAndMobParametersXDD_Diff, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measAndMobParametersXDD-Diff" + }, +}; +static const int asn_MAP_UE_NR_CapabilityAddXDD_Mode_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_NR_CapabilityAddXDD_Mode_specs_1 = { + sizeof(struct UE_NR_CapabilityAddXDD_Mode), + offsetof(struct UE_NR_CapabilityAddXDD_Mode, _asn_ctx), + asn_MAP_UE_NR_CapabilityAddXDD_Mode_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UE_NR_CapabilityAddXDD_Mode_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UE_NR_CapabilityAddXDD_Mode = { + "UE-NR-CapabilityAddXDD-Mode", + "UE-NR-CapabilityAddXDD-Mode", + &asn_OP_SEQUENCE, + asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1, + sizeof(asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1) + /sizeof(asn_DEF_UE_NR_CapabilityAddXDD_Mode_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_NR_CapabilityAddXDD_Mode_1, + 3, /* Elements count */ + &asn_SPC_UE_NR_CapabilityAddXDD_Mode_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.h b/src/codec_utils/RRC/UE-NR-CapabilityAddXDD-Mode.h new file mode 100644 index 000000000..6f8e4361f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_NR_CapabilityAddXDD_Mode_H_ +#define _UE_NR_CapabilityAddXDD_Mode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct Phy_ParametersXDD_Diff; +struct MAC_ParametersXDD_Diff; +struct MeasAndMobParametersXDD_Diff; + +/* UE-NR-CapabilityAddXDD-Mode */ +typedef struct UE_NR_CapabilityAddXDD_Mode { + struct Phy_ParametersXDD_Diff *phy_ParametersXDD_Diff; /* OPTIONAL */ + struct MAC_ParametersXDD_Diff *mac_ParametersXDD_Diff; /* OPTIONAL */ + struct MeasAndMobParametersXDD_Diff *measAndMobParametersXDD_Diff; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UE_NR_CapabilityAddXDD_Mode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UE_NR_CapabilityAddXDD_Mode; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_NR_CapabilityAddXDD_Mode_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_NR_CapabilityAddXDD_Mode_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_NR_CapabilityAddXDD_Mode_H_ */ +#include diff --git a/src/codec_utils/RRC/UE-TimersAndConstants.c b/src/codec_utils/RRC/UE-TimersAndConstants.c new file mode 100644 index 000000000..cdbbc1481 --- /dev/null +++ b/src/codec_utils/RRC/UE-TimersAndConstants.c @@ -0,0 +1,533 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_t300_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t301_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t310_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n310_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t311_constr_37 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n311_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t319_constr_54 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_t300_specs_2 = { + asn_MAP_t300_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t300_2 = { + "t300", + "t300", + &asn_OP_NativeEnumerated, + asn_DEF_t300_tags_2, + sizeof(asn_DEF_t300_tags_2) + /sizeof(asn_DEF_t300_tags_2[0]) - 1, /* 1 */ + asn_DEF_t300_tags_2, /* Same as above */ + sizeof(asn_DEF_t300_tags_2) + /sizeof(asn_DEF_t300_tags_2[0]), /* 2 */ + { &asn_OER_type_t300_constr_2, &asn_PER_type_t300_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t300_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t301_specs_11 = { + asn_MAP_t301_value2enum_11, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t301_11 = { + "t301", + "t301", + &asn_OP_NativeEnumerated, + asn_DEF_t301_tags_11, + sizeof(asn_DEF_t301_tags_11) + /sizeof(asn_DEF_t301_tags_11[0]) - 1, /* 1 */ + asn_DEF_t301_tags_11, /* Same as above */ + sizeof(asn_DEF_t301_tags_11) + /sizeof(asn_DEF_t301_tags_11[0]), /* 2 */ + { &asn_OER_type_t301_constr_11, &asn_PER_type_t301_constr_11, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t301_specs_11 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t310_specs_20 = { + asn_MAP_t310_value2enum_20, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t310_20 = { + "t310", + "t310", + &asn_OP_NativeEnumerated, + asn_DEF_t310_tags_20, + sizeof(asn_DEF_t310_tags_20) + /sizeof(asn_DEF_t310_tags_20[0]) - 1, /* 1 */ + asn_DEF_t310_tags_20, /* Same as above */ + sizeof(asn_DEF_t310_tags_20) + /sizeof(asn_DEF_t310_tags_20[0]), /* 2 */ + { &asn_OER_type_t310_constr_20, &asn_PER_type_t310_constr_20, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t310_specs_20 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_n310_specs_28 = { + asn_MAP_n310_value2enum_28, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n310_28 = { + "n310", + "n310", + &asn_OP_NativeEnumerated, + asn_DEF_n310_tags_28, + sizeof(asn_DEF_n310_tags_28) + /sizeof(asn_DEF_n310_tags_28[0]) - 1, /* 1 */ + asn_DEF_n310_tags_28, /* Same as above */ + sizeof(asn_DEF_n310_tags_28) + /sizeof(asn_DEF_n310_tags_28[0]), /* 2 */ + { &asn_OER_type_n310_constr_28, &asn_PER_type_n310_constr_28, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n310_specs_28 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t311_specs_37 = { + asn_MAP_t311_value2enum_37, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t311_37 = { + "t311", + "t311", + &asn_OP_NativeEnumerated, + asn_DEF_t311_tags_37, + sizeof(asn_DEF_t311_tags_37) + /sizeof(asn_DEF_t311_tags_37[0]) - 1, /* 1 */ + asn_DEF_t311_tags_37, /* Same as above */ + sizeof(asn_DEF_t311_tags_37) + /sizeof(asn_DEF_t311_tags_37[0]), /* 2 */ + { &asn_OER_type_t311_constr_37, &asn_PER_type_t311_constr_37, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t311_specs_37 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_n311_specs_45 = { + asn_MAP_n311_value2enum_45, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_n311_45 = { + "n311", + "n311", + &asn_OP_NativeEnumerated, + asn_DEF_n311_tags_45, + sizeof(asn_DEF_n311_tags_45) + /sizeof(asn_DEF_n311_tags_45[0]) - 1, /* 1 */ + asn_DEF_n311_tags_45, /* Same as above */ + sizeof(asn_DEF_n311_tags_45) + /sizeof(asn_DEF_n311_tags_45[0]), /* 2 */ + { &asn_OER_type_n311_constr_45, &asn_PER_type_n311_constr_45, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_n311_specs_45 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_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_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_t319_specs_54 = { + asn_MAP_t319_value2enum_54, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_t319_54 = { + "t319", + "t319", + &asn_OP_NativeEnumerated, + asn_DEF_t319_tags_54, + sizeof(asn_DEF_t319_tags_54) + /sizeof(asn_DEF_t319_tags_54[0]) - 1, /* 1 */ + asn_DEF_t319_tags_54, /* Same as above */ + sizeof(asn_DEF_t319_tags_54) + /sizeof(asn_DEF_t319_tags_54[0]), /* 2 */ + { &asn_OER_type_t319_constr_54, &asn_PER_type_t319_constr_54, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_t319_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UE_TimersAndConstants_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t300), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t300_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t300" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t301), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t301_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t301" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t310), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t310_20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t310" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, n310), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n310_28, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n310" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t311), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t311_37, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t311" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, n311), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_n311_45, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "n311" + }, + { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t319), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_t319_54, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t319" + }, +}; +static const ber_tlv_tag_t asn_DEF_UE_TimersAndConstants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UE_TimersAndConstants_specs_1 = { + sizeof(struct UE_TimersAndConstants), + offsetof(struct UE_TimersAndConstants, _asn_ctx), + asn_MAP_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_UE_TimersAndConstants = { + "UE-TimersAndConstants", + "UE-TimersAndConstants", + &asn_OP_SEQUENCE, + asn_DEF_UE_TimersAndConstants_tags_1, + sizeof(asn_DEF_UE_TimersAndConstants_tags_1) + /sizeof(asn_DEF_UE_TimersAndConstants_tags_1[0]), /* 1 */ + asn_DEF_UE_TimersAndConstants_tags_1, /* Same as above */ + sizeof(asn_DEF_UE_TimersAndConstants_tags_1) + /sizeof(asn_DEF_UE_TimersAndConstants_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UE_TimersAndConstants_1, + 7, /* Elements count */ + &asn_SPC_UE_TimersAndConstants_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UE-TimersAndConstants.h b/src/codec_utils/RRC/UE-TimersAndConstants.h new file mode 100644 index 000000000..f81031e54 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UE_TimersAndConstants_H_ +#define _UE_TimersAndConstants_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UE_TimersAndConstants__t300 { + UE_TimersAndConstants__t300_ms100 = 0, + UE_TimersAndConstants__t300_ms200 = 1, + UE_TimersAndConstants__t300_ms300 = 2, + UE_TimersAndConstants__t300_ms400 = 3, + UE_TimersAndConstants__t300_ms600 = 4, + UE_TimersAndConstants__t300_ms1000 = 5, + UE_TimersAndConstants__t300_ms1500 = 6, + UE_TimersAndConstants__t300_ms2000 = 7 +} e_UE_TimersAndConstants__t300; +typedef enum UE_TimersAndConstants__t301 { + UE_TimersAndConstants__t301_ms100 = 0, + UE_TimersAndConstants__t301_ms200 = 1, + UE_TimersAndConstants__t301_ms300 = 2, + UE_TimersAndConstants__t301_ms400 = 3, + UE_TimersAndConstants__t301_ms600 = 4, + UE_TimersAndConstants__t301_ms1000 = 5, + UE_TimersAndConstants__t301_ms1500 = 6, + UE_TimersAndConstants__t301_ms2000 = 7 +} e_UE_TimersAndConstants__t301; +typedef enum UE_TimersAndConstants__t310 { + UE_TimersAndConstants__t310_ms0 = 0, + UE_TimersAndConstants__t310_ms50 = 1, + UE_TimersAndConstants__t310_ms100 = 2, + UE_TimersAndConstants__t310_ms200 = 3, + UE_TimersAndConstants__t310_ms500 = 4, + UE_TimersAndConstants__t310_ms1000 = 5, + UE_TimersAndConstants__t310_ms2000 = 6 +} e_UE_TimersAndConstants__t310; +typedef enum UE_TimersAndConstants__n310 { + UE_TimersAndConstants__n310_n1 = 0, + UE_TimersAndConstants__n310_n2 = 1, + UE_TimersAndConstants__n310_n3 = 2, + UE_TimersAndConstants__n310_n4 = 3, + UE_TimersAndConstants__n310_n6 = 4, + UE_TimersAndConstants__n310_n8 = 5, + UE_TimersAndConstants__n310_n10 = 6, + UE_TimersAndConstants__n310_n20 = 7 +} e_UE_TimersAndConstants__n310; +typedef enum UE_TimersAndConstants__t311 { + UE_TimersAndConstants__t311_ms1000 = 0, + UE_TimersAndConstants__t311_ms3000 = 1, + UE_TimersAndConstants__t311_ms5000 = 2, + UE_TimersAndConstants__t311_ms10000 = 3, + UE_TimersAndConstants__t311_ms15000 = 4, + UE_TimersAndConstants__t311_ms20000 = 5, + UE_TimersAndConstants__t311_ms30000 = 6 +} e_UE_TimersAndConstants__t311; +typedef enum UE_TimersAndConstants__n311 { + UE_TimersAndConstants__n311_n1 = 0, + UE_TimersAndConstants__n311_n2 = 1, + UE_TimersAndConstants__n311_n3 = 2, + UE_TimersAndConstants__n311_n4 = 3, + UE_TimersAndConstants__n311_n5 = 4, + UE_TimersAndConstants__n311_n6 = 5, + UE_TimersAndConstants__n311_n8 = 6, + UE_TimersAndConstants__n311_n10 = 7 +} e_UE_TimersAndConstants__n311; +typedef enum UE_TimersAndConstants__t319 { + UE_TimersAndConstants__t319_ms100 = 0, + UE_TimersAndConstants__t319_ms200 = 1, + UE_TimersAndConstants__t319_ms300 = 2, + UE_TimersAndConstants__t319_ms400 = 3, + UE_TimersAndConstants__t319_ms600 = 4, + UE_TimersAndConstants__t319_ms1000 = 5, + UE_TimersAndConstants__t319_ms1500 = 6, + UE_TimersAndConstants__t319_ms2000 = 7 +} e_UE_TimersAndConstants__t319; + +/* UE-TimersAndConstants */ +typedef struct 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; +} UE_TimersAndConstants_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_t300_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t301_11; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t310_20; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_n310_28; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t311_37; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_n311_45; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_t319_54; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_UE_TimersAndConstants; +extern asn_SEQUENCE_specifics_t asn_SPC_UE_TimersAndConstants_specs_1; +extern asn_TYPE_member_t asn_MBR_UE_TimersAndConstants_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UE_TimersAndConstants_H_ */ +#include diff --git a/src/codec_utils/RRC/UEAssistanceInformation-IEs.c b/src/codec_utils/RRC/UEAssistanceInformation-IEs.c new file mode 100644 index 000000000..bd1baafee --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEAssistanceInformation-IEs.h" + +#include "DelayBudgetReport.h" +#include "UEAssistanceInformation-v1540-IEs.h" +asn_TYPE_member_t asn_MBR_UEAssistanceInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct UEAssistanceInformation_IEs, delayBudgetReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_DelayBudgetReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "delayBudgetReport" + }, + { ATF_POINTER, 2, offsetof(struct 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 UEAssistanceInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEAssistanceInformation_v1540_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UEAssistanceInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_UEAssistanceInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UEAssistanceInformation_IEs_specs_1 = { + sizeof(struct UEAssistanceInformation_IEs), + offsetof(struct UEAssistanceInformation_IEs, _asn_ctx), + asn_MAP_UEAssistanceInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UEAssistanceInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation_IEs = { + "UEAssistanceInformation-IEs", + "UEAssistanceInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UEAssistanceInformation_IEs_tags_1, + sizeof(asn_DEF_UEAssistanceInformation_IEs_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_UEAssistanceInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UEAssistanceInformation_IEs_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEAssistanceInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_UEAssistanceInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UEAssistanceInformation-IEs.h b/src/codec_utils/RRC/UEAssistanceInformation-IEs.h new file mode 100644 index 000000000..8fd76a7cc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEAssistanceInformation_IEs_H_ +#define _UEAssistanceInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct DelayBudgetReport; +struct UEAssistanceInformation_v1540_IEs; + +/* UEAssistanceInformation-IEs */ +typedef struct UEAssistanceInformation_IEs { + struct DelayBudgetReport *delayBudgetReport; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct UEAssistanceInformation_v1540_IEs *nonCriticalExtension; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UEAssistanceInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEAssistanceInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UEAssistanceInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEAssistanceInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.c b/src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.c new file mode 100644 index 000000000..efa15362e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEAssistanceInformation-v1540-IEs.h" + +#include "OverheatingAssistance.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct UEAssistanceInformation_v1540_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEAssistanceInformation_v1540_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct UEAssistanceInformation_v1540_IEs, overheatingAssistance), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OverheatingAssistance, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "overheatingAssistance" + }, + { ATF_POINTER, 1, offsetof(struct UEAssistanceInformation_v1540_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UEAssistanceInformation_v1540_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UEAssistanceInformation_v1540_IEs_specs_1 = { + sizeof(struct UEAssistanceInformation_v1540_IEs), + offsetof(struct UEAssistanceInformation_v1540_IEs, _asn_ctx), + asn_MAP_UEAssistanceInformation_v1540_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UEAssistanceInformation_v1540_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation_v1540_IEs = { + "UEAssistanceInformation-v1540-IEs", + "UEAssistanceInformation-v1540-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1, + sizeof(asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1[0]), /* 1 */ + asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_v1540_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEAssistanceInformation_v1540_IEs_1, + 2, /* Elements count */ + &asn_SPC_UEAssistanceInformation_v1540_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.h b/src/codec_utils/RRC/UEAssistanceInformation-v1540-IEs.h new file mode 100644 index 000000000..73c431ad4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEAssistanceInformation_v1540_IEs_H_ +#define _UEAssistanceInformation_v1540_IEs_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct OverheatingAssistance; + +/* UEAssistanceInformation-v1540-IEs */ +typedef struct UEAssistanceInformation_v1540_IEs { + struct OverheatingAssistance *overheatingAssistance; /* OPTIONAL */ + struct 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; +} UEAssistanceInformation_v1540_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation_v1540_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UEAssistanceInformation_v1540_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UEAssistanceInformation_v1540_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEAssistanceInformation_v1540_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UEAssistanceInformation.c b/src/codec_utils/RRC/UEAssistanceInformation.c new file mode 100644 index 000000000..5ef5450ab --- /dev/null +++ b/src/codec_utils/RRC/UEAssistanceInformation.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UEAssistanceInformation.h" + +#include "UEAssistanceInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct UEAssistanceInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct UEAssistanceInformation__criticalExtensions, choice.ueAssistanceInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEAssistanceInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueAssistanceInformation" + }, + { ATF_POINTER, 0, offsetof(struct UEAssistanceInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct UEAssistanceInformation__criticalExtensions), + offsetof(struct UEAssistanceInformation__criticalExtensions, _asn_ctx), + offsetof(struct UEAssistanceInformation__criticalExtensions, present), + sizeof(((struct UEAssistanceInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UEAssistanceInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UEAssistanceInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_UEAssistanceInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UEAssistanceInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UEAssistanceInformation_specs_1 = { + sizeof(struct UEAssistanceInformation), + offsetof(struct UEAssistanceInformation, _asn_ctx), + asn_MAP_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_UEAssistanceInformation = { + "UEAssistanceInformation", + "UEAssistanceInformation", + &asn_OP_SEQUENCE, + asn_DEF_UEAssistanceInformation_tags_1, + sizeof(asn_DEF_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_tags_1[0]), /* 1 */ + asn_DEF_UEAssistanceInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UEAssistanceInformation_tags_1) + /sizeof(asn_DEF_UEAssistanceInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UEAssistanceInformation_1, + 1, /* Elements count */ + &asn_SPC_UEAssistanceInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UEAssistanceInformation.h b/src/codec_utils/RRC/UEAssistanceInformation.h new file mode 100644 index 000000000..96d4d544d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UEAssistanceInformation_H_ +#define _UEAssistanceInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UEAssistanceInformation__criticalExtensions_PR { + UEAssistanceInformation__criticalExtensions_PR_NOTHING, /* No components present */ + UEAssistanceInformation__criticalExtensions_PR_ueAssistanceInformation, + UEAssistanceInformation__criticalExtensions_PR_criticalExtensionsFuture +} UEAssistanceInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct UEAssistanceInformation_IEs; + +/* UEAssistanceInformation */ +typedef struct UEAssistanceInformation { + struct UEAssistanceInformation__criticalExtensions { + UEAssistanceInformation__criticalExtensions_PR present; + union UEAssistanceInformation__criticalExtensions_u { + struct UEAssistanceInformation_IEs *ueAssistanceInformation; + struct 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; +} UEAssistanceInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UEAssistanceInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_UEAssistanceInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_UEAssistanceInformation_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UEAssistanceInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/UECapabilityEnquiry-IEs.c b/src/codec_utils/RRC/UECapabilityEnquiry-IEs.c new file mode 100644 index 000000000..4f50e4267 --- /dev/null +++ b/src/codec_utils/RRC/UECapabilityEnquiry-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UECapabilityEnquiry-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct UECapabilityEnquiry_IEs__nonCriticalExtension), + offsetof(struct UECapabilityEnquiry_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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UECapabilityEnquiry_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UECapabilityEnquiry_IEs, ue_CapabilityRAT_RequestList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_CapabilityRAT_RequestList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-RequestList" + }, + { ATF_POINTER, 2, offsetof(struct 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 UECapabilityEnquiry_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UECapabilityEnquiry_IEs_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_UECapabilityEnquiry_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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 } /* nonCriticalExtension */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UECapabilityEnquiry_IEs_specs_1 = { + sizeof(struct UECapabilityEnquiry_IEs), + offsetof(struct UECapabilityEnquiry_IEs, _asn_ctx), + asn_MAP_UECapabilityEnquiry_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UECapabilityEnquiry_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UECapabilityEnquiry_IEs = { + "UECapabilityEnquiry-IEs", + "UECapabilityEnquiry-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UECapabilityEnquiry_IEs_tags_1, + sizeof(asn_DEF_UECapabilityEnquiry_IEs_tags_1) + /sizeof(asn_DEF_UECapabilityEnquiry_IEs_tags_1[0]), /* 1 */ + asn_DEF_UECapabilityEnquiry_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UECapabilityEnquiry_IEs_tags_1) + /sizeof(asn_DEF_UECapabilityEnquiry_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UECapabilityEnquiry_IEs_1, + 3, /* Elements count */ + &asn_SPC_UECapabilityEnquiry_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UECapabilityEnquiry-IEs.h b/src/codec_utils/RRC/UECapabilityEnquiry-IEs.h new file mode 100644 index 000000000..0b340f7ba --- /dev/null +++ b/src/codec_utils/RRC/UECapabilityEnquiry-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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UECapabilityEnquiry_IEs_H_ +#define _UECapabilityEnquiry_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "UE-CapabilityRAT-RequestList.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UECapabilityEnquiry-IEs */ +typedef struct UECapabilityEnquiry_IEs { + UE_CapabilityRAT_RequestList_t ue_CapabilityRAT_RequestList; + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct UECapabilityEnquiry_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; +} UECapabilityEnquiry_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UECapabilityEnquiry_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UECapabilityEnquiry_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UECapabilityEnquiry_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UECapabilityEnquiry_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UECapabilityEnquiry.c b/src/codec_utils/RRC/UECapabilityEnquiry.c new file mode 100644 index 000000000..43d95ca20 --- /dev/null +++ b/src/codec_utils/RRC/UECapabilityEnquiry.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UECapabilityEnquiry.h" + +#include "UECapabilityEnquiry-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct UECapabilityEnquiry__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct UECapabilityEnquiry__criticalExtensions, choice.ueCapabilityEnquiry), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UECapabilityEnquiry_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityEnquiry" + }, + { ATF_POINTER, 0, offsetof(struct UECapabilityEnquiry__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct UECapabilityEnquiry__criticalExtensions), + offsetof(struct UECapabilityEnquiry__criticalExtensions, _asn_ctx), + offsetof(struct UECapabilityEnquiry__criticalExtensions, present), + sizeof(((struct UECapabilityEnquiry__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UECapabilityEnquiry_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UECapabilityEnquiry, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct UECapabilityEnquiry, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_UECapabilityEnquiry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UECapabilityEnquiry_specs_1 = { + sizeof(struct UECapabilityEnquiry), + offsetof(struct UECapabilityEnquiry, _asn_ctx), + asn_MAP_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_UECapabilityEnquiry = { + "UECapabilityEnquiry", + "UECapabilityEnquiry", + &asn_OP_SEQUENCE, + asn_DEF_UECapabilityEnquiry_tags_1, + sizeof(asn_DEF_UECapabilityEnquiry_tags_1) + /sizeof(asn_DEF_UECapabilityEnquiry_tags_1[0]), /* 1 */ + asn_DEF_UECapabilityEnquiry_tags_1, /* Same as above */ + sizeof(asn_DEF_UECapabilityEnquiry_tags_1) + /sizeof(asn_DEF_UECapabilityEnquiry_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UECapabilityEnquiry_1, + 2, /* Elements count */ + &asn_SPC_UECapabilityEnquiry_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UECapabilityEnquiry.h b/src/codec_utils/RRC/UECapabilityEnquiry.h new file mode 100644 index 000000000..b240329a2 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UECapabilityEnquiry_H_ +#define _UECapabilityEnquiry_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UECapabilityEnquiry__criticalExtensions_PR { + UECapabilityEnquiry__criticalExtensions_PR_NOTHING, /* No components present */ + UECapabilityEnquiry__criticalExtensions_PR_ueCapabilityEnquiry, + UECapabilityEnquiry__criticalExtensions_PR_criticalExtensionsFuture +} UECapabilityEnquiry__criticalExtensions_PR; + +/* Forward declarations */ +struct UECapabilityEnquiry_IEs; + +/* UECapabilityEnquiry */ +typedef struct UECapabilityEnquiry { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct UECapabilityEnquiry__criticalExtensions { + UECapabilityEnquiry__criticalExtensions_PR present; + union UECapabilityEnquiry__criticalExtensions_u { + struct UECapabilityEnquiry_IEs *ueCapabilityEnquiry; + struct 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; +} UECapabilityEnquiry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UECapabilityEnquiry; +extern asn_SEQUENCE_specifics_t asn_SPC_UECapabilityEnquiry_specs_1; +extern asn_TYPE_member_t asn_MBR_UECapabilityEnquiry_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UECapabilityEnquiry_H_ */ +#include diff --git a/src/codec_utils/RRC/UECapabilityInformation-IEs.c b/src/codec_utils/RRC/UECapabilityInformation-IEs.c new file mode 100644 index 000000000..359bb1429 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UECapabilityInformation-IEs.h" + +#include "UE-CapabilityRAT-ContainerList.h" +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct UECapabilityInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UECapabilityInformation_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct UECapabilityInformation_IEs, ue_CapabilityRAT_ContainerList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UE_CapabilityRAT_ContainerList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ue-CapabilityRAT-ContainerList" + }, + { ATF_POINTER, 2, offsetof(struct 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 UECapabilityInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UECapabilityInformation_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_UECapabilityInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UECapabilityInformation_IEs_specs_1 = { + sizeof(struct UECapabilityInformation_IEs), + offsetof(struct UECapabilityInformation_IEs, _asn_ctx), + asn_MAP_UECapabilityInformation_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UECapabilityInformation_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UECapabilityInformation_IEs = { + "UECapabilityInformation-IEs", + "UECapabilityInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UECapabilityInformation_IEs_tags_1, + sizeof(asn_DEF_UECapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_UECapabilityInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_UECapabilityInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UECapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_UECapabilityInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UECapabilityInformation_IEs_1, + 3, /* Elements count */ + &asn_SPC_UECapabilityInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UECapabilityInformation-IEs.h b/src/codec_utils/RRC/UECapabilityInformation-IEs.h new file mode 100644 index 000000000..2fb769c88 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UECapabilityInformation_IEs_H_ +#define _UECapabilityInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UE_CapabilityRAT_ContainerList; + +/* UECapabilityInformation-IEs */ +typedef struct UECapabilityInformation_IEs { + struct UE_CapabilityRAT_ContainerList *ue_CapabilityRAT_ContainerList; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} UECapabilityInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UECapabilityInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UECapabilityInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UECapabilityInformation_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UECapabilityInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UECapabilityInformation.c b/src/codec_utils/RRC/UECapabilityInformation.c new file mode 100644 index 000000000..5b450df6f --- /dev/null +++ b/src/codec_utils/RRC/UECapabilityInformation.c @@ -0,0 +1,146 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UECapabilityInformation.h" + +#include "UECapabilityInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_5 = { + sizeof(struct UECapabilityInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_5 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_5, + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_5, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_5) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_5[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_3[] = { + { ATF_POINTER, 0, offsetof(struct UECapabilityInformation__criticalExtensions, choice.ueCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UECapabilityInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct UECapabilityInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_3 = { + sizeof(struct UECapabilityInformation__criticalExtensions), + offsetof(struct UECapabilityInformation__criticalExtensions, _asn_ctx), + offsetof(struct UECapabilityInformation__criticalExtensions, present), + sizeof(((struct UECapabilityInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_3, &asn_PER_type_criticalExtensions_constr_3, CHOICE_constraint }, + asn_MBR_criticalExtensions_3, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UECapabilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UECapabilityInformation, rrc_TransactionIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRC_TransactionIdentifier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrc-TransactionIdentifier" + }, + { ATF_NOFLAGS, 0, offsetof(struct UECapabilityInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_UECapabilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UECapabilityInformation_specs_1 = { + sizeof(struct UECapabilityInformation), + offsetof(struct UECapabilityInformation, _asn_ctx), + asn_MAP_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_UECapabilityInformation = { + "UECapabilityInformation", + "UECapabilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_UECapabilityInformation_tags_1, + sizeof(asn_DEF_UECapabilityInformation_tags_1) + /sizeof(asn_DEF_UECapabilityInformation_tags_1[0]), /* 1 */ + asn_DEF_UECapabilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UECapabilityInformation_tags_1) + /sizeof(asn_DEF_UECapabilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UECapabilityInformation_1, + 2, /* Elements count */ + &asn_SPC_UECapabilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UECapabilityInformation.h b/src/codec_utils/RRC/UECapabilityInformation.h new file mode 100644 index 000000000..8b9959fca --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UECapabilityInformation_H_ +#define _UECapabilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include "RRC-TransactionIdentifier.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UECapabilityInformation__criticalExtensions_PR { + UECapabilityInformation__criticalExtensions_PR_NOTHING, /* No components present */ + UECapabilityInformation__criticalExtensions_PR_ueCapabilityInformation, + UECapabilityInformation__criticalExtensions_PR_criticalExtensionsFuture +} UECapabilityInformation__criticalExtensions_PR; + +/* Forward declarations */ +struct UECapabilityInformation_IEs; + +/* UECapabilityInformation */ +typedef struct UECapabilityInformation { + RRC_TransactionIdentifier_t rrc_TransactionIdentifier; + struct UECapabilityInformation__criticalExtensions { + UECapabilityInformation__criticalExtensions_PR present; + union UECapabilityInformation__criticalExtensions_u { + struct UECapabilityInformation_IEs *ueCapabilityInformation; + struct 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; +} UECapabilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UECapabilityInformation; +extern asn_SEQUENCE_specifics_t asn_SPC_UECapabilityInformation_specs_1; +extern asn_TYPE_member_t asn_MBR_UECapabilityInformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UECapabilityInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.c b/src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.c new file mode 100644 index 000000000..8e7b07f17 --- /dev/null +++ b/src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.c @@ -0,0 +1,119 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UERadioAccessCapabilityInformation-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_ue_RadioAccessCapabilityInfo_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_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_nonCriticalExtension_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_3 = { + sizeof(struct UERadioAccessCapabilityInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_3 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_3, + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_3, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_3) + /sizeof(asn_DEF_nonCriticalExtension_tags_3[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UERadioAccessCapabilityInformation_IEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UERadioAccessCapabilityInformation_IEs, ue_RadioAccessCapabilityInfo), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { &asn_OER_memb_ue_RadioAccessCapabilityInfo_constr_2, &asn_PER_memb_ue_RadioAccessCapabilityInfo_constr_2, memb_ue_RadioAccessCapabilityInfo_constraint_1 }, + 0, 0, /* No default value */ + "ue-RadioAccessCapabilityInfo" + }, + { ATF_POINTER, 1, offsetof(struct UERadioAccessCapabilityInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UERadioAccessCapabilityInformation_IEs_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UERadioAccessCapabilityInformation_IEs_specs_1 = { + sizeof(struct UERadioAccessCapabilityInformation_IEs), + offsetof(struct UERadioAccessCapabilityInformation_IEs, _asn_ctx), + asn_MAP_UERadioAccessCapabilityInformation_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UERadioAccessCapabilityInformation_IEs_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UERadioAccessCapabilityInformation_IEs = { + "UERadioAccessCapabilityInformation-IEs", + "UERadioAccessCapabilityInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1, + sizeof(asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1) + /sizeof(asn_DEF_UERadioAccessCapabilityInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UERadioAccessCapabilityInformation_IEs_1, + 2, /* Elements count */ + &asn_SPC_UERadioAccessCapabilityInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.h b/src/codec_utils/RRC/UERadioAccessCapabilityInformation-IEs.h new file mode 100644 index 000000000..501ab7613 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UERadioAccessCapabilityInformation_IEs_H_ +#define _UERadioAccessCapabilityInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UERadioAccessCapabilityInformation-IEs */ +typedef struct UERadioAccessCapabilityInformation_IEs { + OCTET_STRING_t ue_RadioAccessCapabilityInfo; + struct 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; +} UERadioAccessCapabilityInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UERadioAccessCapabilityInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UERadioAccessCapabilityInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UERadioAccessCapabilityInformation_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UERadioAccessCapabilityInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UERadioAccessCapabilityInformation.c b/src/codec_utils/RRC/UERadioAccessCapabilityInformation.c new file mode 100644 index 000000000..a6e27468a --- /dev/null +++ b/src/codec_utils/RRC/UERadioAccessCapabilityInformation.c @@ -0,0 +1,253 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UERadioAccessCapabilityInformation.h" + +#include "UERadioAccessCapabilityInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions__c1, choice.ueRadioAccessCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UERadioAccessCapabilityInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueRadioAccessCapabilityInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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 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 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 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_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_c1_specs_3 = { + sizeof(struct UERadioAccessCapabilityInformation__criticalExtensions__c1), + offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions__c1, present), + sizeof(((struct UERadioAccessCapabilityInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 8, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_12 = { + sizeof(struct UERadioAccessCapabilityInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_12 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_12, + sizeof(asn_DEF_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_12[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_12, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct UERadioAccessCapabilityInformation__criticalExtensions), + offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions, _asn_ctx), + offsetof(struct UERadioAccessCapabilityInformation__criticalExtensions, present), + sizeof(((struct UERadioAccessCapabilityInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_UERadioAccessCapabilityInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UERadioAccessCapabilityInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_UERadioAccessCapabilityInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UERadioAccessCapabilityInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UERadioAccessCapabilityInformation_specs_1 = { + sizeof(struct UERadioAccessCapabilityInformation), + offsetof(struct UERadioAccessCapabilityInformation, _asn_ctx), + asn_MAP_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_UERadioAccessCapabilityInformation = { + "UERadioAccessCapabilityInformation", + "UERadioAccessCapabilityInformation", + &asn_OP_SEQUENCE, + asn_DEF_UERadioAccessCapabilityInformation_tags_1, + sizeof(asn_DEF_UERadioAccessCapabilityInformation_tags_1) + /sizeof(asn_DEF_UERadioAccessCapabilityInformation_tags_1[0]), /* 1 */ + asn_DEF_UERadioAccessCapabilityInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UERadioAccessCapabilityInformation_tags_1) + /sizeof(asn_DEF_UERadioAccessCapabilityInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UERadioAccessCapabilityInformation_1, + 1, /* Elements count */ + &asn_SPC_UERadioAccessCapabilityInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UERadioAccessCapabilityInformation.h b/src/codec_utils/RRC/UERadioAccessCapabilityInformation.h new file mode 100644 index 000000000..0bcc32d8d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UERadioAccessCapabilityInformation_H_ +#define _UERadioAccessCapabilityInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UERadioAccessCapabilityInformation__criticalExtensions_PR { + UERadioAccessCapabilityInformation__criticalExtensions_PR_NOTHING, /* No components present */ + UERadioAccessCapabilityInformation__criticalExtensions_PR_c1, + UERadioAccessCapabilityInformation__criticalExtensions_PR_criticalExtensionsFuture +} UERadioAccessCapabilityInformation__criticalExtensions_PR; +typedef enum UERadioAccessCapabilityInformation__criticalExtensions__c1_PR { + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_ueRadioAccessCapabilityInformation, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare7, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare6, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare5, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare4, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare3, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare2, + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR_spare1 +} UERadioAccessCapabilityInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct UERadioAccessCapabilityInformation_IEs; + +/* UERadioAccessCapabilityInformation */ +typedef struct UERadioAccessCapabilityInformation { + struct UERadioAccessCapabilityInformation__criticalExtensions { + UERadioAccessCapabilityInformation__criticalExtensions_PR present; + union UERadioAccessCapabilityInformation__criticalExtensions_u { + struct UERadioAccessCapabilityInformation__criticalExtensions__c1 { + UERadioAccessCapabilityInformation__criticalExtensions__c1_PR present; + union UERadioAccessCapabilityInformation__criticalExtensions__c1_u { + struct 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 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; +} UERadioAccessCapabilityInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UERadioAccessCapabilityInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _UERadioAccessCapabilityInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/UERadioPagingInformation-IEs.c b/src/codec_utils/RRC/UERadioPagingInformation-IEs.c new file mode 100644 index 000000000..a32f049a3 --- /dev/null +++ b/src/codec_utils/RRC/UERadioPagingInformation-IEs.c @@ -0,0 +1,169 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UERadioPagingInformation-IEs.h" + +static int +memb_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_oer_constraints_t asn_OER_type_supportedBandListNRForPaging_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_supportedBandListNRForPaging_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_memb_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_supportedBandListNRForPaging_2[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_FreqBandIndicatorNR, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_supportedBandListNRForPaging_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_supportedBandListNRForPaging_specs_2 = { + sizeof(struct UERadioPagingInformation_IEs__supportedBandListNRForPaging), + offsetof(struct UERadioPagingInformation_IEs__supportedBandListNRForPaging, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_supportedBandListNRForPaging_2 = { + "supportedBandListNRForPaging", + "supportedBandListNRForPaging", + &asn_OP_SEQUENCE_OF, + asn_DEF_supportedBandListNRForPaging_tags_2, + sizeof(asn_DEF_supportedBandListNRForPaging_tags_2) + /sizeof(asn_DEF_supportedBandListNRForPaging_tags_2[0]) - 1, /* 1 */ + asn_DEF_supportedBandListNRForPaging_tags_2, /* Same as above */ + sizeof(asn_DEF_supportedBandListNRForPaging_tags_2) + /sizeof(asn_DEF_supportedBandListNRForPaging_tags_2[0]), /* 2 */ + { &asn_OER_type_supportedBandListNRForPaging_constr_2, &asn_PER_type_supportedBandListNRForPaging_constr_2, SEQUENCE_OF_constraint }, + asn_MBR_supportedBandListNRForPaging_2, + 1, /* Single element */ + &asn_SPC_supportedBandListNRForPaging_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct UERadioPagingInformation_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UERadioPagingInformation_IEs_1[] = { + { ATF_POINTER, 2, offsetof(struct UERadioPagingInformation_IEs, supportedBandListNRForPaging), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + 0, + &asn_DEF_supportedBandListNRForPaging_2, + 0, + { &asn_OER_memb_supportedBandListNRForPaging_constr_2, &asn_PER_memb_supportedBandListNRForPaging_constr_2, memb_supportedBandListNRForPaging_constraint_1 }, + 0, 0, /* No default value */ + "supportedBandListNRForPaging" + }, + { ATF_POINTER, 1, offsetof(struct UERadioPagingInformation_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_UERadioPagingInformation_IEs_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UERadioPagingInformation_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UERadioPagingInformation_IEs_specs_1 = { + sizeof(struct UERadioPagingInformation_IEs), + offsetof(struct UERadioPagingInformation_IEs, _asn_ctx), + asn_MAP_UERadioPagingInformation_IEs_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_UERadioPagingInformation_IEs_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UERadioPagingInformation_IEs = { + "UERadioPagingInformation-IEs", + "UERadioPagingInformation-IEs", + &asn_OP_SEQUENCE, + asn_DEF_UERadioPagingInformation_IEs_tags_1, + sizeof(asn_DEF_UERadioPagingInformation_IEs_tags_1) + /sizeof(asn_DEF_UERadioPagingInformation_IEs_tags_1[0]), /* 1 */ + asn_DEF_UERadioPagingInformation_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_UERadioPagingInformation_IEs_tags_1) + /sizeof(asn_DEF_UERadioPagingInformation_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UERadioPagingInformation_IEs_1, + 2, /* Elements count */ + &asn_SPC_UERadioPagingInformation_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UERadioPagingInformation-IEs.h b/src/codec_utils/RRC/UERadioPagingInformation-IEs.h new file mode 100644 index 000000000..818c6e03f --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UERadioPagingInformation_IEs_H_ +#define _UERadioPagingInformation_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "FreqBandIndicatorNR.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UERadioPagingInformation-IEs */ +typedef struct UERadioPagingInformation_IEs { + struct UERadioPagingInformation_IEs__supportedBandListNRForPaging { + A_SEQUENCE_OF(FreqBandIndicatorNR_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *supportedBandListNRForPaging; + struct 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; +} UERadioPagingInformation_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UERadioPagingInformation_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_UERadioPagingInformation_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_UERadioPagingInformation_IEs_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UERadioPagingInformation_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/UERadioPagingInformation.c b/src/codec_utils/RRC/UERadioPagingInformation.c new file mode 100644 index 000000000..1af94c843 --- /dev/null +++ b/src/codec_utils/RRC/UERadioPagingInformation.c @@ -0,0 +1,253 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UERadioPagingInformation.h" + +#include "UERadioPagingInformation-IEs.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_c1_3[] = { + { ATF_POINTER, 0, offsetof(struct UERadioPagingInformation__criticalExtensions__c1, choice.ueRadioPagingInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UERadioPagingInformation_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueRadioPagingInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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 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 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 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 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_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_c1_specs_3 = { + sizeof(struct UERadioPagingInformation__criticalExtensions__c1), + offsetof(struct UERadioPagingInformation__criticalExtensions__c1, _asn_ctx), + offsetof(struct UERadioPagingInformation__criticalExtensions__c1, present), + sizeof(((struct UERadioPagingInformation__criticalExtensions__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_3, &asn_PER_type_c1_constr_3, CHOICE_constraint }, + asn_MBR_c1_3, + 8, /* Elements count */ + &asn_SPC_c1_specs_3 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_criticalExtensionsFuture_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_12 = { + sizeof(struct UERadioPagingInformation__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_12 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_12, + sizeof(asn_DEF_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_12[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_12, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_12) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_12[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_12 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct UERadioPagingInformation__criticalExtensions, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct UERadioPagingInformation__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct UERadioPagingInformation__criticalExtensions), + offsetof(struct UERadioPagingInformation__criticalExtensions, _asn_ctx), + offsetof(struct UERadioPagingInformation__criticalExtensions, present), + sizeof(((struct UERadioPagingInformation__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_UERadioPagingInformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UERadioPagingInformation, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_UERadioPagingInformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UERadioPagingInformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UERadioPagingInformation_specs_1 = { + sizeof(struct UERadioPagingInformation), + offsetof(struct UERadioPagingInformation, _asn_ctx), + asn_MAP_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_UERadioPagingInformation = { + "UERadioPagingInformation", + "UERadioPagingInformation", + &asn_OP_SEQUENCE, + asn_DEF_UERadioPagingInformation_tags_1, + sizeof(asn_DEF_UERadioPagingInformation_tags_1) + /sizeof(asn_DEF_UERadioPagingInformation_tags_1[0]), /* 1 */ + asn_DEF_UERadioPagingInformation_tags_1, /* Same as above */ + sizeof(asn_DEF_UERadioPagingInformation_tags_1) + /sizeof(asn_DEF_UERadioPagingInformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UERadioPagingInformation_1, + 1, /* Elements count */ + &asn_SPC_UERadioPagingInformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UERadioPagingInformation.h b/src/codec_utils/RRC/UERadioPagingInformation.h new file mode 100644 index 000000000..8fb4876e6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UERadioPagingInformation_H_ +#define _UERadioPagingInformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UERadioPagingInformation__criticalExtensions_PR { + UERadioPagingInformation__criticalExtensions_PR_NOTHING, /* No components present */ + UERadioPagingInformation__criticalExtensions_PR_c1, + UERadioPagingInformation__criticalExtensions_PR_criticalExtensionsFuture +} UERadioPagingInformation__criticalExtensions_PR; +typedef enum UERadioPagingInformation__criticalExtensions__c1_PR { + UERadioPagingInformation__criticalExtensions__c1_PR_NOTHING, /* No components present */ + UERadioPagingInformation__criticalExtensions__c1_PR_ueRadioPagingInformation, + UERadioPagingInformation__criticalExtensions__c1_PR_spare7, + UERadioPagingInformation__criticalExtensions__c1_PR_spare6, + UERadioPagingInformation__criticalExtensions__c1_PR_spare5, + UERadioPagingInformation__criticalExtensions__c1_PR_spare4, + UERadioPagingInformation__criticalExtensions__c1_PR_spare3, + UERadioPagingInformation__criticalExtensions__c1_PR_spare2, + UERadioPagingInformation__criticalExtensions__c1_PR_spare1 +} UERadioPagingInformation__criticalExtensions__c1_PR; + +/* Forward declarations */ +struct UERadioPagingInformation_IEs; + +/* UERadioPagingInformation */ +typedef struct UERadioPagingInformation { + struct UERadioPagingInformation__criticalExtensions { + UERadioPagingInformation__criticalExtensions_PR present; + union UERadioPagingInformation__criticalExtensions_u { + struct UERadioPagingInformation__criticalExtensions__c1 { + UERadioPagingInformation__criticalExtensions__c1_PR present; + union UERadioPagingInformation__criticalExtensions__c1_u { + struct 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 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; +} UERadioPagingInformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UERadioPagingInformation; + +#ifdef __cplusplus +} +#endif + +#endif /* _UERadioPagingInformation_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-AM-RLC.c b/src/codec_utils/RRC/UL-AM-RLC.c new file mode 100644 index 000000000..13810d220 --- /dev/null +++ b/src/codec_utils/RRC/UL-AM-RLC.c @@ -0,0 +1,153 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-AM-RLC.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_maxRetxThreshold_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_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_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_maxRetxThreshold_specs_6 = { + asn_MAP_maxRetxThreshold_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_maxRetxThreshold_6 = { + "maxRetxThreshold", + "maxRetxThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_maxRetxThreshold_tags_6, + sizeof(asn_DEF_maxRetxThreshold_tags_6) + /sizeof(asn_DEF_maxRetxThreshold_tags_6[0]) - 1, /* 1 */ + asn_DEF_maxRetxThreshold_tags_6, /* Same as above */ + sizeof(asn_DEF_maxRetxThreshold_tags_6) + /sizeof(asn_DEF_maxRetxThreshold_tags_6[0]), /* 2 */ + { &asn_OER_type_maxRetxThreshold_constr_6, &asn_PER_type_maxRetxThreshold_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_maxRetxThreshold_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UL_AM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct UL_AM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SN_FieldLengthAM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, + { ATF_NOFLAGS, 0, offsetof(struct UL_AM_RLC, t_PollRetransmit), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_T_PollRetransmit, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "t-PollRetransmit" + }, + { ATF_NOFLAGS, 0, offsetof(struct UL_AM_RLC, pollPDU), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PollPDU, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pollPDU" + }, + { ATF_NOFLAGS, 0, offsetof(struct UL_AM_RLC, pollByte), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PollByte, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pollByte" + }, + { ATF_NOFLAGS, 0, offsetof(struct UL_AM_RLC, maxRetxThreshold), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_maxRetxThreshold_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "maxRetxThreshold" + }, +}; +static const int asn_MAP_UL_AM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_UL_AM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UL_AM_RLC_specs_1 = { + sizeof(struct UL_AM_RLC), + offsetof(struct UL_AM_RLC, _asn_ctx), + asn_MAP_UL_AM_RLC_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_UL_AM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UL_AM_RLC = { + "UL-AM-RLC", + "UL-AM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_UL_AM_RLC_tags_1, + sizeof(asn_DEF_UL_AM_RLC_tags_1) + /sizeof(asn_DEF_UL_AM_RLC_tags_1[0]), /* 1 */ + asn_DEF_UL_AM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_AM_RLC_tags_1) + /sizeof(asn_DEF_UL_AM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UL_AM_RLC_1, + 5, /* Elements count */ + &asn_SPC_UL_AM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-AM-RLC.h b/src/codec_utils/RRC/UL-AM-RLC.h new file mode 100644 index 000000000..a99d5c1d1 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_AM_RLC_H_ +#define _UL_AM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "SN-FieldLengthAM.h" +#include "T-PollRetransmit.h" +#include "PollPDU.h" +#include "PollByte.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UL_AM_RLC__maxRetxThreshold { + UL_AM_RLC__maxRetxThreshold_t1 = 0, + UL_AM_RLC__maxRetxThreshold_t2 = 1, + UL_AM_RLC__maxRetxThreshold_t3 = 2, + UL_AM_RLC__maxRetxThreshold_t4 = 3, + UL_AM_RLC__maxRetxThreshold_t6 = 4, + UL_AM_RLC__maxRetxThreshold_t8 = 5, + UL_AM_RLC__maxRetxThreshold_t16 = 6, + UL_AM_RLC__maxRetxThreshold_t32 = 7 +} e_UL_AM_RLC__maxRetxThreshold; + +/* UL-AM-RLC */ +typedef struct UL_AM_RLC { + SN_FieldLengthAM_t *sn_FieldLength; /* OPTIONAL */ + T_PollRetransmit_t t_PollRetransmit; + PollPDU_t pollPDU; + PollByte_t pollByte; + long maxRetxThreshold; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UL_AM_RLC_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_maxRetxThreshold_6; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_UL_AM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_UL_AM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_UL_AM_RLC_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_AM_RLC_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-CCCH-Message.c b/src/codec_utils/RRC/UL-CCCH-Message.c new file mode 100644 index 000000000..97a20a42e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-CCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_UL_CCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UL_CCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UL_CCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_UL_CCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UL_CCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UL_CCCH_Message_specs_1 = { + sizeof(struct UL_CCCH_Message), + offsetof(struct UL_CCCH_Message, _asn_ctx), + asn_MAP_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_UL_CCCH_Message = { + "UL-CCCH-Message", + "UL-CCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_UL_CCCH_Message_tags_1, + sizeof(asn_DEF_UL_CCCH_Message_tags_1) + /sizeof(asn_DEF_UL_CCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_UL_CCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_CCCH_Message_tags_1) + /sizeof(asn_DEF_UL_CCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UL_CCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_UL_CCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-CCCH-Message.h b/src/codec_utils/RRC/UL-CCCH-Message.h new file mode 100644 index 000000000..acadebc02 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_CCCH_Message_H_ +#define _UL_CCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "UL-CCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UL-CCCH-Message */ +typedef struct UL_CCCH_Message { + UL_CCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UL_CCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_CCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_CCCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-CCCH-MessageType.c b/src/codec_utils/RRC/UL-CCCH-MessageType.c new file mode 100644 index 000000000..c1d00fa60 --- /dev/null +++ b/src/codec_utils/RRC/UL-CCCH-MessageType.c @@ -0,0 +1,174 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-CCCH-MessageType.h" + +#include "RRCSetupRequest.h" +#include "RRCResumeRequest.h" +#include "RRCReestablishmentRequest.h" +#include "RRCSystemInfoRequest.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_UL_CCCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType__c1, choice.rrcSetupRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetupRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupRequest" + }, + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType__c1, choice.rrcResumeRequest), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest" + }, + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType__c1, choice.rrcReestablishmentRequest), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishmentRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentRequest" + }, + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType__c1, choice.rrcSystemInfoRequest), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSystemInfoRequest, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSystemInfoRequest" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_c1_specs_2 = { + sizeof(struct UL_CCCH_MessageType__c1), + offsetof(struct UL_CCCH_MessageType__c1, _asn_ctx), + offsetof(struct UL_CCCH_MessageType__c1, present), + sizeof(((struct UL_CCCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 4, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_7 = { + sizeof(struct UL_CCCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_7, + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UL_CCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct UL_CCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UL_CCCH_MessageType_specs_1 = { + sizeof(struct UL_CCCH_MessageType), + offsetof(struct UL_CCCH_MessageType, _asn_ctx), + offsetof(struct UL_CCCH_MessageType, present), + sizeof(((struct UL_CCCH_MessageType *)0)->present), + asn_MAP_UL_CCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_UL_CCCH_MessageType_constr_1, &asn_PER_type_UL_CCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_UL_CCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_UL_CCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-CCCH-MessageType.h b/src/codec_utils/RRC/UL-CCCH-MessageType.h new file mode 100644 index 000000000..d4d9e67ea --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_CCCH_MessageType_H_ +#define _UL_CCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UL_CCCH_MessageType_PR { + UL_CCCH_MessageType_PR_NOTHING, /* No components present */ + UL_CCCH_MessageType_PR_c1, + UL_CCCH_MessageType_PR_messageClassExtension +} UL_CCCH_MessageType_PR; +typedef enum UL_CCCH_MessageType__c1_PR { + UL_CCCH_MessageType__c1_PR_NOTHING, /* No components present */ + UL_CCCH_MessageType__c1_PR_rrcSetupRequest, + UL_CCCH_MessageType__c1_PR_rrcResumeRequest, + UL_CCCH_MessageType__c1_PR_rrcReestablishmentRequest, + UL_CCCH_MessageType__c1_PR_rrcSystemInfoRequest +} UL_CCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct RRCSetupRequest; +struct RRCResumeRequest; +struct RRCReestablishmentRequest; +struct RRCSystemInfoRequest; + +/* UL-CCCH-MessageType */ +typedef struct UL_CCCH_MessageType { + UL_CCCH_MessageType_PR present; + union UL_CCCH_MessageType_u { + struct UL_CCCH_MessageType__c1 { + UL_CCCH_MessageType__c1_PR present; + union UL_CCCH_MessageType__c1_u { + struct RRCSetupRequest *rrcSetupRequest; + struct RRCResumeRequest *rrcResumeRequest; + struct RRCReestablishmentRequest *rrcReestablishmentRequest; + struct RRCSystemInfoRequest *rrcSystemInfoRequest; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct 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; +} UL_CCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_CCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_UL_CCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_UL_CCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_UL_CCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_CCCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-CCCH1-Message.c b/src/codec_utils/RRC/UL-CCCH1-Message.c new file mode 100644 index 000000000..f6bc63933 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-CCCH1-Message.h" + +static asn_TYPE_member_t asn_MBR_UL_CCCH1_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UL_CCCH1_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UL_CCCH1_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_UL_CCCH1_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UL_CCCH1_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UL_CCCH1_Message_specs_1 = { + sizeof(struct UL_CCCH1_Message), + offsetof(struct UL_CCCH1_Message, _asn_ctx), + asn_MAP_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_UL_CCCH1_Message = { + "UL-CCCH1-Message", + "UL-CCCH1-Message", + &asn_OP_SEQUENCE, + asn_DEF_UL_CCCH1_Message_tags_1, + sizeof(asn_DEF_UL_CCCH1_Message_tags_1) + /sizeof(asn_DEF_UL_CCCH1_Message_tags_1[0]), /* 1 */ + asn_DEF_UL_CCCH1_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_CCCH1_Message_tags_1) + /sizeof(asn_DEF_UL_CCCH1_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UL_CCCH1_Message_1, + 1, /* Elements count */ + &asn_SPC_UL_CCCH1_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-CCCH1-Message.h b/src/codec_utils/RRC/UL-CCCH1-Message.h new file mode 100644 index 000000000..ab3b3e3ee --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_CCCH1_Message_H_ +#define _UL_CCCH1_Message_H_ + + +#include + +/* Including external dependencies */ +#include "UL-CCCH1-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UL-CCCH1-Message */ +typedef struct UL_CCCH1_Message { + UL_CCCH1_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UL_CCCH1_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_CCCH1_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_CCCH1_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-CCCH1-MessageType.c b/src/codec_utils/RRC/UL-CCCH1-MessageType.c new file mode 100644 index 000000000..3c67eac7e --- /dev/null +++ b/src/codec_utils/RRC/UL-CCCH1-MessageType.c @@ -0,0 +1,171 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-CCCH1-MessageType.h" + +#include "RRCResumeRequest1.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_UL_CCCH1_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct UL_CCCH1_MessageType__c1, choice.rrcResumeRequest1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeRequest1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeRequest1" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 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 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_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_c1_specs_2 = { + sizeof(struct UL_CCCH1_MessageType__c1), + offsetof(struct UL_CCCH1_MessageType__c1, _asn_ctx), + offsetof(struct UL_CCCH1_MessageType__c1, present), + sizeof(((struct UL_CCCH1_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 4, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_7 = { + sizeof(struct UL_CCCH1_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_7 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_7, + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_7, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_7) + /sizeof(asn_DEF_messageClassExtension_tags_7[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UL_CCCH1_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct UL_CCCH1_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct UL_CCCH1_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UL_CCCH1_MessageType_specs_1 = { + sizeof(struct UL_CCCH1_MessageType), + offsetof(struct UL_CCCH1_MessageType, _asn_ctx), + offsetof(struct UL_CCCH1_MessageType, present), + sizeof(((struct UL_CCCH1_MessageType *)0)->present), + asn_MAP_UL_CCCH1_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_UL_CCCH1_MessageType_constr_1, &asn_PER_type_UL_CCCH1_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_UL_CCCH1_MessageType_1, + 2, /* Elements count */ + &asn_SPC_UL_CCCH1_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-CCCH1-MessageType.h b/src/codec_utils/RRC/UL-CCCH1-MessageType.h new file mode 100644 index 000000000..148b91876 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_CCCH1_MessageType_H_ +#define _UL_CCCH1_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UL_CCCH1_MessageType_PR { + UL_CCCH1_MessageType_PR_NOTHING, /* No components present */ + UL_CCCH1_MessageType_PR_c1, + UL_CCCH1_MessageType_PR_messageClassExtension +} UL_CCCH1_MessageType_PR; +typedef enum UL_CCCH1_MessageType__c1_PR { + UL_CCCH1_MessageType__c1_PR_NOTHING, /* No components present */ + UL_CCCH1_MessageType__c1_PR_rrcResumeRequest1, + UL_CCCH1_MessageType__c1_PR_spare3, + UL_CCCH1_MessageType__c1_PR_spare2, + UL_CCCH1_MessageType__c1_PR_spare1 +} UL_CCCH1_MessageType__c1_PR; + +/* Forward declarations */ +struct RRCResumeRequest1; + +/* UL-CCCH1-MessageType */ +typedef struct UL_CCCH1_MessageType { + UL_CCCH1_MessageType_PR present; + union UL_CCCH1_MessageType_u { + struct UL_CCCH1_MessageType__c1 { + UL_CCCH1_MessageType__c1_PR present; + union UL_CCCH1_MessageType__c1_u { + struct 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 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; +} UL_CCCH1_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_CCCH1_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_UL_CCCH1_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_UL_CCCH1_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_UL_CCCH1_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_CCCH1_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-DCCH-Message.c b/src/codec_utils/RRC/UL-DCCH-Message.c new file mode 100644 index 000000000..14e64b552 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-DCCH-Message.h" + +static asn_TYPE_member_t asn_MBR_UL_DCCH_Message_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UL_DCCH_Message, message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_UL_DCCH_MessageType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "message" + }, +}; +static const ber_tlv_tag_t asn_DEF_UL_DCCH_Message_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UL_DCCH_Message_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_UL_DCCH_Message_specs_1 = { + sizeof(struct UL_DCCH_Message), + offsetof(struct UL_DCCH_Message, _asn_ctx), + asn_MAP_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_UL_DCCH_Message = { + "UL-DCCH-Message", + "UL-DCCH-Message", + &asn_OP_SEQUENCE, + asn_DEF_UL_DCCH_Message_tags_1, + sizeof(asn_DEF_UL_DCCH_Message_tags_1) + /sizeof(asn_DEF_UL_DCCH_Message_tags_1[0]), /* 1 */ + asn_DEF_UL_DCCH_Message_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_DCCH_Message_tags_1) + /sizeof(asn_DEF_UL_DCCH_Message_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UL_DCCH_Message_1, + 1, /* Elements count */ + &asn_SPC_UL_DCCH_Message_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-DCCH-Message.h b/src/codec_utils/RRC/UL-DCCH-Message.h new file mode 100644 index 000000000..52769ef0e --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_DCCH_Message_H_ +#define _UL_DCCH_Message_H_ + + +#include + +/* Including external dependencies */ +#include "UL-DCCH-MessageType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UL-DCCH-Message */ +typedef struct UL_DCCH_Message { + UL_DCCH_MessageType_t message; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UL_DCCH_Message_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_DCCH_Message; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_DCCH_Message_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-DCCH-MessageType.c b/src/codec_utils/RRC/UL-DCCH-MessageType.c new file mode 100644 index 000000000..46f5ec9f5 --- /dev/null +++ b/src/codec_utils/RRC/UL-DCCH-MessageType.c @@ -0,0 +1,303 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-DCCH-MessageType.h" + +#include "MeasurementReport.h" +#include "RRCReconfigurationComplete.h" +#include "RRCSetupComplete.h" +#include "RRCReestablishmentComplete.h" +#include "RRCResumeComplete.h" +#include "SecurityModeComplete.h" +#include "SecurityModeFailure.h" +#include "ULInformationTransfer.h" +#include "LocationMeasurementIndication.h" +#include "UECapabilityInformation.h" +#include "CounterCheckResponse.h" +#include "UEAssistanceInformation.h" +#include "FailureInformation.h" +static asn_oer_constraints_t asn_OER_type_c1_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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 */ +}; +static asn_oer_constraints_t asn_OER_type_UL_DCCH_MessageType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_c1_2[] = { + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.measurementReport), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasurementReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measurementReport" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.rrcReconfigurationComplete), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReconfigurationComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReconfigurationComplete" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.rrcSetupComplete), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCSetupComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcSetupComplete" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.rrcReestablishmentComplete), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCReestablishmentComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcReestablishmentComplete" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.rrcResumeComplete), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RRCResumeComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "rrcResumeComplete" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.securityModeComplete), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeComplete, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeComplete" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.securityModeFailure), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SecurityModeFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "securityModeFailure" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.ulInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULInformationTransfer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.locationMeasurementIndication), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_LocationMeasurementIndication, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "locationMeasurementIndication" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.ueCapabilityInformation), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UECapabilityInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueCapabilityInformation" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.counterCheckResponse), + (ASN_TAG_CLASS_CONTEXT | (10 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CounterCheckResponse, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "counterCheckResponse" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.ueAssistanceInformation), + (ASN_TAG_CLASS_CONTEXT | (11 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UEAssistanceInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ueAssistanceInformation" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType__c1, choice.failureInformation), + (ASN_TAG_CLASS_CONTEXT | (12 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FailureInformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct UL_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 UL_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 UL_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_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 }, /* 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_c1_specs_2 = { + sizeof(struct UL_DCCH_MessageType__c1), + offsetof(struct UL_DCCH_MessageType__c1, _asn_ctx), + offsetof(struct UL_DCCH_MessageType__c1, present), + sizeof(((struct UL_DCCH_MessageType__c1 *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_c1_constr_2, &asn_PER_type_c1_constr_2, CHOICE_constraint }, + asn_MBR_c1_2, + 16, /* Elements count */ + &asn_SPC_c1_specs_2 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_messageClassExtension_tags_19[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_19 = { + sizeof(struct UL_DCCH_MessageType__messageClassExtension), + offsetof(struct 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_messageClassExtension_19 = { + "messageClassExtension", + "messageClassExtension", + &asn_OP_SEQUENCE, + asn_DEF_messageClassExtension_tags_19, + sizeof(asn_DEF_messageClassExtension_tags_19) + /sizeof(asn_DEF_messageClassExtension_tags_19[0]) - 1, /* 1 */ + asn_DEF_messageClassExtension_tags_19, /* Same as above */ + sizeof(asn_DEF_messageClassExtension_tags_19) + /sizeof(asn_DEF_messageClassExtension_tags_19[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_messageClassExtension_specs_19 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UL_DCCH_MessageType_1[] = { + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType, choice.c1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_c1_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "c1" + }, + { ATF_POINTER, 0, offsetof(struct UL_DCCH_MessageType, choice.messageClassExtension), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_messageClassExtension_19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "messageClassExtension" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UL_DCCH_MessageType_specs_1 = { + sizeof(struct UL_DCCH_MessageType), + offsetof(struct UL_DCCH_MessageType, _asn_ctx), + offsetof(struct UL_DCCH_MessageType, present), + sizeof(((struct UL_DCCH_MessageType *)0)->present), + asn_MAP_UL_DCCH_MessageType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_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) */ + { &asn_OER_type_UL_DCCH_MessageType_constr_1, &asn_PER_type_UL_DCCH_MessageType_constr_1, CHOICE_constraint }, + asn_MBR_UL_DCCH_MessageType_1, + 2, /* Elements count */ + &asn_SPC_UL_DCCH_MessageType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-DCCH-MessageType.h b/src/codec_utils/RRC/UL-DCCH-MessageType.h new file mode 100644 index 000000000..4a7dce7be --- /dev/null +++ b/src/codec_utils/RRC/UL-DCCH-MessageType.h @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_DCCH_MessageType_H_ +#define _UL_DCCH_MessageType_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UL_DCCH_MessageType_PR { + UL_DCCH_MessageType_PR_NOTHING, /* No components present */ + UL_DCCH_MessageType_PR_c1, + UL_DCCH_MessageType_PR_messageClassExtension +} UL_DCCH_MessageType_PR; +typedef enum UL_DCCH_MessageType__c1_PR { + UL_DCCH_MessageType__c1_PR_NOTHING, /* No components present */ + UL_DCCH_MessageType__c1_PR_measurementReport, + UL_DCCH_MessageType__c1_PR_rrcReconfigurationComplete, + UL_DCCH_MessageType__c1_PR_rrcSetupComplete, + UL_DCCH_MessageType__c1_PR_rrcReestablishmentComplete, + UL_DCCH_MessageType__c1_PR_rrcResumeComplete, + UL_DCCH_MessageType__c1_PR_securityModeComplete, + UL_DCCH_MessageType__c1_PR_securityModeFailure, + UL_DCCH_MessageType__c1_PR_ulInformationTransfer, + UL_DCCH_MessageType__c1_PR_locationMeasurementIndication, + UL_DCCH_MessageType__c1_PR_ueCapabilityInformation, + UL_DCCH_MessageType__c1_PR_counterCheckResponse, + UL_DCCH_MessageType__c1_PR_ueAssistanceInformation, + UL_DCCH_MessageType__c1_PR_failureInformation, + UL_DCCH_MessageType__c1_PR_spare3, + UL_DCCH_MessageType__c1_PR_spare2, + UL_DCCH_MessageType__c1_PR_spare1 +} UL_DCCH_MessageType__c1_PR; + +/* Forward declarations */ +struct MeasurementReport; +struct RRCReconfigurationComplete; +struct RRCSetupComplete; +struct RRCReestablishmentComplete; +struct RRCResumeComplete; +struct SecurityModeComplete; +struct SecurityModeFailure; +struct ULInformationTransfer; +struct LocationMeasurementIndication; +struct UECapabilityInformation; +struct CounterCheckResponse; +struct UEAssistanceInformation; +struct FailureInformation; + +/* UL-DCCH-MessageType */ +typedef struct UL_DCCH_MessageType { + UL_DCCH_MessageType_PR present; + union UL_DCCH_MessageType_u { + struct UL_DCCH_MessageType__c1 { + UL_DCCH_MessageType__c1_PR present; + union UL_DCCH_MessageType__c1_u { + struct MeasurementReport *measurementReport; + struct RRCReconfigurationComplete *rrcReconfigurationComplete; + struct RRCSetupComplete *rrcSetupComplete; + struct RRCReestablishmentComplete *rrcReestablishmentComplete; + struct RRCResumeComplete *rrcResumeComplete; + struct SecurityModeComplete *securityModeComplete; + struct SecurityModeFailure *securityModeFailure; + struct ULInformationTransfer *ulInformationTransfer; + struct LocationMeasurementIndication *locationMeasurementIndication; + struct UECapabilityInformation *ueCapabilityInformation; + struct CounterCheckResponse *counterCheckResponse; + struct UEAssistanceInformation *ueAssistanceInformation; + struct FailureInformation *failureInformation; + NULL_t spare3; + NULL_t spare2; + NULL_t spare1; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *c1; + struct 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; +} UL_DCCH_MessageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_DCCH_MessageType; +extern asn_CHOICE_specifics_t asn_SPC_UL_DCCH_MessageType_specs_1; +extern asn_TYPE_member_t asn_MBR_UL_DCCH_MessageType_1[2]; +extern asn_per_constraints_t asn_PER_type_UL_DCCH_MessageType_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_DCCH_MessageType_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-DataSplitThreshold.c b/src/codec_utils/RRC/UL-DataSplitThreshold.c new file mode 100644 index 000000000..60b8460ac --- /dev/null +++ b/src/codec_utils/RRC/UL-DataSplitThreshold.c @@ -0,0 +1,116 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-DataSplitThreshold.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_UL_DataSplitThreshold_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_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_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_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_UL_DataSplitThreshold_specs_1 = { + asn_MAP_UL_DataSplitThreshold_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_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_UL_DataSplitThreshold_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_UL_DataSplitThreshold = { + "UL-DataSplitThreshold", + "UL-DataSplitThreshold", + &asn_OP_NativeEnumerated, + asn_DEF_UL_DataSplitThreshold_tags_1, + sizeof(asn_DEF_UL_DataSplitThreshold_tags_1) + /sizeof(asn_DEF_UL_DataSplitThreshold_tags_1[0]), /* 1 */ + asn_DEF_UL_DataSplitThreshold_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_DataSplitThreshold_tags_1) + /sizeof(asn_DEF_UL_DataSplitThreshold_tags_1[0]), /* 1 */ + { &asn_OER_type_UL_DataSplitThreshold_constr_1, &asn_PER_type_UL_DataSplitThreshold_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_UL_DataSplitThreshold_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-DataSplitThreshold.h b/src/codec_utils/RRC/UL-DataSplitThreshold.h new file mode 100644 index 000000000..e74148ff0 --- /dev/null +++ b/src/codec_utils/RRC/UL-DataSplitThreshold.h @@ -0,0 +1,83 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_DataSplitThreshold_H_ +#define _UL_DataSplitThreshold_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UL_DataSplitThreshold { + UL_DataSplitThreshold_b0 = 0, + UL_DataSplitThreshold_b100 = 1, + UL_DataSplitThreshold_b200 = 2, + UL_DataSplitThreshold_b400 = 3, + UL_DataSplitThreshold_b800 = 4, + UL_DataSplitThreshold_b1600 = 5, + UL_DataSplitThreshold_b3200 = 6, + UL_DataSplitThreshold_b6400 = 7, + UL_DataSplitThreshold_b12800 = 8, + UL_DataSplitThreshold_b25600 = 9, + UL_DataSplitThreshold_b51200 = 10, + UL_DataSplitThreshold_b102400 = 11, + UL_DataSplitThreshold_b204800 = 12, + UL_DataSplitThreshold_b409600 = 13, + UL_DataSplitThreshold_b819200 = 14, + UL_DataSplitThreshold_b1228800 = 15, + UL_DataSplitThreshold_b1638400 = 16, + UL_DataSplitThreshold_b2457600 = 17, + UL_DataSplitThreshold_b3276800 = 18, + UL_DataSplitThreshold_b4096000 = 19, + UL_DataSplitThreshold_b4915200 = 20, + UL_DataSplitThreshold_b5734400 = 21, + UL_DataSplitThreshold_b6553600 = 22, + UL_DataSplitThreshold_infinity = 23, + UL_DataSplitThreshold_spare8 = 24, + UL_DataSplitThreshold_spare7 = 25, + UL_DataSplitThreshold_spare6 = 26, + UL_DataSplitThreshold_spare5 = 27, + UL_DataSplitThreshold_spare4 = 28, + UL_DataSplitThreshold_spare3 = 29, + UL_DataSplitThreshold_spare2 = 30, + UL_DataSplitThreshold_spare1 = 31 +} e_UL_DataSplitThreshold; + +/* UL-DataSplitThreshold */ +typedef long UL_DataSplitThreshold_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_UL_DataSplitThreshold_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_UL_DataSplitThreshold; +extern const asn_INTEGER_specifics_t asn_SPC_UL_DataSplitThreshold_specs_1; +asn_struct_free_f UL_DataSplitThreshold_free; +asn_struct_print_f UL_DataSplitThreshold_print; +asn_constr_check_f UL_DataSplitThreshold_constraint; +ber_type_decoder_f UL_DataSplitThreshold_decode_ber; +der_type_encoder_f UL_DataSplitThreshold_encode_der; +xer_type_decoder_f UL_DataSplitThreshold_decode_xer; +xer_type_encoder_f UL_DataSplitThreshold_encode_xer; +oer_type_decoder_f UL_DataSplitThreshold_decode_oer; +oer_type_encoder_f UL_DataSplitThreshold_encode_oer; +per_type_decoder_f UL_DataSplitThreshold_decode_uper; +per_type_encoder_f UL_DataSplitThreshold_encode_uper; +per_type_decoder_f UL_DataSplitThreshold_decode_aper; +per_type_encoder_f UL_DataSplitThreshold_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_DataSplitThreshold_H_ */ +#include diff --git a/src/codec_utils/RRC/UL-UM-RLC.c b/src/codec_utils/RRC/UL-UM-RLC.c new file mode 100644 index 000000000..df618d17a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UL-UM-RLC.h" + +asn_TYPE_member_t asn_MBR_UL_UM_RLC_1[] = { + { ATF_POINTER, 1, offsetof(struct UL_UM_RLC, sn_FieldLength), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SN_FieldLengthUM, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sn-FieldLength" + }, +}; +static const int asn_MAP_UL_UM_RLC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_UL_UM_RLC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UL_UM_RLC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* sn-FieldLength */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UL_UM_RLC_specs_1 = { + sizeof(struct UL_UM_RLC), + offsetof(struct UL_UM_RLC, _asn_ctx), + asn_MAP_UL_UM_RLC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_UL_UM_RLC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UL_UM_RLC = { + "UL-UM-RLC", + "UL-UM-RLC", + &asn_OP_SEQUENCE, + asn_DEF_UL_UM_RLC_tags_1, + sizeof(asn_DEF_UL_UM_RLC_tags_1) + /sizeof(asn_DEF_UL_UM_RLC_tags_1[0]), /* 1 */ + asn_DEF_UL_UM_RLC_tags_1, /* Same as above */ + sizeof(asn_DEF_UL_UM_RLC_tags_1) + /sizeof(asn_DEF_UL_UM_RLC_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UL_UM_RLC_1, + 1, /* Elements count */ + &asn_SPC_UL_UM_RLC_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UL-UM-RLC.h b/src/codec_utils/RRC/UL-UM-RLC.h new file mode 100644 index 000000000..7f41c6cae --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UL_UM_RLC_H_ +#define _UL_UM_RLC_H_ + + +#include + +/* Including external dependencies */ +#include "SN-FieldLengthUM.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UL-UM-RLC */ +typedef struct UL_UM_RLC { + SN_FieldLengthUM_t *sn_FieldLength; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UL_UM_RLC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UL_UM_RLC; +extern asn_SEQUENCE_specifics_t asn_SPC_UL_UM_RLC_specs_1; +extern asn_TYPE_member_t asn_MBR_UL_UM_RLC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UL_UM_RLC_H_ */ +#include diff --git a/src/codec_utils/RRC/ULInformationTransfer-IEs.c b/src/codec_utils/RRC/ULInformationTransfer-IEs.c new file mode 100644 index 000000000..c648c2173 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULInformationTransfer-IEs.h" + +static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_4 = { + sizeof(struct ULInformationTransfer_IEs__nonCriticalExtension), + offsetof(struct 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_nonCriticalExtension_4 = { + "nonCriticalExtension", + "nonCriticalExtension", + &asn_OP_SEQUENCE, + asn_DEF_nonCriticalExtension_tags_4, + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]) - 1, /* 1 */ + asn_DEF_nonCriticalExtension_tags_4, /* Same as above */ + sizeof(asn_DEF_nonCriticalExtension_tags_4) + /sizeof(asn_DEF_nonCriticalExtension_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_nonCriticalExtension_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ULInformationTransfer_IEs_1[] = { + { ATF_POINTER, 3, offsetof(struct ULInformationTransfer_IEs, dedicatedNAS_Message), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_DedicatedNAS_Message, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dedicatedNAS-Message" + }, + { ATF_POINTER, 2, offsetof(struct 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 ULInformationTransfer_IEs, nonCriticalExtension), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_nonCriticalExtension_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "nonCriticalExtension" + }, +}; +static const int asn_MAP_ULInformationTransfer_IEs_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_ULInformationTransfer_IEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ULInformationTransfer_IEs_specs_1 = { + sizeof(struct ULInformationTransfer_IEs), + offsetof(struct ULInformationTransfer_IEs, _asn_ctx), + asn_MAP_ULInformationTransfer_IEs_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ULInformationTransfer_IEs_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ULInformationTransfer_IEs = { + "ULInformationTransfer-IEs", + "ULInformationTransfer-IEs", + &asn_OP_SEQUENCE, + asn_DEF_ULInformationTransfer_IEs_tags_1, + sizeof(asn_DEF_ULInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ULInformationTransfer_IEs_tags_1[0]), /* 1 */ + asn_DEF_ULInformationTransfer_IEs_tags_1, /* Same as above */ + sizeof(asn_DEF_ULInformationTransfer_IEs_tags_1) + /sizeof(asn_DEF_ULInformationTransfer_IEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULInformationTransfer_IEs_1, + 3, /* Elements count */ + &asn_SPC_ULInformationTransfer_IEs_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ULInformationTransfer-IEs.h b/src/codec_utils/RRC/ULInformationTransfer-IEs.h new file mode 100644 index 000000000..2d8f781c3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULInformationTransfer_IEs_H_ +#define _ULInformationTransfer_IEs_H_ + + +#include + +/* Including external dependencies */ +#include "DedicatedNAS-Message.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ULInformationTransfer-IEs */ +typedef struct ULInformationTransfer_IEs { + DedicatedNAS_Message_t *dedicatedNAS_Message; /* OPTIONAL */ + OCTET_STRING_t *lateNonCriticalExtension; /* OPTIONAL */ + struct 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; +} ULInformationTransfer_IEs_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULInformationTransfer_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_ULInformationTransfer_IEs_specs_1; +extern asn_TYPE_member_t asn_MBR_ULInformationTransfer_IEs_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULInformationTransfer_IEs_H_ */ +#include diff --git a/src/codec_utils/RRC/ULInformationTransfer.c b/src/codec_utils/RRC/ULInformationTransfer.c new file mode 100644 index 000000000..0bfa15494 --- /dev/null +++ b/src/codec_utils/RRC/ULInformationTransfer.c @@ -0,0 +1,136 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ULInformationTransfer.h" + +#include "ULInformationTransfer-IEs.h" +static asn_oer_constraints_t asn_OER_type_criticalExtensions_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_criticalExtensionsFuture_tags_4[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SEQUENCE_specifics_t asn_SPC_criticalExtensionsFuture_specs_4 = { + sizeof(struct ULInformationTransfer__criticalExtensions__criticalExtensionsFuture), + offsetof(struct 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_criticalExtensionsFuture_4 = { + "criticalExtensionsFuture", + "criticalExtensionsFuture", + &asn_OP_SEQUENCE, + asn_DEF_criticalExtensionsFuture_tags_4, + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]) - 1, /* 1 */ + asn_DEF_criticalExtensionsFuture_tags_4, /* Same as above */ + sizeof(asn_DEF_criticalExtensionsFuture_tags_4) + /sizeof(asn_DEF_criticalExtensionsFuture_tags_4[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + 0, 0, /* No members */ + &asn_SPC_criticalExtensionsFuture_specs_4 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_criticalExtensions_2[] = { + { ATF_POINTER, 0, offsetof(struct ULInformationTransfer__criticalExtensions, choice.ulInformationTransfer), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ULInformationTransfer_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ulInformationTransfer" + }, + { ATF_POINTER, 0, offsetof(struct ULInformationTransfer__criticalExtensions, choice.criticalExtensionsFuture), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_criticalExtensionsFuture_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensionsFuture" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_criticalExtensions_specs_2 = { + sizeof(struct ULInformationTransfer__criticalExtensions), + offsetof(struct ULInformationTransfer__criticalExtensions, _asn_ctx), + offsetof(struct ULInformationTransfer__criticalExtensions, present), + sizeof(((struct ULInformationTransfer__criticalExtensions *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_criticalExtensions_constr_2, &asn_PER_type_criticalExtensions_constr_2, CHOICE_constraint }, + asn_MBR_criticalExtensions_2, + 2, /* Elements count */ + &asn_SPC_criticalExtensions_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ULInformationTransfer_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ULInformationTransfer, criticalExtensions), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_criticalExtensions_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "criticalExtensions" + }, +}; +static const ber_tlv_tag_t asn_DEF_ULInformationTransfer_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ULInformationTransfer_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* criticalExtensions */ +}; +asn_SEQUENCE_specifics_t asn_SPC_ULInformationTransfer_specs_1 = { + sizeof(struct ULInformationTransfer), + offsetof(struct ULInformationTransfer, _asn_ctx), + asn_MAP_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_ULInformationTransfer = { + "ULInformationTransfer", + "ULInformationTransfer", + &asn_OP_SEQUENCE, + asn_DEF_ULInformationTransfer_tags_1, + sizeof(asn_DEF_ULInformationTransfer_tags_1) + /sizeof(asn_DEF_ULInformationTransfer_tags_1[0]), /* 1 */ + asn_DEF_ULInformationTransfer_tags_1, /* Same as above */ + sizeof(asn_DEF_ULInformationTransfer_tags_1) + /sizeof(asn_DEF_ULInformationTransfer_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ULInformationTransfer_1, + 1, /* Elements count */ + &asn_SPC_ULInformationTransfer_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ULInformationTransfer.h b/src/codec_utils/RRC/ULInformationTransfer.h new file mode 100644 index 000000000..187dc1666 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ULInformationTransfer_H_ +#define _ULInformationTransfer_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum ULInformationTransfer__criticalExtensions_PR { + ULInformationTransfer__criticalExtensions_PR_NOTHING, /* No components present */ + ULInformationTransfer__criticalExtensions_PR_ulInformationTransfer, + ULInformationTransfer__criticalExtensions_PR_criticalExtensionsFuture +} ULInformationTransfer__criticalExtensions_PR; + +/* Forward declarations */ +struct ULInformationTransfer_IEs; + +/* ULInformationTransfer */ +typedef struct ULInformationTransfer { + struct ULInformationTransfer__criticalExtensions { + ULInformationTransfer__criticalExtensions_PR present; + union ULInformationTransfer__criticalExtensions_u { + struct ULInformationTransfer_IEs *ulInformationTransfer; + struct 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; +} ULInformationTransfer_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ULInformationTransfer; +extern asn_SEQUENCE_specifics_t asn_SPC_ULInformationTransfer_specs_1; +extern asn_TYPE_member_t asn_MBR_ULInformationTransfer_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ULInformationTransfer_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkConfig.c b/src/codec_utils/RRC/UplinkConfig.c new file mode 100644 index 000000000..f2d96aff1 --- /dev/null +++ b/src/codec_utils/RRC/UplinkConfig.c @@ -0,0 +1,523 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkConfig.h" + +#include "BWP-UplinkDedicated.h" +#include "BWP-Uplink.h" +#include "PUSCH-ServingCellConfig.h" +#include "SRS-CarrierSwitching.h" +#include "SCS-SpecificCarrier.h" +static int +memb_uplinkChannelBW_PerSCS_List_constraint_15(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_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_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_oer_constraints_t asn_OER_type_uplinkBWP_ToReleaseList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_uplinkBWP_ToAddModList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_pusch_ServingCellConfig_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_pusch_ServingCellConfig_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_oer_constraints_t asn_OER_type_carrierSwitching_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_carrierSwitching_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_oer_constraints_t asn_OER_type_uplinkChannelBW_PerSCS_List_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_type_uplinkChannelBW_PerSCS_List_constr_17 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_oer_constraints_t asn_OER_memb_uplinkChannelBW_PerSCS_List_constr_17 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..5)) */}; +static asn_per_constraints_t asn_PER_memb_uplinkChannelBW_PerSCS_List_constr_17 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_oer_constraints_t asn_OER_memb_uplinkBWP_ToReleaseList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_uplinkBWP_ToAddModList_constr_5 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_uplinkBWP_ToReleaseList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_uplinkBWP_ToReleaseList_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_uplinkBWP_ToReleaseList_specs_3 = { + sizeof(struct UplinkConfig__uplinkBWP_ToReleaseList), + offsetof(struct UplinkConfig__uplinkBWP_ToReleaseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_uplinkBWP_ToReleaseList_3 = { + "uplinkBWP-ToReleaseList", + "uplinkBWP-ToReleaseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_uplinkBWP_ToReleaseList_tags_3, + sizeof(asn_DEF_uplinkBWP_ToReleaseList_tags_3) + /sizeof(asn_DEF_uplinkBWP_ToReleaseList_tags_3[0]) - 1, /* 1 */ + asn_DEF_uplinkBWP_ToReleaseList_tags_3, /* Same as above */ + sizeof(asn_DEF_uplinkBWP_ToReleaseList_tags_3) + /sizeof(asn_DEF_uplinkBWP_ToReleaseList_tags_3[0]), /* 2 */ + { &asn_OER_type_uplinkBWP_ToReleaseList_constr_3, &asn_PER_type_uplinkBWP_ToReleaseList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_uplinkBWP_ToReleaseList_3, + 1, /* Single element */ + &asn_SPC_uplinkBWP_ToReleaseList_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uplinkBWP_ToAddModList_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_BWP_Uplink, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_uplinkBWP_ToAddModList_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_uplinkBWP_ToAddModList_specs_5 = { + sizeof(struct UplinkConfig__uplinkBWP_ToAddModList), + offsetof(struct UplinkConfig__uplinkBWP_ToAddModList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_uplinkBWP_ToAddModList_5 = { + "uplinkBWP-ToAddModList", + "uplinkBWP-ToAddModList", + &asn_OP_SEQUENCE_OF, + asn_DEF_uplinkBWP_ToAddModList_tags_5, + sizeof(asn_DEF_uplinkBWP_ToAddModList_tags_5) + /sizeof(asn_DEF_uplinkBWP_ToAddModList_tags_5[0]) - 1, /* 1 */ + asn_DEF_uplinkBWP_ToAddModList_tags_5, /* Same as above */ + sizeof(asn_DEF_uplinkBWP_ToAddModList_tags_5) + /sizeof(asn_DEF_uplinkBWP_ToAddModList_tags_5[0]), /* 2 */ + { &asn_OER_type_uplinkBWP_ToAddModList_constr_5, &asn_PER_type_uplinkBWP_ToAddModList_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_uplinkBWP_ToAddModList_5, + 1, /* Single element */ + &asn_SPC_uplinkBWP_ToAddModList_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_pusch_ServingCellConfig_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfig__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 UplinkConfig__pusch_ServingCellConfig, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PUSCH_ServingCellConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_pusch_ServingCellConfig_tag2el_8[] = { + { (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_pusch_ServingCellConfig_specs_8 = { + sizeof(struct UplinkConfig__pusch_ServingCellConfig), + offsetof(struct UplinkConfig__pusch_ServingCellConfig, _asn_ctx), + offsetof(struct UplinkConfig__pusch_ServingCellConfig, present), + sizeof(((struct UplinkConfig__pusch_ServingCellConfig *)0)->present), + asn_MAP_pusch_ServingCellConfig_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_pusch_ServingCellConfig_8 = { + "pusch-ServingCellConfig", + "pusch-ServingCellConfig", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_pusch_ServingCellConfig_constr_8, &asn_PER_type_pusch_ServingCellConfig_constr_8, CHOICE_constraint }, + asn_MBR_pusch_ServingCellConfig_8, + 2, /* Elements count */ + &asn_SPC_pusch_ServingCellConfig_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_carrierSwitching_11[] = { + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfig__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 UplinkConfig__carrierSwitching, choice.setup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_SRS_CarrierSwitching, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "setup" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_carrierSwitching_tag2el_11[] = { + { (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_carrierSwitching_specs_11 = { + sizeof(struct UplinkConfig__carrierSwitching), + offsetof(struct UplinkConfig__carrierSwitching, _asn_ctx), + offsetof(struct UplinkConfig__carrierSwitching, present), + sizeof(((struct UplinkConfig__carrierSwitching *)0)->present), + asn_MAP_carrierSwitching_tag2el_11, + 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_carrierSwitching_11 = { + "carrierSwitching", + "carrierSwitching", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_carrierSwitching_constr_11, &asn_PER_type_carrierSwitching_constr_11, CHOICE_constraint }, + asn_MBR_carrierSwitching_11, + 2, /* Elements count */ + &asn_SPC_carrierSwitching_specs_11 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_uplinkChannelBW_PerSCS_List_17[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SCS_SpecificCarrier, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_uplinkChannelBW_PerSCS_List_tags_17[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_uplinkChannelBW_PerSCS_List_specs_17 = { + sizeof(struct UplinkConfig__ext1__uplinkChannelBW_PerSCS_List), + offsetof(struct 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_uplinkChannelBW_PerSCS_List_17 = { + "uplinkChannelBW-PerSCS-List", + "uplinkChannelBW-PerSCS-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_uplinkChannelBW_PerSCS_List_tags_17, + sizeof(asn_DEF_uplinkChannelBW_PerSCS_List_tags_17) + /sizeof(asn_DEF_uplinkChannelBW_PerSCS_List_tags_17[0]) - 1, /* 1 */ + asn_DEF_uplinkChannelBW_PerSCS_List_tags_17, /* Same as above */ + sizeof(asn_DEF_uplinkChannelBW_PerSCS_List_tags_17) + /sizeof(asn_DEF_uplinkChannelBW_PerSCS_List_tags_17[0]), /* 2 */ + { &asn_OER_type_uplinkChannelBW_PerSCS_List_constr_17, &asn_PER_type_uplinkChannelBW_PerSCS_List_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_uplinkChannelBW_PerSCS_List_17, + 1, /* Single element */ + &asn_SPC_uplinkChannelBW_PerSCS_List_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_ext1_15[] = { + { ATF_POINTER, 2, offsetof(struct 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 UplinkConfig__ext1, uplinkChannelBW_PerSCS_List), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_uplinkChannelBW_PerSCS_List_17, + 0, + { &asn_OER_memb_uplinkChannelBW_PerSCS_List_constr_17, &asn_PER_memb_uplinkChannelBW_PerSCS_List_constr_17, memb_uplinkChannelBW_PerSCS_List_constraint_15 }, + 0, 0, /* No default value */ + "uplinkChannelBW-PerSCS-List" + }, +}; +static const int asn_MAP_ext1_oms_15[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_ext1_tags_15[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_15[] = { + { (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_ext1_specs_15 = { + sizeof(struct UplinkConfig__ext1), + offsetof(struct UplinkConfig__ext1, _asn_ctx), + asn_MAP_ext1_tag2el_15, + 2, /* Count of tags in the map */ + asn_MAP_ext1_oms_15, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_ext1_15 = { + "ext1", + "ext1", + &asn_OP_SEQUENCE, + asn_DEF_ext1_tags_15, + sizeof(asn_DEF_ext1_tags_15) + /sizeof(asn_DEF_ext1_tags_15[0]) - 1, /* 1 */ + asn_DEF_ext1_tags_15, /* Same as above */ + sizeof(asn_DEF_ext1_tags_15) + /sizeof(asn_DEF_ext1_tags_15[0]), /* 2 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ext1_15, + 2, /* Elements count */ + &asn_SPC_ext1_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UplinkConfig_1[] = { + { ATF_POINTER, 7, offsetof(struct UplinkConfig, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_UplinkDedicated, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_POINTER, 6, offsetof(struct UplinkConfig, uplinkBWP_ToReleaseList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_uplinkBWP_ToReleaseList_3, + 0, + { &asn_OER_memb_uplinkBWP_ToReleaseList_constr_3, &asn_PER_memb_uplinkBWP_ToReleaseList_constr_3, memb_uplinkBWP_ToReleaseList_constraint_1 }, + 0, 0, /* No default value */ + "uplinkBWP-ToReleaseList" + }, + { ATF_POINTER, 5, offsetof(struct UplinkConfig, uplinkBWP_ToAddModList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + 0, + &asn_DEF_uplinkBWP_ToAddModList_5, + 0, + { &asn_OER_memb_uplinkBWP_ToAddModList_constr_5, &asn_PER_memb_uplinkBWP_ToAddModList_constr_5, memb_uplinkBWP_ToAddModList_constraint_1 }, + 0, 0, /* No default value */ + "uplinkBWP-ToAddModList" + }, + { ATF_POINTER, 4, offsetof(struct UplinkConfig, firstActiveUplinkBWP_Id), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "firstActiveUplinkBWP-Id" + }, + { ATF_POINTER, 3, offsetof(struct UplinkConfig, pusch_ServingCellConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_pusch_ServingCellConfig_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "pusch-ServingCellConfig" + }, + { ATF_POINTER, 2, offsetof(struct UplinkConfig, carrierSwitching), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_carrierSwitching_11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "carrierSwitching" + }, + { ATF_POINTER, 1, offsetof(struct UplinkConfig, ext1), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_ext1_15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ext1" + }, +}; +static const int asn_MAP_UplinkConfig_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_UplinkConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UplinkConfig_specs_1 = { + sizeof(struct UplinkConfig), + offsetof(struct UplinkConfig, _asn_ctx), + asn_MAP_UplinkConfig_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_UplinkConfig_oms_1, /* Optional members */ + 6, 1, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UplinkConfig = { + "UplinkConfig", + "UplinkConfig", + &asn_OP_SEQUENCE, + asn_DEF_UplinkConfig_tags_1, + sizeof(asn_DEF_UplinkConfig_tags_1) + /sizeof(asn_DEF_UplinkConfig_tags_1[0]), /* 1 */ + asn_DEF_UplinkConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkConfig_tags_1) + /sizeof(asn_DEF_UplinkConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UplinkConfig_1, + 7, /* Elements count */ + &asn_SPC_UplinkConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkConfig.h b/src/codec_utils/RRC/UplinkConfig.h new file mode 100644 index 000000000..0a2a6d3ad --- /dev/null +++ b/src/codec_utils/RRC/UplinkConfig.h @@ -0,0 +1,113 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkConfig_H_ +#define _UplinkConfig_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum UplinkConfig__pusch_ServingCellConfig_PR { + UplinkConfig__pusch_ServingCellConfig_PR_NOTHING, /* No components present */ + UplinkConfig__pusch_ServingCellConfig_PR_release, + UplinkConfig__pusch_ServingCellConfig_PR_setup +} UplinkConfig__pusch_ServingCellConfig_PR; +typedef enum UplinkConfig__carrierSwitching_PR { + UplinkConfig__carrierSwitching_PR_NOTHING, /* No components present */ + UplinkConfig__carrierSwitching_PR_release, + UplinkConfig__carrierSwitching_PR_setup +} UplinkConfig__carrierSwitching_PR; + +/* Forward declarations */ +struct BWP_UplinkDedicated; +struct BWP_Uplink; +struct PUSCH_ServingCellConfig; +struct SRS_CarrierSwitching; +struct SCS_SpecificCarrier; + +/* UplinkConfig */ +typedef struct UplinkConfig { + struct BWP_UplinkDedicated *initialUplinkBWP; /* OPTIONAL */ + struct UplinkConfig__uplinkBWP_ToReleaseList { + A_SEQUENCE_OF(BWP_Id_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkBWP_ToReleaseList; + struct UplinkConfig__uplinkBWP_ToAddModList { + A_SEQUENCE_OF(struct BWP_Uplink) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *uplinkBWP_ToAddModList; + BWP_Id_t *firstActiveUplinkBWP_Id; /* OPTIONAL */ + struct UplinkConfig__pusch_ServingCellConfig { + UplinkConfig__pusch_ServingCellConfig_PR present; + union UplinkConfig__pusch_ServingCellConfig_u { + NULL_t release; + struct PUSCH_ServingCellConfig *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *pusch_ServingCellConfig; + struct UplinkConfig__carrierSwitching { + UplinkConfig__carrierSwitching_PR present; + union UplinkConfig__carrierSwitching_u { + NULL_t release; + struct SRS_CarrierSwitching *setup; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *carrierSwitching; + /* + * This type is extensible, + * possible extensions are below. + */ + struct UplinkConfig__ext1 { + BOOLEAN_t *powerBoostPi2BPSK; /* OPTIONAL */ + struct UplinkConfig__ext1__uplinkChannelBW_PerSCS_List { + A_SEQUENCE_OF(struct 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; +} UplinkConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkConfig; +extern asn_SEQUENCE_specifics_t asn_SPC_UplinkConfig_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkConfig_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkConfigCommon.c b/src/codec_utils/RRC/UplinkConfigCommon.c new file mode 100644 index 000000000..88dc991e4 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkConfigCommon.h" + +#include "FrequencyInfoUL.h" +#include "BWP-UplinkCommon.h" +asn_TYPE_member_t asn_MBR_UplinkConfigCommon_1[] = { + { ATF_POINTER, 2, offsetof(struct UplinkConfigCommon, frequencyInfoUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrequencyInfoUL, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoUL" + }, + { ATF_POINTER, 1, offsetof(struct UplinkConfigCommon, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommon, dummy), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "dummy" + }, +}; +static const int asn_MAP_UplinkConfigCommon_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_UplinkConfigCommon_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UplinkConfigCommon_specs_1 = { + sizeof(struct UplinkConfigCommon), + offsetof(struct UplinkConfigCommon, _asn_ctx), + asn_MAP_UplinkConfigCommon_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_UplinkConfigCommon_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_UplinkConfigCommon = { + "UplinkConfigCommon", + "UplinkConfigCommon", + &asn_OP_SEQUENCE, + asn_DEF_UplinkConfigCommon_tags_1, + sizeof(asn_DEF_UplinkConfigCommon_tags_1) + /sizeof(asn_DEF_UplinkConfigCommon_tags_1[0]), /* 1 */ + asn_DEF_UplinkConfigCommon_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkConfigCommon_tags_1) + /sizeof(asn_DEF_UplinkConfigCommon_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UplinkConfigCommon_1, + 3, /* Elements count */ + &asn_SPC_UplinkConfigCommon_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkConfigCommon.h b/src/codec_utils/RRC/UplinkConfigCommon.h new file mode 100644 index 000000000..145c39cd0 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkConfigCommon_H_ +#define _UplinkConfigCommon_H_ + + +#include + +/* Including external dependencies */ +#include "TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct FrequencyInfoUL; +struct BWP_UplinkCommon; + +/* UplinkConfigCommon */ +typedef struct UplinkConfigCommon { + struct FrequencyInfoUL *frequencyInfoUL; /* OPTIONAL */ + struct BWP_UplinkCommon *initialUplinkBWP; /* OPTIONAL */ + TimeAlignmentTimer_t dummy; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UplinkConfigCommon_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkConfigCommon; +extern asn_SEQUENCE_specifics_t asn_SPC_UplinkConfigCommon_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkConfigCommon_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkConfigCommon_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkConfigCommonSIB.c b/src/codec_utils/RRC/UplinkConfigCommonSIB.c new file mode 100644 index 000000000..ae1843542 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkConfigCommonSIB.h" + +asn_TYPE_member_t asn_MBR_UplinkConfigCommonSIB_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, frequencyInfoUL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_FrequencyInfoUL_SIB, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "frequencyInfoUL" + }, + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, initialUplinkBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_UplinkCommon, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "initialUplinkBWP" + }, + { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, timeAlignmentTimerCommon), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TimeAlignmentTimer, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "timeAlignmentTimerCommon" + }, +}; +static const ber_tlv_tag_t asn_DEF_UplinkConfigCommonSIB_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UplinkConfigCommonSIB_specs_1 = { + sizeof(struct UplinkConfigCommonSIB), + offsetof(struct UplinkConfigCommonSIB, _asn_ctx), + asn_MAP_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_UplinkConfigCommonSIB = { + "UplinkConfigCommonSIB", + "UplinkConfigCommonSIB", + &asn_OP_SEQUENCE, + asn_DEF_UplinkConfigCommonSIB_tags_1, + sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ + asn_DEF_UplinkConfigCommonSIB_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1) + /sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UplinkConfigCommonSIB_1, + 3, /* Elements count */ + &asn_SPC_UplinkConfigCommonSIB_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkConfigCommonSIB.h b/src/codec_utils/RRC/UplinkConfigCommonSIB.h new file mode 100644 index 000000000..8c4ea4555 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkConfigCommonSIB_H_ +#define _UplinkConfigCommonSIB_H_ + + +#include + +/* Including external dependencies */ +#include "FrequencyInfoUL-SIB.h" +#include "BWP-UplinkCommon.h" +#include "TimeAlignmentTimer.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UplinkConfigCommonSIB */ +typedef struct UplinkConfigCommonSIB { + FrequencyInfoUL_SIB_t frequencyInfoUL; + BWP_UplinkCommon_t initialUplinkBWP; + TimeAlignmentTimer_t timeAlignmentTimerCommon; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UplinkConfigCommonSIB_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkConfigCommonSIB; +extern asn_SEQUENCE_specifics_t asn_SPC_UplinkConfigCommonSIB_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkConfigCommonSIB_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkConfigCommonSIB_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentBWP.c b/src/codec_utils/RRC/UplinkTxDirectCurrentBWP.c new file mode 100644 index 000000000..7f5694e77 --- /dev/null +++ b/src/codec_utils/RRC/UplinkTxDirectCurrentBWP.c @@ -0,0 +1,103 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkTxDirectCurrentBWP.h" + +static int +memb_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_oer_constraints_t asn_OER_memb_txDirectCurrentLocation_constr_4 CC_NOTUSED = { + { 2, 1 } /* (0..3301) */, + -1}; +static asn_per_constraints_t asn_PER_memb_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_UplinkTxDirectCurrentBWP_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UplinkTxDirectCurrentBWP, bwp_Id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BWP_Id, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bwp-Id" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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 UplinkTxDirectCurrentBWP, txDirectCurrentLocation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { &asn_OER_memb_txDirectCurrentLocation_constr_4, &asn_PER_memb_txDirectCurrentLocation_constr_4, memb_txDirectCurrentLocation_constraint_1 }, + 0, 0, /* No default value */ + "txDirectCurrentLocation" + }, +}; +static const ber_tlv_tag_t asn_DEF_UplinkTxDirectCurrentBWP_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_UplinkTxDirectCurrentBWP_specs_1 = { + sizeof(struct UplinkTxDirectCurrentBWP), + offsetof(struct UplinkTxDirectCurrentBWP, _asn_ctx), + asn_MAP_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_UplinkTxDirectCurrentBWP = { + "UplinkTxDirectCurrentBWP", + "UplinkTxDirectCurrentBWP", + &asn_OP_SEQUENCE, + asn_DEF_UplinkTxDirectCurrentBWP_tags_1, + sizeof(asn_DEF_UplinkTxDirectCurrentBWP_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentBWP_tags_1[0]), /* 1 */ + asn_DEF_UplinkTxDirectCurrentBWP_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkTxDirectCurrentBWP_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentBWP_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UplinkTxDirectCurrentBWP_1, + 3, /* Elements count */ + &asn_SPC_UplinkTxDirectCurrentBWP_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentBWP.h b/src/codec_utils/RRC/UplinkTxDirectCurrentBWP.h new file mode 100644 index 000000000..2ab46544d --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkTxDirectCurrentBWP_H_ +#define _UplinkTxDirectCurrentBWP_H_ + + +#include + +/* Including external dependencies */ +#include "BWP-Id.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* UplinkTxDirectCurrentBWP */ +typedef struct UplinkTxDirectCurrentBWP { + BWP_Id_t bwp_Id; + BOOLEAN_t shift7dot5kHz; + long txDirectCurrentLocation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UplinkTxDirectCurrentBWP_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentBWP; +extern asn_SEQUENCE_specifics_t asn_SPC_UplinkTxDirectCurrentBWP_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkTxDirectCurrentBWP_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkTxDirectCurrentBWP_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentCell.c b/src/codec_utils/RRC/UplinkTxDirectCurrentCell.c new file mode 100644 index 000000000..80150ea41 --- /dev/null +++ b/src/codec_utils/RRC/UplinkTxDirectCurrentCell.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkTxDirectCurrentCell.h" + +#include "UplinkTxDirectCurrentBWP.h" +static int +memb_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_oer_constraints_t asn_OER_type_uplinkDirectCurrentBWP_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_uplinkDirectCurrentBWP_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4)) */}; +static asn_per_constraints_t asn_PER_memb_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_uplinkDirectCurrentBWP_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UplinkTxDirectCurrentBWP, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_uplinkDirectCurrentBWP_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_uplinkDirectCurrentBWP_specs_3 = { + sizeof(struct UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP), + offsetof(struct UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_uplinkDirectCurrentBWP_3 = { + "uplinkDirectCurrentBWP", + "uplinkDirectCurrentBWP", + &asn_OP_SEQUENCE_OF, + asn_DEF_uplinkDirectCurrentBWP_tags_3, + sizeof(asn_DEF_uplinkDirectCurrentBWP_tags_3) + /sizeof(asn_DEF_uplinkDirectCurrentBWP_tags_3[0]) - 1, /* 1 */ + asn_DEF_uplinkDirectCurrentBWP_tags_3, /* Same as above */ + sizeof(asn_DEF_uplinkDirectCurrentBWP_tags_3) + /sizeof(asn_DEF_uplinkDirectCurrentBWP_tags_3[0]), /* 2 */ + { &asn_OER_type_uplinkDirectCurrentBWP_constr_3, &asn_PER_type_uplinkDirectCurrentBWP_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_uplinkDirectCurrentBWP_3, + 1, /* Single element */ + &asn_SPC_uplinkDirectCurrentBWP_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_UplinkTxDirectCurrentCell_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct UplinkTxDirectCurrentCell, servCellIndex), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ServCellIndex, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "servCellIndex" + }, + { ATF_NOFLAGS, 0, offsetof(struct UplinkTxDirectCurrentCell, uplinkDirectCurrentBWP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_uplinkDirectCurrentBWP_3, + 0, + { &asn_OER_memb_uplinkDirectCurrentBWP_constr_3, &asn_PER_memb_uplinkDirectCurrentBWP_constr_3, memb_uplinkDirectCurrentBWP_constraint_1 }, + 0, 0, /* No default value */ + "uplinkDirectCurrentBWP" + }, +}; +static const ber_tlv_tag_t asn_DEF_UplinkTxDirectCurrentCell_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_UplinkTxDirectCurrentCell_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* servCellIndex */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* uplinkDirectCurrentBWP */ +}; +asn_SEQUENCE_specifics_t asn_SPC_UplinkTxDirectCurrentCell_specs_1 = { + sizeof(struct UplinkTxDirectCurrentCell), + offsetof(struct UplinkTxDirectCurrentCell, _asn_ctx), + asn_MAP_UplinkTxDirectCurrentCell_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_UplinkTxDirectCurrentCell = { + "UplinkTxDirectCurrentCell", + "UplinkTxDirectCurrentCell", + &asn_OP_SEQUENCE, + asn_DEF_UplinkTxDirectCurrentCell_tags_1, + sizeof(asn_DEF_UplinkTxDirectCurrentCell_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentCell_tags_1[0]), /* 1 */ + asn_DEF_UplinkTxDirectCurrentCell_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkTxDirectCurrentCell_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentCell_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_UplinkTxDirectCurrentCell_1, + 2, /* Elements count */ + &asn_SPC_UplinkTxDirectCurrentCell_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentCell.h b/src/codec_utils/RRC/UplinkTxDirectCurrentCell.h new file mode 100644 index 000000000..aac6eedb0 --- /dev/null +++ b/src/codec_utils/RRC/UplinkTxDirectCurrentCell.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkTxDirectCurrentCell_H_ +#define _UplinkTxDirectCurrentCell_H_ + + +#include + +/* Including external dependencies */ +#include "ServCellIndex.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UplinkTxDirectCurrentBWP; + +/* UplinkTxDirectCurrentCell */ +typedef struct UplinkTxDirectCurrentCell { + ServCellIndex_t servCellIndex; + struct UplinkTxDirectCurrentCell__uplinkDirectCurrentBWP { + A_SEQUENCE_OF(struct UplinkTxDirectCurrentBWP) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } uplinkDirectCurrentBWP; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UplinkTxDirectCurrentCell_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentCell; +extern asn_SEQUENCE_specifics_t asn_SPC_UplinkTxDirectCurrentCell_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkTxDirectCurrentCell_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkTxDirectCurrentCell_H_ */ +#include diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentList.c b/src/codec_utils/RRC/UplinkTxDirectCurrentList.c new file mode 100644 index 000000000..76864ff18 --- /dev/null +++ b/src/codec_utils/RRC/UplinkTxDirectCurrentList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "UplinkTxDirectCurrentList.h" + +#include "UplinkTxDirectCurrentCell.h" +static asn_oer_constraints_t asn_OER_type_UplinkTxDirectCurrentList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +asn_per_constraints_t asn_PER_type_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_UplinkTxDirectCurrentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_UplinkTxDirectCurrentCell, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_UplinkTxDirectCurrentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_UplinkTxDirectCurrentList_specs_1 = { + sizeof(struct UplinkTxDirectCurrentList), + offsetof(struct UplinkTxDirectCurrentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentList = { + "UplinkTxDirectCurrentList", + "UplinkTxDirectCurrentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_UplinkTxDirectCurrentList_tags_1, + sizeof(asn_DEF_UplinkTxDirectCurrentList_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentList_tags_1[0]), /* 1 */ + asn_DEF_UplinkTxDirectCurrentList_tags_1, /* Same as above */ + sizeof(asn_DEF_UplinkTxDirectCurrentList_tags_1) + /sizeof(asn_DEF_UplinkTxDirectCurrentList_tags_1[0]), /* 1 */ + { &asn_OER_type_UplinkTxDirectCurrentList_constr_1, &asn_PER_type_UplinkTxDirectCurrentList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_UplinkTxDirectCurrentList_1, + 1, /* Single element */ + &asn_SPC_UplinkTxDirectCurrentList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/UplinkTxDirectCurrentList.h b/src/codec_utils/RRC/UplinkTxDirectCurrentList.h new file mode 100644 index 000000000..4de861ea6 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _UplinkTxDirectCurrentList_H_ +#define _UplinkTxDirectCurrentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct UplinkTxDirectCurrentCell; + +/* UplinkTxDirectCurrentList */ +typedef struct UplinkTxDirectCurrentList { + A_SEQUENCE_OF(struct UplinkTxDirectCurrentCell) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} UplinkTxDirectCurrentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_UplinkTxDirectCurrentList; +extern asn_SET_OF_specifics_t asn_SPC_UplinkTxDirectCurrentList_specs_1; +extern asn_TYPE_member_t asn_MBR_UplinkTxDirectCurrentList_1[1]; +extern asn_per_constraints_t asn_PER_type_UplinkTxDirectCurrentList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _UplinkTxDirectCurrentList_H_ */ +#include diff --git a/src/codec_utils/RRC/VarMeasConfig.c b/src/codec_utils/RRC/VarMeasConfig.c new file mode 100644 index 000000000..24ac4436c --- /dev/null +++ b/src/codec_utils/RRC/VarMeasConfig.c @@ -0,0 +1,153 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarMeasConfig.h" + +#include "MeasIdToAddModList.h" +#include "MeasObjectToAddModList.h" +#include "ReportConfigToAddModList.h" +#include "QuantityConfig.h" +static asn_oer_constraints_t asn_OER_type_s_MeasureConfig_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_s_MeasureConfig_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarMeasConfig__s_MeasureConfig, choice.ssb_RSRP), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ssb-RSRP" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarMeasConfig__s_MeasureConfig, choice.csi_RSRP), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RSRP_Range, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "csi-RSRP" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_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_s_MeasureConfig_specs_6 = { + sizeof(struct VarMeasConfig__s_MeasureConfig), + offsetof(struct VarMeasConfig__s_MeasureConfig, _asn_ctx), + offsetof(struct VarMeasConfig__s_MeasureConfig, present), + sizeof(((struct VarMeasConfig__s_MeasureConfig *)0)->present), + asn_MAP_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_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) */ + { &asn_OER_type_s_MeasureConfig_constr_6, &asn_PER_type_s_MeasureConfig_constr_6, CHOICE_constraint }, + asn_MBR_s_MeasureConfig_6, + 2, /* Elements count */ + &asn_SPC_s_MeasureConfig_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_VarMeasConfig_1[] = { + { ATF_POINTER, 5, offsetof(struct VarMeasConfig, measIdList), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasIdToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measIdList" + }, + { ATF_POINTER, 4, offsetof(struct VarMeasConfig, measObjectList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasObjectToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measObjectList" + }, + { ATF_POINTER, 3, offsetof(struct VarMeasConfig, reportConfigList), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ReportConfigToAddModList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "reportConfigList" + }, + { ATF_POINTER, 2, offsetof(struct VarMeasConfig, quantityConfig), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_QuantityConfig, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "quantityConfig" + }, + { ATF_POINTER, 1, offsetof(struct VarMeasConfig, s_MeasureConfig), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_s_MeasureConfig_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "s-MeasureConfig" + }, +}; +static const int asn_MAP_VarMeasConfig_oms_1[] = { 0, 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_VarMeasConfig_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_VarMeasConfig_specs_1 = { + sizeof(struct VarMeasConfig), + offsetof(struct VarMeasConfig, _asn_ctx), + asn_MAP_VarMeasConfig_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_VarMeasConfig_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VarMeasConfig = { + "VarMeasConfig", + "VarMeasConfig", + &asn_OP_SEQUENCE, + asn_DEF_VarMeasConfig_tags_1, + sizeof(asn_DEF_VarMeasConfig_tags_1) + /sizeof(asn_DEF_VarMeasConfig_tags_1[0]), /* 1 */ + asn_DEF_VarMeasConfig_tags_1, /* Same as above */ + sizeof(asn_DEF_VarMeasConfig_tags_1) + /sizeof(asn_DEF_VarMeasConfig_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VarMeasConfig_1, + 5, /* Elements count */ + &asn_SPC_VarMeasConfig_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarMeasConfig.h b/src/codec_utils/RRC/VarMeasConfig.h new file mode 100644 index 000000000..ccdfd6a35 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarMeasConfig_H_ +#define _VarMeasConfig_H_ + + +#include + +/* Including external dependencies */ +#include "RSRP-Range.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VarMeasConfig__s_MeasureConfig_PR { + VarMeasConfig__s_MeasureConfig_PR_NOTHING, /* No components present */ + VarMeasConfig__s_MeasureConfig_PR_ssb_RSRP, + VarMeasConfig__s_MeasureConfig_PR_csi_RSRP +} VarMeasConfig__s_MeasureConfig_PR; + +/* Forward declarations */ +struct MeasIdToAddModList; +struct MeasObjectToAddModList; +struct ReportConfigToAddModList; +struct QuantityConfig; + +/* VarMeasConfig */ +typedef struct VarMeasConfig { + struct MeasIdToAddModList *measIdList; /* OPTIONAL */ + struct MeasObjectToAddModList *measObjectList; /* OPTIONAL */ + struct ReportConfigToAddModList *reportConfigList; /* OPTIONAL */ + struct QuantityConfig *quantityConfig; /* OPTIONAL */ + struct VarMeasConfig__s_MeasureConfig { + VarMeasConfig__s_MeasureConfig_PR present; + union VarMeasConfig__s_MeasureConfig_u { + RSRP_Range_t ssb_RSRP; + 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; +} VarMeasConfig_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarMeasConfig; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarMeasConfig_H_ */ +#include diff --git a/src/codec_utils/RRC/VarMeasReport.c b/src/codec_utils/RRC/VarMeasReport.c new file mode 100644 index 000000000..f191cb5bf --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarMeasReport.h" + +#include "CellsTriggeredList.h" +asn_TYPE_member_t asn_MBR_VarMeasReport_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarMeasReport, measId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MeasId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "measId" + }, + { ATF_POINTER, 1, offsetof(struct VarMeasReport, cellsTriggeredList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellsTriggeredList, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cellsTriggeredList" + }, + { ATF_NOFLAGS, 0, offsetof(struct 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_VarMeasReport_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_VarMeasReport_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_VarMeasReport_specs_1 = { + sizeof(struct VarMeasReport), + offsetof(struct VarMeasReport, _asn_ctx), + asn_MAP_VarMeasReport_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_VarMeasReport_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VarMeasReport = { + "VarMeasReport", + "VarMeasReport", + &asn_OP_SEQUENCE, + asn_DEF_VarMeasReport_tags_1, + sizeof(asn_DEF_VarMeasReport_tags_1) + /sizeof(asn_DEF_VarMeasReport_tags_1[0]), /* 1 */ + asn_DEF_VarMeasReport_tags_1, /* Same as above */ + sizeof(asn_DEF_VarMeasReport_tags_1) + /sizeof(asn_DEF_VarMeasReport_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VarMeasReport_1, + 3, /* Elements count */ + &asn_SPC_VarMeasReport_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarMeasReport.h b/src/codec_utils/RRC/VarMeasReport.h new file mode 100644 index 000000000..e11cd3318 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarMeasReport_H_ +#define _VarMeasReport_H_ + + +#include + +/* Including external dependencies */ +#include "MeasId.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CellsTriggeredList; + +/* VarMeasReport */ +typedef struct VarMeasReport { + MeasId_t measId; + struct CellsTriggeredList *cellsTriggeredList; /* OPTIONAL */ + long numberOfReportsSent; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarMeasReport_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarMeasReport; +extern asn_SEQUENCE_specifics_t asn_SPC_VarMeasReport_specs_1; +extern asn_TYPE_member_t asn_MBR_VarMeasReport_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarMeasReport_H_ */ +#include diff --git a/src/codec_utils/RRC/VarMeasReportList.c b/src/codec_utils/RRC/VarMeasReportList.c new file mode 100644 index 000000000..29c545e12 --- /dev/null +++ b/src/codec_utils/RRC/VarMeasReportList.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-UE-Variables" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarMeasReportList.h" + +#include "VarMeasReport.h" +static asn_oer_constraints_t asn_OER_type_VarMeasReportList_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..64)) */}; +static asn_per_constraints_t asn_PER_type_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_VarMeasReportList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_VarMeasReport, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_VarMeasReportList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_VarMeasReportList_specs_1 = { + sizeof(struct VarMeasReportList), + offsetof(struct VarMeasReportList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_VarMeasReportList = { + "VarMeasReportList", + "VarMeasReportList", + &asn_OP_SEQUENCE_OF, + asn_DEF_VarMeasReportList_tags_1, + sizeof(asn_DEF_VarMeasReportList_tags_1) + /sizeof(asn_DEF_VarMeasReportList_tags_1[0]), /* 1 */ + asn_DEF_VarMeasReportList_tags_1, /* Same as above */ + sizeof(asn_DEF_VarMeasReportList_tags_1) + /sizeof(asn_DEF_VarMeasReportList_tags_1[0]), /* 1 */ + { &asn_OER_type_VarMeasReportList_constr_1, &asn_PER_type_VarMeasReportList_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_VarMeasReportList_1, + 1, /* Single element */ + &asn_SPC_VarMeasReportList_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarMeasReportList.h b/src/codec_utils/RRC/VarMeasReportList.h new file mode 100644 index 000000000..831cad2b8 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarMeasReportList_H_ +#define _VarMeasReportList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct VarMeasReport; + +/* VarMeasReportList */ +typedef struct VarMeasReportList { + A_SEQUENCE_OF(struct VarMeasReport) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarMeasReportList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarMeasReportList; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarMeasReportList_H_ */ +#include diff --git a/src/codec_utils/RRC/VarPendingRNA-Update.c b/src/codec_utils/RRC/VarPendingRNA-Update.c new file mode 100644 index 000000000..919b6dd6b --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarPendingRNA-Update.h" + +static asn_TYPE_member_t asn_MBR_VarPendingRNA_Update_1[] = { + { ATF_POINTER, 1, offsetof(struct 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_VarPendingRNA_Update_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_VarPendingRNA_Update_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_VarPendingRNA_Update_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pendingRNA-Update */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_VarPendingRNA_Update_specs_1 = { + sizeof(struct VarPendingRNA_Update), + offsetof(struct VarPendingRNA_Update, _asn_ctx), + asn_MAP_VarPendingRNA_Update_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_VarPendingRNA_Update_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VarPendingRNA_Update = { + "VarPendingRNA-Update", + "VarPendingRNA-Update", + &asn_OP_SEQUENCE, + asn_DEF_VarPendingRNA_Update_tags_1, + sizeof(asn_DEF_VarPendingRNA_Update_tags_1) + /sizeof(asn_DEF_VarPendingRNA_Update_tags_1[0]), /* 1 */ + asn_DEF_VarPendingRNA_Update_tags_1, /* Same as above */ + sizeof(asn_DEF_VarPendingRNA_Update_tags_1) + /sizeof(asn_DEF_VarPendingRNA_Update_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VarPendingRNA_Update_1, + 1, /* Elements count */ + &asn_SPC_VarPendingRNA_Update_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarPendingRNA-Update.h b/src/codec_utils/RRC/VarPendingRNA-Update.h new file mode 100644 index 000000000..6936320bd --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarPendingRNA_Update_H_ +#define _VarPendingRNA_Update_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VarPendingRNA-Update */ +typedef struct VarPendingRNA_Update { + BOOLEAN_t *pendingRNA_Update; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarPendingRNA_Update_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarPendingRNA_Update; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarPendingRNA_Update_H_ */ +#include diff --git a/src/codec_utils/RRC/VarResumeMAC-Input.c b/src/codec_utils/RRC/VarResumeMAC-Input.c new file mode 100644 index 000000000..be5b71412 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarResumeMAC-Input.h" + +static asn_TYPE_member_t asn_MBR_VarResumeMAC_Input_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarResumeMAC_Input, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarResumeMAC_Input, targetCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarResumeMAC_Input, source_c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "source-c-RNTI" + }, +}; +static const ber_tlv_tag_t asn_DEF_VarResumeMAC_Input_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_VarResumeMAC_Input_specs_1 = { + sizeof(struct VarResumeMAC_Input), + offsetof(struct VarResumeMAC_Input, _asn_ctx), + asn_MAP_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_VarResumeMAC_Input = { + "VarResumeMAC-Input", + "VarResumeMAC-Input", + &asn_OP_SEQUENCE, + asn_DEF_VarResumeMAC_Input_tags_1, + sizeof(asn_DEF_VarResumeMAC_Input_tags_1) + /sizeof(asn_DEF_VarResumeMAC_Input_tags_1[0]), /* 1 */ + asn_DEF_VarResumeMAC_Input_tags_1, /* Same as above */ + sizeof(asn_DEF_VarResumeMAC_Input_tags_1) + /sizeof(asn_DEF_VarResumeMAC_Input_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VarResumeMAC_Input_1, + 3, /* Elements count */ + &asn_SPC_VarResumeMAC_Input_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarResumeMAC-Input.h b/src/codec_utils/RRC/VarResumeMAC-Input.h new file mode 100644 index 000000000..7cda0decc --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarResumeMAC_Input_H_ +#define _VarResumeMAC_Input_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "CellIdentity.h" +#include "RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VarResumeMAC-Input */ +typedef struct VarResumeMAC_Input { + PhysCellId_t sourcePhysCellId; + CellIdentity_t targetCellIdentity; + RNTI_Value_t source_c_RNTI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarResumeMAC_Input_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarResumeMAC_Input; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarResumeMAC_Input_H_ */ +#include diff --git a/src/codec_utils/RRC/VarShortMAC-Input.c b/src/codec_utils/RRC/VarShortMAC-Input.c new file mode 100644 index 000000000..a4cbd9fea --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "VarShortMAC-Input.h" + +static asn_TYPE_member_t asn_MBR_VarShortMAC_Input_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct VarShortMAC_Input, sourcePhysCellId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_PhysCellId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "sourcePhysCellId" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarShortMAC_Input, targetCellIdentity), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CellIdentity, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "targetCellIdentity" + }, + { ATF_NOFLAGS, 0, offsetof(struct VarShortMAC_Input, source_c_RNTI), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RNTI_Value, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "source-c-RNTI" + }, +}; +static const ber_tlv_tag_t asn_DEF_VarShortMAC_Input_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_VarShortMAC_Input_specs_1 = { + sizeof(struct VarShortMAC_Input), + offsetof(struct VarShortMAC_Input, _asn_ctx), + asn_MAP_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_VarShortMAC_Input = { + "VarShortMAC-Input", + "VarShortMAC-Input", + &asn_OP_SEQUENCE, + asn_DEF_VarShortMAC_Input_tags_1, + sizeof(asn_DEF_VarShortMAC_Input_tags_1) + /sizeof(asn_DEF_VarShortMAC_Input_tags_1[0]), /* 1 */ + asn_DEF_VarShortMAC_Input_tags_1, /* Same as above */ + sizeof(asn_DEF_VarShortMAC_Input_tags_1) + /sizeof(asn_DEF_VarShortMAC_Input_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VarShortMAC_Input_1, + 3, /* Elements count */ + &asn_SPC_VarShortMAC_Input_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VarShortMAC-Input.h b/src/codec_utils/RRC/VarShortMAC-Input.h new file mode 100644 index 000000000..882656ba3 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VarShortMAC_Input_H_ +#define _VarShortMAC_Input_H_ + + +#include + +/* Including external dependencies */ +#include "PhysCellId.h" +#include "CellIdentity.h" +#include "RNTI-Value.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* VarShortMAC-Input */ +typedef struct VarShortMAC_Input { + PhysCellId_t sourcePhysCellId; + CellIdentity_t targetCellIdentity; + RNTI_Value_t source_c_RNTI; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} VarShortMAC_Input_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_VarShortMAC_Input; + +#ifdef __cplusplus +} +#endif + +#endif /* _VarShortMAC_Input_H_ */ +#include diff --git a/src/codec_utils/RRC/VictimSystemType.c b/src/codec_utils/RRC/VictimSystemType.c new file mode 100644 index 000000000..ddc357d14 --- /dev/null +++ b/src/codec_utils/RRC/VictimSystemType.c @@ -0,0 +1,384 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-InterNodeDefinitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "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_oer_constraints_t asn_OER_type_gps_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_glonass_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bds_constr_6 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_galileo_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_wlan_constr_10 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_bluetooth_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_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_gps_value2enum_2[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_gps_enum2value_2[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_gps_specs_2 = { + asn_MAP_gps_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_gps_2 = { + "gps", + "gps", + &asn_OP_NativeEnumerated, + asn_DEF_gps_tags_2, + sizeof(asn_DEF_gps_tags_2) + /sizeof(asn_DEF_gps_tags_2[0]) - 1, /* 1 */ + asn_DEF_gps_tags_2, /* Same as above */ + sizeof(asn_DEF_gps_tags_2) + /sizeof(asn_DEF_gps_tags_2[0]), /* 2 */ + { &asn_OER_type_gps_constr_2, &asn_PER_type_gps_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_gps_specs_2 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_glonass_value2enum_4[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_glonass_enum2value_4[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_glonass_specs_4 = { + asn_MAP_glonass_value2enum_4, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_glonass_4 = { + "glonass", + "glonass", + &asn_OP_NativeEnumerated, + asn_DEF_glonass_tags_4, + sizeof(asn_DEF_glonass_tags_4) + /sizeof(asn_DEF_glonass_tags_4[0]) - 1, /* 1 */ + asn_DEF_glonass_tags_4, /* Same as above */ + sizeof(asn_DEF_glonass_tags_4) + /sizeof(asn_DEF_glonass_tags_4[0]), /* 2 */ + { &asn_OER_type_glonass_constr_4, &asn_PER_type_glonass_constr_4, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_glonass_specs_4 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bds_value2enum_6[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_bds_enum2value_6[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bds_specs_6 = { + asn_MAP_bds_value2enum_6, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bds_6 = { + "bds", + "bds", + &asn_OP_NativeEnumerated, + asn_DEF_bds_tags_6, + sizeof(asn_DEF_bds_tags_6) + /sizeof(asn_DEF_bds_tags_6[0]) - 1, /* 1 */ + asn_DEF_bds_tags_6, /* Same as above */ + sizeof(asn_DEF_bds_tags_6) + /sizeof(asn_DEF_bds_tags_6[0]), /* 2 */ + { &asn_OER_type_bds_constr_6, &asn_PER_type_bds_constr_6, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bds_specs_6 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_galileo_value2enum_8[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_galileo_enum2value_8[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_galileo_specs_8 = { + asn_MAP_galileo_value2enum_8, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_galileo_8 = { + "galileo", + "galileo", + &asn_OP_NativeEnumerated, + asn_DEF_galileo_tags_8, + sizeof(asn_DEF_galileo_tags_8) + /sizeof(asn_DEF_galileo_tags_8[0]) - 1, /* 1 */ + asn_DEF_galileo_tags_8, /* Same as above */ + sizeof(asn_DEF_galileo_tags_8) + /sizeof(asn_DEF_galileo_tags_8[0]), /* 2 */ + { &asn_OER_type_galileo_constr_8, &asn_PER_type_galileo_constr_8, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_galileo_specs_8 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_wlan_value2enum_10[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_wlan_enum2value_10[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_wlan_specs_10 = { + asn_MAP_wlan_value2enum_10, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_wlan_10 = { + "wlan", + "wlan", + &asn_OP_NativeEnumerated, + asn_DEF_wlan_tags_10, + sizeof(asn_DEF_wlan_tags_10) + /sizeof(asn_DEF_wlan_tags_10[0]) - 1, /* 1 */ + asn_DEF_wlan_tags_10, /* Same as above */ + sizeof(asn_DEF_wlan_tags_10) + /sizeof(asn_DEF_wlan_tags_10[0]), /* 2 */ + { &asn_OER_type_wlan_constr_10, &asn_PER_type_wlan_constr_10, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_wlan_specs_10 /* Additional specs */ +}; + +static const asn_INTEGER_enum_map_t asn_MAP_bluetooth_value2enum_12[] = { + { 0, 4, "true" } +}; +static const unsigned int asn_MAP_bluetooth_enum2value_12[] = { + 0 /* true(0) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_bluetooth_specs_12 = { + asn_MAP_bluetooth_value2enum_12, /* "tag" => N; sorted by tag */ + asn_MAP_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_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_bluetooth_12 = { + "bluetooth", + "bluetooth", + &asn_OP_NativeEnumerated, + asn_DEF_bluetooth_tags_12, + sizeof(asn_DEF_bluetooth_tags_12) + /sizeof(asn_DEF_bluetooth_tags_12[0]) - 1, /* 1 */ + asn_DEF_bluetooth_tags_12, /* Same as above */ + sizeof(asn_DEF_bluetooth_tags_12) + /sizeof(asn_DEF_bluetooth_tags_12[0]), /* 2 */ + { &asn_OER_type_bluetooth_constr_12, &asn_PER_type_bluetooth_constr_12, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_bluetooth_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_VictimSystemType_1[] = { + { ATF_POINTER, 6, offsetof(struct VictimSystemType, gps), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_gps_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gps" + }, + { ATF_POINTER, 5, offsetof(struct VictimSystemType, glonass), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_glonass_4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "glonass" + }, + { ATF_POINTER, 4, offsetof(struct VictimSystemType, bds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bds_6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bds" + }, + { ATF_POINTER, 3, offsetof(struct VictimSystemType, galileo), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_galileo_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "galileo" + }, + { ATF_POINTER, 2, offsetof(struct VictimSystemType, wlan), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_wlan_10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "wlan" + }, + { ATF_POINTER, 1, offsetof(struct VictimSystemType, bluetooth), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_bluetooth_12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "bluetooth" + }, +}; +static const int asn_MAP_VictimSystemType_oms_1[] = { 0, 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_VictimSystemType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_VictimSystemType_specs_1 = { + sizeof(struct VictimSystemType), + offsetof(struct VictimSystemType, _asn_ctx), + asn_MAP_VictimSystemType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_VictimSystemType_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_VictimSystemType = { + "VictimSystemType", + "VictimSystemType", + &asn_OP_SEQUENCE, + asn_DEF_VictimSystemType_tags_1, + sizeof(asn_DEF_VictimSystemType_tags_1) + /sizeof(asn_DEF_VictimSystemType_tags_1[0]), /* 1 */ + asn_DEF_VictimSystemType_tags_1, /* Same as above */ + sizeof(asn_DEF_VictimSystemType_tags_1) + /sizeof(asn_DEF_VictimSystemType_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_VictimSystemType_1, + 6, /* Elements count */ + &asn_SPC_VictimSystemType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/VictimSystemType.h b/src/codec_utils/RRC/VictimSystemType.h new file mode 100644 index 000000000..2c0665c04 --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _VictimSystemType_H_ +#define _VictimSystemType_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum VictimSystemType__gps { + VictimSystemType__gps_true = 0 +} e_VictimSystemType__gps; +typedef enum VictimSystemType__glonass { + VictimSystemType__glonass_true = 0 +} e_VictimSystemType__glonass; +typedef enum VictimSystemType__bds { + VictimSystemType__bds_true = 0 +} e_VictimSystemType__bds; +typedef enum VictimSystemType__galileo { + VictimSystemType__galileo_true = 0 +} e_VictimSystemType__galileo; +typedef enum VictimSystemType__wlan { + VictimSystemType__wlan_true = 0 +} e_VictimSystemType__wlan; +typedef enum VictimSystemType__bluetooth { + VictimSystemType__bluetooth_true = 0 +} e_VictimSystemType__bluetooth; + +/* VictimSystemType */ +typedef struct 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; +} VictimSystemType_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_gps_2; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_glonass_4; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bds_6; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_galileo_8; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_wlan_10; // (Use -fall-defs-global to expose) */ +/* extern asn_TYPE_descriptor_t asn_DEF_bluetooth_12; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_VictimSystemType; +extern asn_SEQUENCE_specifics_t asn_SPC_VictimSystemType_specs_1; +extern asn_TYPE_member_t asn_MBR_VictimSystemType_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _VictimSystemType_H_ */ +#include diff --git a/src/codec_utils/RRC/ZP-CSI-RS-Resource.c b/src/codec_utils/RRC/ZP-CSI-RS-Resource.c new file mode 100644 index 000000000..abec66aff --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ZP-CSI-RS-Resource.h" + +#include "CSI-ResourcePeriodicityAndOffset.h" +asn_TYPE_member_t asn_MBR_ZP_CSI_RS_Resource_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ZP_CSI_RS_Resource, zp_CSI_RS_ResourceId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ZP_CSI_RS_Resource, resourceMapping), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CSI_RS_ResourceMapping, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "resourceMapping" + }, + { ATF_POINTER, 1, offsetof(struct ZP_CSI_RS_Resource, periodicityAndOffset), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CSI_ResourcePeriodicityAndOffset, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "periodicityAndOffset" + }, +}; +static const int asn_MAP_ZP_CSI_RS_Resource_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_ZP_CSI_RS_Resource_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ZP_CSI_RS_Resource_specs_1 = { + sizeof(struct ZP_CSI_RS_Resource), + offsetof(struct ZP_CSI_RS_Resource, _asn_ctx), + asn_MAP_ZP_CSI_RS_Resource_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_ZP_CSI_RS_Resource_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_Resource = { + "ZP-CSI-RS-Resource", + "ZP-CSI-RS-Resource", + &asn_OP_SEQUENCE, + asn_DEF_ZP_CSI_RS_Resource_tags_1, + sizeof(asn_DEF_ZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + asn_DEF_ZP_CSI_RS_Resource_tags_1, /* Same as above */ + sizeof(asn_DEF_ZP_CSI_RS_Resource_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_Resource_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ZP_CSI_RS_Resource_1, + 3, /* Elements count */ + &asn_SPC_ZP_CSI_RS_Resource_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ZP-CSI-RS-Resource.h b/src/codec_utils/RRC/ZP-CSI-RS-Resource.h new file mode 100644 index 000000000..edcff5def --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ZP_CSI_RS_Resource_H_ +#define _ZP_CSI_RS_Resource_H_ + + +#include + +/* Including external dependencies */ +#include "ZP-CSI-RS-ResourceId.h" +#include "CSI-RS-ResourceMapping.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct CSI_ResourcePeriodicityAndOffset; + +/* ZP-CSI-RS-Resource */ +typedef struct ZP_CSI_RS_Resource { + ZP_CSI_RS_ResourceId_t zp_CSI_RS_ResourceId; + CSI_RS_ResourceMapping_t resourceMapping; + struct CSI_ResourcePeriodicityAndOffset *periodicityAndOffset; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ZP_CSI_RS_Resource_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_Resource; +extern asn_SEQUENCE_specifics_t asn_SPC_ZP_CSI_RS_Resource_specs_1; +extern asn_TYPE_member_t asn_MBR_ZP_CSI_RS_Resource_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZP_CSI_RS_Resource_H_ */ +#include diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.c b/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.c new file mode 100644 index 000000000..d134f5272 --- /dev/null +++ b/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ZP-CSI-RS-ResourceId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ZP_CSI_RS_ResourceId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..31) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ZP_CSI_RS_ResourceId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_ResourceId = { + "ZP-CSI-RS-ResourceId", + "ZP-CSI-RS-ResourceId", + &asn_OP_NativeInteger, + asn_DEF_ZP_CSI_RS_ResourceId_tags_1, + sizeof(asn_DEF_ZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + asn_DEF_ZP_CSI_RS_ResourceId_tags_1, /* Same as above */ + sizeof(asn_DEF_ZP_CSI_RS_ResourceId_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceId_tags_1[0]), /* 1 */ + { &asn_OER_type_ZP_CSI_RS_ResourceId_constr_1, &asn_PER_type_ZP_CSI_RS_ResourceId_constr_1, ZP_CSI_RS_ResourceId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.h b/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.h new file mode 100644 index 000000000..7212e3958 --- /dev/null +++ b/src/codec_utils/RRC/ZP-CSI-RS-ResourceId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ZP_CSI_RS_ResourceId_H_ +#define _ZP_CSI_RS_ResourceId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZP-CSI-RS-ResourceId */ +typedef long ZP_CSI_RS_ResourceId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZP_CSI_RS_ResourceId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_ResourceId; +asn_struct_free_f ZP_CSI_RS_ResourceId_free; +asn_struct_print_f ZP_CSI_RS_ResourceId_print; +asn_constr_check_f ZP_CSI_RS_ResourceId_constraint; +ber_type_decoder_f ZP_CSI_RS_ResourceId_decode_ber; +der_type_encoder_f ZP_CSI_RS_ResourceId_encode_der; +xer_type_decoder_f ZP_CSI_RS_ResourceId_decode_xer; +xer_type_encoder_f ZP_CSI_RS_ResourceId_encode_xer; +oer_type_decoder_f ZP_CSI_RS_ResourceId_decode_oer; +oer_type_encoder_f ZP_CSI_RS_ResourceId_encode_oer; +per_type_decoder_f ZP_CSI_RS_ResourceId_decode_uper; +per_type_encoder_f ZP_CSI_RS_ResourceId_encode_uper; +per_type_decoder_f ZP_CSI_RS_ResourceId_decode_aper; +per_type_encoder_f ZP_CSI_RS_ResourceId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZP_CSI_RS_ResourceId_H_ */ +#include diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.c b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.c new file mode 100644 index 000000000..2bee5c913 --- /dev/null +++ b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.c @@ -0,0 +1,139 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ZP-CSI-RS-ResourceSet.h" + +static int +memb_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_oer_constraints_t asn_OER_type_zp_CSI_RS_ResourceIdList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_zp_CSI_RS_ResourceIdList_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..16)) */}; +static asn_per_constraints_t asn_PER_memb_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_zp_CSI_RS_ResourceIdList_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_ZP_CSI_RS_ResourceId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_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_zp_CSI_RS_ResourceIdList_specs_3 = { + sizeof(struct ZP_CSI_RS_ResourceSet__zp_CSI_RS_ResourceIdList), + offsetof(struct 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_zp_CSI_RS_ResourceIdList_3 = { + "zp-CSI-RS-ResourceIdList", + "zp-CSI-RS-ResourceIdList", + &asn_OP_SEQUENCE_OF, + asn_DEF_zp_CSI_RS_ResourceIdList_tags_3, + sizeof(asn_DEF_zp_CSI_RS_ResourceIdList_tags_3) + /sizeof(asn_DEF_zp_CSI_RS_ResourceIdList_tags_3[0]) - 1, /* 1 */ + asn_DEF_zp_CSI_RS_ResourceIdList_tags_3, /* Same as above */ + sizeof(asn_DEF_zp_CSI_RS_ResourceIdList_tags_3) + /sizeof(asn_DEF_zp_CSI_RS_ResourceIdList_tags_3[0]), /* 2 */ + { &asn_OER_type_zp_CSI_RS_ResourceIdList_constr_3, &asn_PER_type_zp_CSI_RS_ResourceIdList_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_zp_CSI_RS_ResourceIdList_3, + 1, /* Single element */ + &asn_SPC_zp_CSI_RS_ResourceIdList_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ZP_CSI_RS_ResourceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct ZP_CSI_RS_ResourceSet, zp_CSI_RS_ResourceSetId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ZP_CSI_RS_ResourceSetId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceSetId" + }, + { ATF_NOFLAGS, 0, offsetof(struct ZP_CSI_RS_ResourceSet, zp_CSI_RS_ResourceIdList), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_zp_CSI_RS_ResourceIdList_3, + 0, + { &asn_OER_memb_zp_CSI_RS_ResourceIdList_constr_3, &asn_PER_memb_zp_CSI_RS_ResourceIdList_constr_3, memb_zp_CSI_RS_ResourceIdList_constraint_1 }, + 0, 0, /* No default value */ + "zp-CSI-RS-ResourceIdList" + }, +}; +static const ber_tlv_tag_t asn_DEF_ZP_CSI_RS_ResourceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_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_ZP_CSI_RS_ResourceSet_specs_1 = { + sizeof(struct ZP_CSI_RS_ResourceSet), + offsetof(struct ZP_CSI_RS_ResourceSet, _asn_ctx), + asn_MAP_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_ZP_CSI_RS_ResourceSet = { + "ZP-CSI-RS-ResourceSet", + "ZP-CSI-RS-ResourceSet", + &asn_OP_SEQUENCE, + asn_DEF_ZP_CSI_RS_ResourceSet_tags_1, + sizeof(asn_DEF_ZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + asn_DEF_ZP_CSI_RS_ResourceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_ZP_CSI_RS_ResourceSet_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceSet_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_ZP_CSI_RS_ResourceSet_1, + 2, /* Elements count */ + &asn_SPC_ZP_CSI_RS_ResourceSet_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.h b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSet.h new file mode 100644 index 000000000..db2f9756a --- /dev/null +++ b/src/codec_utils/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 "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ZP_CSI_RS_ResourceSet_H_ +#define _ZP_CSI_RS_ResourceSet_H_ + + +#include + +/* Including external dependencies */ +#include "ZP-CSI-RS-ResourceSetId.h" +#include "ZP-CSI-RS-ResourceId.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZP-CSI-RS-ResourceSet */ +typedef struct ZP_CSI_RS_ResourceSet { + ZP_CSI_RS_ResourceSetId_t zp_CSI_RS_ResourceSetId; + struct ZP_CSI_RS_ResourceSet__zp_CSI_RS_ResourceIdList { + A_SEQUENCE_OF(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; +} ZP_CSI_RS_ResourceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_ResourceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_ZP_CSI_RS_ResourceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_ZP_CSI_RS_ResourceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZP_CSI_RS_ResourceSet_H_ */ +#include diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.c b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.c new file mode 100644 index 000000000..16faf56da --- /dev/null +++ b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "ZP-CSI-RS-ResourceSetId.h" + +int +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. + */ +static asn_oer_constraints_t asn_OER_type_ZP_CSI_RS_ResourceSetId_constr_1 CC_NOTUSED = { + { 1, 1 } /* (0..15) */, + -1}; +asn_per_constraints_t asn_PER_type_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_ZP_CSI_RS_ResourceSetId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_ResourceSetId = { + "ZP-CSI-RS-ResourceSetId", + "ZP-CSI-RS-ResourceSetId", + &asn_OP_NativeInteger, + asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1, + sizeof(asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1, /* Same as above */ + sizeof(asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1) + /sizeof(asn_DEF_ZP_CSI_RS_ResourceSetId_tags_1[0]), /* 1 */ + { &asn_OER_type_ZP_CSI_RS_ResourceSetId_constr_1, &asn_PER_type_ZP_CSI_RS_ResourceSetId_constr_1, ZP_CSI_RS_ResourceSetId_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.h b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.h new file mode 100644 index 000000000..4c2da901a --- /dev/null +++ b/src/codec_utils/RRC/ZP-CSI-RS-ResourceSetId.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "NR-RRC-Definitions" + * found in "../../../rrc_15.5.1_asn.asn1" + * `asn1c -D ./rrc_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _ZP_CSI_RS_ResourceSetId_H_ +#define _ZP_CSI_RS_ResourceSetId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ZP-CSI-RS-ResourceSetId */ +typedef long ZP_CSI_RS_ResourceSetId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_ZP_CSI_RS_ResourceSetId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ZP_CSI_RS_ResourceSetId; +asn_struct_free_f ZP_CSI_RS_ResourceSetId_free; +asn_struct_print_f ZP_CSI_RS_ResourceSetId_print; +asn_constr_check_f ZP_CSI_RS_ResourceSetId_constraint; +ber_type_decoder_f ZP_CSI_RS_ResourceSetId_decode_ber; +der_type_encoder_f ZP_CSI_RS_ResourceSetId_encode_der; +xer_type_decoder_f ZP_CSI_RS_ResourceSetId_decode_xer; +xer_type_encoder_f ZP_CSI_RS_ResourceSetId_encode_xer; +oer_type_decoder_f ZP_CSI_RS_ResourceSetId_decode_oer; +oer_type_encoder_f ZP_CSI_RS_ResourceSetId_encode_oer; +per_type_decoder_f ZP_CSI_RS_ResourceSetId_decode_uper; +per_type_encoder_f ZP_CSI_RS_ResourceSetId_encode_uper; +per_type_decoder_f ZP_CSI_RS_ResourceSetId_decode_aper; +per_type_encoder_f ZP_CSI_RS_ResourceSetId_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _ZP_CSI_RS_ResourceSetId_H_ */ +#include diff --git a/src/codec_utils/SYSINFO/ARFCN-ValueNR.c b/src/codec_utils/SYSINFO/ARFCN-ValueNR.c deleted file mode 100644 index f7b9ac989..000000000 --- a/src/codec_utils/SYSINFO/ARFCN-ValueNR.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "ARFCN-ValueNR.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_ARFCN_ValueNR_constr_1 CC_NOTUSED = { - { 4, 1 } /* (0..3279165) */, - -1}; -asn_per_constraints_t asn_PER_type_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_ARFCN_ValueNR_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueNR = { - "ARFCN-ValueNR", - "ARFCN-ValueNR", - &asn_OP_NativeInteger, - asn_DEF_ARFCN_ValueNR_tags_1, - sizeof(asn_DEF_ARFCN_ValueNR_tags_1) - /sizeof(asn_DEF_ARFCN_ValueNR_tags_1[0]), /* 1 */ - asn_DEF_ARFCN_ValueNR_tags_1, /* Same as above */ - sizeof(asn_DEF_ARFCN_ValueNR_tags_1) - /sizeof(asn_DEF_ARFCN_ValueNR_tags_1[0]), /* 1 */ - { &asn_OER_type_ARFCN_ValueNR_constr_1, &asn_PER_type_ARFCN_ValueNR_constr_1, ARFCN_ValueNR_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/ARFCN-ValueNR.h b/src/codec_utils/SYSINFO/ARFCN-ValueNR.h deleted file mode 100644 index 674607c69..000000000 --- a/src/codec_utils/SYSINFO/ARFCN-ValueNR.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ARFCN_ValueNR_H_ -#define _ARFCN_ValueNR_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ARFCN-ValueNR */ -typedef long ARFCN_ValueNR_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ARFCN_ValueNR_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ARFCN_ValueNR; -asn_struct_free_f ARFCN_ValueNR_free; -asn_struct_print_f ARFCN_ValueNR_print; -asn_constr_check_f ARFCN_ValueNR_constraint; -ber_type_decoder_f ARFCN_ValueNR_decode_ber; -der_type_encoder_f ARFCN_ValueNR_encode_der; -xer_type_decoder_f ARFCN_ValueNR_decode_xer; -xer_type_encoder_f ARFCN_ValueNR_encode_xer; -oer_type_decoder_f ARFCN_ValueNR_decode_oer; -oer_type_encoder_f ARFCN_ValueNR_encode_oer; -per_type_decoder_f ARFCN_ValueNR_decode_uper; -per_type_encoder_f ARFCN_ValueNR_encode_uper; -per_type_decoder_f ARFCN_ValueNR_decode_aper; -per_type_encoder_f ARFCN_ValueNR_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ARFCN_ValueNR_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.c b/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.c deleted file mode 100644 index 13c23baac..000000000 --- a/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "AdditionalSpectrumEmission.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_AdditionalSpectrumEmission_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..7) */, - -1}; -asn_per_constraints_t asn_PER_type_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_AdditionalSpectrumEmission_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_AdditionalSpectrumEmission = { - "AdditionalSpectrumEmission", - "AdditionalSpectrumEmission", - &asn_OP_NativeInteger, - asn_DEF_AdditionalSpectrumEmission_tags_1, - sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1) - /sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ - asn_DEF_AdditionalSpectrumEmission_tags_1, /* Same as above */ - sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1) - /sizeof(asn_DEF_AdditionalSpectrumEmission_tags_1[0]), /* 1 */ - { &asn_OER_type_AdditionalSpectrumEmission_constr_1, &asn_PER_type_AdditionalSpectrumEmission_constr_1, AdditionalSpectrumEmission_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.h b/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.h deleted file mode 100644 index d2d1de9fb..000000000 --- a/src/codec_utils/SYSINFO/AdditionalSpectrumEmission.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _AdditionalSpectrumEmission_H_ -#define _AdditionalSpectrumEmission_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* AdditionalSpectrumEmission */ -typedef long AdditionalSpectrumEmission_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_AdditionalSpectrumEmission_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_AdditionalSpectrumEmission; -asn_struct_free_f AdditionalSpectrumEmission_free; -asn_struct_print_f AdditionalSpectrumEmission_print; -asn_constr_check_f AdditionalSpectrumEmission_constraint; -ber_type_decoder_f AdditionalSpectrumEmission_decode_ber; -der_type_encoder_f AdditionalSpectrumEmission_encode_der; -xer_type_decoder_f AdditionalSpectrumEmission_decode_xer; -xer_type_encoder_f AdditionalSpectrumEmission_encode_xer; -oer_type_decoder_f AdditionalSpectrumEmission_decode_oer; -oer_type_encoder_f AdditionalSpectrumEmission_encode_oer; -per_type_decoder_f AdditionalSpectrumEmission_decode_uper; -per_type_encoder_f AdditionalSpectrumEmission_encode_uper; -per_type_decoder_f AdditionalSpectrumEmission_decode_aper; -per_type_encoder_f AdditionalSpectrumEmission_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _AdditionalSpectrumEmission_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BCCH-BCH-Message.c b/src/codec_utils/SYSINFO/BCCH-BCH-Message.c deleted file mode 100644 index 3bd07f1c5..000000000 --- a/src/codec_utils/SYSINFO/BCCH-BCH-Message.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./mib_sib_out/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BCCH-BCH-Message.h" - -static asn_TYPE_member_t asn_MBR_BCCH_BCH_Message_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BCCH_BCH_Message, message), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_BCCH_BCH_MessageType, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "message" - }, -}; -static const ber_tlv_tag_t asn_DEF_BCCH_BCH_Message_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BCCH_BCH_Message_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* message */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_BCCH_BCH_Message_specs_1 = { - sizeof(struct BCCH_BCH_Message), - offsetof(struct BCCH_BCH_Message, _asn_ctx), - asn_MAP_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_BCCH_BCH_Message = { - "BCCH-BCH-Message", - "BCCH-BCH-Message", - &asn_OP_SEQUENCE, - asn_DEF_BCCH_BCH_Message_tags_1, - sizeof(asn_DEF_BCCH_BCH_Message_tags_1) - /sizeof(asn_DEF_BCCH_BCH_Message_tags_1[0]), /* 1 */ - asn_DEF_BCCH_BCH_Message_tags_1, /* Same as above */ - sizeof(asn_DEF_BCCH_BCH_Message_tags_1) - /sizeof(asn_DEF_BCCH_BCH_Message_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BCCH_BCH_Message_1, - 1, /* Elements count */ - &asn_SPC_BCCH_BCH_Message_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BCCH-BCH-Message.h b/src/codec_utils/SYSINFO/BCCH-BCH-Message.h deleted file mode 100644 index d8b3564b7..000000000 --- a/src/codec_utils/SYSINFO/BCCH-BCH-Message.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./mib_sib_out/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BCCH_BCH_Message_H_ -#define _BCCH_BCH_Message_H_ - - -#include - -/* Including external dependencies */ -#include "BCCH-BCH-MessageType.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* BCCH-BCH-Message */ -typedef struct BCCH_BCH_Message { - BCCH_BCH_MessageType_t message; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BCCH_BCH_Message_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BCCH_BCH_Message; - -#ifdef __cplusplus -} -#endif - -#endif /* _BCCH_BCH_Message_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.c b/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.c deleted file mode 100644 index d609a0a61..000000000 --- a/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./mib_sib_out/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BCCH-BCH-MessageType.h" - -#include "MIB.h" -static asn_oer_constraints_t asn_OER_type_BCCH_BCH_MessageType_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_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_messageClassExtension_tags_3[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SEQUENCE_specifics_t asn_SPC_messageClassExtension_specs_3 = { - sizeof(struct BCCH_BCH_MessageType__messageClassExtension), - offsetof(struct 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_messageClassExtension_3 = { - "messageClassExtension", - "messageClassExtension", - &asn_OP_SEQUENCE, - asn_DEF_messageClassExtension_tags_3, - sizeof(asn_DEF_messageClassExtension_tags_3) - /sizeof(asn_DEF_messageClassExtension_tags_3[0]) - 1, /* 1 */ - asn_DEF_messageClassExtension_tags_3, /* Same as above */ - sizeof(asn_DEF_messageClassExtension_tags_3) - /sizeof(asn_DEF_messageClassExtension_tags_3[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - 0, 0, /* No members */ - &asn_SPC_messageClassExtension_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BCCH_BCH_MessageType_1[] = { - { ATF_POINTER, 0, offsetof(struct BCCH_BCH_MessageType, choice.mib), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mib" - }, - { ATF_POINTER, 0, offsetof(struct BCCH_BCH_MessageType, choice.messageClassExtension), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_messageClassExtension_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "messageClassExtension" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_BCCH_BCH_MessageType_specs_1 = { - sizeof(struct BCCH_BCH_MessageType), - offsetof(struct BCCH_BCH_MessageType, _asn_ctx), - offsetof(struct BCCH_BCH_MessageType, present), - sizeof(((struct BCCH_BCH_MessageType *)0)->present), - asn_MAP_BCCH_BCH_MessageType_tag2el_1, - 2, /* Count of tags in the map */ - 0, 0, - -1 /* Extensions start */ -}; -asn_TYPE_descriptor_t asn_DEF_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) */ - { &asn_OER_type_BCCH_BCH_MessageType_constr_1, &asn_PER_type_BCCH_BCH_MessageType_constr_1, CHOICE_constraint }, - asn_MBR_BCCH_BCH_MessageType_1, - 2, /* Elements count */ - &asn_SPC_BCCH_BCH_MessageType_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.h b/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.h deleted file mode 100644 index 656c94d1b..000000000 --- a/src/codec_utils/SYSINFO/BCCH-BCH-MessageType.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./mib_sib_out/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BCCH_BCH_MessageType_H_ -#define _BCCH_BCH_MessageType_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BCCH_BCH_MessageType_PR { - BCCH_BCH_MessageType_PR_NOTHING, /* No components present */ - BCCH_BCH_MessageType_PR_mib, - BCCH_BCH_MessageType_PR_messageClassExtension -} BCCH_BCH_MessageType_PR; - -/* Forward declarations */ -struct MIB; - -/* BCCH-BCH-MessageType */ -typedef struct BCCH_BCH_MessageType { - BCCH_BCH_MessageType_PR present; - union BCCH_BCH_MessageType_u { - struct MIB *mib; - struct 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; -} BCCH_BCH_MessageType_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BCCH_BCH_MessageType; -extern asn_CHOICE_specifics_t asn_SPC_BCCH_BCH_MessageType_specs_1; -extern asn_TYPE_member_t asn_MBR_BCCH_BCH_MessageType_1[2]; -extern asn_per_constraints_t asn_PER_type_BCCH_BCH_MessageType_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _BCCH_BCH_MessageType_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BCCH-Config.c b/src/codec_utils/SYSINFO/BCCH-Config.c deleted file mode 100644 index 880125095..000000000 --- a/src/codec_utils/SYSINFO/BCCH-Config.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BCCH-Config.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_modificationPeriodCoeff_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_modificationPeriodCoeff_value2enum_2[] = { - { 0, 2, "n2" }, - { 1, 2, "n4" }, - { 2, 2, "n8" }, - { 3, 3, "n16" } -}; -static const unsigned int asn_MAP_modificationPeriodCoeff_enum2value_2[] = { - 3, /* n16(3) */ - 0, /* n2(0) */ - 1, /* n4(1) */ - 2 /* n8(2) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_modificationPeriodCoeff_specs_2 = { - asn_MAP_modificationPeriodCoeff_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_modificationPeriodCoeff_2 = { - "modificationPeriodCoeff", - "modificationPeriodCoeff", - &asn_OP_NativeEnumerated, - asn_DEF_modificationPeriodCoeff_tags_2, - sizeof(asn_DEF_modificationPeriodCoeff_tags_2) - /sizeof(asn_DEF_modificationPeriodCoeff_tags_2[0]) - 1, /* 1 */ - asn_DEF_modificationPeriodCoeff_tags_2, /* Same as above */ - sizeof(asn_DEF_modificationPeriodCoeff_tags_2) - /sizeof(asn_DEF_modificationPeriodCoeff_tags_2[0]), /* 2 */ - { &asn_OER_type_modificationPeriodCoeff_constr_2, &asn_PER_type_modificationPeriodCoeff_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_modificationPeriodCoeff_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BCCH_Config_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BCCH_Config, modificationPeriodCoeff), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_modificationPeriodCoeff_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "modificationPeriodCoeff" - }, -}; -static const ber_tlv_tag_t asn_DEF_BCCH_Config_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_BCCH_Config_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* modificationPeriodCoeff */ -}; -asn_SEQUENCE_specifics_t asn_SPC_BCCH_Config_specs_1 = { - sizeof(struct BCCH_Config), - offsetof(struct BCCH_Config, _asn_ctx), - asn_MAP_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_BCCH_Config = { - "BCCH-Config", - "BCCH-Config", - &asn_OP_SEQUENCE, - asn_DEF_BCCH_Config_tags_1, - sizeof(asn_DEF_BCCH_Config_tags_1) - /sizeof(asn_DEF_BCCH_Config_tags_1[0]), /* 1 */ - asn_DEF_BCCH_Config_tags_1, /* Same as above */ - sizeof(asn_DEF_BCCH_Config_tags_1) - /sizeof(asn_DEF_BCCH_Config_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BCCH_Config_1, - 1, /* Elements count */ - &asn_SPC_BCCH_Config_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BCCH-Config.h b/src/codec_utils/SYSINFO/BCCH-Config.h deleted file mode 100644 index cbb229662..000000000 --- a/src/codec_utils/SYSINFO/BCCH-Config.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BCCH_Config_H_ -#define _BCCH_Config_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BCCH_Config__modificationPeriodCoeff { - BCCH_Config__modificationPeriodCoeff_n2 = 0, - BCCH_Config__modificationPeriodCoeff_n4 = 1, - BCCH_Config__modificationPeriodCoeff_n8 = 2, - BCCH_Config__modificationPeriodCoeff_n16 = 3 -} e_BCCH_Config__modificationPeriodCoeff; - -/* BCCH-Config */ -typedef struct BCCH_Config { - long modificationPeriodCoeff; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BCCH_Config_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_modificationPeriodCoeff_2; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_BCCH_Config; -extern asn_SEQUENCE_specifics_t asn_SPC_BCCH_Config_specs_1; -extern asn_TYPE_member_t asn_MBR_BCCH_Config_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BCCH_Config_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BWP-DownlinkCommon.c b/src/codec_utils/SYSINFO/BWP-DownlinkCommon.c deleted file mode 100644 index 12a08bb4d..000000000 --- a/src/codec_utils/SYSINFO/BWP-DownlinkCommon.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BWP-DownlinkCommon.h" - -#include "PDCCH-ConfigCommon.h" -#include "PDSCH-ConfigCommon.h" -static asn_oer_constraints_t asn_OER_type_pdcch_ConfigCommon_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_pdcch_ConfigCommon_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_oer_constraints_t asn_OER_type_pdsch_ConfigCommon_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_pdsch_ConfigCommon_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_pdcch_ConfigCommon_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon__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 BWP_DownlinkCommon__pdcch_ConfigCommon, choice.setup), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDCCH_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_pdcch_ConfigCommon_tag2el_3[] = { - { (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_pdcch_ConfigCommon_specs_3 = { - sizeof(struct BWP_DownlinkCommon__pdcch_ConfigCommon), - offsetof(struct BWP_DownlinkCommon__pdcch_ConfigCommon, _asn_ctx), - offsetof(struct BWP_DownlinkCommon__pdcch_ConfigCommon, present), - sizeof(((struct BWP_DownlinkCommon__pdcch_ConfigCommon *)0)->present), - asn_MAP_pdcch_ConfigCommon_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_pdcch_ConfigCommon_3 = { - "pdcch-ConfigCommon", - "pdcch-ConfigCommon", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_pdcch_ConfigCommon_constr_3, &asn_PER_type_pdcch_ConfigCommon_constr_3, CHOICE_constraint }, - asn_MBR_pdcch_ConfigCommon_3, - 2, /* Elements count */ - &asn_SPC_pdcch_ConfigCommon_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_pdsch_ConfigCommon_6[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon__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 BWP_DownlinkCommon__pdsch_ConfigCommon, choice.setup), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDSCH_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_pdsch_ConfigCommon_tag2el_6[] = { - { (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_pdsch_ConfigCommon_specs_6 = { - sizeof(struct BWP_DownlinkCommon__pdsch_ConfigCommon), - offsetof(struct BWP_DownlinkCommon__pdsch_ConfigCommon, _asn_ctx), - offsetof(struct BWP_DownlinkCommon__pdsch_ConfigCommon, present), - sizeof(((struct BWP_DownlinkCommon__pdsch_ConfigCommon *)0)->present), - asn_MAP_pdsch_ConfigCommon_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_pdsch_ConfigCommon_6 = { - "pdsch-ConfigCommon", - "pdsch-ConfigCommon", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_pdsch_ConfigCommon_constr_6, &asn_PER_type_pdsch_ConfigCommon_constr_6, CHOICE_constraint }, - asn_MBR_pdsch_ConfigCommon_6, - 2, /* Elements count */ - &asn_SPC_pdsch_ConfigCommon_specs_6 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BWP_DownlinkCommon_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_DownlinkCommon, genericParameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BWP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "genericParameters" - }, - { ATF_POINTER, 2, offsetof(struct BWP_DownlinkCommon, pdcch_ConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_pdcch_ConfigCommon_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pdcch-ConfigCommon" - }, - { ATF_POINTER, 1, offsetof(struct BWP_DownlinkCommon, pdsch_ConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_pdsch_ConfigCommon_6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pdsch-ConfigCommon" - }, -}; -static const int asn_MAP_BWP_DownlinkCommon_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_BWP_DownlinkCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_BWP_DownlinkCommon_specs_1 = { - sizeof(struct BWP_DownlinkCommon), - offsetof(struct BWP_DownlinkCommon, _asn_ctx), - asn_MAP_BWP_DownlinkCommon_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_BWP_DownlinkCommon_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkCommon = { - "BWP-DownlinkCommon", - "BWP-DownlinkCommon", - &asn_OP_SEQUENCE, - asn_DEF_BWP_DownlinkCommon_tags_1, - sizeof(asn_DEF_BWP_DownlinkCommon_tags_1) - /sizeof(asn_DEF_BWP_DownlinkCommon_tags_1[0]), /* 1 */ - asn_DEF_BWP_DownlinkCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_BWP_DownlinkCommon_tags_1) - /sizeof(asn_DEF_BWP_DownlinkCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BWP_DownlinkCommon_1, - 3, /* Elements count */ - &asn_SPC_BWP_DownlinkCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BWP-DownlinkCommon.h b/src/codec_utils/SYSINFO/BWP-DownlinkCommon.h deleted file mode 100644 index 52089d1ea..000000000 --- a/src/codec_utils/SYSINFO/BWP-DownlinkCommon.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BWP_DownlinkCommon_H_ -#define _BWP_DownlinkCommon_H_ - - -#include - -/* Including external dependencies */ -#include "BWP.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BWP_DownlinkCommon__pdcch_ConfigCommon_PR { - BWP_DownlinkCommon__pdcch_ConfigCommon_PR_NOTHING, /* No components present */ - BWP_DownlinkCommon__pdcch_ConfigCommon_PR_release, - BWP_DownlinkCommon__pdcch_ConfigCommon_PR_setup -} BWP_DownlinkCommon__pdcch_ConfigCommon_PR; -typedef enum BWP_DownlinkCommon__pdsch_ConfigCommon_PR { - BWP_DownlinkCommon__pdsch_ConfigCommon_PR_NOTHING, /* No components present */ - BWP_DownlinkCommon__pdsch_ConfigCommon_PR_release, - BWP_DownlinkCommon__pdsch_ConfigCommon_PR_setup -} BWP_DownlinkCommon__pdsch_ConfigCommon_PR; - -/* Forward declarations */ -struct PDCCH_ConfigCommon; -struct PDSCH_ConfigCommon; - -/* BWP-DownlinkCommon */ -typedef struct BWP_DownlinkCommon { - BWP_t genericParameters; - struct BWP_DownlinkCommon__pdcch_ConfigCommon { - BWP_DownlinkCommon__pdcch_ConfigCommon_PR present; - union BWP_DownlinkCommon__pdcch_ConfigCommon_u { - NULL_t release; - struct PDCCH_ConfigCommon *setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *pdcch_ConfigCommon; - struct BWP_DownlinkCommon__pdsch_ConfigCommon { - BWP_DownlinkCommon__pdsch_ConfigCommon_PR present; - union BWP_DownlinkCommon__pdsch_ConfigCommon_u { - NULL_t release; - struct PDSCH_ConfigCommon *setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *pdsch_ConfigCommon; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BWP_DownlinkCommon_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BWP_DownlinkCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_BWP_DownlinkCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_BWP_DownlinkCommon_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BWP_DownlinkCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BWP-UplinkCommon.c b/src/codec_utils/SYSINFO/BWP-UplinkCommon.c deleted file mode 100644 index 1d1312be2..000000000 --- a/src/codec_utils/SYSINFO/BWP-UplinkCommon.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BWP-UplinkCommon.h" - -#include "RACH-ConfigCommon.h" -#include "PUSCH-ConfigCommon.h" -#include "PUCCH-ConfigCommon.h" -static asn_oer_constraints_t asn_OER_type_rach_ConfigCommon_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_rach_ConfigCommon_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_oer_constraints_t asn_OER_type_pusch_ConfigCommon_constr_6 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_pusch_ConfigCommon_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_oer_constraints_t asn_OER_type_pucch_ConfigCommon_constr_9 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_pucch_ConfigCommon_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_TYPE_member_t asn_MBR_rach_ConfigCommon_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__rach_ConfigCommon, choice.setup), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RACH_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_rach_ConfigCommon_tag2el_3[] = { - { (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_rach_ConfigCommon_specs_3 = { - sizeof(struct BWP_UplinkCommon__rach_ConfigCommon), - offsetof(struct BWP_UplinkCommon__rach_ConfigCommon, _asn_ctx), - offsetof(struct BWP_UplinkCommon__rach_ConfigCommon, present), - sizeof(((struct BWP_UplinkCommon__rach_ConfigCommon *)0)->present), - asn_MAP_rach_ConfigCommon_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_rach_ConfigCommon_3 = { - "rach-ConfigCommon", - "rach-ConfigCommon", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_rach_ConfigCommon_constr_3, &asn_PER_type_rach_ConfigCommon_constr_3, CHOICE_constraint }, - asn_MBR_rach_ConfigCommon_3, - 2, /* Elements count */ - &asn_SPC_rach_ConfigCommon_specs_3 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_pusch_ConfigCommon_6[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__pusch_ConfigCommon, choice.setup), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PUSCH_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_pusch_ConfigCommon_tag2el_6[] = { - { (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_pusch_ConfigCommon_specs_6 = { - sizeof(struct BWP_UplinkCommon__pusch_ConfigCommon), - offsetof(struct BWP_UplinkCommon__pusch_ConfigCommon, _asn_ctx), - offsetof(struct BWP_UplinkCommon__pusch_ConfigCommon, present), - sizeof(((struct BWP_UplinkCommon__pusch_ConfigCommon *)0)->present), - asn_MAP_pusch_ConfigCommon_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_pusch_ConfigCommon_6 = { - "pusch-ConfigCommon", - "pusch-ConfigCommon", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_pusch_ConfigCommon_constr_6, &asn_PER_type_pusch_ConfigCommon_constr_6, CHOICE_constraint }, - asn_MBR_pusch_ConfigCommon_6, - 2, /* Elements count */ - &asn_SPC_pusch_ConfigCommon_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_pucch_ConfigCommon_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon__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 BWP_UplinkCommon__pucch_ConfigCommon, choice.setup), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PUCCH_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "setup" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_pucch_ConfigCommon_tag2el_9[] = { - { (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_pucch_ConfigCommon_specs_9 = { - sizeof(struct BWP_UplinkCommon__pucch_ConfigCommon), - offsetof(struct BWP_UplinkCommon__pucch_ConfigCommon, _asn_ctx), - offsetof(struct BWP_UplinkCommon__pucch_ConfigCommon, present), - sizeof(((struct BWP_UplinkCommon__pucch_ConfigCommon *)0)->present), - asn_MAP_pucch_ConfigCommon_tag2el_9, - 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_pucch_ConfigCommon_9 = { - "pucch-ConfigCommon", - "pucch-ConfigCommon", - &asn_OP_CHOICE, - 0, /* No effective tags (pointer) */ - 0, /* No effective tags (count) */ - 0, /* No tags (pointer) */ - 0, /* No tags (count) */ - { &asn_OER_type_pucch_ConfigCommon_constr_9, &asn_PER_type_pucch_ConfigCommon_constr_9, CHOICE_constraint }, - asn_MBR_pucch_ConfigCommon_9, - 2, /* Elements count */ - &asn_SPC_pucch_ConfigCommon_specs_9 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BWP_UplinkCommon_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP_UplinkCommon, genericParameters), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BWP, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "genericParameters" - }, - { ATF_POINTER, 3, offsetof(struct BWP_UplinkCommon, rach_ConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_rach_ConfigCommon_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rach-ConfigCommon" - }, - { ATF_POINTER, 2, offsetof(struct BWP_UplinkCommon, pusch_ConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_pusch_ConfigCommon_6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pusch-ConfigCommon" - }, - { ATF_POINTER, 1, offsetof(struct BWP_UplinkCommon, pucch_ConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_pucch_ConfigCommon_9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pucch-ConfigCommon" - }, -}; -static const int asn_MAP_BWP_UplinkCommon_oms_1[] = { 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_BWP_UplinkCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_BWP_UplinkCommon_specs_1 = { - sizeof(struct BWP_UplinkCommon), - offsetof(struct BWP_UplinkCommon, _asn_ctx), - asn_MAP_BWP_UplinkCommon_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_BWP_UplinkCommon_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BWP_UplinkCommon = { - "BWP-UplinkCommon", - "BWP-UplinkCommon", - &asn_OP_SEQUENCE, - asn_DEF_BWP_UplinkCommon_tags_1, - sizeof(asn_DEF_BWP_UplinkCommon_tags_1) - /sizeof(asn_DEF_BWP_UplinkCommon_tags_1[0]), /* 1 */ - asn_DEF_BWP_UplinkCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_BWP_UplinkCommon_tags_1) - /sizeof(asn_DEF_BWP_UplinkCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BWP_UplinkCommon_1, - 4, /* Elements count */ - &asn_SPC_BWP_UplinkCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BWP-UplinkCommon.h b/src/codec_utils/SYSINFO/BWP-UplinkCommon.h deleted file mode 100644 index 978d9c34c..000000000 --- a/src/codec_utils/SYSINFO/BWP-UplinkCommon.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BWP_UplinkCommon_H_ -#define _BWP_UplinkCommon_H_ - - -#include - -/* Including external dependencies */ -#include "BWP.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BWP_UplinkCommon__rach_ConfigCommon_PR { - BWP_UplinkCommon__rach_ConfigCommon_PR_NOTHING, /* No components present */ - BWP_UplinkCommon__rach_ConfigCommon_PR_release, - BWP_UplinkCommon__rach_ConfigCommon_PR_setup -} BWP_UplinkCommon__rach_ConfigCommon_PR; -typedef enum BWP_UplinkCommon__pusch_ConfigCommon_PR { - BWP_UplinkCommon__pusch_ConfigCommon_PR_NOTHING, /* No components present */ - BWP_UplinkCommon__pusch_ConfigCommon_PR_release, - BWP_UplinkCommon__pusch_ConfigCommon_PR_setup -} BWP_UplinkCommon__pusch_ConfigCommon_PR; -typedef enum BWP_UplinkCommon__pucch_ConfigCommon_PR { - BWP_UplinkCommon__pucch_ConfigCommon_PR_NOTHING, /* No components present */ - BWP_UplinkCommon__pucch_ConfigCommon_PR_release, - BWP_UplinkCommon__pucch_ConfigCommon_PR_setup -} BWP_UplinkCommon__pucch_ConfigCommon_PR; - -/* Forward declarations */ -struct RACH_ConfigCommon; -struct PUSCH_ConfigCommon; -struct PUCCH_ConfigCommon; - -/* BWP-UplinkCommon */ -typedef struct BWP_UplinkCommon { - BWP_t genericParameters; - struct BWP_UplinkCommon__rach_ConfigCommon { - BWP_UplinkCommon__rach_ConfigCommon_PR present; - union BWP_UplinkCommon__rach_ConfigCommon_u { - NULL_t release; - struct RACH_ConfigCommon *setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *rach_ConfigCommon; - struct BWP_UplinkCommon__pusch_ConfigCommon { - BWP_UplinkCommon__pusch_ConfigCommon_PR present; - union BWP_UplinkCommon__pusch_ConfigCommon_u { - NULL_t release; - struct PUSCH_ConfigCommon *setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *pusch_ConfigCommon; - struct BWP_UplinkCommon__pucch_ConfigCommon { - BWP_UplinkCommon__pucch_ConfigCommon_PR present; - union BWP_UplinkCommon__pucch_ConfigCommon_u { - NULL_t release; - struct PUCCH_ConfigCommon *setup; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *pucch_ConfigCommon; - /* - * This type is extensible, - * possible extensions are below. - */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BWP_UplinkCommon_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_BWP_UplinkCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_BWP_UplinkCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_BWP_UplinkCommon_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BWP_UplinkCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/BWP.c b/src/codec_utils/SYSINFO/BWP.c deleted file mode 100644 index bc654d649..000000000 --- a/src/codec_utils/SYSINFO/BWP.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "BWP.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_oer_constraints_t asn_OER_type_cyclicPrefix_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_locationAndBandwidth_constr_2 CC_NOTUSED = { - { 2, 1 } /* (0..37949) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_cyclicPrefix_value2enum_4[] = { - { 0, 8, "extended" } -}; -static const unsigned int asn_MAP_cyclicPrefix_enum2value_4[] = { - 0 /* extended(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_cyclicPrefix_specs_4 = { - asn_MAP_cyclicPrefix_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_cyclicPrefix_4 = { - "cyclicPrefix", - "cyclicPrefix", - &asn_OP_NativeEnumerated, - asn_DEF_cyclicPrefix_tags_4, - sizeof(asn_DEF_cyclicPrefix_tags_4) - /sizeof(asn_DEF_cyclicPrefix_tags_4[0]) - 1, /* 1 */ - asn_DEF_cyclicPrefix_tags_4, /* Same as above */ - sizeof(asn_DEF_cyclicPrefix_tags_4) - /sizeof(asn_DEF_cyclicPrefix_tags_4[0]), /* 2 */ - { &asn_OER_type_cyclicPrefix_constr_4, &asn_PER_type_cyclicPrefix_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_cyclicPrefix_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_BWP_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct BWP, locationAndBandwidth), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_locationAndBandwidth_constr_2, &asn_PER_memb_locationAndBandwidth_constr_2, memb_locationAndBandwidth_constraint_1 }, - 0, 0, /* No default value */ - "locationAndBandwidth" - }, - { ATF_NOFLAGS, 0, offsetof(struct BWP, subcarrierSpacing), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubcarrierSpacing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subcarrierSpacing" - }, - { ATF_POINTER, 1, offsetof(struct BWP, cyclicPrefix), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_cyclicPrefix_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cyclicPrefix" - }, -}; -static const int asn_MAP_BWP_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_BWP_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_BWP_specs_1 = { - sizeof(struct BWP), - offsetof(struct BWP, _asn_ctx), - asn_MAP_BWP_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_BWP_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_BWP = { - "BWP", - "BWP", - &asn_OP_SEQUENCE, - asn_DEF_BWP_tags_1, - sizeof(asn_DEF_BWP_tags_1) - /sizeof(asn_DEF_BWP_tags_1[0]), /* 1 */ - asn_DEF_BWP_tags_1, /* Same as above */ - sizeof(asn_DEF_BWP_tags_1) - /sizeof(asn_DEF_BWP_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_BWP_1, - 3, /* Elements count */ - &asn_SPC_BWP_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/BWP.h b/src/codec_utils/SYSINFO/BWP.h deleted file mode 100644 index 6cacf55b5..000000000 --- a/src/codec_utils/SYSINFO/BWP.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _BWP_H_ -#define _BWP_H_ - - -#include - -/* Including external dependencies */ -#include -#include "SubcarrierSpacing.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum BWP__cyclicPrefix { - BWP__cyclicPrefix_extended = 0 -} e_BWP__cyclicPrefix; - -/* BWP */ -typedef struct BWP { - long locationAndBandwidth; - SubcarrierSpacing_t subcarrierSpacing; - long *cyclicPrefix; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} BWP_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_cyclicPrefix_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_BWP; -extern asn_SEQUENCE_specifics_t asn_SPC_BWP_specs_1; -extern asn_TYPE_member_t asn_MBR_BWP_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _BWP_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/CellAccessRelatedInfo.c b/src/codec_utils/SYSINFO/CellAccessRelatedInfo.c deleted file mode 100644 index 30453eed1..000000000 --- a/src/codec_utils/SYSINFO/CellAccessRelatedInfo.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "CellAccessRelatedInfo.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_cellReservedForOtherUse_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_cellReservedForOtherUse_value2enum_3[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_cellReservedForOtherUse_enum2value_3[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_cellReservedForOtherUse_specs_3 = { - asn_MAP_cellReservedForOtherUse_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_cellReservedForOtherUse_3 = { - "cellReservedForOtherUse", - "cellReservedForOtherUse", - &asn_OP_NativeEnumerated, - asn_DEF_cellReservedForOtherUse_tags_3, - sizeof(asn_DEF_cellReservedForOtherUse_tags_3) - /sizeof(asn_DEF_cellReservedForOtherUse_tags_3[0]) - 1, /* 1 */ - asn_DEF_cellReservedForOtherUse_tags_3, /* Same as above */ - sizeof(asn_DEF_cellReservedForOtherUse_tags_3) - /sizeof(asn_DEF_cellReservedForOtherUse_tags_3[0]), /* 2 */ - { &asn_OER_type_cellReservedForOtherUse_constr_3, &asn_PER_type_cellReservedForOtherUse_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_cellReservedForOtherUse_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CellAccessRelatedInfo, plmn_IdentityList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityInfoList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmn-IdentityList" - }, - { ATF_POINTER, 1, offsetof(struct CellAccessRelatedInfo, cellReservedForOtherUse), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_cellReservedForOtherUse_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellReservedForOtherUse" - }, -}; -static const int asn_MAP_CellAccessRelatedInfo_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_CellAccessRelatedInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_CellAccessRelatedInfo_specs_1 = { - sizeof(struct CellAccessRelatedInfo), - offsetof(struct CellAccessRelatedInfo, _asn_ctx), - asn_MAP_CellAccessRelatedInfo_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_CellAccessRelatedInfo_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo = { - "CellAccessRelatedInfo", - "CellAccessRelatedInfo", - &asn_OP_SEQUENCE, - asn_DEF_CellAccessRelatedInfo_tags_1, - sizeof(asn_DEF_CellAccessRelatedInfo_tags_1) - /sizeof(asn_DEF_CellAccessRelatedInfo_tags_1[0]), /* 1 */ - asn_DEF_CellAccessRelatedInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_CellAccessRelatedInfo_tags_1) - /sizeof(asn_DEF_CellAccessRelatedInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_CellAccessRelatedInfo_1, - 2, /* Elements count */ - &asn_SPC_CellAccessRelatedInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/CellAccessRelatedInfo.h b/src/codec_utils/SYSINFO/CellAccessRelatedInfo.h deleted file mode 100644 index fd294a98c..000000000 --- a/src/codec_utils/SYSINFO/CellAccessRelatedInfo.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _CellAccessRelatedInfo_H_ -#define _CellAccessRelatedInfo_H_ - - -#include - -/* Including external dependencies */ -#include "PLMN-IdentityInfoList.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CellAccessRelatedInfo__cellReservedForOtherUse { - CellAccessRelatedInfo__cellReservedForOtherUse_true = 0 -} e_CellAccessRelatedInfo__cellReservedForOtherUse; - -/* CellAccessRelatedInfo */ -typedef struct CellAccessRelatedInfo { - 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; -} CellAccessRelatedInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_cellReservedForOtherUse_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_CellAccessRelatedInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_CellAccessRelatedInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_CellAccessRelatedInfo_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellAccessRelatedInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/CellIdentity.c b/src/codec_utils/SYSINFO/CellIdentity.c deleted file mode 100644 index feb68e888..000000000 --- a/src/codec_utils/SYSINFO/CellIdentity.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "CellIdentity.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_CellIdentity_constr_1 CC_NOTUSED = { - { 0, 0 }, - 36 /* (SIZE(36..36)) */}; -asn_per_constraints_t asn_PER_type_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_CellIdentity_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CellIdentity = { - "CellIdentity", - "CellIdentity", - &asn_OP_BIT_STRING, - asn_DEF_CellIdentity_tags_1, - sizeof(asn_DEF_CellIdentity_tags_1) - /sizeof(asn_DEF_CellIdentity_tags_1[0]), /* 1 */ - asn_DEF_CellIdentity_tags_1, /* Same as above */ - sizeof(asn_DEF_CellIdentity_tags_1) - /sizeof(asn_DEF_CellIdentity_tags_1[0]), /* 1 */ - { &asn_OER_type_CellIdentity_constr_1, &asn_PER_type_CellIdentity_constr_1, CellIdentity_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/CellIdentity.h b/src/codec_utils/SYSINFO/CellIdentity.h deleted file mode 100644 index 23b5460bc..000000000 --- a/src/codec_utils/SYSINFO/CellIdentity.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _CellIdentity_H_ -#define _CellIdentity_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* CellIdentity */ -typedef BIT_STRING_t CellIdentity_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CellIdentity_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CellIdentity; -asn_struct_free_f CellIdentity_free; -asn_struct_print_f CellIdentity_print; -asn_constr_check_f CellIdentity_constraint; -ber_type_decoder_f CellIdentity_decode_ber; -der_type_encoder_f CellIdentity_encode_der; -xer_type_decoder_f CellIdentity_decode_xer; -xer_type_encoder_f CellIdentity_encode_xer; -oer_type_decoder_f CellIdentity_decode_oer; -oer_type_encoder_f CellIdentity_encode_oer; -per_type_decoder_f CellIdentity_decode_uper; -per_type_encoder_f CellIdentity_encode_uper; -per_type_decoder_f CellIdentity_decode_aper; -per_type_encoder_f CellIdentity_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CellIdentity_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/ConnEstFailureControl.c b/src/codec_utils/SYSINFO/ConnEstFailureControl.c deleted file mode 100644 index 139c35254..000000000 --- a/src/codec_utils/SYSINFO/ConnEstFailureControl.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_oer_constraints_t asn_OER_type_connEstFailCount_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_connEstFailOffsetValidity_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_connEstFailOffset_constr_16 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_connEstFailCount_value2enum_2[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" }, - { 2, 2, "n3" }, - { 3, 2, "n4" } -}; -static const unsigned int asn_MAP_connEstFailCount_enum2value_2[] = { - 0, /* n1(0) */ - 1, /* n2(1) */ - 2, /* n3(2) */ - 3 /* n4(3) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_connEstFailCount_specs_2 = { - asn_MAP_connEstFailCount_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_connEstFailCount_2 = { - "connEstFailCount", - "connEstFailCount", - &asn_OP_NativeEnumerated, - asn_DEF_connEstFailCount_tags_2, - sizeof(asn_DEF_connEstFailCount_tags_2) - /sizeof(asn_DEF_connEstFailCount_tags_2[0]) - 1, /* 1 */ - asn_DEF_connEstFailCount_tags_2, /* Same as above */ - sizeof(asn_DEF_connEstFailCount_tags_2) - /sizeof(asn_DEF_connEstFailCount_tags_2[0]), /* 2 */ - { &asn_OER_type_connEstFailCount_constr_2, &asn_PER_type_connEstFailCount_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_connEstFailCount_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_connEstFailOffsetValidity_specs_7 = { - asn_MAP_connEstFailOffsetValidity_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_connEstFailOffsetValidity_7 = { - "connEstFailOffsetValidity", - "connEstFailOffsetValidity", - &asn_OP_NativeEnumerated, - asn_DEF_connEstFailOffsetValidity_tags_7, - sizeof(asn_DEF_connEstFailOffsetValidity_tags_7) - /sizeof(asn_DEF_connEstFailOffsetValidity_tags_7[0]) - 1, /* 1 */ - asn_DEF_connEstFailOffsetValidity_tags_7, /* Same as above */ - sizeof(asn_DEF_connEstFailOffsetValidity_tags_7) - /sizeof(asn_DEF_connEstFailOffsetValidity_tags_7[0]), /* 2 */ - { &asn_OER_type_connEstFailOffsetValidity_constr_7, &asn_PER_type_connEstFailOffsetValidity_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_connEstFailOffsetValidity_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ConnEstFailureControl_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ConnEstFailureControl, connEstFailCount), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_connEstFailCount_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "connEstFailCount" - }, - { ATF_NOFLAGS, 0, offsetof(struct ConnEstFailureControl, connEstFailOffsetValidity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_connEstFailOffsetValidity_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "connEstFailOffsetValidity" - }, - { ATF_POINTER, 1, offsetof(struct ConnEstFailureControl, connEstFailOffset), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_connEstFailOffset_constr_16, &asn_PER_memb_connEstFailOffset_constr_16, memb_connEstFailOffset_constraint_1 }, - 0, 0, /* No default value */ - "connEstFailOffset" - }, -}; -static const int asn_MAP_ConnEstFailureControl_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_ConnEstFailureControl_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_ConnEstFailureControl_specs_1 = { - sizeof(struct ConnEstFailureControl), - offsetof(struct ConnEstFailureControl, _asn_ctx), - asn_MAP_ConnEstFailureControl_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_ConnEstFailureControl_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ConnEstFailureControl = { - "ConnEstFailureControl", - "ConnEstFailureControl", - &asn_OP_SEQUENCE, - asn_DEF_ConnEstFailureControl_tags_1, - sizeof(asn_DEF_ConnEstFailureControl_tags_1) - /sizeof(asn_DEF_ConnEstFailureControl_tags_1[0]), /* 1 */ - asn_DEF_ConnEstFailureControl_tags_1, /* Same as above */ - sizeof(asn_DEF_ConnEstFailureControl_tags_1) - /sizeof(asn_DEF_ConnEstFailureControl_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ConnEstFailureControl_1, - 3, /* Elements count */ - &asn_SPC_ConnEstFailureControl_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/ConnEstFailureControl.h b/src/codec_utils/SYSINFO/ConnEstFailureControl.h deleted file mode 100644 index c3e018b29..000000000 --- a/src/codec_utils/SYSINFO/ConnEstFailureControl.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ConnEstFailureControl_H_ -#define _ConnEstFailureControl_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ConnEstFailureControl__connEstFailCount { - ConnEstFailureControl__connEstFailCount_n1 = 0, - ConnEstFailureControl__connEstFailCount_n2 = 1, - ConnEstFailureControl__connEstFailCount_n3 = 2, - ConnEstFailureControl__connEstFailCount_n4 = 3 -} e_ConnEstFailureControl__connEstFailCount; -typedef enum ConnEstFailureControl__connEstFailOffsetValidity { - ConnEstFailureControl__connEstFailOffsetValidity_s30 = 0, - ConnEstFailureControl__connEstFailOffsetValidity_s60 = 1, - ConnEstFailureControl__connEstFailOffsetValidity_s120 = 2, - ConnEstFailureControl__connEstFailOffsetValidity_s240 = 3, - ConnEstFailureControl__connEstFailOffsetValidity_s300 = 4, - ConnEstFailureControl__connEstFailOffsetValidity_s420 = 5, - ConnEstFailureControl__connEstFailOffsetValidity_s600 = 6, - ConnEstFailureControl__connEstFailOffsetValidity_s900 = 7 -} e_ConnEstFailureControl__connEstFailOffsetValidity; - -/* ConnEstFailureControl */ -typedef struct ConnEstFailureControl { - long connEstFailCount; - long connEstFailOffsetValidity; - long *connEstFailOffset; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} ConnEstFailureControl_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_connEstFailCount_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_connEstFailOffsetValidity_7; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_ConnEstFailureControl; -extern asn_SEQUENCE_specifics_t asn_SPC_ConnEstFailureControl_specs_1; -extern asn_TYPE_member_t asn_MBR_ConnEstFailureControl_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ConnEstFailureControl_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/ControlResourceSet.c b/src/codec_utils/SYSINFO/ControlResourceSet.c deleted file mode 100644 index 02627fbad..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSet.c +++ /dev/null @@ -1,748 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_reg_BundleSize_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_interleaverSize_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_shiftIndex_constr_15 CC_NOTUSED = { - { 2, 1 } /* (0..274) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_cce_REG_MappingType_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_precoderGranularity_constr_17 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_tci_PresentInDCI_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_frequencyDomainResources_constr_3 CC_NOTUSED = { - { 0, 0 }, - 45 /* (SIZE(45..45)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_duration_constr_4 CC_NOTUSED = { - { 1, 1 } /* (1..3) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..64)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_reg_BundleSize_value2enum_7[] = { - { 0, 2, "n2" }, - { 1, 2, "n3" }, - { 2, 2, "n6" } -}; -static const unsigned int asn_MAP_reg_BundleSize_enum2value_7[] = { - 0, /* n2(0) */ - 1, /* n3(1) */ - 2 /* n6(2) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_reg_BundleSize_specs_7 = { - asn_MAP_reg_BundleSize_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_reg_BundleSize_7 = { - "reg-BundleSize", - "reg-BundleSize", - &asn_OP_NativeEnumerated, - asn_DEF_reg_BundleSize_tags_7, - sizeof(asn_DEF_reg_BundleSize_tags_7) - /sizeof(asn_DEF_reg_BundleSize_tags_7[0]) - 1, /* 1 */ - asn_DEF_reg_BundleSize_tags_7, /* Same as above */ - sizeof(asn_DEF_reg_BundleSize_tags_7) - /sizeof(asn_DEF_reg_BundleSize_tags_7[0]), /* 2 */ - { &asn_OER_type_reg_BundleSize_constr_7, &asn_PER_type_reg_BundleSize_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_reg_BundleSize_specs_7 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_interleaverSize_value2enum_11[] = { - { 0, 2, "n2" }, - { 1, 2, "n3" }, - { 2, 2, "n6" } -}; -static const unsigned int asn_MAP_interleaverSize_enum2value_11[] = { - 0, /* n2(0) */ - 1, /* n3(1) */ - 2 /* n6(2) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_interleaverSize_specs_11 = { - asn_MAP_interleaverSize_value2enum_11, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_interleaverSize_11 = { - "interleaverSize", - "interleaverSize", - &asn_OP_NativeEnumerated, - asn_DEF_interleaverSize_tags_11, - sizeof(asn_DEF_interleaverSize_tags_11) - /sizeof(asn_DEF_interleaverSize_tags_11[0]) - 1, /* 1 */ - asn_DEF_interleaverSize_tags_11, /* Same as above */ - sizeof(asn_DEF_interleaverSize_tags_11) - /sizeof(asn_DEF_interleaverSize_tags_11[0]), /* 2 */ - { &asn_OER_type_interleaverSize_constr_11, &asn_PER_type_interleaverSize_constr_11, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_interleaverSize_specs_11 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_interleaved_6[] = { - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, reg_BundleSize), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_reg_BundleSize_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "reg-BundleSize" - }, - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, interleaverSize), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_interleaverSize_11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interleaverSize" - }, - { ATF_POINTER, 1, offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, shiftIndex), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_shiftIndex_constr_15, &asn_PER_memb_shiftIndex_constr_15, memb_shiftIndex_constraint_6 }, - 0, 0, /* No default value */ - "shiftIndex" - }, -}; -static const int asn_MAP_interleaved_oms_6[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_interleaved_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_interleaved_specs_6 = { - sizeof(struct ControlResourceSet__cce_REG_MappingType__interleaved), - offsetof(struct ControlResourceSet__cce_REG_MappingType__interleaved, _asn_ctx), - asn_MAP_interleaved_tag2el_6, - 3, /* Count of tags in the map */ - asn_MAP_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_interleaved_6 = { - "interleaved", - "interleaved", - &asn_OP_SEQUENCE, - asn_DEF_interleaved_tags_6, - sizeof(asn_DEF_interleaved_tags_6) - /sizeof(asn_DEF_interleaved_tags_6[0]) - 1, /* 1 */ - asn_DEF_interleaved_tags_6, /* Same as above */ - sizeof(asn_DEF_interleaved_tags_6) - /sizeof(asn_DEF_interleaved_tags_6[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_interleaved_6, - 3, /* Elements count */ - &asn_SPC_interleaved_specs_6 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_cce_REG_MappingType_5[] = { - { ATF_POINTER, 0, offsetof(struct ControlResourceSet__cce_REG_MappingType, choice.interleaved), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_interleaved_6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "interleaved" - }, - { ATF_NOFLAGS, 0, offsetof(struct 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_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_cce_REG_MappingType_specs_5 = { - sizeof(struct ControlResourceSet__cce_REG_MappingType), - offsetof(struct ControlResourceSet__cce_REG_MappingType, _asn_ctx), - offsetof(struct ControlResourceSet__cce_REG_MappingType, present), - sizeof(((struct ControlResourceSet__cce_REG_MappingType *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_cce_REG_MappingType_constr_5, &asn_PER_type_cce_REG_MappingType_constr_5, CHOICE_constraint }, - asn_MBR_cce_REG_MappingType_5, - 2, /* Elements count */ - &asn_SPC_cce_REG_MappingType_specs_5 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_precoderGranularity_value2enum_17[] = { - { 0, 16, "sameAsREG-bundle" }, - { 1, 16, "allContiguousRBs" } -}; -static const unsigned int asn_MAP_precoderGranularity_enum2value_17[] = { - 1, /* allContiguousRBs(1) */ - 0 /* sameAsREG-bundle(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_precoderGranularity_specs_17 = { - asn_MAP_precoderGranularity_value2enum_17, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_precoderGranularity_17 = { - "precoderGranularity", - "precoderGranularity", - &asn_OP_NativeEnumerated, - asn_DEF_precoderGranularity_tags_17, - sizeof(asn_DEF_precoderGranularity_tags_17) - /sizeof(asn_DEF_precoderGranularity_tags_17[0]) - 1, /* 1 */ - asn_DEF_precoderGranularity_tags_17, /* Same as above */ - sizeof(asn_DEF_precoderGranularity_tags_17) - /sizeof(asn_DEF_precoderGranularity_tags_17[0]), /* 2 */ - { &asn_OER_type_precoderGranularity_constr_17, &asn_PER_type_precoderGranularity_constr_17, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_precoderGranularity_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToAddList_20[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_TCI_StateId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_tci_StatesPDCCH_ToAddList_specs_20 = { - sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList), - offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToAddList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToAddList_20 = { - "tci-StatesPDCCH-ToAddList", - "tci-StatesPDCCH-ToAddList", - &asn_OP_SEQUENCE_OF, - asn_DEF_tci_StatesPDCCH_ToAddList_tags_20, - sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20) - /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]) - 1, /* 1 */ - asn_DEF_tci_StatesPDCCH_ToAddList_tags_20, /* Same as above */ - sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20) - /sizeof(asn_DEF_tci_StatesPDCCH_ToAddList_tags_20[0]), /* 2 */ - { &asn_OER_type_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_type_tci_StatesPDCCH_ToAddList_constr_20, SEQUENCE_OF_constraint }, - asn_MBR_tci_StatesPDCCH_ToAddList_20, - 1, /* Single element */ - &asn_SPC_tci_StatesPDCCH_ToAddList_specs_20 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_tci_StatesPDCCH_ToReleaseList_22[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_TCI_StateId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_tci_StatesPDCCH_ToReleaseList_specs_22 = { - sizeof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList), - offsetof(struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_tci_StatesPDCCH_ToReleaseList_22 = { - "tci-StatesPDCCH-ToReleaseList", - "tci-StatesPDCCH-ToReleaseList", - &asn_OP_SEQUENCE_OF, - asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22, - sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22) - /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]) - 1, /* 1 */ - asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22, /* Same as above */ - sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22) - /sizeof(asn_DEF_tci_StatesPDCCH_ToReleaseList_tags_22[0]), /* 2 */ - { &asn_OER_type_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_type_tci_StatesPDCCH_ToReleaseList_constr_22, SEQUENCE_OF_constraint }, - asn_MBR_tci_StatesPDCCH_ToReleaseList_22, - 1, /* Single element */ - &asn_SPC_tci_StatesPDCCH_ToReleaseList_specs_22 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_tci_PresentInDCI_value2enum_24[] = { - { 0, 7, "enabled" } -}; -static const unsigned int asn_MAP_tci_PresentInDCI_enum2value_24[] = { - 0 /* enabled(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_tci_PresentInDCI_specs_24 = { - asn_MAP_tci_PresentInDCI_value2enum_24, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_tci_PresentInDCI_24 = { - "tci-PresentInDCI", - "tci-PresentInDCI", - &asn_OP_NativeEnumerated, - asn_DEF_tci_PresentInDCI_tags_24, - sizeof(asn_DEF_tci_PresentInDCI_tags_24) - /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]) - 1, /* 1 */ - asn_DEF_tci_PresentInDCI_tags_24, /* Same as above */ - sizeof(asn_DEF_tci_PresentInDCI_tags_24) - /sizeof(asn_DEF_tci_PresentInDCI_tags_24[0]), /* 2 */ - { &asn_OER_type_tci_PresentInDCI_constr_24, &asn_PER_type_tci_PresentInDCI_constr_24, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_tci_PresentInDCI_specs_24 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ControlResourceSet_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, controlResourceSetId), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ControlResourceSetId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "controlResourceSetId" - }, - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, frequencyDomainResources), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_frequencyDomainResources_constr_3, &asn_PER_memb_frequencyDomainResources_constr_3, memb_frequencyDomainResources_constraint_1 }, - 0, 0, /* No default value */ - "frequencyDomainResources" - }, - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, duration), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_duration_constr_4, &asn_PER_memb_duration_constr_4, memb_duration_constraint_1 }, - 0, 0, /* No default value */ - "duration" - }, - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, cce_REG_MappingType), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_cce_REG_MappingType_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cce-REG-MappingType" - }, - { ATF_NOFLAGS, 0, offsetof(struct ControlResourceSet, precoderGranularity), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_precoderGranularity_17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "precoderGranularity" - }, - { ATF_POINTER, 4, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToAddList), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - 0, - &asn_DEF_tci_StatesPDCCH_ToAddList_20, - 0, - { &asn_OER_memb_tci_StatesPDCCH_ToAddList_constr_20, &asn_PER_memb_tci_StatesPDCCH_ToAddList_constr_20, memb_tci_StatesPDCCH_ToAddList_constraint_1 }, - 0, 0, /* No default value */ - "tci-StatesPDCCH-ToAddList" - }, - { ATF_POINTER, 3, offsetof(struct ControlResourceSet, tci_StatesPDCCH_ToReleaseList), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - 0, - &asn_DEF_tci_StatesPDCCH_ToReleaseList_22, - 0, - { &asn_OER_memb_tci_StatesPDCCH_ToReleaseList_constr_22, &asn_PER_memb_tci_StatesPDCCH_ToReleaseList_constr_22, memb_tci_StatesPDCCH_ToReleaseList_constraint_1 }, - 0, 0, /* No default value */ - "tci-StatesPDCCH-ToReleaseList" - }, - { ATF_POINTER, 2, offsetof(struct ControlResourceSet, tci_PresentInDCI), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_tci_PresentInDCI_24, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tci-PresentInDCI" - }, - { ATF_POINTER, 1, offsetof(struct ControlResourceSet, pdcch_DMRS_ScramblingID), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_pdcch_DMRS_ScramblingID_constr_26, &asn_PER_memb_pdcch_DMRS_ScramblingID_constr_26, memb_pdcch_DMRS_ScramblingID_constraint_1 }, - 0, 0, /* No default value */ - "pdcch-DMRS-ScramblingID" - }, -}; -static const int asn_MAP_ControlResourceSet_oms_1[] = { 5, 6, 7, 8 }; -static const ber_tlv_tag_t asn_DEF_ControlResourceSet_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_ControlResourceSet_specs_1 = { - sizeof(struct ControlResourceSet), - offsetof(struct ControlResourceSet, _asn_ctx), - asn_MAP_ControlResourceSet_tag2el_1, - 9, /* Count of tags in the map */ - asn_MAP_ControlResourceSet_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 9, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ControlResourceSet = { - "ControlResourceSet", - "ControlResourceSet", - &asn_OP_SEQUENCE, - asn_DEF_ControlResourceSet_tags_1, - sizeof(asn_DEF_ControlResourceSet_tags_1) - /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */ - asn_DEF_ControlResourceSet_tags_1, /* Same as above */ - sizeof(asn_DEF_ControlResourceSet_tags_1) - /sizeof(asn_DEF_ControlResourceSet_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ControlResourceSet_1, - 9, /* Elements count */ - &asn_SPC_ControlResourceSet_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/ControlResourceSet.h b/src/codec_utils/SYSINFO/ControlResourceSet.h deleted file mode 100644 index 5abdfe052..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSet.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ControlResourceSet_H_ -#define _ControlResourceSet_H_ - - -#include - -/* Including external dependencies */ -#include "ControlResourceSetId.h" -#include -#include -#include -#include -#include -#include -#include "TCI-StateId.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ControlResourceSet__cce_REG_MappingType_PR { - ControlResourceSet__cce_REG_MappingType_PR_NOTHING, /* No components present */ - ControlResourceSet__cce_REG_MappingType_PR_interleaved, - ControlResourceSet__cce_REG_MappingType_PR_nonInterleaved -} ControlResourceSet__cce_REG_MappingType_PR; -typedef enum ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize { - ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n2 = 0, - ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n3 = 1, - ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize_n6 = 2 -} e_ControlResourceSet__cce_REG_MappingType__interleaved__reg_BundleSize; -typedef enum ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize { - ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n2 = 0, - ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n3 = 1, - ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize_n6 = 2 -} e_ControlResourceSet__cce_REG_MappingType__interleaved__interleaverSize; -typedef enum ControlResourceSet__precoderGranularity { - ControlResourceSet__precoderGranularity_sameAsREG_bundle = 0, - ControlResourceSet__precoderGranularity_allContiguousRBs = 1 -} e_ControlResourceSet__precoderGranularity; -typedef enum ControlResourceSet__tci_PresentInDCI { - ControlResourceSet__tci_PresentInDCI_enabled = 0 -} e_ControlResourceSet__tci_PresentInDCI; - -/* ControlResourceSet */ -typedef struct ControlResourceSet { - ControlResourceSetId_t controlResourceSetId; - BIT_STRING_t frequencyDomainResources; - long duration; - struct ControlResourceSet__cce_REG_MappingType { - ControlResourceSet__cce_REG_MappingType_PR present; - union ControlResourceSet__cce_REG_MappingType_u { - struct 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 ControlResourceSet__tci_StatesPDCCH_ToAddList { - A_SEQUENCE_OF(TCI_StateId_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *tci_StatesPDCCH_ToAddList; - struct ControlResourceSet__tci_StatesPDCCH_ToReleaseList { - A_SEQUENCE_OF(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; -} ControlResourceSet_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_reg_BundleSize_7; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_interleaverSize_11; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_precoderGranularity_17; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_tci_PresentInDCI_24; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSet; -extern asn_SEQUENCE_specifics_t asn_SPC_ControlResourceSet_specs_1; -extern asn_TYPE_member_t asn_MBR_ControlResourceSet_1[9]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ControlResourceSet_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/ControlResourceSetId.c b/src/codec_utils/SYSINFO/ControlResourceSetId.c deleted file mode 100644 index 947e01b59..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSetId.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "ControlResourceSetId.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_ControlResourceSetId_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..11) */, - -1}; -asn_per_constraints_t asn_PER_type_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_ControlResourceSetId_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ControlResourceSetId = { - "ControlResourceSetId", - "ControlResourceSetId", - &asn_OP_NativeInteger, - asn_DEF_ControlResourceSetId_tags_1, - sizeof(asn_DEF_ControlResourceSetId_tags_1) - /sizeof(asn_DEF_ControlResourceSetId_tags_1[0]), /* 1 */ - asn_DEF_ControlResourceSetId_tags_1, /* Same as above */ - sizeof(asn_DEF_ControlResourceSetId_tags_1) - /sizeof(asn_DEF_ControlResourceSetId_tags_1[0]), /* 1 */ - { &asn_OER_type_ControlResourceSetId_constr_1, &asn_PER_type_ControlResourceSetId_constr_1, ControlResourceSetId_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/ControlResourceSetId.h b/src/codec_utils/SYSINFO/ControlResourceSetId.h deleted file mode 100644 index 1b8f47412..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSetId.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ControlResourceSetId_H_ -#define _ControlResourceSetId_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ControlResourceSetId */ -typedef long ControlResourceSetId_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ControlResourceSetId_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSetId; -asn_struct_free_f ControlResourceSetId_free; -asn_struct_print_f ControlResourceSetId_print; -asn_constr_check_f ControlResourceSetId_constraint; -ber_type_decoder_f ControlResourceSetId_decode_ber; -der_type_encoder_f ControlResourceSetId_encode_der; -xer_type_decoder_f ControlResourceSetId_decode_xer; -xer_type_encoder_f ControlResourceSetId_encode_xer; -oer_type_decoder_f ControlResourceSetId_decode_oer; -oer_type_encoder_f ControlResourceSetId_encode_oer; -per_type_decoder_f ControlResourceSetId_decode_uper; -per_type_encoder_f ControlResourceSetId_encode_uper; -per_type_decoder_f ControlResourceSetId_decode_aper; -per_type_encoder_f ControlResourceSetId_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ControlResourceSetId_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/ControlResourceSetZero.c b/src/codec_utils/SYSINFO/ControlResourceSetZero.c deleted file mode 100644 index b9e3876fb..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSetZero.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "ControlResourceSetZero.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_ControlResourceSetZero_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -asn_per_constraints_t asn_PER_type_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_ControlResourceSetZero_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_ControlResourceSetZero = { - "ControlResourceSetZero", - "ControlResourceSetZero", - &asn_OP_NativeInteger, - asn_DEF_ControlResourceSetZero_tags_1, - sizeof(asn_DEF_ControlResourceSetZero_tags_1) - /sizeof(asn_DEF_ControlResourceSetZero_tags_1[0]), /* 1 */ - asn_DEF_ControlResourceSetZero_tags_1, /* Same as above */ - sizeof(asn_DEF_ControlResourceSetZero_tags_1) - /sizeof(asn_DEF_ControlResourceSetZero_tags_1[0]), /* 1 */ - { &asn_OER_type_ControlResourceSetZero_constr_1, &asn_PER_type_ControlResourceSetZero_constr_1, ControlResourceSetZero_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/ControlResourceSetZero.h b/src/codec_utils/SYSINFO/ControlResourceSetZero.h deleted file mode 100644 index c6e6c2ada..000000000 --- a/src/codec_utils/SYSINFO/ControlResourceSetZero.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ControlResourceSetZero_H_ -#define _ControlResourceSetZero_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* ControlResourceSetZero */ -typedef long ControlResourceSetZero_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_ControlResourceSetZero_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ControlResourceSetZero; -asn_struct_free_f ControlResourceSetZero_free; -asn_struct_print_f ControlResourceSetZero_print; -asn_constr_check_f ControlResourceSetZero_constraint; -ber_type_decoder_f ControlResourceSetZero_decode_ber; -der_type_encoder_f ControlResourceSetZero_encode_der; -xer_type_decoder_f ControlResourceSetZero_decode_xer; -xer_type_encoder_f ControlResourceSetZero_encode_xer; -oer_type_decoder_f ControlResourceSetZero_decode_oer; -oer_type_encoder_f ControlResourceSetZero_encode_oer; -per_type_decoder_f ControlResourceSetZero_decode_uper; -per_type_encoder_f ControlResourceSetZero_encode_uper; -per_type_decoder_f ControlResourceSetZero_decode_aper; -per_type_encoder_f ControlResourceSetZero_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _ControlResourceSetZero_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.c b/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.c deleted file mode 100644 index ffa27d52b..000000000 --- a/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "DownlinkConfigCommonSIB.h" - -asn_TYPE_member_t asn_MBR_DownlinkConfigCommonSIB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, frequencyInfoDL), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FrequencyInfoDL_SIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "frequencyInfoDL" - }, - { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, initialDownlinkBWP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BWP_DownlinkCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initialDownlinkBWP" - }, - { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, bcch_Config), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BCCH_Config, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "bcch-Config" - }, - { ATF_NOFLAGS, 0, offsetof(struct DownlinkConfigCommonSIB, pcch_Config), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PCCH_Config, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pcch-Config" - }, -}; -static const ber_tlv_tag_t asn_DEF_DownlinkConfigCommonSIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_DownlinkConfigCommonSIB_specs_1 = { - sizeof(struct DownlinkConfigCommonSIB), - offsetof(struct DownlinkConfigCommonSIB, _asn_ctx), - asn_MAP_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_DownlinkConfigCommonSIB = { - "DownlinkConfigCommonSIB", - "DownlinkConfigCommonSIB", - &asn_OP_SEQUENCE, - asn_DEF_DownlinkConfigCommonSIB_tags_1, - sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1) - /sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ - asn_DEF_DownlinkConfigCommonSIB_tags_1, /* Same as above */ - sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1) - /sizeof(asn_DEF_DownlinkConfigCommonSIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_DownlinkConfigCommonSIB_1, - 4, /* Elements count */ - &asn_SPC_DownlinkConfigCommonSIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.h b/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.h deleted file mode 100644 index 57b7a006f..000000000 --- a/src/codec_utils/SYSINFO/DownlinkConfigCommonSIB.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _DownlinkConfigCommonSIB_H_ -#define _DownlinkConfigCommonSIB_H_ - - -#include - -/* Including external dependencies */ -#include "FrequencyInfoDL-SIB.h" -#include "BWP-DownlinkCommon.h" -#include "BCCH-Config.h" -#include "PCCH-Config.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* DownlinkConfigCommonSIB */ -typedef struct DownlinkConfigCommonSIB { - FrequencyInfoDL_SIB_t frequencyInfoDL; - BWP_DownlinkCommon_t initialDownlinkBWP; - BCCH_Config_t bcch_Config; - 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; -} DownlinkConfigCommonSIB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_DownlinkConfigCommonSIB; -extern asn_SEQUENCE_specifics_t asn_SPC_DownlinkConfigCommonSIB_specs_1; -extern asn_TYPE_member_t asn_MBR_DownlinkConfigCommonSIB_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _DownlinkConfigCommonSIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/FreqBandIndicatorNR.c b/src/codec_utils/SYSINFO/FreqBandIndicatorNR.c deleted file mode 100644 index 40fb3a9d3..000000000 --- a/src/codec_utils/SYSINFO/FreqBandIndicatorNR.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "FreqBandIndicatorNR.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_FreqBandIndicatorNR_constr_1 CC_NOTUSED = { - { 2, 1 } /* (1..1024) */, - -1}; -asn_per_constraints_t asn_PER_type_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_FreqBandIndicatorNR_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorNR = { - "FreqBandIndicatorNR", - "FreqBandIndicatorNR", - &asn_OP_NativeInteger, - asn_DEF_FreqBandIndicatorNR_tags_1, - sizeof(asn_DEF_FreqBandIndicatorNR_tags_1) - /sizeof(asn_DEF_FreqBandIndicatorNR_tags_1[0]), /* 1 */ - asn_DEF_FreqBandIndicatorNR_tags_1, /* Same as above */ - sizeof(asn_DEF_FreqBandIndicatorNR_tags_1) - /sizeof(asn_DEF_FreqBandIndicatorNR_tags_1[0]), /* 1 */ - { &asn_OER_type_FreqBandIndicatorNR_constr_1, &asn_PER_type_FreqBandIndicatorNR_constr_1, FreqBandIndicatorNR_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/FreqBandIndicatorNR.h b/src/codec_utils/SYSINFO/FreqBandIndicatorNR.h deleted file mode 100644 index a81d749b5..000000000 --- a/src/codec_utils/SYSINFO/FreqBandIndicatorNR.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _FreqBandIndicatorNR_H_ -#define _FreqBandIndicatorNR_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* FreqBandIndicatorNR */ -typedef long FreqBandIndicatorNR_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_FreqBandIndicatorNR_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_FreqBandIndicatorNR; -asn_struct_free_f FreqBandIndicatorNR_free; -asn_struct_print_f FreqBandIndicatorNR_print; -asn_constr_check_f FreqBandIndicatorNR_constraint; -ber_type_decoder_f FreqBandIndicatorNR_decode_ber; -der_type_encoder_f FreqBandIndicatorNR_encode_der; -xer_type_decoder_f FreqBandIndicatorNR_decode_xer; -xer_type_encoder_f FreqBandIndicatorNR_encode_xer; -oer_type_decoder_f FreqBandIndicatorNR_decode_oer; -oer_type_encoder_f FreqBandIndicatorNR_encode_oer; -per_type_decoder_f FreqBandIndicatorNR_decode_uper; -per_type_encoder_f FreqBandIndicatorNR_encode_uper; -per_type_decoder_f FreqBandIndicatorNR_decode_aper; -per_type_encoder_f FreqBandIndicatorNR_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _FreqBandIndicatorNR_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.c b/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.c deleted file mode 100644 index 1f5649cf1..000000000 --- a/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "FrequencyInfoDL-SIB.h" - -#include "SCS-SpecificCarrier.h" -static int -memb_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_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..5)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_offsetToPointA_constr_3 CC_NOTUSED = { - { 2, 1 } /* (0..2199) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..5)) */}; -static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SCS_SpecificCarrier, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_4 = { - sizeof(struct FrequencyInfoDL_SIB__scs_SpecificCarrierList), - offsetof(struct FrequencyInfoDL_SIB__scs_SpecificCarrierList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_4 = { - "scs-SpecificCarrierList", - "scs-SpecificCarrierList", - &asn_OP_SEQUENCE_OF, - asn_DEF_scs_SpecificCarrierList_tags_4, - sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) - /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ - asn_DEF_scs_SpecificCarrierList_tags_4, /* Same as above */ - sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) - /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]), /* 2 */ - { &asn_OER_type_scs_SpecificCarrierList_constr_4, &asn_PER_type_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_scs_SpecificCarrierList_4, - 1, /* Single element */ - &asn_SPC_scs_SpecificCarrierList_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FrequencyInfoDL_SIB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, frequencyBandList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MultiFrequencyBandListNR_SIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "frequencyBandList" - }, - { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, offsetToPointA), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_offsetToPointA_constr_3, &asn_PER_memb_offsetToPointA_constr_3, memb_offsetToPointA_constraint_1 }, - 0, 0, /* No default value */ - "offsetToPointA" - }, - { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoDL_SIB, scs_SpecificCarrierList), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_scs_SpecificCarrierList_4, - 0, - { &asn_OER_memb_scs_SpecificCarrierList_constr_4, &asn_PER_memb_scs_SpecificCarrierList_constr_4, memb_scs_SpecificCarrierList_constraint_1 }, - 0, 0, /* No default value */ - "scs-SpecificCarrierList" - }, -}; -static const ber_tlv_tag_t asn_DEF_FrequencyInfoDL_SIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoDL_SIB_specs_1 = { - sizeof(struct FrequencyInfoDL_SIB), - offsetof(struct FrequencyInfoDL_SIB, _asn_ctx), - asn_MAP_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_FrequencyInfoDL_SIB = { - "FrequencyInfoDL-SIB", - "FrequencyInfoDL-SIB", - &asn_OP_SEQUENCE, - asn_DEF_FrequencyInfoDL_SIB_tags_1, - sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1) - /sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ - asn_DEF_FrequencyInfoDL_SIB_tags_1, /* Same as above */ - sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1) - /sizeof(asn_DEF_FrequencyInfoDL_SIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FrequencyInfoDL_SIB_1, - 3, /* Elements count */ - &asn_SPC_FrequencyInfoDL_SIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.h b/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.h deleted file mode 100644 index 940d89055..000000000 --- a/src/codec_utils/SYSINFO/FrequencyInfoDL-SIB.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _FrequencyInfoDL_SIB_H_ -#define _FrequencyInfoDL_SIB_H_ - - -#include - -/* Including external dependencies */ -#include "MultiFrequencyBandListNR-SIB.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SCS_SpecificCarrier; - -/* FrequencyInfoDL-SIB */ -typedef struct FrequencyInfoDL_SIB { - MultiFrequencyBandListNR_SIB_t frequencyBandList; - long offsetToPointA; - struct FrequencyInfoDL_SIB__scs_SpecificCarrierList { - A_SEQUENCE_OF(struct 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; -} FrequencyInfoDL_SIB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoDL_SIB; -extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoDL_SIB_specs_1; -extern asn_TYPE_member_t asn_MBR_FrequencyInfoDL_SIB_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FrequencyInfoDL_SIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.c b/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.c deleted file mode 100644 index b41798479..000000000 --- a/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "FrequencyInfoUL-SIB.h" - -#include "MultiFrequencyBandListNR-SIB.h" -#include "SCS-SpecificCarrier.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_oer_constraints_t asn_OER_type_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..5)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_frequencyShift7p5khz_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_scs_SpecificCarrierList_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..5)) */}; -static asn_per_constraints_t asn_PER_memb_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_scs_SpecificCarrierList_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SCS_SpecificCarrier, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_scs_SpecificCarrierList_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_scs_SpecificCarrierList_specs_4 = { - sizeof(struct FrequencyInfoUL_SIB__scs_SpecificCarrierList), - offsetof(struct FrequencyInfoUL_SIB__scs_SpecificCarrierList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_scs_SpecificCarrierList_4 = { - "scs-SpecificCarrierList", - "scs-SpecificCarrierList", - &asn_OP_SEQUENCE_OF, - asn_DEF_scs_SpecificCarrierList_tags_4, - sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) - /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]) - 1, /* 1 */ - asn_DEF_scs_SpecificCarrierList_tags_4, /* Same as above */ - sizeof(asn_DEF_scs_SpecificCarrierList_tags_4) - /sizeof(asn_DEF_scs_SpecificCarrierList_tags_4[0]), /* 2 */ - { &asn_OER_type_scs_SpecificCarrierList_constr_4, &asn_PER_type_scs_SpecificCarrierList_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_scs_SpecificCarrierList_4, - 1, /* Single element */ - &asn_SPC_scs_SpecificCarrierList_specs_4 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_frequencyShift7p5khz_value2enum_7[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_frequencyShift7p5khz_enum2value_7[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_frequencyShift7p5khz_specs_7 = { - asn_MAP_frequencyShift7p5khz_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_frequencyShift7p5khz_7 = { - "frequencyShift7p5khz", - "frequencyShift7p5khz", - &asn_OP_NativeEnumerated, - asn_DEF_frequencyShift7p5khz_tags_7, - sizeof(asn_DEF_frequencyShift7p5khz_tags_7) - /sizeof(asn_DEF_frequencyShift7p5khz_tags_7[0]) - 1, /* 1 */ - asn_DEF_frequencyShift7p5khz_tags_7, /* Same as above */ - sizeof(asn_DEF_frequencyShift7p5khz_tags_7) - /sizeof(asn_DEF_frequencyShift7p5khz_tags_7[0]), /* 2 */ - { &asn_OER_type_frequencyShift7p5khz_constr_7, &asn_PER_type_frequencyShift7p5khz_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_frequencyShift7p5khz_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_FrequencyInfoUL_SIB_1[] = { - { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL_SIB, frequencyBandList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MultiFrequencyBandListNR_SIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "frequencyBandList" - }, - { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL_SIB, absoluteFrequencyPointA), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ARFCN_ValueNR, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "absoluteFrequencyPointA" - }, - { ATF_NOFLAGS, 0, offsetof(struct FrequencyInfoUL_SIB, scs_SpecificCarrierList), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_scs_SpecificCarrierList_4, - 0, - { &asn_OER_memb_scs_SpecificCarrierList_constr_4, &asn_PER_memb_scs_SpecificCarrierList_constr_4, memb_scs_SpecificCarrierList_constraint_1 }, - 0, 0, /* No default value */ - "scs-SpecificCarrierList" - }, - { ATF_POINTER, 2, offsetof(struct FrequencyInfoUL_SIB, p_Max), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_P_Max, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "p-Max" - }, - { ATF_POINTER, 1, offsetof(struct FrequencyInfoUL_SIB, frequencyShift7p5khz), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_frequencyShift7p5khz_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "frequencyShift7p5khz" - }, -}; -static const int asn_MAP_FrequencyInfoUL_SIB_oms_1[] = { 0, 1, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_FrequencyInfoUL_SIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_FrequencyInfoUL_SIB_specs_1 = { - sizeof(struct FrequencyInfoUL_SIB), - offsetof(struct FrequencyInfoUL_SIB, _asn_ctx), - asn_MAP_FrequencyInfoUL_SIB_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_FrequencyInfoUL_SIB_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL_SIB = { - "FrequencyInfoUL-SIB", - "FrequencyInfoUL-SIB", - &asn_OP_SEQUENCE, - asn_DEF_FrequencyInfoUL_SIB_tags_1, - sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1) - /sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ - asn_DEF_FrequencyInfoUL_SIB_tags_1, /* Same as above */ - sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1) - /sizeof(asn_DEF_FrequencyInfoUL_SIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_FrequencyInfoUL_SIB_1, - 5, /* Elements count */ - &asn_SPC_FrequencyInfoUL_SIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.h b/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.h deleted file mode 100644 index dc0deda45..000000000 --- a/src/codec_utils/SYSINFO/FrequencyInfoUL-SIB.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _FrequencyInfoUL_SIB_H_ -#define _FrequencyInfoUL_SIB_H_ - - -#include - -/* Including external dependencies */ -#include "ARFCN-ValueNR.h" -#include "P-Max.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum FrequencyInfoUL_SIB__frequencyShift7p5khz { - FrequencyInfoUL_SIB__frequencyShift7p5khz_true = 0 -} e_FrequencyInfoUL_SIB__frequencyShift7p5khz; - -/* Forward declarations */ -struct MultiFrequencyBandListNR_SIB; -struct SCS_SpecificCarrier; - -/* FrequencyInfoUL-SIB */ -typedef struct FrequencyInfoUL_SIB { - struct MultiFrequencyBandListNR_SIB *frequencyBandList; /* OPTIONAL */ - ARFCN_ValueNR_t *absoluteFrequencyPointA; /* OPTIONAL */ - struct FrequencyInfoUL_SIB__scs_SpecificCarrierList { - A_SEQUENCE_OF(struct SCS_SpecificCarrier) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } scs_SpecificCarrierList; - 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; -} FrequencyInfoUL_SIB_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_frequencyShift7p5khz_7; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_FrequencyInfoUL_SIB; -extern asn_SEQUENCE_specifics_t asn_SPC_FrequencyInfoUL_SIB_specs_1; -extern asn_TYPE_member_t asn_MBR_FrequencyInfoUL_SIB_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _FrequencyInfoUL_SIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/MCC-MNC-Digit.c b/src/codec_utils/SYSINFO/MCC-MNC-Digit.c deleted file mode 100644 index eb9c50fa8..000000000 --- a/src/codec_utils/SYSINFO/MCC-MNC-Digit.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "MCC-MNC-Digit.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_MCC_MNC_Digit_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..9) */, - -1}; -asn_per_constraints_t asn_PER_type_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_MCC_MNC_Digit_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_MCC_MNC_Digit = { - "MCC-MNC-Digit", - "MCC-MNC-Digit", - &asn_OP_NativeInteger, - asn_DEF_MCC_MNC_Digit_tags_1, - sizeof(asn_DEF_MCC_MNC_Digit_tags_1) - /sizeof(asn_DEF_MCC_MNC_Digit_tags_1[0]), /* 1 */ - asn_DEF_MCC_MNC_Digit_tags_1, /* Same as above */ - sizeof(asn_DEF_MCC_MNC_Digit_tags_1) - /sizeof(asn_DEF_MCC_MNC_Digit_tags_1[0]), /* 1 */ - { &asn_OER_type_MCC_MNC_Digit_constr_1, &asn_PER_type_MCC_MNC_Digit_constr_1, MCC_MNC_Digit_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/MCC-MNC-Digit.h b/src/codec_utils/SYSINFO/MCC-MNC-Digit.h deleted file mode 100644 index c0f4ac6c2..000000000 --- a/src/codec_utils/SYSINFO/MCC-MNC-Digit.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _MCC_MNC_Digit_H_ -#define _MCC_MNC_Digit_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* MCC-MNC-Digit */ -typedef long MCC_MNC_Digit_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_MCC_MNC_Digit_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_MCC_MNC_Digit; -asn_struct_free_f MCC_MNC_Digit_free; -asn_struct_print_f MCC_MNC_Digit_print; -asn_constr_check_f MCC_MNC_Digit_constraint; -ber_type_decoder_f MCC_MNC_Digit_decode_ber; -der_type_encoder_f MCC_MNC_Digit_encode_der; -xer_type_decoder_f MCC_MNC_Digit_decode_xer; -xer_type_encoder_f MCC_MNC_Digit_encode_xer; -oer_type_decoder_f MCC_MNC_Digit_decode_oer; -oer_type_encoder_f MCC_MNC_Digit_encode_oer; -per_type_decoder_f MCC_MNC_Digit_decode_uper; -per_type_encoder_f MCC_MNC_Digit_encode_uper; -per_type_decoder_f MCC_MNC_Digit_decode_aper; -per_type_encoder_f MCC_MNC_Digit_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _MCC_MNC_Digit_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/MCC.c b/src/codec_utils/SYSINFO/MCC.c deleted file mode 100644 index bb7b45d8c..000000000 --- a/src/codec_utils/SYSINFO/MCC.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "MCC.h" - -static asn_oer_constraints_t asn_OER_type_MCC_constr_1 CC_NOTUSED = { - { 0, 0 }, - 3 /* (SIZE(3..3)) */}; -asn_per_constraints_t asn_PER_type_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_MCC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_MCC_MNC_Digit, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MCC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MCC_specs_1 = { - sizeof(struct MCC), - offsetof(struct MCC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MCC = { - "MCC", - "MCC", - &asn_OP_SEQUENCE_OF, - asn_DEF_MCC_tags_1, - sizeof(asn_DEF_MCC_tags_1) - /sizeof(asn_DEF_MCC_tags_1[0]), /* 1 */ - asn_DEF_MCC_tags_1, /* Same as above */ - sizeof(asn_DEF_MCC_tags_1) - /sizeof(asn_DEF_MCC_tags_1[0]), /* 1 */ - { &asn_OER_type_MCC_constr_1, &asn_PER_type_MCC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MCC_1, - 1, /* Single element */ - &asn_SPC_MCC_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/MCC.h b/src/codec_utils/SYSINFO/MCC.h deleted file mode 100644 index a9d775707..000000000 --- a/src/codec_utils/SYSINFO/MCC.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _MCC_H_ -#define _MCC_H_ - - -#include - -/* Including external dependencies */ -#include "MCC-MNC-Digit.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* MCC */ -typedef struct MCC { - A_SEQUENCE_OF(MCC_MNC_Digit_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MCC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MCC; -extern asn_SET_OF_specifics_t asn_SPC_MCC_specs_1; -extern asn_TYPE_member_t asn_MBR_MCC_1[1]; -extern asn_per_constraints_t asn_PER_type_MCC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MCC_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/MIB.c b/src/codec_utils/SYSINFO/MIB.c deleted file mode 100644 index 314ca61f7..000000000 --- a/src/codec_utils/SYSINFO/MIB.c +++ /dev/null @@ -1,427 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_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_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_oer_constraints_t asn_OER_type_subCarrierSpacingCommon_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dmrs_TypeA_Position_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cellBarred_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_intraFreqReselection_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_systemFrameNumber_constr_2 CC_NOTUSED = { - { 0, 0 }, - 6 /* (SIZE(6..6)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ssb_SubcarrierOffset_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_spare_constr_17 CC_NOTUSED = { - { 0, 0 }, - 1 /* (SIZE(1..1)) */}; -static asn_per_constraints_t asn_PER_memb_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_subCarrierSpacingCommon_value2enum_3[] = { - { 0, 9, "scs15or60" }, - { 1, 10, "scs30or120" } -}; -static const unsigned int asn_MAP_subCarrierSpacingCommon_enum2value_3[] = { - 0, /* scs15or60(0) */ - 1 /* scs30or120(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_subCarrierSpacingCommon_specs_3 = { - asn_MAP_subCarrierSpacingCommon_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_subCarrierSpacingCommon_3 = { - "subCarrierSpacingCommon", - "subCarrierSpacingCommon", - &asn_OP_NativeEnumerated, - asn_DEF_subCarrierSpacingCommon_tags_3, - sizeof(asn_DEF_subCarrierSpacingCommon_tags_3) - /sizeof(asn_DEF_subCarrierSpacingCommon_tags_3[0]) - 1, /* 1 */ - asn_DEF_subCarrierSpacingCommon_tags_3, /* Same as above */ - sizeof(asn_DEF_subCarrierSpacingCommon_tags_3) - /sizeof(asn_DEF_subCarrierSpacingCommon_tags_3[0]), /* 2 */ - { &asn_OER_type_subCarrierSpacingCommon_constr_3, &asn_PER_type_subCarrierSpacingCommon_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_subCarrierSpacingCommon_specs_3 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_dmrs_TypeA_Position_value2enum_7[] = { - { 0, 4, "pos2" }, - { 1, 4, "pos3" } -}; -static const unsigned int asn_MAP_dmrs_TypeA_Position_enum2value_7[] = { - 0, /* pos2(0) */ - 1 /* pos3(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_dmrs_TypeA_Position_specs_7 = { - asn_MAP_dmrs_TypeA_Position_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dmrs_TypeA_Position_7 = { - "dmrs-TypeA-Position", - "dmrs-TypeA-Position", - &asn_OP_NativeEnumerated, - asn_DEF_dmrs_TypeA_Position_tags_7, - sizeof(asn_DEF_dmrs_TypeA_Position_tags_7) - /sizeof(asn_DEF_dmrs_TypeA_Position_tags_7[0]) - 1, /* 1 */ - asn_DEF_dmrs_TypeA_Position_tags_7, /* Same as above */ - sizeof(asn_DEF_dmrs_TypeA_Position_tags_7) - /sizeof(asn_DEF_dmrs_TypeA_Position_tags_7[0]), /* 2 */ - { &asn_OER_type_dmrs_TypeA_Position_constr_7, &asn_PER_type_dmrs_TypeA_Position_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dmrs_TypeA_Position_specs_7 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_cellBarred_value2enum_11[] = { - { 0, 6, "barred" }, - { 1, 9, "notBarred" } -}; -static const unsigned int asn_MAP_cellBarred_enum2value_11[] = { - 0, /* barred(0) */ - 1 /* notBarred(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_cellBarred_specs_11 = { - asn_MAP_cellBarred_value2enum_11, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_cellBarred_11 = { - "cellBarred", - "cellBarred", - &asn_OP_NativeEnumerated, - asn_DEF_cellBarred_tags_11, - sizeof(asn_DEF_cellBarred_tags_11) - /sizeof(asn_DEF_cellBarred_tags_11[0]) - 1, /* 1 */ - asn_DEF_cellBarred_tags_11, /* Same as above */ - sizeof(asn_DEF_cellBarred_tags_11) - /sizeof(asn_DEF_cellBarred_tags_11[0]), /* 2 */ - { &asn_OER_type_cellBarred_constr_11, &asn_PER_type_cellBarred_constr_11, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_cellBarred_specs_11 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_intraFreqReselection_value2enum_14[] = { - { 0, 7, "allowed" }, - { 1, 10, "notAllowed" } -}; -static const unsigned int asn_MAP_intraFreqReselection_enum2value_14[] = { - 0, /* allowed(0) */ - 1 /* notAllowed(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_intraFreqReselection_specs_14 = { - asn_MAP_intraFreqReselection_value2enum_14, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_intraFreqReselection_14 = { - "intraFreqReselection", - "intraFreqReselection", - &asn_OP_NativeEnumerated, - asn_DEF_intraFreqReselection_tags_14, - sizeof(asn_DEF_intraFreqReselection_tags_14) - /sizeof(asn_DEF_intraFreqReselection_tags_14[0]) - 1, /* 1 */ - asn_DEF_intraFreqReselection_tags_14, /* Same as above */ - sizeof(asn_DEF_intraFreqReselection_tags_14) - /sizeof(asn_DEF_intraFreqReselection_tags_14[0]), /* 2 */ - { &asn_OER_type_intraFreqReselection_constr_14, &asn_PER_type_intraFreqReselection_constr_14, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_intraFreqReselection_specs_14 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_MIB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct MIB, systemFrameNumber), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_systemFrameNumber_constr_2, &asn_PER_memb_systemFrameNumber_constr_2, memb_systemFrameNumber_constraint_1 }, - 0, 0, /* No default value */ - "systemFrameNumber" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, subCarrierSpacingCommon), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_subCarrierSpacingCommon_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subCarrierSpacingCommon" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, ssb_SubcarrierOffset), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ssb_SubcarrierOffset_constr_6, &asn_PER_memb_ssb_SubcarrierOffset_constr_6, memb_ssb_SubcarrierOffset_constraint_1 }, - 0, 0, /* No default value */ - "ssb-SubcarrierOffset" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, dmrs_TypeA_Position), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dmrs_TypeA_Position_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dmrs-TypeA-Position" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, pdcch_ConfigSIB1), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDCCH_ConfigSIB1, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pdcch-ConfigSIB1" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, cellBarred), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_cellBarred_11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellBarred" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, intraFreqReselection), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_intraFreqReselection_14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "intraFreqReselection" - }, - { ATF_NOFLAGS, 0, offsetof(struct MIB, spare), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_spare_constr_17, &asn_PER_memb_spare_constr_17, memb_spare_constraint_1 }, - 0, 0, /* No default value */ - "spare" - }, -}; -static const ber_tlv_tag_t asn_DEF_MIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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 */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_MIB_specs_1 = { - sizeof(struct MIB), - offsetof(struct MIB, _asn_ctx), - asn_MAP_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_MIB = { - "MIB", - "MIB", - &asn_OP_SEQUENCE, - asn_DEF_MIB_tags_1, - sizeof(asn_DEF_MIB_tags_1) - /sizeof(asn_DEF_MIB_tags_1[0]), /* 1 */ - asn_DEF_MIB_tags_1, /* Same as above */ - sizeof(asn_DEF_MIB_tags_1) - /sizeof(asn_DEF_MIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_MIB_1, - 8, /* Elements count */ - &asn_SPC_MIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/MIB.h b/src/codec_utils/SYSINFO/MIB.h deleted file mode 100644 index 146085d46..000000000 --- a/src/codec_utils/SYSINFO/MIB.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _MIB_H_ -#define _MIB_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include -#include "PDCCH-ConfigSIB1.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum MIB__subCarrierSpacingCommon { - MIB__subCarrierSpacingCommon_scs15or60 = 0, - MIB__subCarrierSpacingCommon_scs30or120 = 1 -} e_MIB__subCarrierSpacingCommon; -typedef enum MIB__dmrs_TypeA_Position { - MIB__dmrs_TypeA_Position_pos2 = 0, - MIB__dmrs_TypeA_Position_pos3 = 1 -} e_MIB__dmrs_TypeA_Position; -typedef enum MIB__cellBarred { - MIB__cellBarred_barred = 0, - MIB__cellBarred_notBarred = 1 -} e_MIB__cellBarred; -typedef enum MIB__intraFreqReselection { - MIB__intraFreqReselection_allowed = 0, - MIB__intraFreqReselection_notAllowed = 1 -} e_MIB__intraFreqReselection; - -/* MIB */ -typedef struct MIB { - BIT_STRING_t systemFrameNumber; - long subCarrierSpacingCommon; - long ssb_SubcarrierOffset; - long dmrs_TypeA_Position; - 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; -} MIB_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_subCarrierSpacingCommon_3; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dmrs_TypeA_Position_7; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_cellBarred_11; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_intraFreqReselection_14; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_MIB; - -#ifdef __cplusplus -} -#endif - -#endif /* _MIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/MNC.c b/src/codec_utils/SYSINFO/MNC.c deleted file mode 100644 index d6ac31af7..000000000 --- a/src/codec_utils/SYSINFO/MNC.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "MNC.h" - -static asn_oer_constraints_t asn_OER_type_MNC_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(2..3)) */}; -asn_per_constraints_t asn_PER_type_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_MNC_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_MCC_MNC_Digit, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MNC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MNC_specs_1 = { - sizeof(struct MNC), - offsetof(struct MNC, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MNC = { - "MNC", - "MNC", - &asn_OP_SEQUENCE_OF, - asn_DEF_MNC_tags_1, - sizeof(asn_DEF_MNC_tags_1) - /sizeof(asn_DEF_MNC_tags_1[0]), /* 1 */ - asn_DEF_MNC_tags_1, /* Same as above */ - sizeof(asn_DEF_MNC_tags_1) - /sizeof(asn_DEF_MNC_tags_1[0]), /* 1 */ - { &asn_OER_type_MNC_constr_1, &asn_PER_type_MNC_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MNC_1, - 1, /* Single element */ - &asn_SPC_MNC_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/MNC.h b/src/codec_utils/SYSINFO/MNC.h deleted file mode 100644 index ddce10fa2..000000000 --- a/src/codec_utils/SYSINFO/MNC.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _MNC_H_ -#define _MNC_H_ - - -#include - -/* Including external dependencies */ -#include "MCC-MNC-Digit.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* MNC */ -typedef struct MNC { - A_SEQUENCE_OF(MCC_MNC_Digit_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MNC_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MNC; -extern asn_SET_OF_specifics_t asn_SPC_MNC_specs_1; -extern asn_TYPE_member_t asn_MBR_MNC_1[1]; -extern asn_per_constraints_t asn_PER_type_MNC_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MNC_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/Makefile.am.libasncodec b/src/codec_utils/SYSINFO/Makefile.am.libasncodec deleted file mode 100644 index 014887e5d..000000000 --- a/src/codec_utils/SYSINFO/Makefile.am.libasncodec +++ /dev/null @@ -1,240 +0,0 @@ -ASN_MODULE_SRCS= \ - ./new_out/MIB.c \ - ./new_out/PDCCH-ConfigSIB1.c \ - ./new_out/ControlResourceSetZero.c \ - ./new_out/SearchSpaceZero.c \ - ./new_out/SIB1.c \ - ./new_out/UAC-AccessCategory1-SelectionAssistanceInfo.c \ - ./new_out/Q-QualMin.c \ - ./new_out/Q-RxLevMin.c \ - ./new_out/CellAccessRelatedInfo.c \ - ./new_out/PLMN-IdentityInfoList.c \ - ./new_out/PLMN-IdentityInfo.c \ - ./new_out/PLMN-IdentitY.c \ - ./new_out/MCC.c \ - ./new_out/MNC.c \ - ./new_out/MCC-MNC-Digit.c \ - ./new_out/TrackingAreaCode.c \ - ./new_out/RAN-AreaCode.c \ - ./new_out/CellIdentity.c \ - ./new_out/ConnEstFailureControl.c \ - ./new_out/SI-SchedulingInfo.c \ - ./new_out/SchedulingInfo.c \ - ./new_out/SIB-Mapping.c \ - ./new_out/SIB-TypeInfo.c \ - ./new_out/SI-RequestConfig.c \ - ./new_out/SI-RequestResources.c \ - ./new_out/RACH-ConfigGeneric.c \ - ./new_out/ServingCellConfigCommonSIB.c \ - ./new_out/DownlinkConfigCommonSIB.c \ - ./new_out/BCCH-Config.c \ - ./new_out/PCCH-Config.c \ - ./new_out/PagingCycle.c \ - ./new_out/FrequencyInfoDL-SIB.c \ - ./new_out/MultiFrequencyBandListNR-SIB.c \ - ./new_out/NR-MultiBandInfo.c \ - ./new_out/FreqBandIndicatorNR.c \ - ./new_out/NR-NS-PmaxList.c \ - ./new_out/NR-NS-PmaxValue.c \ - ./new_out/P-Max.c \ - ./new_out/AdditionalSpectrumEmission.c \ - ./new_out/SCS-SpecificCarrier.c \ - ./new_out/SubcarrierSpacing.c \ - ./new_out/BWP-DownlinkCommon.c \ - ./new_out/PDCCH-ConfigCommon.c \ - ./new_out/ControlResourceSet.c \ - ./new_out/ControlResourceSetId.c \ - ./new_out/SearchSpace.c \ - ./new_out/SearchSpaceId.c \ - ./new_out/PDSCH-ConfigCommon.c \ - ./new_out/PDSCH-TimeDomainResourceAllocationList.c \ - ./new_out/PDSCH-TimeDomainResourceAllocation.c \ - ./new_out/UplinkConfigCommonSIB.c \ - ./new_out/FrequencyInfoUL-SIB.c \ - ./new_out/ARFCN-ValueNR.c \ - ./new_out/BWP-UplinkCommon.c \ - ./new_out/BWP.c \ - ./new_out/PUSCH-ConfigCommon.c \ - ./new_out/PUSCH-TimeDomainResourceAllocationList.c \ - ./new_out/PUSCH-TimeDomainResourceAllocation.c \ - ./new_out/PUCCH-ConfigCommon.c \ - ./new_out/TimeAlignmentTimer.c \ - ./new_out/TDD-UL-DL-ConfigCommon.c \ - ./new_out/TDD-UL-DL-Pattern.c \ - ./new_out/RACH-ConfigCommon.c \ - ./new_out/RSRP-Range.c \ - ./new_out/UE-TimersAndConstants.c \ - ./new_out/UAC-BarringPerCatList.c \ - ./new_out/UAC-BarringPerCat.c \ - ./new_out/UAC-BarringInfoSetIndex.c \ - ./new_out/UAC-BarringPerPLMN-List.c \ - ./new_out/UAC-BarringPerPLMN.c \ - ./new_out/UAC-BarringInfoSetList.c \ - ./new_out/UAC-BarringInfoSet.c \ - ./new_out/TCI-StateId.c - -ASN_MODULE_HDRS= \ - ./new_out/MIB.h \ - ./new_out/PDCCH-ConfigSIB1.h \ - ./new_out/ControlResourceSetZero.h \ - ./new_out/SearchSpaceZero.h \ - ./new_out/SIB1.h \ - ./new_out/UAC-AccessCategory1-SelectionAssistanceInfo.h \ - ./new_out/Q-QualMin.h \ - ./new_out/Q-RxLevMin.h \ - ./new_out/CellAccessRelatedInfo.h \ - ./new_out/PLMN-IdentityInfoList.h \ - ./new_out/PLMN-IdentityInfo.h \ - ./new_out/PLMN-IdentitY.h \ - ./new_out/MCC.h \ - ./new_out/MNC.h \ - ./new_out/MCC-MNC-Digit.h \ - ./new_out/TrackingAreaCode.h \ - ./new_out/RAN-AreaCode.h \ - ./new_out/CellIdentity.h \ - ./new_out/ConnEstFailureControl.h \ - ./new_out/SI-SchedulingInfo.h \ - ./new_out/SchedulingInfo.h \ - ./new_out/SIB-Mapping.h \ - ./new_out/SIB-TypeInfo.h \ - ./new_out/SI-RequestConfig.h \ - ./new_out/SI-RequestResources.h \ - ./new_out/RACH-ConfigGeneric.h \ - ./new_out/ServingCellConfigCommonSIB.h \ - ./new_out/DownlinkConfigCommonSIB.h \ - ./new_out/BCCH-Config.h \ - ./new_out/PCCH-Config.h \ - ./new_out/PagingCycle.h \ - ./new_out/FrequencyInfoDL-SIB.h \ - ./new_out/MultiFrequencyBandListNR-SIB.h \ - ./new_out/NR-MultiBandInfo.h \ - ./new_out/FreqBandIndicatorNR.h \ - ./new_out/NR-NS-PmaxList.h \ - ./new_out/NR-NS-PmaxValue.h \ - ./new_out/P-Max.h \ - ./new_out/AdditionalSpectrumEmission.h \ - ./new_out/SCS-SpecificCarrier.h \ - ./new_out/SubcarrierSpacing.h \ - ./new_out/BWP-DownlinkCommon.h \ - ./new_out/PDCCH-ConfigCommon.h \ - ./new_out/ControlResourceSet.h \ - ./new_out/ControlResourceSetId.h \ - ./new_out/SearchSpace.h \ - ./new_out/SearchSpaceId.h \ - ./new_out/PDSCH-ConfigCommon.h \ - ./new_out/PDSCH-TimeDomainResourceAllocationList.h \ - ./new_out/PDSCH-TimeDomainResourceAllocation.h \ - ./new_out/UplinkConfigCommonSIB.h \ - ./new_out/FrequencyInfoUL-SIB.h \ - ./new_out/ARFCN-ValueNR.h \ - ./new_out/BWP-UplinkCommon.h \ - ./new_out/BWP.h \ - ./new_out/PUSCH-ConfigCommon.h \ - ./new_out/PUSCH-TimeDomainResourceAllocationList.h \ - ./new_out/PUSCH-TimeDomainResourceAllocation.h \ - ./new_out/PUCCH-ConfigCommon.h \ - ./new_out/TimeAlignmentTimer.h \ - ./new_out/TDD-UL-DL-ConfigCommon.h \ - ./new_out/TDD-UL-DL-Pattern.h \ - ./new_out/RACH-ConfigCommon.h \ - ./new_out/RSRP-Range.h \ - ./new_out/UE-TimersAndConstants.h \ - ./new_out/UAC-BarringPerCatList.h \ - ./new_out/UAC-BarringPerCat.h \ - ./new_out/UAC-BarringInfoSetIndex.h \ - ./new_out/UAC-BarringPerPLMN-List.h \ - ./new_out/UAC-BarringPerPLMN.h \ - ./new_out/UAC-BarringInfoSetList.h \ - ./new_out/UAC-BarringInfoSet.h \ - ./new_out/TCI-StateId.h - -ASN_MODULE_HDRS+=./new_out/OPEN_TYPE.h -ASN_MODULE_SRCS+=./new_out/OPEN_TYPE.c -ASN_MODULE_HDRS+=./new_out/constr_CHOICE.h -ASN_MODULE_HDRS+=./new_out/BOOLEAN.h -ASN_MODULE_SRCS+=./new_out/BOOLEAN.c -ASN_MODULE_HDRS+=./new_out/INTEGER.h -ASN_MODULE_SRCS+=./new_out/INTEGER.c -ASN_MODULE_HDRS+=./new_out/NULL.h -ASN_MODULE_SRCS+=./new_out/NULL.c -ASN_MODULE_HDRS+=./new_out/NativeEnumerated.h -ASN_MODULE_SRCS+=./new_out/NativeEnumerated.c -ASN_MODULE_HDRS+=./new_out/NativeInteger.h -ASN_MODULE_SRCS+=./new_out/NativeInteger.c -ASN_MODULE_HDRS+=./new_out/asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./new_out/asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./new_out/asn_SET_OF.h -ASN_MODULE_SRCS+=./new_out/asn_SET_OF.c -ASN_MODULE_SRCS+=./new_out/constr_CHOICE.c -ASN_MODULE_HDRS+=./new_out/constr_SEQUENCE.h -ASN_MODULE_SRCS+=./new_out/constr_SEQUENCE.c -ASN_MODULE_HDRS+=./new_out/constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./new_out/constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./new_out/constr_SET_OF.h -ASN_MODULE_SRCS+=./new_out/constr_SET_OF.c -ASN_MODULE_HDRS+=./new_out/asn_application.h -ASN_MODULE_SRCS+=./new_out/asn_application.c -ASN_MODULE_HDRS+=./new_out/asn_ioc.h -ASN_MODULE_HDRS+=./new_out/asn_system.h -ASN_MODULE_HDRS+=./new_out/asn_codecs.h -ASN_MODULE_HDRS+=./new_out/asn_internal.h -ASN_MODULE_SRCS+=./new_out/asn_internal.c -ASN_MODULE_HDRS+=./new_out/asn_random_fill.h -ASN_MODULE_SRCS+=./new_out/asn_random_fill.c -ASN_MODULE_HDRS+=./new_out/asn_bit_data.h -ASN_MODULE_SRCS+=./new_out/asn_bit_data.c -ASN_MODULE_HDRS+=./new_out/OCTET_STRING.h -ASN_MODULE_SRCS+=./new_out/OCTET_STRING.c -ASN_MODULE_HDRS+=./new_out/BIT_STRING.h -ASN_MODULE_SRCS+=./new_out/BIT_STRING.c -ASN_MODULE_SRCS+=./new_out/asn_codecs_prim.c -ASN_MODULE_HDRS+=./new_out/asn_codecs_prim.h -ASN_MODULE_HDRS+=./new_out/ber_tlv_length.h -ASN_MODULE_SRCS+=./new_out/ber_tlv_length.c -ASN_MODULE_HDRS+=./new_out/ber_tlv_tag.h -ASN_MODULE_SRCS+=./new_out/ber_tlv_tag.c -ASN_MODULE_HDRS+=./new_out/ber_decoder.h -ASN_MODULE_SRCS+=./new_out/ber_decoder.c -ASN_MODULE_HDRS+=./new_out/der_encoder.h -ASN_MODULE_SRCS+=./new_out/der_encoder.c -ASN_MODULE_HDRS+=./new_out/constr_TYPE.h -ASN_MODULE_SRCS+=./new_out/constr_TYPE.c -ASN_MODULE_HDRS+=./new_out/constraints.h -ASN_MODULE_SRCS+=./new_out/constraints.c -ASN_MODULE_HDRS+=./new_out/xer_support.h -ASN_MODULE_SRCS+=./new_out/xer_support.c -ASN_MODULE_HDRS+=./new_out/xer_decoder.h -ASN_MODULE_SRCS+=./new_out/xer_decoder.c -ASN_MODULE_HDRS+=./new_out/xer_encoder.h -ASN_MODULE_SRCS+=./new_out/xer_encoder.c -ASN_MODULE_HDRS+=./new_out/per_support.h -ASN_MODULE_SRCS+=./new_out/per_support.c -ASN_MODULE_HDRS+=./new_out/per_decoder.h -ASN_MODULE_SRCS+=./new_out/per_decoder.c -ASN_MODULE_HDRS+=./new_out/per_encoder.h -ASN_MODULE_SRCS+=./new_out/per_encoder.c -ASN_MODULE_HDRS+=./new_out/per_opentype.h -ASN_MODULE_SRCS+=./new_out/per_opentype.c -ASN_MODULE_HDRS+=./new_out/oer_decoder.h -ASN_MODULE_HDRS+=./new_out/oer_encoder.h -ASN_MODULE_HDRS+=./new_out/oer_support.h -ASN_MODULE_SRCS+=./new_out/oer_decoder.c -ASN_MODULE_SRCS+=./new_out/oer_encoder.c -ASN_MODULE_SRCS+=./new_out/oer_support.c -ASN_MODULE_SRCS+=./new_out/OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=./new_out/INTEGER_oer.c -ASN_MODULE_SRCS+=./new_out/BIT_STRING_oer.c -ASN_MODULE_SRCS+=./new_out/OCTET_STRING_oer.c -ASN_MODULE_SRCS+=./new_out/NativeInteger_oer.c -ASN_MODULE_SRCS+=./new_out/NativeEnumerated_oer.c -ASN_MODULE_SRCS+=./new_out/constr_CHOICE_oer.c -ASN_MODULE_SRCS+=./new_out/constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=./new_out/constr_SET_OF_oer.c - -ASN_MODULE_CFLAGS= - -lib_LTLIBRARIES+=libasncodec.la -libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./new_out/ -libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) -libasncodec_la_LDFLAGS=-lm diff --git a/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.c b/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.c deleted file mode 100644 index 8ef7c675e..000000000 --- a/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "MultiFrequencyBandListNR-SIB.h" - -#include "NR-MultiBandInfo.h" -static asn_oer_constraints_t asn_OER_type_MultiFrequencyBandListNR_SIB_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -asn_per_constraints_t asn_PER_type_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_MultiFrequencyBandListNR_SIB_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NR_MultiBandInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_SIB_specs_1 = { - sizeof(struct MultiFrequencyBandListNR_SIB), - offsetof(struct MultiFrequencyBandListNR_SIB, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR_SIB = { - "MultiFrequencyBandListNR-SIB", - "MultiFrequencyBandListNR-SIB", - &asn_OP_SEQUENCE_OF, - asn_DEF_MultiFrequencyBandListNR_SIB_tags_1, - sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1) - /sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ - asn_DEF_MultiFrequencyBandListNR_SIB_tags_1, /* Same as above */ - sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1) - /sizeof(asn_DEF_MultiFrequencyBandListNR_SIB_tags_1[0]), /* 1 */ - { &asn_OER_type_MultiFrequencyBandListNR_SIB_constr_1, &asn_PER_type_MultiFrequencyBandListNR_SIB_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_MultiFrequencyBandListNR_SIB_1, - 1, /* Single element */ - &asn_SPC_MultiFrequencyBandListNR_SIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.h b/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.h deleted file mode 100644 index 8241d527d..000000000 --- a/src/codec_utils/SYSINFO/MultiFrequencyBandListNR-SIB.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _MultiFrequencyBandListNR_SIB_H_ -#define _MultiFrequencyBandListNR_SIB_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NR_MultiBandInfo; - -/* MultiFrequencyBandListNR-SIB */ -typedef struct MultiFrequencyBandListNR_SIB { - A_SEQUENCE_OF(struct NR_MultiBandInfo) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} MultiFrequencyBandListNR_SIB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_MultiFrequencyBandListNR_SIB; -extern asn_SET_OF_specifics_t asn_SPC_MultiFrequencyBandListNR_SIB_specs_1; -extern asn_TYPE_member_t asn_MBR_MultiFrequencyBandListNR_SIB_1[1]; -extern asn_per_constraints_t asn_PER_type_MultiFrequencyBandListNR_SIB_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _MultiFrequencyBandListNR_SIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/NR-MultiBandInfo.c b/src/codec_utils/SYSINFO/NR-MultiBandInfo.c deleted file mode 100644 index 6c3f612e1..000000000 --- a/src/codec_utils/SYSINFO/NR-MultiBandInfo.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "NR-MultiBandInfo.h" - -#include "NR-NS-PmaxList.h" -asn_TYPE_member_t asn_MBR_NR_MultiBandInfo_1[] = { - { ATF_POINTER, 2, offsetof(struct NR_MultiBandInfo, freqBandIndicatorNR), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FreqBandIndicatorNR, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "freqBandIndicatorNR" - }, - { ATF_POINTER, 1, offsetof(struct NR_MultiBandInfo, nr_NS_PmaxList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NR_NS_PmaxList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nr-NS-PmaxList" - }, -}; -static const int asn_MAP_NR_MultiBandInfo_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_NR_MultiBandInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_NR_MultiBandInfo_specs_1 = { - sizeof(struct NR_MultiBandInfo), - offsetof(struct NR_MultiBandInfo, _asn_ctx), - asn_MAP_NR_MultiBandInfo_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_NR_MultiBandInfo_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NR_MultiBandInfo = { - "NR-MultiBandInfo", - "NR-MultiBandInfo", - &asn_OP_SEQUENCE, - asn_DEF_NR_MultiBandInfo_tags_1, - sizeof(asn_DEF_NR_MultiBandInfo_tags_1) - /sizeof(asn_DEF_NR_MultiBandInfo_tags_1[0]), /* 1 */ - asn_DEF_NR_MultiBandInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_NR_MultiBandInfo_tags_1) - /sizeof(asn_DEF_NR_MultiBandInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NR_MultiBandInfo_1, - 2, /* Elements count */ - &asn_SPC_NR_MultiBandInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/NR-MultiBandInfo.h b/src/codec_utils/SYSINFO/NR-MultiBandInfo.h deleted file mode 100644 index a838c64e5..000000000 --- a/src/codec_utils/SYSINFO/NR-MultiBandInfo.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _NR_MultiBandInfo_H_ -#define _NR_MultiBandInfo_H_ - - -#include - -/* Including external dependencies */ -#include "FreqBandIndicatorNR.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NR_NS_PmaxList; - -/* NR-MultiBandInfo */ -typedef struct NR_MultiBandInfo { - FreqBandIndicatorNR_t *freqBandIndicatorNR; /* OPTIONAL */ - struct NR_NS_PmaxList *nr_NS_PmaxList; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NR_MultiBandInfo_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NR_MultiBandInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_NR_MultiBandInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_NR_MultiBandInfo_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NR_MultiBandInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/NR-NS-PmaxList.c b/src/codec_utils/SYSINFO/NR-NS-PmaxList.c deleted file mode 100644 index 8317ed5da..000000000 --- a/src/codec_utils/SYSINFO/NR-NS-PmaxList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "NR-NS-PmaxList.h" - -#include "NR-NS-PmaxValue.h" -static asn_oer_constraints_t asn_OER_type_NR_NS_PmaxList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -asn_per_constraints_t asn_PER_type_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_NR_NS_PmaxList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_NR_NS_PmaxValue, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_NR_NS_PmaxList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_NR_NS_PmaxList_specs_1 = { - sizeof(struct NR_NS_PmaxList), - offsetof(struct NR_NS_PmaxList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxList = { - "NR-NS-PmaxList", - "NR-NS-PmaxList", - &asn_OP_SEQUENCE_OF, - asn_DEF_NR_NS_PmaxList_tags_1, - sizeof(asn_DEF_NR_NS_PmaxList_tags_1) - /sizeof(asn_DEF_NR_NS_PmaxList_tags_1[0]), /* 1 */ - asn_DEF_NR_NS_PmaxList_tags_1, /* Same as above */ - sizeof(asn_DEF_NR_NS_PmaxList_tags_1) - /sizeof(asn_DEF_NR_NS_PmaxList_tags_1[0]), /* 1 */ - { &asn_OER_type_NR_NS_PmaxList_constr_1, &asn_PER_type_NR_NS_PmaxList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_NR_NS_PmaxList_1, - 1, /* Single element */ - &asn_SPC_NR_NS_PmaxList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/NR-NS-PmaxList.h b/src/codec_utils/SYSINFO/NR-NS-PmaxList.h deleted file mode 100644 index e87586b00..000000000 --- a/src/codec_utils/SYSINFO/NR-NS-PmaxList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _NR_NS_PmaxList_H_ -#define _NR_NS_PmaxList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct NR_NS_PmaxValue; - -/* NR-NS-PmaxList */ -typedef struct NR_NS_PmaxList { - A_SEQUENCE_OF(struct NR_NS_PmaxValue) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NR_NS_PmaxList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxList; -extern asn_SET_OF_specifics_t asn_SPC_NR_NS_PmaxList_specs_1; -extern asn_TYPE_member_t asn_MBR_NR_NS_PmaxList_1[1]; -extern asn_per_constraints_t asn_PER_type_NR_NS_PmaxList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _NR_NS_PmaxList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/NR-NS-PmaxValue.c b/src/codec_utils/SYSINFO/NR-NS-PmaxValue.c deleted file mode 100644 index 6109654e8..000000000 --- a/src/codec_utils/SYSINFO/NR-NS-PmaxValue.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "NR-NS-PmaxValue.h" - -asn_TYPE_member_t asn_MBR_NR_NS_PmaxValue_1[] = { - { ATF_POINTER, 1, offsetof(struct NR_NS_PmaxValue, additionalPmax), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_P_Max, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "additionalPmax" - }, - { ATF_NOFLAGS, 0, offsetof(struct NR_NS_PmaxValue, additionalSpectrumEmission), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_AdditionalSpectrumEmission, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "additionalSpectrumEmission" - }, -}; -static const int asn_MAP_NR_NS_PmaxValue_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_NR_NS_PmaxValue_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_NR_NS_PmaxValue_specs_1 = { - sizeof(struct NR_NS_PmaxValue), - offsetof(struct NR_NS_PmaxValue, _asn_ctx), - asn_MAP_NR_NS_PmaxValue_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_NR_NS_PmaxValue_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxValue = { - "NR-NS-PmaxValue", - "NR-NS-PmaxValue", - &asn_OP_SEQUENCE, - asn_DEF_NR_NS_PmaxValue_tags_1, - sizeof(asn_DEF_NR_NS_PmaxValue_tags_1) - /sizeof(asn_DEF_NR_NS_PmaxValue_tags_1[0]), /* 1 */ - asn_DEF_NR_NS_PmaxValue_tags_1, /* Same as above */ - sizeof(asn_DEF_NR_NS_PmaxValue_tags_1) - /sizeof(asn_DEF_NR_NS_PmaxValue_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_NR_NS_PmaxValue_1, - 2, /* Elements count */ - &asn_SPC_NR_NS_PmaxValue_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/NR-NS-PmaxValue.h b/src/codec_utils/SYSINFO/NR-NS-PmaxValue.h deleted file mode 100644 index cc69b0e2f..000000000 --- a/src/codec_utils/SYSINFO/NR-NS-PmaxValue.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _NR_NS_PmaxValue_H_ -#define _NR_NS_PmaxValue_H_ - - -#include - -/* Including external dependencies */ -#include "P-Max.h" -#include "AdditionalSpectrumEmission.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* NR-NS-PmaxValue */ -typedef struct NR_NS_PmaxValue { - P_Max_t *additionalPmax; /* OPTIONAL */ - AdditionalSpectrumEmission_t additionalSpectrumEmission; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} NR_NS_PmaxValue_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_NR_NS_PmaxValue; -extern asn_SEQUENCE_specifics_t asn_SPC_NR_NS_PmaxValue_specs_1; -extern asn_TYPE_member_t asn_MBR_NR_NS_PmaxValue_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _NR_NS_PmaxValue_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/P-Max.c b/src/codec_utils/SYSINFO/P-Max.c deleted file mode 100644 index 597d97710..000000000 --- a/src/codec_utils/SYSINFO/P-Max.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "P-Max.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_P_Max_constr_1 CC_NOTUSED = { - { 1, 0 } /* (-30..33) */, - -1}; -asn_per_constraints_t asn_PER_type_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_P_Max_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_P_Max = { - "P-Max", - "P-Max", - &asn_OP_NativeInteger, - asn_DEF_P_Max_tags_1, - sizeof(asn_DEF_P_Max_tags_1) - /sizeof(asn_DEF_P_Max_tags_1[0]), /* 1 */ - asn_DEF_P_Max_tags_1, /* Same as above */ - sizeof(asn_DEF_P_Max_tags_1) - /sizeof(asn_DEF_P_Max_tags_1[0]), /* 1 */ - { &asn_OER_type_P_Max_constr_1, &asn_PER_type_P_Max_constr_1, P_Max_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/P-Max.h b/src/codec_utils/SYSINFO/P-Max.h deleted file mode 100644 index c6bc9b6c0..000000000 --- a/src/codec_utils/SYSINFO/P-Max.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _P_Max_H_ -#define _P_Max_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* P-Max */ -typedef long P_Max_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_P_Max_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_P_Max; -asn_struct_free_f P_Max_free; -asn_struct_print_f P_Max_print; -asn_constr_check_f P_Max_constraint; -ber_type_decoder_f P_Max_decode_ber; -der_type_encoder_f P_Max_encode_der; -xer_type_decoder_f P_Max_decode_xer; -xer_type_encoder_f P_Max_encode_xer; -oer_type_decoder_f P_Max_decode_oer; -oer_type_encoder_f P_Max_encode_oer; -per_type_decoder_f P_Max_decode_uper; -per_type_encoder_f P_Max_encode_uper; -per_type_decoder_f P_Max_decode_aper; -per_type_encoder_f P_Max_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _P_Max_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PCCH-Config.c b/src/codec_utils/SYSINFO/PCCH-Config.c deleted file mode 100644 index 509bc9734..000000000 --- a/src/codec_utils/SYSINFO/PCCH-Config.c +++ /dev/null @@ -1,1365 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PCCH-Config.h" - -static int -memb_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_halfT_constr_5 CC_NOTUSED = { - { 1, 1 } /* (0..1) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_quarterT_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..3) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_oneEighthT_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..7) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_oneSixteenthT_constr_8 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_nAndPagingFrameOffset_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ns_constr_9 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_15 CC_NOTUSED = { - { 1, 1 } /* (0..139) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS15KHZoneT_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_17 CC_NOTUSED = { - { 2, 1 } /* (0..279) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_19 CC_NOTUSED = { - { 2, 1 } /* (0..559) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_21 CC_NOTUSED = { - { 2, 1 } /* (0..1119) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_23 CC_NOTUSED = { - { 2, 1 } /* (0..2239) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_25 CC_NOTUSED = { - { 2, 1 } /* (0..4479) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_27 CC_NOTUSED = { - { 2, 1 } /* (0..8959) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_29 CC_NOTUSED = { - { 2, 1 } /* (0..17919) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_sCS15KHZoneT_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_nAndPagingFrameOffset_3[] = { - { ATF_NOFLAGS, 0, offsetof(struct 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 PCCH_Config__nAndPagingFrameOffset, choice.halfT), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_halfT_constr_5, &asn_PER_memb_halfT_constr_5, memb_halfT_constraint_3 }, - 0, 0, /* No default value */ - "halfT" - }, - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.quarterT), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_quarterT_constr_6, &asn_PER_memb_quarterT_constr_6, memb_quarterT_constraint_3 }, - 0, 0, /* No default value */ - "quarterT" - }, - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.oneEighthT), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_oneEighthT_constr_7, &asn_PER_memb_oneEighthT_constr_7, memb_oneEighthT_constraint_3 }, - 0, 0, /* No default value */ - "oneEighthT" - }, - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config__nAndPagingFrameOffset, choice.oneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_oneSixteenthT_constr_8, &asn_PER_memb_oneSixteenthT_constr_8, memb_oneSixteenthT_constraint_3 }, - 0, 0, /* No default value */ - "oneSixteenthT" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_nAndPagingFrameOffset_specs_3 = { - sizeof(struct PCCH_Config__nAndPagingFrameOffset), - offsetof(struct PCCH_Config__nAndPagingFrameOffset, _asn_ctx), - offsetof(struct PCCH_Config__nAndPagingFrameOffset, present), - sizeof(((struct PCCH_Config__nAndPagingFrameOffset *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_nAndPagingFrameOffset_constr_3, &asn_PER_type_nAndPagingFrameOffset_constr_3, CHOICE_constraint }, - asn_MBR_nAndPagingFrameOffset_3, - 5, /* Elements count */ - &asn_SPC_nAndPagingFrameOffset_specs_3 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_ns_value2enum_9[] = { - { 0, 4, "four" }, - { 1, 3, "two" }, - { 2, 3, "one" } -}; -static const unsigned int asn_MAP_ns_enum2value_9[] = { - 0, /* four(0) */ - 2, /* one(2) */ - 1 /* two(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_ns_specs_9 = { - asn_MAP_ns_value2enum_9, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ns_9 = { - "ns", - "ns", - &asn_OP_NativeEnumerated, - asn_DEF_ns_tags_9, - sizeof(asn_DEF_ns_tags_9) - /sizeof(asn_DEF_ns_tags_9[0]) - 1, /* 1 */ - asn_DEF_ns_tags_9, /* Same as above */ - sizeof(asn_DEF_ns_tags_9) - /sizeof(asn_DEF_ns_tags_9[0]), /* 2 */ - { &asn_OER_type_ns_constr_9, &asn_PER_type_ns_constr_9, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ns_specs_9 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS15KHZoneT_14[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_15, &asn_PER_memb_Member_constr_15, memb_NativeInteger_constraint_14 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS15KHZoneT_tags_14[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS15KHZoneT_specs_14 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT), - offsetof(struct 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_sCS15KHZoneT_14 = { - "sCS15KHZoneT", - "sCS15KHZoneT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS15KHZoneT_tags_14, - sizeof(asn_DEF_sCS15KHZoneT_tags_14) - /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]) - 1, /* 1 */ - asn_DEF_sCS15KHZoneT_tags_14, /* Same as above */ - sizeof(asn_DEF_sCS15KHZoneT_tags_14) - /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]), /* 2 */ - { &asn_OER_type_sCS15KHZoneT_constr_14, &asn_PER_type_sCS15KHZoneT_constr_14, SEQUENCE_OF_constraint }, - asn_MBR_sCS15KHZoneT_14, - 1, /* Single element */ - &asn_SPC_sCS15KHZoneT_specs_14 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_17, &asn_PER_memb_Member_constr_17, memb_NativeInteger_constraint_16 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT), - offsetof(struct 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_sCS30KHZoneT_SCS15KHZhalfT_16 = { - "sCS30KHZoneT-SCS15KHZhalfT", - "sCS30KHZoneT-SCS15KHZhalfT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, - sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) - /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]) - 1, /* 1 */ - asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, /* Same as above */ - sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) - /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]), /* 2 */ - { &asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, SEQUENCE_OF_constraint }, - asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16, - 1, /* Single element */ - &asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_19, &asn_PER_memb_Member_constr_19, memb_NativeInteger_constraint_18 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), - offsetof(struct 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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18 = { - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, - sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) - /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]) - 1, /* 1 */ - asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, /* Same as above */ - sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) - /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]), /* 2 */ - { &asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, SEQUENCE_OF_constraint }, - asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, - 1, /* Single element */ - &asn_SPC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_21, &asn_PER_memb_Member_constr_21, memb_NativeInteger_constraint_20 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), - offsetof(struct 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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20 = { - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, - sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) - /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) - /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_23, &asn_PER_memb_Member_constr_23, memb_NativeInteger_constraint_22 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22 = { - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, - sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) - /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, /* Same as above */ - sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) - /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]), /* 2 */ - { &asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, - 1, /* Single element */ - &asn_SPC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_25, &asn_PER_memb_Member_constr_25, memb_NativeInteger_constraint_24 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24 = { - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, - sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) - /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, /* Same as above */ - sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) - /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]), /* 2 */ - { &asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, - 1, /* Single element */ - &asn_SPC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_27, &asn_PER_memb_Member_constr_27, memb_NativeInteger_constraint_26 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[] = { - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26 = { - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, - sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) - /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) - /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneSixteenthT_28[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_29, &asn_PER_memb_Member_constr_29, memb_NativeInteger_constraint_28 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS120KHZoneSixteenthT_tags_28[] = { - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneSixteenthT_specs_28 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZoneSixteenthT_28 = { - "sCS120KHZoneSixteenthT", - "sCS120KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneSixteenthT_tags_28, - sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) - /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneSixteenthT_tags_28, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) - /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneSixteenthT_constr_28, &asn_PER_type_sCS120KHZoneSixteenthT_constr_28, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneSixteenthT_28, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneSixteenthT_specs_28 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13[] = { - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS15KHZoneT), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sCS15KHZoneT_14, - 0, - { &asn_OER_memb_sCS15KHZoneT_constr_14, &asn_PER_memb_sCS15KHZoneT_constr_14, memb_sCS15KHZoneT_constraint_13 }, - 0, 0, /* No default value */ - "sCS15KHZoneT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS30KHZoneT_SCS15KHZhalfT), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_16, - 0, - { &asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, memb_sCS30KHZoneT_SCS15KHZhalfT_constraint_13 }, - 0, 0, /* No default value */ - "sCS30KHZoneT-SCS15KHZhalfT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, - 0, - { &asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13 }, - 0, 0, /* No default value */ - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, - 0, - { &asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - 0, - &asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, - 0, - { &asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - 0, - &asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, - 0, - { &asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - 0, - &asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, - 0, - { &asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - 0, - &asn_DEF_sCS120KHZoneSixteenthT_28, - 0, - { &asn_OER_memb_sCS120KHZoneSixteenthT_constr_28, &asn_PER_memb_sCS120KHZoneSixteenthT_constr_28, memb_sCS120KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneSixteenthT" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_firstPDCCH_MonitoringOccasionOfPO_specs_13 = { - sizeof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO), - offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, _asn_ctx), - offsetof(struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO, present), - sizeof(((struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, &asn_PER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, CHOICE_constraint }, - asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13, - 8, /* Elements count */ - &asn_SPC_firstPDCCH_MonitoringOccasionOfPO_specs_13 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PCCH_Config_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, defaultPagingCycle), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PagingCycle, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "defaultPagingCycle" - }, - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, nAndPagingFrameOffset), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_nAndPagingFrameOffset_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nAndPagingFrameOffset" - }, - { ATF_NOFLAGS, 0, offsetof(struct PCCH_Config, ns), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ns_9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ns" - }, - { ATF_POINTER, 1, offsetof(struct PCCH_Config, firstPDCCH_MonitoringOccasionOfPO), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_firstPDCCH_MonitoringOccasionOfPO_13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "firstPDCCH-MonitoringOccasionOfPO" - }, -}; -static const int asn_MAP_PCCH_Config_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_PCCH_Config_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PCCH_Config_specs_1 = { - sizeof(struct PCCH_Config), - offsetof(struct PCCH_Config, _asn_ctx), - asn_MAP_PCCH_Config_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_PCCH_Config_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PCCH_Config = { - "PCCH-Config", - "PCCH-Config", - &asn_OP_SEQUENCE, - asn_DEF_PCCH_Config_tags_1, - sizeof(asn_DEF_PCCH_Config_tags_1) - /sizeof(asn_DEF_PCCH_Config_tags_1[0]), /* 1 */ - asn_DEF_PCCH_Config_tags_1, /* Same as above */ - sizeof(asn_DEF_PCCH_Config_tags_1) - /sizeof(asn_DEF_PCCH_Config_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PCCH_Config_1, - 4, /* Elements count */ - &asn_SPC_PCCH_Config_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PCCH-Config.h b/src/codec_utils/SYSINFO/PCCH-Config.h deleted file mode 100644 index bbf5f5cb8..000000000 --- a/src/codec_utils/SYSINFO/PCCH-Config.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PCCH_Config_H_ -#define _PCCH_Config_H_ - - -#include - -/* Including external dependencies */ -#include "PagingCycle.h" -#include -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PCCH_Config__nAndPagingFrameOffset_PR { - PCCH_Config__nAndPagingFrameOffset_PR_NOTHING, /* No components present */ - PCCH_Config__nAndPagingFrameOffset_PR_oneT, - PCCH_Config__nAndPagingFrameOffset_PR_halfT, - PCCH_Config__nAndPagingFrameOffset_PR_quarterT, - PCCH_Config__nAndPagingFrameOffset_PR_oneEighthT, - PCCH_Config__nAndPagingFrameOffset_PR_oneSixteenthT -} PCCH_Config__nAndPagingFrameOffset_PR; -typedef enum PCCH_Config__ns { - PCCH_Config__ns_four = 0, - PCCH_Config__ns_two = 1, - PCCH_Config__ns_one = 2 -} e_PCCH_Config__ns; -typedef enum PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR { - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING, /* No components present */ - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS15KHZoneT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneSixteenthT -} PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR; - -/* PCCH-Config */ -typedef struct PCCH_Config { - PagingCycle_t defaultPagingCycle; - struct PCCH_Config__nAndPagingFrameOffset { - PCCH_Config__nAndPagingFrameOffset_PR present; - union PCCH_Config__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 PCCH_Config__firstPDCCH_MonitoringOccasionOfPO { - PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR present; - union PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_u { - struct PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT { - A_SEQUENCE_OF(long) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *sCS15KHZoneT; - struct 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 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 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 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 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 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 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; -} PCCH_Config_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_ns_9; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PCCH_Config; -extern asn_SEQUENCE_specifics_t asn_SPC_PCCH_Config_specs_1; -extern asn_TYPE_member_t asn_MBR_PCCH_Config_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PCCH_Config_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.c b/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.c deleted file mode 100644 index b626d6bed..000000000 --- a/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.c +++ /dev/null @@ -1,1271 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PDCCH-ConfigCommon.h" - -#include "ControlResourceSet.h" -#include "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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_commonSearchSpaceList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_15 CC_NOTUSED = { - { 1, 1 } /* (0..139) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS15KHZoneT_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_17 CC_NOTUSED = { - { 2, 1 } /* (0..279) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_19 CC_NOTUSED = { - { 2, 1 } /* (0..559) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_21 CC_NOTUSED = { - { 2, 1 } /* (0..1119) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_23 CC_NOTUSED = { - { 2, 1 } /* (0..2239) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_25 CC_NOTUSED = { - { 2, 1 } /* (0..4479) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_27 CC_NOTUSED = { - { 2, 1 } /* (0..8959) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_Member_constr_29 CC_NOTUSED = { - { 2, 1 } /* (0..17919) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_sCS15KHZoneT_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sCS120KHZoneSixteenthT_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_commonSearchSpaceList_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..4)) */}; -static asn_per_constraints_t asn_PER_memb_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_commonSearchSpaceList_5[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SearchSpace, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_commonSearchSpaceList_tags_5[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_commonSearchSpaceList_specs_5 = { - sizeof(struct PDCCH_ConfigCommon__commonSearchSpaceList), - offsetof(struct PDCCH_ConfigCommon__commonSearchSpaceList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_commonSearchSpaceList_5 = { - "commonSearchSpaceList", - "commonSearchSpaceList", - &asn_OP_SEQUENCE_OF, - asn_DEF_commonSearchSpaceList_tags_5, - sizeof(asn_DEF_commonSearchSpaceList_tags_5) - /sizeof(asn_DEF_commonSearchSpaceList_tags_5[0]) - 1, /* 1 */ - asn_DEF_commonSearchSpaceList_tags_5, /* Same as above */ - sizeof(asn_DEF_commonSearchSpaceList_tags_5) - /sizeof(asn_DEF_commonSearchSpaceList_tags_5[0]), /* 2 */ - { &asn_OER_type_commonSearchSpaceList_constr_5, &asn_PER_type_commonSearchSpaceList_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_commonSearchSpaceList_5, - 1, /* Single element */ - &asn_SPC_commonSearchSpaceList_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS15KHZoneT_14[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_15, &asn_PER_memb_Member_constr_15, memb_NativeInteger_constraint_14 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS15KHZoneT_tags_14[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS15KHZoneT_specs_14 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS15KHZoneT), - offsetof(struct 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_sCS15KHZoneT_14 = { - "sCS15KHZoneT", - "sCS15KHZoneT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS15KHZoneT_tags_14, - sizeof(asn_DEF_sCS15KHZoneT_tags_14) - /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]) - 1, /* 1 */ - asn_DEF_sCS15KHZoneT_tags_14, /* Same as above */ - sizeof(asn_DEF_sCS15KHZoneT_tags_14) - /sizeof(asn_DEF_sCS15KHZoneT_tags_14[0]), /* 2 */ - { &asn_OER_type_sCS15KHZoneT_constr_14, &asn_PER_type_sCS15KHZoneT_constr_14, SEQUENCE_OF_constraint }, - asn_MBR_sCS15KHZoneT_14, - 1, /* Single element */ - &asn_SPC_sCS15KHZoneT_specs_14 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_17, &asn_PER_memb_Member_constr_17, memb_NativeInteger_constraint_16 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS30KHZoneT_SCS15KHZhalfT), - offsetof(struct 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_sCS30KHZoneT_SCS15KHZhalfT_16 = { - "sCS30KHZoneT-SCS15KHZhalfT", - "sCS30KHZoneT-SCS15KHZhalfT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, - sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) - /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]) - 1, /* 1 */ - asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16, /* Same as above */ - sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16) - /sizeof(asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_tags_16[0]), /* 2 */ - { &asn_OER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_type_sCS30KHZoneT_SCS15KHZhalfT_constr_16, SEQUENCE_OF_constraint }, - asn_MBR_sCS30KHZoneT_SCS15KHZhalfT_16, - 1, /* Single element */ - &asn_SPC_sCS30KHZoneT_SCS15KHZhalfT_specs_16 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_19, &asn_PER_memb_Member_constr_19, memb_NativeInteger_constraint_18 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), - offsetof(struct 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_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18 = { - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, - sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) - /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]) - 1, /* 1 */ - asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18, /* Same as above */ - sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18) - /sizeof(asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_tags_18[0]), /* 2 */ - { &asn_OER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_type_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, SEQUENCE_OF_constraint }, - asn_MBR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, - 1, /* Single element */ - &asn_SPC_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_specs_18 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_21, &asn_PER_memb_Member_constr_21, memb_NativeInteger_constraint_20 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), - offsetof(struct 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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20 = { - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, - sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) - /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20) - /sizeof(asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_tags_20[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_type_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_specs_20 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_23, &asn_PER_memb_Member_constr_23, memb_NativeInteger_constraint_22 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22 = { - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, - sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) - /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22, /* Same as above */ - sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22) - /sizeof(asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_tags_22[0]), /* 2 */ - { &asn_OER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_type_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, - 1, /* Single element */ - &asn_SPC_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_specs_22 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_25, &asn_PER_memb_Member_constr_25, memb_NativeInteger_constraint_24 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24 = { - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, - sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) - /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24, /* Same as above */ - sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24) - /sizeof(asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_tags_24[0]), /* 2 */ - { &asn_OER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_type_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, - 1, /* Single element */ - &asn_SPC_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_specs_24 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_27, &asn_PER_memb_Member_constr_27, memb_NativeInteger_constraint_26 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[] = { - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26 = { - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, - sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) - /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26) - /sizeof(asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_tags_26[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_type_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_specs_26 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_sCS120KHZoneSixteenthT_28[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_Member_constr_29, &asn_PER_memb_Member_constr_29, memb_NativeInteger_constraint_28 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_sCS120KHZoneSixteenthT_tags_28[] = { - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_sCS120KHZoneSixteenthT_specs_28 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneSixteenthT), - offsetof(struct 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_sCS120KHZoneSixteenthT_28 = { - "sCS120KHZoneSixteenthT", - "sCS120KHZoneSixteenthT", - &asn_OP_SEQUENCE_OF, - asn_DEF_sCS120KHZoneSixteenthT_tags_28, - sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) - /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]) - 1, /* 1 */ - asn_DEF_sCS120KHZoneSixteenthT_tags_28, /* Same as above */ - sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28) - /sizeof(asn_DEF_sCS120KHZoneSixteenthT_tags_28[0]), /* 2 */ - { &asn_OER_type_sCS120KHZoneSixteenthT_constr_28, &asn_PER_type_sCS120KHZoneSixteenthT_constr_28, SEQUENCE_OF_constraint }, - asn_MBR_sCS120KHZoneSixteenthT_28, - 1, /* Single element */ - &asn_SPC_sCS120KHZoneSixteenthT_specs_28 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13[] = { - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS15KHZoneT), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_sCS15KHZoneT_14, - 0, - { &asn_OER_memb_sCS15KHZoneT_constr_14, &asn_PER_memb_sCS15KHZoneT_constr_14, memb_sCS15KHZoneT_constraint_13 }, - 0, 0, /* No default value */ - "sCS15KHZoneT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS30KHZoneT_SCS15KHZhalfT), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_sCS30KHZoneT_SCS15KHZhalfT_16, - 0, - { &asn_OER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, &asn_PER_memb_sCS30KHZoneT_SCS15KHZhalfT_constr_16, memb_sCS30KHZoneT_SCS15KHZhalfT_constraint_13 }, - 0, 0, /* No default value */ - "sCS30KHZoneT-SCS15KHZhalfT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_18, - 0, - { &asn_OER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, &asn_PER_memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constr_18, memb_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_constraint_13 }, - 0, 0, /* No default value */ - "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_20, - 0, - { &asn_OER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, &asn_PER_memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constr_20, memb_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - 0, - &asn_DEF_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_22, - 0, - { &asn_OER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, &asn_PER_memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constr_22, memb_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - 0, - &asn_DEF_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_24, - 0, - { &asn_OER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, &asn_PER_memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constr_24, memb_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - 0, - &asn_DEF_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_26, - 0, - { &asn_OER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, &asn_PER_memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constr_26, memb_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" - }, - { ATF_POINTER, 0, offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, choice.sCS120KHZoneSixteenthT), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - 0, - &asn_DEF_sCS120KHZoneSixteenthT_28, - 0, - { &asn_OER_memb_sCS120KHZoneSixteenthT_constr_28, &asn_PER_memb_sCS120KHZoneSixteenthT_constr_28, memb_sCS120KHZoneSixteenthT_constraint_13 }, - 0, 0, /* No default value */ - "sCS120KHZoneSixteenthT" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_firstPDCCH_MonitoringOccasionOfPO_specs_13 = { - sizeof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO), - offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, _asn_ctx), - offsetof(struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO, present), - sizeof(((struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, &asn_PER_type_firstPDCCH_MonitoringOccasionOfPO_constr_13, CHOICE_constraint }, - asn_MBR_firstPDCCH_MonitoringOccasionOfPO_13, - 8, /* Elements count */ - &asn_SPC_firstPDCCH_MonitoringOccasionOfPO_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ext1_12[] = { - { ATF_POINTER, 1, offsetof(struct PDCCH_ConfigCommon__ext1, firstPDCCH_MonitoringOccasionOfPO), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_firstPDCCH_MonitoringOccasionOfPO_13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "firstPDCCH-MonitoringOccasionOfPO" - }, -}; -static const int asn_MAP_ext1_oms_12[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_ext1_tags_12[] = { - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_12[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* firstPDCCH-MonitoringOccasionOfPO */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_12 = { - sizeof(struct PDCCH_ConfigCommon__ext1), - offsetof(struct PDCCH_ConfigCommon__ext1, _asn_ctx), - asn_MAP_ext1_tag2el_12, - 1, /* Count of tags in the map */ - asn_MAP_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_ext1_12 = { - "ext1", - "ext1", - &asn_OP_SEQUENCE, - asn_DEF_ext1_tags_12, - sizeof(asn_DEF_ext1_tags_12) - /sizeof(asn_DEF_ext1_tags_12[0]) - 1, /* 1 */ - asn_DEF_ext1_tags_12, /* Same as above */ - sizeof(asn_DEF_ext1_tags_12) - /sizeof(asn_DEF_ext1_tags_12[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ext1_12, - 1, /* Elements count */ - &asn_SPC_ext1_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PDCCH_ConfigCommon_1[] = { - { ATF_POINTER, 9, offsetof(struct PDCCH_ConfigCommon, controlResourceSetZero), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ControlResourceSetZero, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "controlResourceSetZero" - }, - { ATF_POINTER, 8, offsetof(struct PDCCH_ConfigCommon, commonControlResourceSet), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ControlResourceSet, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "commonControlResourceSet" - }, - { ATF_POINTER, 7, offsetof(struct PDCCH_ConfigCommon, searchSpaceZero), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceZero, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceZero" - }, - { ATF_POINTER, 6, offsetof(struct PDCCH_ConfigCommon, commonSearchSpaceList), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_commonSearchSpaceList_5, - 0, - { &asn_OER_memb_commonSearchSpaceList_constr_5, &asn_PER_memb_commonSearchSpaceList_constr_5, memb_commonSearchSpaceList_constraint_1 }, - 0, 0, /* No default value */ - "commonSearchSpaceList" - }, - { ATF_POINTER, 5, offsetof(struct PDCCH_ConfigCommon, searchSpaceSIB1), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceSIB1" - }, - { ATF_POINTER, 4, offsetof(struct PDCCH_ConfigCommon, searchSpaceOtherSystemInformation), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceOtherSystemInformation" - }, - { ATF_POINTER, 3, offsetof(struct PDCCH_ConfigCommon, pagingSearchSpace), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pagingSearchSpace" - }, - { ATF_POINTER, 2, offsetof(struct PDCCH_ConfigCommon, ra_SearchSpace), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ra-SearchSpace" - }, - { ATF_POINTER, 1, offsetof(struct PDCCH_ConfigCommon, ext1), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - 0, - &asn_DEF_ext1_12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ext1" - }, -}; -static const int asn_MAP_PDCCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; -static const ber_tlv_tag_t asn_DEF_PDCCH_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PDCCH_ConfigCommon_specs_1 = { - sizeof(struct PDCCH_ConfigCommon), - offsetof(struct PDCCH_ConfigCommon, _asn_ctx), - asn_MAP_PDCCH_ConfigCommon_tag2el_1, - 9, /* Count of tags in the map */ - asn_MAP_PDCCH_ConfigCommon_oms_1, /* Optional members */ - 8, 1, /* Root/Additions */ - 8, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigCommon = { - "PDCCH-ConfigCommon", - "PDCCH-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_PDCCH_ConfigCommon_tags_1, - sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_PDCCH_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PDCCH_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PDCCH_ConfigCommon_1, - 9, /* Elements count */ - &asn_SPC_PDCCH_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.h b/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.h deleted file mode 100644 index 46f8734bf..000000000 --- a/src/codec_utils/SYSINFO/PDCCH-ConfigCommon.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PDCCH_ConfigCommon_H_ -#define _PDCCH_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include "ControlResourceSetZero.h" -#include "SearchSpaceZero.h" -#include "SearchSpaceId.h" -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR { - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_NOTHING, /* No components present */ - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS15KHZoneT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS30KHZoneT_SCS15KHZhalfT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneSixteenthT -} PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR; - -/* Forward declarations */ -struct ControlResourceSet; -struct SearchSpace; - -/* PDCCH-ConfigCommon */ -typedef struct PDCCH_ConfigCommon { - ControlResourceSetZero_t *controlResourceSetZero; /* OPTIONAL */ - struct ControlResourceSet *commonControlResourceSet; /* OPTIONAL */ - SearchSpaceZero_t *searchSpaceZero; /* OPTIONAL */ - struct PDCCH_ConfigCommon__commonSearchSpaceList { - A_SEQUENCE_OF(struct SearchSpace) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *commonSearchSpaceList; - SearchSpaceId_t *searchSpaceSIB1; /* OPTIONAL */ - SearchSpaceId_t *searchSpaceOtherSystemInformation; /* OPTIONAL */ - SearchSpaceId_t *pagingSearchSpace; /* OPTIONAL */ - SearchSpaceId_t *ra_SearchSpace; /* OPTIONAL */ - /* - * This type is extensible, - * possible extensions are below. - */ - struct PDCCH_ConfigCommon__ext1 { - struct PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO { - PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_PR present; - union PDCCH_ConfigCommon__ext1__firstPDCCH_MonitoringOccasionOfPO_u { - struct 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 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 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 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 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 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 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 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; -} PDCCH_ConfigCommon_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_PDCCH_ConfigCommon_1[9]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCCH_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.c b/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.c deleted file mode 100644 index 3abdb2d41..000000000 --- a/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PDCCH-ConfigSIB1.h" - -asn_TYPE_member_t asn_MBR_PDCCH_ConfigSIB1_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PDCCH_ConfigSIB1, controlResourceSetZero), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ControlResourceSetZero, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "controlResourceSetZero" - }, - { ATF_NOFLAGS, 0, offsetof(struct PDCCH_ConfigSIB1, searchSpaceZero), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceZero, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceZero" - }, -}; -static const ber_tlv_tag_t asn_DEF_PDCCH_ConfigSIB1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PDCCH_ConfigSIB1_specs_1 = { - sizeof(struct PDCCH_ConfigSIB1), - offsetof(struct PDCCH_ConfigSIB1, _asn_ctx), - asn_MAP_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_PDCCH_ConfigSIB1 = { - "PDCCH-ConfigSIB1", - "PDCCH-ConfigSIB1", - &asn_OP_SEQUENCE, - asn_DEF_PDCCH_ConfigSIB1_tags_1, - sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1) - /sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ - asn_DEF_PDCCH_ConfigSIB1_tags_1, /* Same as above */ - sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1) - /sizeof(asn_DEF_PDCCH_ConfigSIB1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PDCCH_ConfigSIB1_1, - 2, /* Elements count */ - &asn_SPC_PDCCH_ConfigSIB1_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.h b/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.h deleted file mode 100644 index cdb457275..000000000 --- a/src/codec_utils/SYSINFO/PDCCH-ConfigSIB1.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PDCCH_ConfigSIB1_H_ -#define _PDCCH_ConfigSIB1_H_ - - -#include - -/* Including external dependencies */ -#include "ControlResourceSetZero.h" -#include "SearchSpaceZero.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PDCCH-ConfigSIB1 */ -typedef struct PDCCH_ConfigSIB1 { - ControlResourceSetZero_t controlResourceSetZero; - SearchSpaceZero_t searchSpaceZero; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PDCCH_ConfigSIB1_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PDCCH_ConfigSIB1; -extern asn_SEQUENCE_specifics_t asn_SPC_PDCCH_ConfigSIB1_specs_1; -extern asn_TYPE_member_t asn_MBR_PDCCH_ConfigSIB1_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDCCH_ConfigSIB1_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.c b/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.c deleted file mode 100644 index 0496c0490..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PDSCH-ConfigCommon.h" - -#include "PDSCH-TimeDomainResourceAllocationList.h" -asn_TYPE_member_t asn_MBR_PDSCH_ConfigCommon_1[] = { - { ATF_POINTER, 1, offsetof(struct PDSCH_ConfigCommon, pdsch_TimeDomainAllocationList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PDSCH_TimeDomainResourceAllocationList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pdsch-TimeDomainAllocationList" - }, -}; -static const int asn_MAP_PDSCH_ConfigCommon_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_PDSCH_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_PDSCH_ConfigCommon_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-TimeDomainAllocationList */ -}; -asn_SEQUENCE_specifics_t asn_SPC_PDSCH_ConfigCommon_specs_1 = { - sizeof(struct PDSCH_ConfigCommon), - offsetof(struct PDSCH_ConfigCommon, _asn_ctx), - asn_MAP_PDSCH_ConfigCommon_tag2el_1, - 1, /* Count of tags in the map */ - asn_MAP_PDSCH_ConfigCommon_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PDSCH_ConfigCommon = { - "PDSCH-ConfigCommon", - "PDSCH-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_PDSCH_ConfigCommon_tags_1, - sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_PDSCH_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PDSCH_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PDSCH_ConfigCommon_1, - 1, /* Elements count */ - &asn_SPC_PDSCH_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.h b/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.h deleted file mode 100644 index cd38aaba6..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-ConfigCommon.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PDSCH_ConfigCommon_H_ -#define _PDSCH_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PDSCH_TimeDomainResourceAllocationList; - -/* PDSCH-ConfigCommon */ -typedef struct PDSCH_ConfigCommon { - struct 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; -} PDSCH_ConfigCommon_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PDSCH_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_PDSCH_ConfigCommon_1[1]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDSCH_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.c b/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.c deleted file mode 100644 index a9c211f5a..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PDSCH-TimeDomainResourceAllocation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_oer_constraints_t asn_OER_type_mappingType_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_k0_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..32) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startSymbolAndLength_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..127) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_mappingType_value2enum_3[] = { - { 0, 5, "typeA" }, - { 1, 5, "typeB" } -}; -static const unsigned int asn_MAP_mappingType_enum2value_3[] = { - 0, /* typeA(0) */ - 1 /* typeB(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_mappingType_specs_3 = { - asn_MAP_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_mappingType_3 = { - "mappingType", - "mappingType", - &asn_OP_NativeEnumerated, - asn_DEF_mappingType_tags_3, - sizeof(asn_DEF_mappingType_tags_3) - /sizeof(asn_DEF_mappingType_tags_3[0]) - 1, /* 1 */ - asn_DEF_mappingType_tags_3, /* Same as above */ - sizeof(asn_DEF_mappingType_tags_3) - /sizeof(asn_DEF_mappingType_tags_3[0]), /* 2 */ - { &asn_OER_type_mappingType_constr_3, &asn_PER_type_mappingType_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_mappingType_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocation_1[] = { - { ATF_POINTER, 1, offsetof(struct PDSCH_TimeDomainResourceAllocation, k0), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_k0_constr_2, &asn_PER_memb_k0_constr_2, memb_k0_constraint_1 }, - 0, 0, /* No default value */ - "k0" - }, - { ATF_NOFLAGS, 0, offsetof(struct PDSCH_TimeDomainResourceAllocation, mappingType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_mappingType_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mappingType" - }, - { ATF_NOFLAGS, 0, offsetof(struct PDSCH_TimeDomainResourceAllocation, startSymbolAndLength), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_startSymbolAndLength_constr_6, &asn_PER_memb_startSymbolAndLength_constr_6, memb_startSymbolAndLength_constraint_1 }, - 0, 0, /* No default value */ - "startSymbolAndLength" - }, -}; -static const int asn_MAP_PDSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PDSCH_TimeDomainResourceAllocation_specs_1 = { - sizeof(struct PDSCH_TimeDomainResourceAllocation), - offsetof(struct PDSCH_TimeDomainResourceAllocation, _asn_ctx), - asn_MAP_PDSCH_TimeDomainResourceAllocation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PDSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocation = { - "PDSCH-TimeDomainResourceAllocation", - "PDSCH-TimeDomainResourceAllocation", - &asn_OP_SEQUENCE, - asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1, - sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1) - /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ - asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ - sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1) - /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PDSCH_TimeDomainResourceAllocation_1, - 3, /* Elements count */ - &asn_SPC_PDSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.h b/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.h deleted file mode 100644 index 789f61329..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocation.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PDSCH_TimeDomainResourceAllocation_H_ -#define _PDSCH_TimeDomainResourceAllocation_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PDSCH_TimeDomainResourceAllocation__mappingType { - PDSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, - PDSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 -} e_PDSCH_TimeDomainResourceAllocation__mappingType; - -/* PDSCH-TimeDomainResourceAllocation */ -typedef struct PDSCH_TimeDomainResourceAllocation { - long *k0; /* OPTIONAL */ - long mappingType; - long startSymbolAndLength; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PDSCH_TimeDomainResourceAllocation_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_mappingType_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocation; -extern asn_SEQUENCE_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocation_specs_1; -extern asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDSCH_TimeDomainResourceAllocation_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.c b/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.c deleted file mode 100644 index ca4c6d6bf..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PDSCH-TimeDomainResourceAllocationList.h" - -#include "PDSCH-TimeDomainResourceAllocation.h" -static asn_oer_constraints_t asn_OER_type_PDSCH_TimeDomainResourceAllocationList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16)) */}; -asn_per_constraints_t asn_PER_type_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_PDSCH_TimeDomainResourceAllocationList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PDSCH_TimeDomainResourceAllocation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1 = { - sizeof(struct PDSCH_TimeDomainResourceAllocationList), - offsetof(struct PDSCH_TimeDomainResourceAllocationList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocationList = { - "PDSCH-TimeDomainResourceAllocationList", - "PDSCH-TimeDomainResourceAllocationList", - &asn_OP_SEQUENCE_OF, - asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1, - sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1) - /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ - asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ - sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1) - /sizeof(asn_DEF_PDSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ - { &asn_OER_type_PDSCH_TimeDomainResourceAllocationList_constr_1, &asn_PER_type_PDSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_PDSCH_TimeDomainResourceAllocationList_1, - 1, /* Single element */ - &asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.h b/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.h deleted file mode 100644 index f79fe0f56..000000000 --- a/src/codec_utils/SYSINFO/PDSCH-TimeDomainResourceAllocationList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PDSCH_TimeDomainResourceAllocationList_H_ -#define _PDSCH_TimeDomainResourceAllocationList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PDSCH_TimeDomainResourceAllocation; - -/* PDSCH-TimeDomainResourceAllocationList */ -typedef struct PDSCH_TimeDomainResourceAllocationList { - A_SEQUENCE_OF(struct PDSCH_TimeDomainResourceAllocation) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PDSCH_TimeDomainResourceAllocationList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PDSCH_TimeDomainResourceAllocationList; -extern asn_SET_OF_specifics_t asn_SPC_PDSCH_TimeDomainResourceAllocationList_specs_1; -extern asn_TYPE_member_t asn_MBR_PDSCH_TimeDomainResourceAllocationList_1[1]; -extern asn_per_constraints_t asn_PER_type_PDSCH_TimeDomainResourceAllocationList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PDSCH_TimeDomainResourceAllocationList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PLMN-IdentitY.c b/src/codec_utils/SYSINFO/PLMN-IdentitY.c deleted file mode 100644 index c8e5f1875..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentitY.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PLMN-IdentitY.h" - -#include "MCC.h" -asn_TYPE_member_t asn_MBR_PLMN_IdentitY_1[] = { - { ATF_POINTER, 1, offsetof(struct PLMN_IdentitY, mcc), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MCC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mcc" - }, - { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentitY, mnc), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_MNC, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mnc" - }, -}; -static const int asn_MAP_PLMN_IdentitY_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_PLMN_IdentitY_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_IdentitY_specs_1 = { - sizeof(struct PLMN_IdentitY), - offsetof(struct PLMN_IdentitY, _asn_ctx), - asn_MAP_PLMN_IdentitY_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_PLMN_IdentitY_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_IdentitY = { - "PLMN-IdentitY", - "PLMN-IdentitY", - &asn_OP_SEQUENCE, - asn_DEF_PLMN_IdentitY_tags_1, - sizeof(asn_DEF_PLMN_IdentitY_tags_1) - /sizeof(asn_DEF_PLMN_IdentitY_tags_1[0]), /* 1 */ - asn_DEF_PLMN_IdentitY_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_IdentitY_tags_1) - /sizeof(asn_DEF_PLMN_IdentitY_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PLMN_IdentitY_1, - 2, /* Elements count */ - &asn_SPC_PLMN_IdentitY_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PLMN-IdentitY.h b/src/codec_utils/SYSINFO/PLMN-IdentitY.h deleted file mode 100644 index 3c2e7b3e0..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentitY.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PLMN_IdentitY_H_ -#define _PLMN_IdentitY_H_ - - -#include - -/* Including external dependencies */ -#include "MNC.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct MCC; - -/* PLMN-IdentitY */ -typedef struct PLMN_IdentitY { - struct MCC *mcc; /* OPTIONAL */ - MNC_t mnc; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PLMN_IdentitY_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentitY; -extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_IdentitY_specs_1; -extern asn_TYPE_member_t asn_MBR_PLMN_IdentitY_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_IdentitY_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PLMN-IdentityInfo.c b/src/codec_utils/SYSINFO/PLMN-IdentityInfo.c deleted file mode 100644 index 4d6faa882..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentityInfo.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PLMN-IdentityInfo.h" - -#include "PLMN-IdentitY.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_oer_constraints_t asn_OER_type_plmn_IdentityList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_cellReservedForOperatorUse_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_plmn_IdentityList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -static asn_per_constraints_t asn_PER_memb_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_plmn_IdentityList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PLMN_IdentitY, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_plmn_IdentityList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_plmn_IdentityList_specs_2 = { - sizeof(struct PLMN_IdentityInfo__plmn_IdentityList), - offsetof(struct PLMN_IdentityInfo__plmn_IdentityList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_plmn_IdentityList_2 = { - "plmn-IdentityList", - "plmn-IdentityList", - &asn_OP_SEQUENCE_OF, - asn_DEF_plmn_IdentityList_tags_2, - sizeof(asn_DEF_plmn_IdentityList_tags_2) - /sizeof(asn_DEF_plmn_IdentityList_tags_2[0]) - 1, /* 1 */ - asn_DEF_plmn_IdentityList_tags_2, /* Same as above */ - sizeof(asn_DEF_plmn_IdentityList_tags_2) - /sizeof(asn_DEF_plmn_IdentityList_tags_2[0]), /* 2 */ - { &asn_OER_type_plmn_IdentityList_constr_2, &asn_PER_type_plmn_IdentityList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_plmn_IdentityList_2, - 1, /* Single element */ - &asn_SPC_plmn_IdentityList_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_cellReservedForOperatorUse_value2enum_7[] = { - { 0, 8, "reserved" }, - { 1, 11, "notReserved" } -}; -static const unsigned int asn_MAP_cellReservedForOperatorUse_enum2value_7[] = { - 1, /* notReserved(1) */ - 0 /* reserved(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_cellReservedForOperatorUse_specs_7 = { - asn_MAP_cellReservedForOperatorUse_value2enum_7, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_cellReservedForOperatorUse_7 = { - "cellReservedForOperatorUse", - "cellReservedForOperatorUse", - &asn_OP_NativeEnumerated, - asn_DEF_cellReservedForOperatorUse_tags_7, - sizeof(asn_DEF_cellReservedForOperatorUse_tags_7) - /sizeof(asn_DEF_cellReservedForOperatorUse_tags_7[0]) - 1, /* 1 */ - asn_DEF_cellReservedForOperatorUse_tags_7, /* Same as above */ - sizeof(asn_DEF_cellReservedForOperatorUse_tags_7) - /sizeof(asn_DEF_cellReservedForOperatorUse_tags_7[0]), /* 2 */ - { &asn_OER_type_cellReservedForOperatorUse_constr_7, &asn_PER_type_cellReservedForOperatorUse_constr_7, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_cellReservedForOperatorUse_specs_7 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PLMN_IdentityInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, plmn_IdentityList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_plmn_IdentityList_2, - 0, - { &asn_OER_memb_plmn_IdentityList_constr_2, &asn_PER_memb_plmn_IdentityList_constr_2, memb_plmn_IdentityList_constraint_1 }, - 0, 0, /* No default value */ - "plmn-IdentityList" - }, - { ATF_POINTER, 2, offsetof(struct PLMN_IdentityInfo, trackingAreaCode), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TrackingAreaCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "trackingAreaCode" - }, - { ATF_POINTER, 1, offsetof(struct PLMN_IdentityInfo, ranac), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RAN_AreaCode, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ranac" - }, - { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, cellIdentity), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellIdentity, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellIdentity" - }, - { ATF_NOFLAGS, 0, offsetof(struct PLMN_IdentityInfo, cellReservedForOperatorUse), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_cellReservedForOperatorUse_7, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellReservedForOperatorUse" - }, -}; -static const int asn_MAP_PLMN_IdentityInfo_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_PLMN_IdentityInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PLMN_IdentityInfo_specs_1 = { - sizeof(struct PLMN_IdentityInfo), - offsetof(struct PLMN_IdentityInfo, _asn_ctx), - asn_MAP_PLMN_IdentityInfo_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_PLMN_IdentityInfo_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfo = { - "PLMN-IdentityInfo", - "PLMN-IdentityInfo", - &asn_OP_SEQUENCE, - asn_DEF_PLMN_IdentityInfo_tags_1, - sizeof(asn_DEF_PLMN_IdentityInfo_tags_1) - /sizeof(asn_DEF_PLMN_IdentityInfo_tags_1[0]), /* 1 */ - asn_DEF_PLMN_IdentityInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_IdentityInfo_tags_1) - /sizeof(asn_DEF_PLMN_IdentityInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PLMN_IdentityInfo_1, - 5, /* Elements count */ - &asn_SPC_PLMN_IdentityInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PLMN-IdentityInfo.h b/src/codec_utils/SYSINFO/PLMN-IdentityInfo.h deleted file mode 100644 index 36d891e21..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentityInfo.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PLMN_IdentityInfo_H_ -#define _PLMN_IdentityInfo_H_ - - -#include - -/* Including external dependencies */ -#include "TrackingAreaCode.h" -#include "RAN-AreaCode.h" -#include "CellIdentity.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PLMN_IdentityInfo__cellReservedForOperatorUse { - PLMN_IdentityInfo__cellReservedForOperatorUse_reserved = 0, - PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved = 1 -} e_PLMN_IdentityInfo__cellReservedForOperatorUse; - -/* Forward declarations */ -struct PLMN_IdentitY; - -/* PLMN-IdentityInfo */ -typedef struct PLMN_IdentityInfo { - struct PLMN_IdentityInfo__plmn_IdentityList { - A_SEQUENCE_OF(struct PLMN_IdentitY) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } plmn_IdentityList; - TrackingAreaCode_t *trackingAreaCode; /* OPTIONAL */ - RAN_AreaCode_t *ranac; /* OPTIONAL */ - 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; -} PLMN_IdentityInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_cellReservedForOperatorUse_7; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_PLMN_IdentityInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_PLMN_IdentityInfo_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_IdentityInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.c b/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.c deleted file mode 100644 index 6fe4c5360..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PLMN-IdentityInfoList.h" - -#include "PLMN-IdentityInfo.h" -static asn_oer_constraints_t asn_OER_type_PLMN_IdentityInfoList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -asn_per_constraints_t asn_PER_type_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_PLMN_IdentityInfoList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PLMN_IdentityInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_PLMN_IdentityInfoList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityInfoList_specs_1 = { - sizeof(struct PLMN_IdentityInfoList), - offsetof(struct PLMN_IdentityInfoList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfoList = { - "PLMN-IdentityInfoList", - "PLMN-IdentityInfoList", - &asn_OP_SEQUENCE_OF, - asn_DEF_PLMN_IdentityInfoList_tags_1, - sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1) - /sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ - asn_DEF_PLMN_IdentityInfoList_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1) - /sizeof(asn_DEF_PLMN_IdentityInfoList_tags_1[0]), /* 1 */ - { &asn_OER_type_PLMN_IdentityInfoList_constr_1, &asn_PER_type_PLMN_IdentityInfoList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_PLMN_IdentityInfoList_1, - 1, /* Single element */ - &asn_SPC_PLMN_IdentityInfoList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.h b/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.h deleted file mode 100644 index 801842672..000000000 --- a/src/codec_utils/SYSINFO/PLMN-IdentityInfoList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PLMN_IdentityInfoList_H_ -#define _PLMN_IdentityInfoList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PLMN_IdentityInfo; - -/* PLMN-IdentityInfoList */ -typedef struct PLMN_IdentityInfoList { - A_SEQUENCE_OF(struct PLMN_IdentityInfo) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PLMN_IdentityInfoList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityInfoList; -extern asn_SET_OF_specifics_t asn_SPC_PLMN_IdentityInfoList_specs_1; -extern asn_TYPE_member_t asn_MBR_PLMN_IdentityInfoList_1[1]; -extern asn_per_constraints_t asn_PER_type_PLMN_IdentityInfoList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_IdentityInfoList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.c b/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.c deleted file mode 100644 index 858effdcf..000000000 --- a/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PUCCH-ConfigCommon.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_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_oer_constraints_t asn_OER_type_pucch_GroupHopping_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_pucch_ResourceCommon_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_hoppingId_constr_7 CC_NOTUSED = { - { 2, 1 } /* (0..1023) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_nominal_constr_8 CC_NOTUSED = { - { 2, 0 } /* (-202..24) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_pucch_GroupHopping_value2enum_3[] = { - { 0, 7, "neither" }, - { 1, 6, "enable" }, - { 2, 7, "disable" } -}; -static const unsigned int asn_MAP_pucch_GroupHopping_enum2value_3[] = { - 2, /* disable(2) */ - 1, /* enable(1) */ - 0 /* neither(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_pucch_GroupHopping_specs_3 = { - asn_MAP_pucch_GroupHopping_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_pucch_GroupHopping_3 = { - "pucch-GroupHopping", - "pucch-GroupHopping", - &asn_OP_NativeEnumerated, - asn_DEF_pucch_GroupHopping_tags_3, - sizeof(asn_DEF_pucch_GroupHopping_tags_3) - /sizeof(asn_DEF_pucch_GroupHopping_tags_3[0]) - 1, /* 1 */ - asn_DEF_pucch_GroupHopping_tags_3, /* Same as above */ - sizeof(asn_DEF_pucch_GroupHopping_tags_3) - /sizeof(asn_DEF_pucch_GroupHopping_tags_3[0]), /* 2 */ - { &asn_OER_type_pucch_GroupHopping_constr_3, &asn_PER_type_pucch_GroupHopping_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_pucch_GroupHopping_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PUCCH_ConfigCommon_1[] = { - { ATF_POINTER, 1, offsetof(struct PUCCH_ConfigCommon, pucch_ResourceCommon), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_pucch_ResourceCommon_constr_2, &asn_PER_memb_pucch_ResourceCommon_constr_2, memb_pucch_ResourceCommon_constraint_1 }, - 0, 0, /* No default value */ - "pucch-ResourceCommon" - }, - { ATF_NOFLAGS, 0, offsetof(struct PUCCH_ConfigCommon, pucch_GroupHopping), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_pucch_GroupHopping_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pucch-GroupHopping" - }, - { ATF_POINTER, 2, offsetof(struct PUCCH_ConfigCommon, hoppingId), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_hoppingId_constr_7, &asn_PER_memb_hoppingId_constr_7, memb_hoppingId_constraint_1 }, - 0, 0, /* No default value */ - "hoppingId" - }, - { ATF_POINTER, 1, offsetof(struct PUCCH_ConfigCommon, p0_nominal), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_p0_nominal_constr_8, &asn_PER_memb_p0_nominal_constr_8, memb_p0_nominal_constraint_1 }, - 0, 0, /* No default value */ - "p0-nominal" - }, -}; -static const int asn_MAP_PUCCH_ConfigCommon_oms_1[] = { 0, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_PUCCH_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PUCCH_ConfigCommon_specs_1 = { - sizeof(struct PUCCH_ConfigCommon), - offsetof(struct PUCCH_ConfigCommon, _asn_ctx), - asn_MAP_PUCCH_ConfigCommon_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_PUCCH_ConfigCommon_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PUCCH_ConfigCommon = { - "PUCCH-ConfigCommon", - "PUCCH-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_PUCCH_ConfigCommon_tags_1, - sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_PUCCH_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PUCCH_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PUCCH_ConfigCommon_1, - 4, /* Elements count */ - &asn_SPC_PUCCH_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.h b/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.h deleted file mode 100644 index 64d9f8ad8..000000000 --- a/src/codec_utils/SYSINFO/PUCCH-ConfigCommon.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PUCCH_ConfigCommon_H_ -#define _PUCCH_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PUCCH_ConfigCommon__pucch_GroupHopping { - PUCCH_ConfigCommon__pucch_GroupHopping_neither = 0, - PUCCH_ConfigCommon__pucch_GroupHopping_enable = 1, - PUCCH_ConfigCommon__pucch_GroupHopping_disable = 2 -} e_PUCCH_ConfigCommon__pucch_GroupHopping; - -/* PUCCH-ConfigCommon */ -typedef struct 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; -} PUCCH_ConfigCommon_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_pucch_GroupHopping_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PUCCH_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_PUCCH_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_PUCCH_ConfigCommon_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PUCCH_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.c b/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.c deleted file mode 100644 index d8a2b368b..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PUSCH-ConfigCommon.h" - -#include "PUSCH-TimeDomainResourceAllocationList.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_oer_constraints_t asn_OER_type_groupHoppingEnabledTransformPrecoding_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_msg3_DeltaPreamble_constr_5 CC_NOTUSED = { - { 1, 0 } /* (-1..6) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_p0_NominalWithGrant_constr_6 CC_NOTUSED = { - { 2, 0 } /* (-202..24) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_groupHoppingEnabledTransformPrecoding_value2enum_2[] = { - { 0, 7, "enabled" } -}; -static const unsigned int asn_MAP_groupHoppingEnabledTransformPrecoding_enum2value_2[] = { - 0 /* enabled(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_groupHoppingEnabledTransformPrecoding_specs_2 = { - asn_MAP_groupHoppingEnabledTransformPrecoding_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_groupHoppingEnabledTransformPrecoding_2 = { - "groupHoppingEnabledTransformPrecoding", - "groupHoppingEnabledTransformPrecoding", - &asn_OP_NativeEnumerated, - asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2, - sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2) - /sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2[0]) - 1, /* 1 */ - asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2, /* Same as above */ - sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2) - /sizeof(asn_DEF_groupHoppingEnabledTransformPrecoding_tags_2[0]), /* 2 */ - { &asn_OER_type_groupHoppingEnabledTransformPrecoding_constr_2, &asn_PER_type_groupHoppingEnabledTransformPrecoding_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_groupHoppingEnabledTransformPrecoding_specs_2 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PUSCH_ConfigCommon_1[] = { - { ATF_POINTER, 4, offsetof(struct PUSCH_ConfigCommon, groupHoppingEnabledTransformPrecoding), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_groupHoppingEnabledTransformPrecoding_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "groupHoppingEnabledTransformPrecoding" - }, - { ATF_POINTER, 3, offsetof(struct PUSCH_ConfigCommon, pusch_TimeDomainAllocationList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_PUSCH_TimeDomainResourceAllocationList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pusch-TimeDomainAllocationList" - }, - { ATF_POINTER, 2, offsetof(struct PUSCH_ConfigCommon, msg3_DeltaPreamble), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_msg3_DeltaPreamble_constr_5, &asn_PER_memb_msg3_DeltaPreamble_constr_5, memb_msg3_DeltaPreamble_constraint_1 }, - 0, 0, /* No default value */ - "msg3-DeltaPreamble" - }, - { ATF_POINTER, 1, offsetof(struct PUSCH_ConfigCommon, p0_NominalWithGrant), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_p0_NominalWithGrant_constr_6, &asn_PER_memb_p0_NominalWithGrant_constr_6, memb_p0_NominalWithGrant_constraint_1 }, - 0, 0, /* No default value */ - "p0-NominalWithGrant" - }, -}; -static const int asn_MAP_PUSCH_ConfigCommon_oms_1[] = { 0, 1, 2, 3 }; -static const ber_tlv_tag_t asn_DEF_PUSCH_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_ConfigCommon_specs_1 = { - sizeof(struct PUSCH_ConfigCommon), - offsetof(struct PUSCH_ConfigCommon, _asn_ctx), - asn_MAP_PUSCH_ConfigCommon_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_PUSCH_ConfigCommon_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 4, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PUSCH_ConfigCommon = { - "PUSCH-ConfigCommon", - "PUSCH-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_PUSCH_ConfigCommon_tags_1, - sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_PUSCH_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1) - /sizeof(asn_DEF_PUSCH_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PUSCH_ConfigCommon_1, - 4, /* Elements count */ - &asn_SPC_PUSCH_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.h b/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.h deleted file mode 100644 index f7dca4eb1..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-ConfigCommon.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PUSCH_ConfigCommon_H_ -#define _PUSCH_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding { - PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding_enabled = 0 -} e_PUSCH_ConfigCommon__groupHoppingEnabledTransformPrecoding; - -/* Forward declarations */ -struct PUSCH_TimeDomainResourceAllocationList; - -/* PUSCH-ConfigCommon */ -typedef struct PUSCH_ConfigCommon { - long *groupHoppingEnabledTransformPrecoding; /* OPTIONAL */ - struct 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; -} PUSCH_ConfigCommon_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_groupHoppingEnabledTransformPrecoding_2; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PUSCH_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_PUSCH_ConfigCommon_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PUSCH_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.c b/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.c deleted file mode 100644 index 7bc060f45..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PUSCH-TimeDomainResourceAllocation.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_oer_constraints_t asn_OER_type_mappingType_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_k2_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..32) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_startSymbolAndLength_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..127) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_mappingType_value2enum_3[] = { - { 0, 5, "typeA" }, - { 1, 5, "typeB" } -}; -static const unsigned int asn_MAP_mappingType_enum2value_3[] = { - 0, /* typeA(0) */ - 1 /* typeB(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_mappingType_specs_3 = { - asn_MAP_mappingType_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_mappingType_3 = { - "mappingType", - "mappingType", - &asn_OP_NativeEnumerated, - asn_DEF_mappingType_tags_3, - sizeof(asn_DEF_mappingType_tags_3) - /sizeof(asn_DEF_mappingType_tags_3[0]) - 1, /* 1 */ - asn_DEF_mappingType_tags_3, /* Same as above */ - sizeof(asn_DEF_mappingType_tags_3) - /sizeof(asn_DEF_mappingType_tags_3[0]), /* 2 */ - { &asn_OER_type_mappingType_constr_3, &asn_PER_type_mappingType_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_mappingType_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocation_1[] = { - { ATF_POINTER, 1, offsetof(struct PUSCH_TimeDomainResourceAllocation, k2), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_k2_constr_2, &asn_PER_memb_k2_constr_2, memb_k2_constraint_1 }, - 0, 0, /* No default value */ - "k2" - }, - { ATF_NOFLAGS, 0, offsetof(struct PUSCH_TimeDomainResourceAllocation, mappingType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_mappingType_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "mappingType" - }, - { ATF_NOFLAGS, 0, offsetof(struct PUSCH_TimeDomainResourceAllocation, startSymbolAndLength), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_startSymbolAndLength_constr_6, &asn_PER_memb_startSymbolAndLength_constr_6, memb_startSymbolAndLength_constraint_1 }, - 0, 0, /* No default value */ - "startSymbolAndLength" - }, -}; -static const int asn_MAP_PUSCH_TimeDomainResourceAllocation_oms_1[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_PUSCH_TimeDomainResourceAllocation_specs_1 = { - sizeof(struct PUSCH_TimeDomainResourceAllocation), - offsetof(struct PUSCH_TimeDomainResourceAllocation, _asn_ctx), - asn_MAP_PUSCH_TimeDomainResourceAllocation_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_PUSCH_TimeDomainResourceAllocation_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocation = { - "PUSCH-TimeDomainResourceAllocation", - "PUSCH-TimeDomainResourceAllocation", - &asn_OP_SEQUENCE, - asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1, - sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1) - /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ - asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1, /* Same as above */ - sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1) - /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocation_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_PUSCH_TimeDomainResourceAllocation_1, - 3, /* Elements count */ - &asn_SPC_PUSCH_TimeDomainResourceAllocation_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.h b/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.h deleted file mode 100644 index 19e2d38e7..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocation.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PUSCH_TimeDomainResourceAllocation_H_ -#define _PUSCH_TimeDomainResourceAllocation_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PUSCH_TimeDomainResourceAllocation__mappingType { - PUSCH_TimeDomainResourceAllocation__mappingType_typeA = 0, - PUSCH_TimeDomainResourceAllocation__mappingType_typeB = 1 -} e_PUSCH_TimeDomainResourceAllocation__mappingType; - -/* PUSCH-TimeDomainResourceAllocation */ -typedef struct PUSCH_TimeDomainResourceAllocation { - long *k2; /* OPTIONAL */ - long mappingType; - long startSymbolAndLength; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PUSCH_TimeDomainResourceAllocation_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_mappingType_3; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocation; -extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocation_specs_1; -extern asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocation_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _PUSCH_TimeDomainResourceAllocation_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.c b/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.c deleted file mode 100644 index df0ce0560..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PUSCH-TimeDomainResourceAllocationList.h" - -#include "PUSCH-TimeDomainResourceAllocation.h" -static asn_oer_constraints_t asn_OER_type_PUSCH_TimeDomainResourceAllocationList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..16)) */}; -asn_per_constraints_t asn_PER_type_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_PUSCH_TimeDomainResourceAllocationList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_PUSCH_TimeDomainResourceAllocation, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1 = { - sizeof(struct PUSCH_TimeDomainResourceAllocationList), - offsetof(struct PUSCH_TimeDomainResourceAllocationList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocationList = { - "PUSCH-TimeDomainResourceAllocationList", - "PUSCH-TimeDomainResourceAllocationList", - &asn_OP_SEQUENCE_OF, - asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1, - sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1) - /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ - asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1, /* Same as above */ - sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1) - /sizeof(asn_DEF_PUSCH_TimeDomainResourceAllocationList_tags_1[0]), /* 1 */ - { &asn_OER_type_PUSCH_TimeDomainResourceAllocationList_constr_1, &asn_PER_type_PUSCH_TimeDomainResourceAllocationList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_PUSCH_TimeDomainResourceAllocationList_1, - 1, /* Single element */ - &asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.h b/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.h deleted file mode 100644 index 2c7714326..000000000 --- a/src/codec_utils/SYSINFO/PUSCH-TimeDomainResourceAllocationList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PUSCH_TimeDomainResourceAllocationList_H_ -#define _PUSCH_TimeDomainResourceAllocationList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct PUSCH_TimeDomainResourceAllocation; - -/* PUSCH-TimeDomainResourceAllocationList */ -typedef struct PUSCH_TimeDomainResourceAllocationList { - A_SEQUENCE_OF(struct PUSCH_TimeDomainResourceAllocation) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} PUSCH_TimeDomainResourceAllocationList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_PUSCH_TimeDomainResourceAllocationList; -extern asn_SET_OF_specifics_t asn_SPC_PUSCH_TimeDomainResourceAllocationList_specs_1; -extern asn_TYPE_member_t asn_MBR_PUSCH_TimeDomainResourceAllocationList_1[1]; -extern asn_per_constraints_t asn_PER_type_PUSCH_TimeDomainResourceAllocationList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _PUSCH_TimeDomainResourceAllocationList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/PagingCycle.c b/src/codec_utils/SYSINFO/PagingCycle.c deleted file mode 100644 index 36b5c926e..000000000 --- a/src/codec_utils/SYSINFO/PagingCycle.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "PagingCycle.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_PagingCycle_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_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_PagingCycle_value2enum_1[] = { - { 0, 4, "rf32" }, - { 1, 4, "rf64" }, - { 2, 5, "rf128" }, - { 3, 5, "rf256" } -}; -static const unsigned int asn_MAP_PagingCycle_enum2value_1[] = { - 2, /* rf128(2) */ - 3, /* rf256(3) */ - 0, /* rf32(0) */ - 1 /* rf64(1) */ -}; -const asn_INTEGER_specifics_t asn_SPC_PagingCycle_specs_1 = { - asn_MAP_PagingCycle_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_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_PagingCycle_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_PagingCycle = { - "PagingCycle", - "PagingCycle", - &asn_OP_NativeEnumerated, - asn_DEF_PagingCycle_tags_1, - sizeof(asn_DEF_PagingCycle_tags_1) - /sizeof(asn_DEF_PagingCycle_tags_1[0]), /* 1 */ - asn_DEF_PagingCycle_tags_1, /* Same as above */ - sizeof(asn_DEF_PagingCycle_tags_1) - /sizeof(asn_DEF_PagingCycle_tags_1[0]), /* 1 */ - { &asn_OER_type_PagingCycle_constr_1, &asn_PER_type_PagingCycle_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_PagingCycle_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/PagingCycle.h b/src/codec_utils/SYSINFO/PagingCycle.h deleted file mode 100644 index d67d68362..000000000 --- a/src/codec_utils/SYSINFO/PagingCycle.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PagingCycle_H_ -#define _PagingCycle_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum PagingCycle { - PagingCycle_rf32 = 0, - PagingCycle_rf64 = 1, - PagingCycle_rf128 = 2, - PagingCycle_rf256 = 3 -} e_PagingCycle; - -/* PagingCycle */ -typedef long PagingCycle_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PagingCycle_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PagingCycle; -extern const asn_INTEGER_specifics_t asn_SPC_PagingCycle_specs_1; -asn_struct_free_f PagingCycle_free; -asn_struct_print_f PagingCycle_print; -asn_constr_check_f PagingCycle_constraint; -ber_type_decoder_f PagingCycle_decode_ber; -der_type_encoder_f PagingCycle_encode_der; -xer_type_decoder_f PagingCycle_decode_xer; -xer_type_encoder_f PagingCycle_encode_xer; -oer_type_decoder_f PagingCycle_decode_oer; -oer_type_encoder_f PagingCycle_encode_oer; -per_type_decoder_f PagingCycle_decode_uper; -per_type_encoder_f PagingCycle_encode_uper; -per_type_decoder_f PagingCycle_decode_aper; -per_type_encoder_f PagingCycle_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PagingCycle_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/Q-QualMin.c b/src/codec_utils/SYSINFO/Q-QualMin.c deleted file mode 100644 index 4b8f14705..000000000 --- a/src/codec_utils/SYSINFO/Q-QualMin.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "Q-QualMin.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_Q_QualMin_constr_1 CC_NOTUSED = { - { 1, 0 } /* (-43..-12) */, - -1}; -asn_per_constraints_t asn_PER_type_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_Q_QualMin_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Q_QualMin = { - "Q-QualMin", - "Q-QualMin", - &asn_OP_NativeInteger, - asn_DEF_Q_QualMin_tags_1, - sizeof(asn_DEF_Q_QualMin_tags_1) - /sizeof(asn_DEF_Q_QualMin_tags_1[0]), /* 1 */ - asn_DEF_Q_QualMin_tags_1, /* Same as above */ - sizeof(asn_DEF_Q_QualMin_tags_1) - /sizeof(asn_DEF_Q_QualMin_tags_1[0]), /* 1 */ - { &asn_OER_type_Q_QualMin_constr_1, &asn_PER_type_Q_QualMin_constr_1, Q_QualMin_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/Q-QualMin.h b/src/codec_utils/SYSINFO/Q-QualMin.h deleted file mode 100644 index b7ef2a47e..000000000 --- a/src/codec_utils/SYSINFO/Q-QualMin.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _Q_QualMin_H_ -#define _Q_QualMin_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Q-QualMin */ -typedef long Q_QualMin_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Q_QualMin_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Q_QualMin; -asn_struct_free_f Q_QualMin_free; -asn_struct_print_f Q_QualMin_print; -asn_constr_check_f Q_QualMin_constraint; -ber_type_decoder_f Q_QualMin_decode_ber; -der_type_encoder_f Q_QualMin_encode_der; -xer_type_decoder_f Q_QualMin_decode_xer; -xer_type_encoder_f Q_QualMin_encode_xer; -oer_type_decoder_f Q_QualMin_decode_oer; -oer_type_encoder_f Q_QualMin_encode_oer; -per_type_decoder_f Q_QualMin_decode_uper; -per_type_encoder_f Q_QualMin_encode_uper; -per_type_decoder_f Q_QualMin_decode_aper; -per_type_encoder_f Q_QualMin_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Q_QualMin_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/Q-RxLevMin.c b/src/codec_utils/SYSINFO/Q-RxLevMin.c deleted file mode 100644 index 719b8eb87..000000000 --- a/src/codec_utils/SYSINFO/Q-RxLevMin.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "Q-RxLevMin.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_Q_RxLevMin_constr_1 CC_NOTUSED = { - { 1, 0 } /* (-70..-22) */, - -1}; -asn_per_constraints_t asn_PER_type_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_Q_RxLevMin_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_Q_RxLevMin = { - "Q-RxLevMin", - "Q-RxLevMin", - &asn_OP_NativeInteger, - asn_DEF_Q_RxLevMin_tags_1, - sizeof(asn_DEF_Q_RxLevMin_tags_1) - /sizeof(asn_DEF_Q_RxLevMin_tags_1[0]), /* 1 */ - asn_DEF_Q_RxLevMin_tags_1, /* Same as above */ - sizeof(asn_DEF_Q_RxLevMin_tags_1) - /sizeof(asn_DEF_Q_RxLevMin_tags_1[0]), /* 1 */ - { &asn_OER_type_Q_RxLevMin_constr_1, &asn_PER_type_Q_RxLevMin_constr_1, Q_RxLevMin_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/Q-RxLevMin.h b/src/codec_utils/SYSINFO/Q-RxLevMin.h deleted file mode 100644 index 684c89c63..000000000 --- a/src/codec_utils/SYSINFO/Q-RxLevMin.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _Q_RxLevMin_H_ -#define _Q_RxLevMin_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Q-RxLevMin */ -typedef long Q_RxLevMin_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_Q_RxLevMin_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_Q_RxLevMin; -asn_struct_free_f Q_RxLevMin_free; -asn_struct_print_f Q_RxLevMin_print; -asn_constr_check_f Q_RxLevMin_constraint; -ber_type_decoder_f Q_RxLevMin_decode_ber; -der_type_encoder_f Q_RxLevMin_encode_der; -xer_type_decoder_f Q_RxLevMin_decode_xer; -xer_type_encoder_f Q_RxLevMin_encode_xer; -oer_type_decoder_f Q_RxLevMin_decode_oer; -oer_type_encoder_f Q_RxLevMin_encode_oer; -per_type_decoder_f Q_RxLevMin_decode_uper; -per_type_encoder_f Q_RxLevMin_encode_uper; -per_type_decoder_f Q_RxLevMin_decode_aper; -per_type_encoder_f Q_RxLevMin_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _Q_RxLevMin_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/RACH-ConfigCommon.c b/src/codec_utils/SYSINFO/RACH-ConfigCommon.c deleted file mode 100644 index b0c23f227..000000000 --- a/src/codec_utils/SYSINFO/RACH-ConfigCommon.c +++ /dev/null @@ -1,1286 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_type_oneEighth_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_oneFourth_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_oneHalf_constr_39 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_one_constr_56 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_two_constr_73 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_four_constr_82 CC_NOTUSED = { - { 1, 1 } /* (1..16) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_eight_constr_83 CC_NOTUSED = { - { 1, 1 } /* (1..8) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sixteen_constr_84 CC_NOTUSED = { - { 1, 1 } /* (1..4) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ra_Msg3SizeGroupA_constr_86 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_messagePowerOffsetGroupB_constr_103 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112 CC_NOTUSED = { - { 1, 1 } /* (1..64) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ra_ContentionResolutionTimer_constr_113 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_l839_constr_125 CC_NOTUSED = { - { 2, 1 } /* (0..837) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_l139_constr_126 CC_NOTUSED = { - { 1, 1 } /* (0..137) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_prach_RootSequenceIndex_constr_124 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_restrictedSetConfig_constr_128 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_msg3_transformPrecoder_constr_132 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_totalNumberOfRA_Preambles_constr_3 CC_NOTUSED = { - { 1, 1 } /* (1..63) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_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_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_oneEighth_specs_5 = { - asn_MAP_oneEighth_value2enum_5, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_oneEighth_5 = { - "oneEighth", - "oneEighth", - &asn_OP_NativeEnumerated, - asn_DEF_oneEighth_tags_5, - sizeof(asn_DEF_oneEighth_tags_5) - /sizeof(asn_DEF_oneEighth_tags_5[0]) - 1, /* 1 */ - asn_DEF_oneEighth_tags_5, /* Same as above */ - sizeof(asn_DEF_oneEighth_tags_5) - /sizeof(asn_DEF_oneEighth_tags_5[0]), /* 2 */ - { &asn_OER_type_oneEighth_constr_5, &asn_PER_type_oneEighth_constr_5, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_oneEighth_specs_5 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_oneFourth_specs_22 = { - asn_MAP_oneFourth_value2enum_22, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_oneFourth_22 = { - "oneFourth", - "oneFourth", - &asn_OP_NativeEnumerated, - asn_DEF_oneFourth_tags_22, - sizeof(asn_DEF_oneFourth_tags_22) - /sizeof(asn_DEF_oneFourth_tags_22[0]) - 1, /* 1 */ - asn_DEF_oneFourth_tags_22, /* Same as above */ - sizeof(asn_DEF_oneFourth_tags_22) - /sizeof(asn_DEF_oneFourth_tags_22[0]), /* 2 */ - { &asn_OER_type_oneFourth_constr_22, &asn_PER_type_oneFourth_constr_22, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_oneFourth_specs_22 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_oneHalf_specs_39 = { - asn_MAP_oneHalf_value2enum_39, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_oneHalf_39 = { - "oneHalf", - "oneHalf", - &asn_OP_NativeEnumerated, - asn_DEF_oneHalf_tags_39, - sizeof(asn_DEF_oneHalf_tags_39) - /sizeof(asn_DEF_oneHalf_tags_39[0]) - 1, /* 1 */ - asn_DEF_oneHalf_tags_39, /* Same as above */ - sizeof(asn_DEF_oneHalf_tags_39) - /sizeof(asn_DEF_oneHalf_tags_39[0]), /* 2 */ - { &asn_OER_type_oneHalf_constr_39, &asn_PER_type_oneHalf_constr_39, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_oneHalf_specs_39 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_one_specs_56 = { - asn_MAP_one_value2enum_56, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_one_56 = { - "one", - "one", - &asn_OP_NativeEnumerated, - asn_DEF_one_tags_56, - sizeof(asn_DEF_one_tags_56) - /sizeof(asn_DEF_one_tags_56[0]) - 1, /* 1 */ - asn_DEF_one_tags_56, /* Same as above */ - sizeof(asn_DEF_one_tags_56) - /sizeof(asn_DEF_one_tags_56[0]), /* 2 */ - { &asn_OER_type_one_constr_56, &asn_PER_type_one_constr_56, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_one_specs_56 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_two_specs_73 = { - asn_MAP_two_value2enum_73, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_two_73 = { - "two", - "two", - &asn_OP_NativeEnumerated, - asn_DEF_two_tags_73, - sizeof(asn_DEF_two_tags_73) - /sizeof(asn_DEF_two_tags_73[0]) - 1, /* 1 */ - asn_DEF_two_tags_73, /* Same as above */ - sizeof(asn_DEF_two_tags_73) - /sizeof(asn_DEF_two_tags_73[0]), /* 2 */ - { &asn_OER_type_two_constr_73, &asn_PER_type_two_constr_73, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_two_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneEighth), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_oneEighth_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oneEighth" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneFourth), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_oneFourth_22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oneFourth" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.oneHalf), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_oneHalf_39, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "oneHalf" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.one), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_one_56, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "one" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.two), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_two_73, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "two" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.four), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_four_constr_82, &asn_PER_memb_four_constr_82, memb_four_constraint_4 }, - 0, 0, /* No default value */ - "four" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.eight), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_eight_constr_83, &asn_PER_memb_eight_constr_83, memb_eight_constraint_4 }, - 0, 0, /* No default value */ - "eight" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, choice.sixteen), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sixteen_constr_84, &asn_PER_memb_sixteen_constr_84, memb_sixteen_constraint_4 }, - 0, 0, /* No default value */ - "sixteen" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 = { - sizeof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB), - offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, _asn_ctx), - offsetof(struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB, present), - sizeof(((struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, &asn_PER_type_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_constr_4, CHOICE_constraint }, - asn_MBR_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, - 8, /* Elements count */ - &asn_SPC_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_specs_4 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_Msg3SizeGroupA_specs_86 = { - asn_MAP_ra_Msg3SizeGroupA_value2enum_86, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ra_Msg3SizeGroupA_86 = { - "ra-Msg3SizeGroupA", - "ra-Msg3SizeGroupA", - &asn_OP_NativeEnumerated, - asn_DEF_ra_Msg3SizeGroupA_tags_86, - sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) - /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]) - 1, /* 1 */ - asn_DEF_ra_Msg3SizeGroupA_tags_86, /* Same as above */ - sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86) - /sizeof(asn_DEF_ra_Msg3SizeGroupA_tags_86[0]), /* 2 */ - { &asn_OER_type_ra_Msg3SizeGroupA_constr_86, &asn_PER_type_ra_Msg3SizeGroupA_constr_86, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ra_Msg3SizeGroupA_specs_86 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_messagePowerOffsetGroupB_specs_103 = { - asn_MAP_messagePowerOffsetGroupB_value2enum_103, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_messagePowerOffsetGroupB_103 = { - "messagePowerOffsetGroupB", - "messagePowerOffsetGroupB", - &asn_OP_NativeEnumerated, - asn_DEF_messagePowerOffsetGroupB_tags_103, - sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) - /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]) - 1, /* 1 */ - asn_DEF_messagePowerOffsetGroupB_tags_103, /* Same as above */ - sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103) - /sizeof(asn_DEF_messagePowerOffsetGroupB_tags_103[0]), /* 2 */ - { &asn_OER_type_messagePowerOffsetGroupB_constr_103, &asn_PER_type_messagePowerOffsetGroupB_constr_103, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_messagePowerOffsetGroupB_specs_103 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_groupBconfigured_85[] = { - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, ra_Msg3SizeGroupA), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ra_Msg3SizeGroupA_86, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ra-Msg3SizeGroupA" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, messagePowerOffsetGroupB), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_messagePowerOffsetGroupB_103, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "messagePowerOffsetGroupB" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__groupBconfigured, numberOfRA_PreamblesGroupA), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_numberOfRA_PreamblesGroupA_constr_112, &asn_PER_memb_numberOfRA_PreamblesGroupA_constr_112, memb_numberOfRA_PreamblesGroupA_constraint_85 }, - 0, 0, /* No default value */ - "numberOfRA-PreamblesGroupA" - }, -}; -static const ber_tlv_tag_t asn_DEF_groupBconfigured_tags_85[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_groupBconfigured_specs_85 = { - sizeof(struct RACH_ConfigCommon__groupBconfigured), - offsetof(struct RACH_ConfigCommon__groupBconfigured, _asn_ctx), - asn_MAP_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_groupBconfigured_85 = { - "groupBconfigured", - "groupBconfigured", - &asn_OP_SEQUENCE, - asn_DEF_groupBconfigured_tags_85, - sizeof(asn_DEF_groupBconfigured_tags_85) - /sizeof(asn_DEF_groupBconfigured_tags_85[0]) - 1, /* 1 */ - asn_DEF_groupBconfigured_tags_85, /* Same as above */ - sizeof(asn_DEF_groupBconfigured_tags_85) - /sizeof(asn_DEF_groupBconfigured_tags_85[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_groupBconfigured_85, - 3, /* Elements count */ - &asn_SPC_groupBconfigured_specs_85 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_ContentionResolutionTimer_specs_113 = { - asn_MAP_ra_ContentionResolutionTimer_value2enum_113, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ra_ContentionResolutionTimer_113 = { - "ra-ContentionResolutionTimer", - "ra-ContentionResolutionTimer", - &asn_OP_NativeEnumerated, - asn_DEF_ra_ContentionResolutionTimer_tags_113, - sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) - /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]) - 1, /* 1 */ - asn_DEF_ra_ContentionResolutionTimer_tags_113, /* Same as above */ - sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113) - /sizeof(asn_DEF_ra_ContentionResolutionTimer_tags_113[0]), /* 2 */ - { &asn_OER_type_ra_ContentionResolutionTimer_constr_113, &asn_PER_type_ra_ContentionResolutionTimer_constr_113, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ra_ContentionResolutionTimer_specs_113 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_prach_RootSequenceIndex_124[] = { - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l839), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_l839_constr_125, &asn_PER_memb_l839_constr_125, memb_l839_constraint_124 }, - 0, 0, /* No default value */ - "l839" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, choice.l139), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_l139_constr_126, &asn_PER_memb_l139_constr_126, memb_l139_constraint_124 }, - 0, 0, /* No default value */ - "l139" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_prach_RootSequenceIndex_specs_124 = { - sizeof(struct RACH_ConfigCommon__prach_RootSequenceIndex), - offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, _asn_ctx), - offsetof(struct RACH_ConfigCommon__prach_RootSequenceIndex, present), - sizeof(((struct RACH_ConfigCommon__prach_RootSequenceIndex *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_prach_RootSequenceIndex_constr_124, &asn_PER_type_prach_RootSequenceIndex_constr_124, CHOICE_constraint }, - asn_MBR_prach_RootSequenceIndex_124, - 2, /* Elements count */ - &asn_SPC_prach_RootSequenceIndex_specs_124 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_restrictedSetConfig_value2enum_128[] = { - { 0, 15, "unrestrictedSet" }, - { 1, 18, "restrictedSetTypeA" }, - { 2, 18, "restrictedSetTypeB" } -}; -static const unsigned int asn_MAP_restrictedSetConfig_enum2value_128[] = { - 1, /* restrictedSetTypeA(1) */ - 2, /* restrictedSetTypeB(2) */ - 0 /* unrestrictedSet(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_restrictedSetConfig_specs_128 = { - asn_MAP_restrictedSetConfig_value2enum_128, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_restrictedSetConfig_128 = { - "restrictedSetConfig", - "restrictedSetConfig", - &asn_OP_NativeEnumerated, - asn_DEF_restrictedSetConfig_tags_128, - sizeof(asn_DEF_restrictedSetConfig_tags_128) - /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]) - 1, /* 1 */ - asn_DEF_restrictedSetConfig_tags_128, /* Same as above */ - sizeof(asn_DEF_restrictedSetConfig_tags_128) - /sizeof(asn_DEF_restrictedSetConfig_tags_128[0]), /* 2 */ - { &asn_OER_type_restrictedSetConfig_constr_128, &asn_PER_type_restrictedSetConfig_constr_128, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_restrictedSetConfig_specs_128 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_msg3_transformPrecoder_value2enum_132[] = { - { 0, 7, "enabled" } -}; -static const unsigned int asn_MAP_msg3_transformPrecoder_enum2value_132[] = { - 0 /* enabled(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_msg3_transformPrecoder_specs_132 = { - asn_MAP_msg3_transformPrecoder_value2enum_132, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_msg3_transformPrecoder_132 = { - "msg3-transformPrecoder", - "msg3-transformPrecoder", - &asn_OP_NativeEnumerated, - asn_DEF_msg3_transformPrecoder_tags_132, - sizeof(asn_DEF_msg3_transformPrecoder_tags_132) - /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]) - 1, /* 1 */ - asn_DEF_msg3_transformPrecoder_tags_132, /* Same as above */ - sizeof(asn_DEF_msg3_transformPrecoder_tags_132) - /sizeof(asn_DEF_msg3_transformPrecoder_tags_132[0]), /* 2 */ - { &asn_OER_type_msg3_transformPrecoder_constr_132, &asn_PER_type_msg3_transformPrecoder_constr_132, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_msg3_transformPrecoder_specs_132 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RACH_ConfigCommon_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, rach_ConfigGeneric), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RACH_ConfigGeneric, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rach-ConfigGeneric" - }, - { ATF_POINTER, 3, offsetof(struct RACH_ConfigCommon, totalNumberOfRA_Preambles), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_totalNumberOfRA_Preambles_constr_3, &asn_PER_memb_totalNumberOfRA_Preambles_constr_3, memb_totalNumberOfRA_Preambles_constraint_1 }, - 0, 0, /* No default value */ - "totalNumberOfRA-Preambles" - }, - { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, ssb_perRACH_OccasionAndCB_PreamblesPerSSB), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ssb-perRACH-OccasionAndCB-PreamblesPerSSB" - }, - { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, groupBconfigured), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_groupBconfigured_85, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "groupBconfigured" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, ra_ContentionResolutionTimer), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ra_ContentionResolutionTimer_113, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ra-ContentionResolutionTimer" - }, - { ATF_POINTER, 2, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RSRP_Range, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rsrp-ThresholdSSB" - }, - { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, rsrp_ThresholdSSB_SUL), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RSRP_Range, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rsrp-ThresholdSSB-SUL" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, prach_RootSequenceIndex), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_prach_RootSequenceIndex_124, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "prach-RootSequenceIndex" - }, - { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg1_SubcarrierSpacing), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubcarrierSpacing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "msg1-SubcarrierSpacing" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigCommon, restrictedSetConfig), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_restrictedSetConfig_128, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "restrictedSetConfig" - }, - { ATF_POINTER, 1, offsetof(struct RACH_ConfigCommon, msg3_transformPrecoder), - (ASN_TAG_CLASS_CONTEXT | (10 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_msg3_transformPrecoder_132, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "msg3-transformPrecoder" - }, -}; -static const int asn_MAP_RACH_ConfigCommon_oms_1[] = { 1, 2, 3, 5, 6, 8, 10 }; -static const ber_tlv_tag_t asn_DEF_RACH_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_RACH_ConfigCommon_specs_1 = { - sizeof(struct RACH_ConfigCommon), - offsetof(struct RACH_ConfigCommon, _asn_ctx), - asn_MAP_RACH_ConfigCommon_tag2el_1, - 11, /* Count of tags in the map */ - asn_MAP_RACH_ConfigCommon_oms_1, /* Optional members */ - 7, 0, /* Root/Additions */ - 11, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_RACH_ConfigCommon = { - "RACH-ConfigCommon", - "RACH-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_RACH_ConfigCommon_tags_1, - sizeof(asn_DEF_RACH_ConfigCommon_tags_1) - /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_RACH_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_RACH_ConfigCommon_tags_1) - /sizeof(asn_DEF_RACH_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RACH_ConfigCommon_1, - 11, /* Elements count */ - &asn_SPC_RACH_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/RACH-ConfigCommon.h b/src/codec_utils/SYSINFO/RACH-ConfigCommon.h deleted file mode 100644 index 6b926a73b..000000000 --- a/src/codec_utils/SYSINFO/RACH-ConfigCommon.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _RACH_ConfigCommon_H_ -#define _RACH_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include "RACH-ConfigGeneric.h" -#include -#include -#include "RSRP-Range.h" -#include "SubcarrierSpacing.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_NOTHING, /* No components present */ - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneEighth, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneFourth, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_oneHalf, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_one, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_two, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_four, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_eight, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR_sixteen -} RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR; -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n4 = 0, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n8 = 1, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n12 = 2, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n16 = 3, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n20 = 4, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n24 = 5, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n28 = 6, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n32 = 7, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n36 = 8, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n40 = 9, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n44 = 10, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n48 = 11, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n52 = 12, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n56 = 13, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n60 = 14, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth_n64 = 15 -} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneEighth; -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n4 = 0, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n8 = 1, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n12 = 2, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n16 = 3, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n20 = 4, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n24 = 5, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n28 = 6, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n32 = 7, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n36 = 8, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n40 = 9, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n44 = 10, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n48 = 11, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n52 = 12, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n56 = 13, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n60 = 14, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth_n64 = 15 -} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneFourth; -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n4 = 0, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n8 = 1, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n12 = 2, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n16 = 3, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n20 = 4, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n24 = 5, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n28 = 6, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n32 = 7, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n36 = 8, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n40 = 9, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n44 = 10, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n48 = 11, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n52 = 12, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n56 = 13, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n60 = 14, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf_n64 = 15 -} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__oneHalf; -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n4 = 0, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n8 = 1, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n12 = 2, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n16 = 3, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n20 = 4, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n24 = 5, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n28 = 6, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n32 = 7, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n36 = 8, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n40 = 9, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n44 = 10, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n48 = 11, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n52 = 12, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n56 = 13, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n60 = 14, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one_n64 = 15 -} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__one; -typedef enum RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n4 = 0, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n8 = 1, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n12 = 2, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n16 = 3, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n20 = 4, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n24 = 5, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n28 = 6, - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two_n32 = 7 -} e_RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB__two; -typedef enum RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA { - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b56 = 0, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b144 = 1, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b208 = 2, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b256 = 3, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b282 = 4, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b480 = 5, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b640 = 6, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b800 = 7, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b1000 = 8, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_b72 = 9, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare6 = 10, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare5 = 11, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare4 = 12, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare3 = 13, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare2 = 14, - RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA_spare1 = 15 -} e_RACH_ConfigCommon__groupBconfigured__ra_Msg3SizeGroupA; -typedef enum RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB { - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_minusinfinity = 0, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB0 = 1, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB5 = 2, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB8 = 3, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB10 = 4, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB12 = 5, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB15 = 6, - RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB_dB18 = 7 -} e_RACH_ConfigCommon__groupBconfigured__messagePowerOffsetGroupB; -typedef enum RACH_ConfigCommon__ra_ContentionResolutionTimer { - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf8 = 0, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf16 = 1, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf24 = 2, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf32 = 3, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf40 = 4, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf48 = 5, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf56 = 6, - RACH_ConfigCommon__ra_ContentionResolutionTimer_sf64 = 7 -} e_RACH_ConfigCommon__ra_ContentionResolutionTimer; -typedef enum RACH_ConfigCommon__prach_RootSequenceIndex_PR { - RACH_ConfigCommon__prach_RootSequenceIndex_PR_NOTHING, /* No components present */ - RACH_ConfigCommon__prach_RootSequenceIndex_PR_l839, - RACH_ConfigCommon__prach_RootSequenceIndex_PR_l139 -} RACH_ConfigCommon__prach_RootSequenceIndex_PR; -typedef enum RACH_ConfigCommon__restrictedSetConfig { - RACH_ConfigCommon__restrictedSetConfig_unrestrictedSet = 0, - RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeA = 1, - RACH_ConfigCommon__restrictedSetConfig_restrictedSetTypeB = 2 -} e_RACH_ConfigCommon__restrictedSetConfig; -typedef enum RACH_ConfigCommon__msg3_transformPrecoder { - RACH_ConfigCommon__msg3_transformPrecoder_enabled = 0 -} e_RACH_ConfigCommon__msg3_transformPrecoder; - -/* RACH-ConfigCommon */ -typedef struct RACH_ConfigCommon { - RACH_ConfigGeneric_t rach_ConfigGeneric; - long *totalNumberOfRA_Preambles; /* OPTIONAL */ - struct RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB { - RACH_ConfigCommon__ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR present; - union RACH_ConfigCommon__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 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; - RSRP_Range_t *rsrp_ThresholdSSB; /* OPTIONAL */ - RSRP_Range_t *rsrp_ThresholdSSB_SUL; /* OPTIONAL */ - struct RACH_ConfigCommon__prach_RootSequenceIndex { - RACH_ConfigCommon__prach_RootSequenceIndex_PR present; - union RACH_ConfigCommon__prach_RootSequenceIndex_u { - long l839; - long l139; - } choice; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } prach_RootSequenceIndex; - 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; -} RACH_ConfigCommon_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_oneEighth_5; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_oneFourth_22; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_oneHalf_39; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_one_56; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_two_73; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_ra_Msg3SizeGroupA_86; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_messagePowerOffsetGroupB_103; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_ra_ContentionResolutionTimer_113; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_restrictedSetConfig_128; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_msg3_transformPrecoder_132; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_RACH_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_RACH_ConfigCommon_1[11]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RACH_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/RACH-ConfigGeneric.c b/src/codec_utils/SYSINFO/RACH-ConfigGeneric.c deleted file mode 100644 index 5fe032ac1..000000000 --- a/src/codec_utils/SYSINFO/RACH-ConfigGeneric.c +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_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_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_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_oer_constraints_t asn_OER_type_msg1_FDM_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_preambleTransMax_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_powerRampingStep_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_ra_ResponseWindow_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_prach_ConfigurationIndex_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_msg1_FrequencyStart_constr_8 CC_NOTUSED = { - { 2, 1 } /* (0..274) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_zeroCorrelationZoneConfig_constr_9 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_preambleReceivedTargetPower_constr_10 CC_NOTUSED = { - { 2, 0 } /* (-202..-60) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_msg1_FDM_value2enum_3[] = { - { 0, 3, "one" }, - { 1, 3, "two" }, - { 2, 4, "four" }, - { 3, 5, "eight" } -}; -static const unsigned int asn_MAP_msg1_FDM_enum2value_3[] = { - 3, /* eight(3) */ - 2, /* four(2) */ - 0, /* one(0) */ - 1 /* two(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_msg1_FDM_specs_3 = { - asn_MAP_msg1_FDM_value2enum_3, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_msg1_FDM_3 = { - "msg1-FDM", - "msg1-FDM", - &asn_OP_NativeEnumerated, - asn_DEF_msg1_FDM_tags_3, - sizeof(asn_DEF_msg1_FDM_tags_3) - /sizeof(asn_DEF_msg1_FDM_tags_3[0]) - 1, /* 1 */ - asn_DEF_msg1_FDM_tags_3, /* Same as above */ - sizeof(asn_DEF_msg1_FDM_tags_3) - /sizeof(asn_DEF_msg1_FDM_tags_3[0]), /* 2 */ - { &asn_OER_type_msg1_FDM_constr_3, &asn_PER_type_msg1_FDM_constr_3, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_msg1_FDM_specs_3 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_preambleTransMax_specs_11 = { - asn_MAP_preambleTransMax_value2enum_11, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_preambleTransMax_11 = { - "preambleTransMax", - "preambleTransMax", - &asn_OP_NativeEnumerated, - asn_DEF_preambleTransMax_tags_11, - sizeof(asn_DEF_preambleTransMax_tags_11) - /sizeof(asn_DEF_preambleTransMax_tags_11[0]) - 1, /* 1 */ - asn_DEF_preambleTransMax_tags_11, /* Same as above */ - sizeof(asn_DEF_preambleTransMax_tags_11) - /sizeof(asn_DEF_preambleTransMax_tags_11[0]), /* 2 */ - { &asn_OER_type_preambleTransMax_constr_11, &asn_PER_type_preambleTransMax_constr_11, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_preambleTransMax_specs_11 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_powerRampingStep_value2enum_23[] = { - { 0, 3, "dB0" }, - { 1, 3, "dB2" }, - { 2, 3, "dB4" }, - { 3, 3, "dB6" } -}; -static const unsigned int asn_MAP_powerRampingStep_enum2value_23[] = { - 0, /* dB0(0) */ - 1, /* dB2(1) */ - 2, /* dB4(2) */ - 3 /* dB6(3) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_powerRampingStep_specs_23 = { - asn_MAP_powerRampingStep_value2enum_23, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_powerRampingStep_23 = { - "powerRampingStep", - "powerRampingStep", - &asn_OP_NativeEnumerated, - asn_DEF_powerRampingStep_tags_23, - sizeof(asn_DEF_powerRampingStep_tags_23) - /sizeof(asn_DEF_powerRampingStep_tags_23[0]) - 1, /* 1 */ - asn_DEF_powerRampingStep_tags_23, /* Same as above */ - sizeof(asn_DEF_powerRampingStep_tags_23) - /sizeof(asn_DEF_powerRampingStep_tags_23[0]), /* 2 */ - { &asn_OER_type_powerRampingStep_constr_23, &asn_PER_type_powerRampingStep_constr_23, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_powerRampingStep_specs_23 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_ra_ResponseWindow_specs_28 = { - asn_MAP_ra_ResponseWindow_value2enum_28, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ra_ResponseWindow_28 = { - "ra-ResponseWindow", - "ra-ResponseWindow", - &asn_OP_NativeEnumerated, - asn_DEF_ra_ResponseWindow_tags_28, - sizeof(asn_DEF_ra_ResponseWindow_tags_28) - /sizeof(asn_DEF_ra_ResponseWindow_tags_28[0]) - 1, /* 1 */ - asn_DEF_ra_ResponseWindow_tags_28, /* Same as above */ - sizeof(asn_DEF_ra_ResponseWindow_tags_28) - /sizeof(asn_DEF_ra_ResponseWindow_tags_28[0]), /* 2 */ - { &asn_OER_type_ra_ResponseWindow_constr_28, &asn_PER_type_ra_ResponseWindow_constr_28, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ra_ResponseWindow_specs_28 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_RACH_ConfigGeneric_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, prach_ConfigurationIndex), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_prach_ConfigurationIndex_constr_2, &asn_PER_memb_prach_ConfigurationIndex_constr_2, memb_prach_ConfigurationIndex_constraint_1 }, - 0, 0, /* No default value */ - "prach-ConfigurationIndex" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, msg1_FDM), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_msg1_FDM_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "msg1-FDM" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, msg1_FrequencyStart), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_msg1_FrequencyStart_constr_8, &asn_PER_memb_msg1_FrequencyStart_constr_8, memb_msg1_FrequencyStart_constraint_1 }, - 0, 0, /* No default value */ - "msg1-FrequencyStart" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, zeroCorrelationZoneConfig), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_zeroCorrelationZoneConfig_constr_9, &asn_PER_memb_zeroCorrelationZoneConfig_constr_9, memb_zeroCorrelationZoneConfig_constraint_1 }, - 0, 0, /* No default value */ - "zeroCorrelationZoneConfig" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, preambleReceivedTargetPower), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_preambleReceivedTargetPower_constr_10, &asn_PER_memb_preambleReceivedTargetPower_constr_10, memb_preambleReceivedTargetPower_constraint_1 }, - 0, 0, /* No default value */ - "preambleReceivedTargetPower" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, preambleTransMax), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_preambleTransMax_11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "preambleTransMax" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, powerRampingStep), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_powerRampingStep_23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "powerRampingStep" - }, - { ATF_NOFLAGS, 0, offsetof(struct RACH_ConfigGeneric, ra_ResponseWindow), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ra_ResponseWindow_28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ra-ResponseWindow" - }, -}; -static const ber_tlv_tag_t asn_DEF_RACH_ConfigGeneric_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_RACH_ConfigGeneric_specs_1 = { - sizeof(struct RACH_ConfigGeneric), - offsetof(struct RACH_ConfigGeneric, _asn_ctx), - asn_MAP_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_RACH_ConfigGeneric = { - "RACH-ConfigGeneric", - "RACH-ConfigGeneric", - &asn_OP_SEQUENCE, - asn_DEF_RACH_ConfigGeneric_tags_1, - sizeof(asn_DEF_RACH_ConfigGeneric_tags_1) - /sizeof(asn_DEF_RACH_ConfigGeneric_tags_1[0]), /* 1 */ - asn_DEF_RACH_ConfigGeneric_tags_1, /* Same as above */ - sizeof(asn_DEF_RACH_ConfigGeneric_tags_1) - /sizeof(asn_DEF_RACH_ConfigGeneric_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_RACH_ConfigGeneric_1, - 8, /* Elements count */ - &asn_SPC_RACH_ConfigGeneric_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/RACH-ConfigGeneric.h b/src/codec_utils/SYSINFO/RACH-ConfigGeneric.h deleted file mode 100644 index 2907de979..000000000 --- a/src/codec_utils/SYSINFO/RACH-ConfigGeneric.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _RACH_ConfigGeneric_H_ -#define _RACH_ConfigGeneric_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RACH_ConfigGeneric__msg1_FDM { - RACH_ConfigGeneric__msg1_FDM_one = 0, - RACH_ConfigGeneric__msg1_FDM_two = 1, - RACH_ConfigGeneric__msg1_FDM_four = 2, - RACH_ConfigGeneric__msg1_FDM_eight = 3 -} e_RACH_ConfigGeneric__msg1_FDM; -typedef enum RACH_ConfigGeneric__preambleTransMax { - RACH_ConfigGeneric__preambleTransMax_n3 = 0, - RACH_ConfigGeneric__preambleTransMax_n4 = 1, - RACH_ConfigGeneric__preambleTransMax_n5 = 2, - RACH_ConfigGeneric__preambleTransMax_n6 = 3, - RACH_ConfigGeneric__preambleTransMax_n7 = 4, - RACH_ConfigGeneric__preambleTransMax_n8 = 5, - RACH_ConfigGeneric__preambleTransMax_n10 = 6, - RACH_ConfigGeneric__preambleTransMax_n20 = 7, - RACH_ConfigGeneric__preambleTransMax_n50 = 8, - RACH_ConfigGeneric__preambleTransMax_n100 = 9, - RACH_ConfigGeneric__preambleTransMax_n200 = 10 -} e_RACH_ConfigGeneric__preambleTransMax; -typedef enum RACH_ConfigGeneric__powerRampingStep { - RACH_ConfigGeneric__powerRampingStep_dB0 = 0, - RACH_ConfigGeneric__powerRampingStep_dB2 = 1, - RACH_ConfigGeneric__powerRampingStep_dB4 = 2, - RACH_ConfigGeneric__powerRampingStep_dB6 = 3 -} e_RACH_ConfigGeneric__powerRampingStep; -typedef enum RACH_ConfigGeneric__ra_ResponseWindow { - RACH_ConfigGeneric__ra_ResponseWindow_sl1 = 0, - RACH_ConfigGeneric__ra_ResponseWindow_sl2 = 1, - RACH_ConfigGeneric__ra_ResponseWindow_sl4 = 2, - RACH_ConfigGeneric__ra_ResponseWindow_sl8 = 3, - RACH_ConfigGeneric__ra_ResponseWindow_sl10 = 4, - RACH_ConfigGeneric__ra_ResponseWindow_sl20 = 5, - RACH_ConfigGeneric__ra_ResponseWindow_sl40 = 6, - RACH_ConfigGeneric__ra_ResponseWindow_sl80 = 7 -} e_RACH_ConfigGeneric__ra_ResponseWindow; - -/* RACH-ConfigGeneric */ -typedef struct 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; -} RACH_ConfigGeneric_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_msg1_FDM_3; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_preambleTransMax_11; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_powerRampingStep_23; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_ra_ResponseWindow_28; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_RACH_ConfigGeneric; -extern asn_SEQUENCE_specifics_t asn_SPC_RACH_ConfigGeneric_specs_1; -extern asn_TYPE_member_t asn_MBR_RACH_ConfigGeneric_1[8]; - -#ifdef __cplusplus -} -#endif - -#endif /* _RACH_ConfigGeneric_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/RAN-AreaCode.c b/src/codec_utils/SYSINFO/RAN-AreaCode.c deleted file mode 100644 index 36dec9bc5..000000000 --- a/src/codec_utils/SYSINFO/RAN-AreaCode.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "RAN-AreaCode.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_RAN_AreaCode_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..255) */, - -1}; -asn_per_constraints_t asn_PER_type_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_RAN_AreaCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RAN_AreaCode = { - "RAN-AreaCode", - "RAN-AreaCode", - &asn_OP_NativeInteger, - asn_DEF_RAN_AreaCode_tags_1, - sizeof(asn_DEF_RAN_AreaCode_tags_1) - /sizeof(asn_DEF_RAN_AreaCode_tags_1[0]), /* 1 */ - asn_DEF_RAN_AreaCode_tags_1, /* Same as above */ - sizeof(asn_DEF_RAN_AreaCode_tags_1) - /sizeof(asn_DEF_RAN_AreaCode_tags_1[0]), /* 1 */ - { &asn_OER_type_RAN_AreaCode_constr_1, &asn_PER_type_RAN_AreaCode_constr_1, RAN_AreaCode_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/RAN-AreaCode.h b/src/codec_utils/SYSINFO/RAN-AreaCode.h deleted file mode 100644 index 7f08c3ef3..000000000 --- a/src/codec_utils/SYSINFO/RAN-AreaCode.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _RAN_AreaCode_H_ -#define _RAN_AreaCode_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RAN-AreaCode */ -typedef long RAN_AreaCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RAN_AreaCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RAN_AreaCode; -asn_struct_free_f RAN_AreaCode_free; -asn_struct_print_f RAN_AreaCode_print; -asn_constr_check_f RAN_AreaCode_constraint; -ber_type_decoder_f RAN_AreaCode_decode_ber; -der_type_encoder_f RAN_AreaCode_encode_der; -xer_type_decoder_f RAN_AreaCode_decode_xer; -xer_type_encoder_f RAN_AreaCode_encode_xer; -oer_type_decoder_f RAN_AreaCode_decode_oer; -oer_type_encoder_f RAN_AreaCode_encode_oer; -per_type_decoder_f RAN_AreaCode_decode_uper; -per_type_encoder_f RAN_AreaCode_encode_uper; -per_type_decoder_f RAN_AreaCode_decode_aper; -per_type_encoder_f RAN_AreaCode_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RAN_AreaCode_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/RSRP-Range.c b/src/codec_utils/SYSINFO/RSRP-Range.c deleted file mode 100644 index 7878cf677..000000000 --- a/src/codec_utils/SYSINFO/RSRP-Range.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "RSRP-Range.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_RSRP_Range_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..127) */, - -1}; -asn_per_constraints_t asn_PER_type_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_RSRP_Range_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RSRP_Range = { - "RSRP-Range", - "RSRP-Range", - &asn_OP_NativeInteger, - asn_DEF_RSRP_Range_tags_1, - sizeof(asn_DEF_RSRP_Range_tags_1) - /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ - asn_DEF_RSRP_Range_tags_1, /* Same as above */ - sizeof(asn_DEF_RSRP_Range_tags_1) - /sizeof(asn_DEF_RSRP_Range_tags_1[0]), /* 1 */ - { &asn_OER_type_RSRP_Range_constr_1, &asn_PER_type_RSRP_Range_constr_1, RSRP_Range_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/RSRP-Range.h b/src/codec_utils/SYSINFO/RSRP-Range.h deleted file mode 100644 index ba4f7df7d..000000000 --- a/src/codec_utils/SYSINFO/RSRP-Range.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _RSRP_Range_H_ -#define _RSRP_Range_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* RSRP-Range */ -typedef long RSRP_Range_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_RSRP_Range_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_RSRP_Range; -asn_struct_free_f RSRP_Range_free; -asn_struct_print_f RSRP_Range_print; -asn_constr_check_f RSRP_Range_constraint; -ber_type_decoder_f RSRP_Range_decode_ber; -der_type_encoder_f RSRP_Range_encode_der; -xer_type_decoder_f RSRP_Range_decode_xer; -xer_type_encoder_f RSRP_Range_encode_xer; -oer_type_decoder_f RSRP_Range_decode_oer; -oer_type_encoder_f RSRP_Range_encode_oer; -per_type_decoder_f RSRP_Range_decode_uper; -per_type_encoder_f RSRP_Range_encode_uper; -per_type_decoder_f RSRP_Range_decode_aper; -per_type_encoder_f RSRP_Range_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RSRP_Range_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SCS-SpecificCarrier.c b/src/codec_utils/SYSINFO/SCS-SpecificCarrier.c deleted file mode 100644 index b2a23401f..000000000 --- a/src/codec_utils/SYSINFO/SCS-SpecificCarrier.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SCS-SpecificCarrier.h" - -static int -memb_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_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_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_oer_constraints_t asn_OER_memb_txDirectCurrentLocation_v1530_constr_7 CC_NOTUSED = { - { 2, 1 } /* (0..4095) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_offsetToCarrier_constr_2 CC_NOTUSED = { - { 2, 1 } /* (0..2199) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_carrierBandwidth_constr_4 CC_NOTUSED = { - { 2, 1 } /* (1..275) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_ext1_6[] = { - { ATF_POINTER, 1, offsetof(struct SCS_SpecificCarrier__ext1, txDirectCurrentLocation_v1530), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_txDirectCurrentLocation_v1530_constr_7, &asn_PER_memb_txDirectCurrentLocation_v1530_constr_7, memb_txDirectCurrentLocation_v1530_constraint_6 }, - 0, 0, /* No default value */ - "txDirectCurrentLocation-v1530" - }, -}; -static const int asn_MAP_ext1_oms_6[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_ext1_tags_6[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_6[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* txDirectCurrentLocation-v1530 */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_6 = { - sizeof(struct SCS_SpecificCarrier__ext1), - offsetof(struct SCS_SpecificCarrier__ext1, _asn_ctx), - asn_MAP_ext1_tag2el_6, - 1, /* Count of tags in the map */ - asn_MAP_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_ext1_6 = { - "ext1", - "ext1", - &asn_OP_SEQUENCE, - asn_DEF_ext1_tags_6, - sizeof(asn_DEF_ext1_tags_6) - /sizeof(asn_DEF_ext1_tags_6[0]) - 1, /* 1 */ - asn_DEF_ext1_tags_6, /* Same as above */ - sizeof(asn_DEF_ext1_tags_6) - /sizeof(asn_DEF_ext1_tags_6[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ext1_6, - 1, /* Elements count */ - &asn_SPC_ext1_specs_6 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SCS_SpecificCarrier_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, offsetToCarrier), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_offsetToCarrier_constr_2, &asn_PER_memb_offsetToCarrier_constr_2, memb_offsetToCarrier_constraint_1 }, - 0, 0, /* No default value */ - "offsetToCarrier" - }, - { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, subcarrierSpacing), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubcarrierSpacing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "subcarrierSpacing" - }, - { ATF_NOFLAGS, 0, offsetof(struct SCS_SpecificCarrier, carrierBandwidth), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_carrierBandwidth_constr_4, &asn_PER_memb_carrierBandwidth_constr_4, memb_carrierBandwidth_constraint_1 }, - 0, 0, /* No default value */ - "carrierBandwidth" - }, - { ATF_POINTER, 1, offsetof(struct SCS_SpecificCarrier, ext1), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_ext1_6, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ext1" - }, -}; -static const int asn_MAP_SCS_SpecificCarrier_oms_1[] = { 3 }; -static const ber_tlv_tag_t asn_DEF_SCS_SpecificCarrier_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SCS_SpecificCarrier_specs_1 = { - sizeof(struct SCS_SpecificCarrier), - offsetof(struct SCS_SpecificCarrier, _asn_ctx), - asn_MAP_SCS_SpecificCarrier_tag2el_1, - 4, /* Count of tags in the map */ - asn_MAP_SCS_SpecificCarrier_oms_1, /* Optional members */ - 0, 1, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SCS_SpecificCarrier = { - "SCS-SpecificCarrier", - "SCS-SpecificCarrier", - &asn_OP_SEQUENCE, - asn_DEF_SCS_SpecificCarrier_tags_1, - sizeof(asn_DEF_SCS_SpecificCarrier_tags_1) - /sizeof(asn_DEF_SCS_SpecificCarrier_tags_1[0]), /* 1 */ - asn_DEF_SCS_SpecificCarrier_tags_1, /* Same as above */ - sizeof(asn_DEF_SCS_SpecificCarrier_tags_1) - /sizeof(asn_DEF_SCS_SpecificCarrier_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SCS_SpecificCarrier_1, - 4, /* Elements count */ - &asn_SPC_SCS_SpecificCarrier_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SCS-SpecificCarrier.h b/src/codec_utils/SYSINFO/SCS-SpecificCarrier.h deleted file mode 100644 index 76edac7b1..000000000 --- a/src/codec_utils/SYSINFO/SCS-SpecificCarrier.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SCS_SpecificCarrier_H_ -#define _SCS_SpecificCarrier_H_ - - -#include - -/* Including external dependencies */ -#include -#include "SubcarrierSpacing.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SCS-SpecificCarrier */ -typedef struct SCS_SpecificCarrier { - long offsetToCarrier; - SubcarrierSpacing_t subcarrierSpacing; - long carrierBandwidth; - /* - * This type is extensible, - * possible extensions are below. - */ - struct 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; -} SCS_SpecificCarrier_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SCS_SpecificCarrier; -extern asn_SEQUENCE_specifics_t asn_SPC_SCS_SpecificCarrier_specs_1; -extern asn_TYPE_member_t asn_MBR_SCS_SpecificCarrier_1[4]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SCS_SpecificCarrier_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SI-RequestConfig.c b/src/codec_utils/SYSINFO/SI-RequestConfig.c deleted file mode 100644 index 9bb671116..000000000 --- a/src/codec_utils/SYSINFO/SI-RequestConfig.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SI-RequestConfig.h" - -#include "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_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_oer_constraints_t asn_OER_type_ssb_perRACH_Occasion_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_RequestPeriod_constr_13 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_RequestResources_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_si_RequestResources_constr_22 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_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_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_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_ssb_perRACH_Occasion_specs_4 = { - asn_MAP_ssb_perRACH_Occasion_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ssb_perRACH_Occasion_4 = { - "ssb-perRACH-Occasion", - "ssb-perRACH-Occasion", - &asn_OP_NativeEnumerated, - asn_DEF_ssb_perRACH_Occasion_tags_4, - sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) - /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]) - 1, /* 1 */ - asn_DEF_ssb_perRACH_Occasion_tags_4, /* Same as above */ - sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4) - /sizeof(asn_DEF_ssb_perRACH_Occasion_tags_4[0]), /* 2 */ - { &asn_OER_type_ssb_perRACH_Occasion_constr_4, &asn_PER_type_ssb_perRACH_Occasion_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ssb_perRACH_Occasion_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_rach_OccasionsSI_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig__rach_OccasionsSI, rach_ConfigSI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_RACH_ConfigGeneric, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rach-ConfigSI" - }, - { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig__rach_OccasionsSI, ssb_perRACH_Occasion), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ssb_perRACH_Occasion_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ssb-perRACH-Occasion" - }, -}; -static const ber_tlv_tag_t asn_DEF_rach_OccasionsSI_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_rach_OccasionsSI_specs_2 = { - sizeof(struct SI_RequestConfig__rach_OccasionsSI), - offsetof(struct SI_RequestConfig__rach_OccasionsSI, _asn_ctx), - asn_MAP_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_rach_OccasionsSI_2 = { - "rach-OccasionsSI", - "rach-OccasionsSI", - &asn_OP_SEQUENCE, - asn_DEF_rach_OccasionsSI_tags_2, - sizeof(asn_DEF_rach_OccasionsSI_tags_2) - /sizeof(asn_DEF_rach_OccasionsSI_tags_2[0]) - 1, /* 1 */ - asn_DEF_rach_OccasionsSI_tags_2, /* Same as above */ - sizeof(asn_DEF_rach_OccasionsSI_tags_2) - /sizeof(asn_DEF_rach_OccasionsSI_tags_2[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_rach_OccasionsSI_2, - 2, /* Elements count */ - &asn_SPC_rach_OccasionsSI_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_RequestPeriod_specs_13 = { - asn_MAP_si_RequestPeriod_value2enum_13, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_si_RequestPeriod_13 = { - "si-RequestPeriod", - "si-RequestPeriod", - &asn_OP_NativeEnumerated, - asn_DEF_si_RequestPeriod_tags_13, - sizeof(asn_DEF_si_RequestPeriod_tags_13) - /sizeof(asn_DEF_si_RequestPeriod_tags_13[0]) - 1, /* 1 */ - asn_DEF_si_RequestPeriod_tags_13, /* Same as above */ - sizeof(asn_DEF_si_RequestPeriod_tags_13) - /sizeof(asn_DEF_si_RequestPeriod_tags_13[0]), /* 2 */ - { &asn_OER_type_si_RequestPeriod_constr_13, &asn_PER_type_si_RequestPeriod_constr_13, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_si_RequestPeriod_specs_13 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_si_RequestResources_22[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SI_RequestResources, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_si_RequestResources_tags_22[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_si_RequestResources_specs_22 = { - sizeof(struct SI_RequestConfig__si_RequestResources), - offsetof(struct SI_RequestConfig__si_RequestResources, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_si_RequestResources_22 = { - "si-RequestResources", - "si-RequestResources", - &asn_OP_SEQUENCE_OF, - asn_DEF_si_RequestResources_tags_22, - sizeof(asn_DEF_si_RequestResources_tags_22) - /sizeof(asn_DEF_si_RequestResources_tags_22[0]) - 1, /* 1 */ - asn_DEF_si_RequestResources_tags_22, /* Same as above */ - sizeof(asn_DEF_si_RequestResources_tags_22) - /sizeof(asn_DEF_si_RequestResources_tags_22[0]), /* 2 */ - { &asn_OER_type_si_RequestResources_constr_22, &asn_PER_type_si_RequestResources_constr_22, SEQUENCE_OF_constraint }, - asn_MBR_si_RequestResources_22, - 1, /* Single element */ - &asn_SPC_si_RequestResources_specs_22 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SI_RequestConfig_1[] = { - { ATF_POINTER, 2, offsetof(struct SI_RequestConfig, rach_OccasionsSI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_rach_OccasionsSI_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "rach-OccasionsSI" - }, - { ATF_POINTER, 1, offsetof(struct SI_RequestConfig, si_RequestPeriod), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_si_RequestPeriod_13, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-RequestPeriod" - }, - { ATF_NOFLAGS, 0, offsetof(struct SI_RequestConfig, si_RequestResources), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_si_RequestResources_22, - 0, - { &asn_OER_memb_si_RequestResources_constr_22, &asn_PER_memb_si_RequestResources_constr_22, memb_si_RequestResources_constraint_1 }, - 0, 0, /* No default value */ - "si-RequestResources" - }, -}; -static const int asn_MAP_SI_RequestConfig_oms_1[] = { 0, 1 }; -static const ber_tlv_tag_t asn_DEF_SI_RequestConfig_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SI_RequestConfig_specs_1 = { - sizeof(struct SI_RequestConfig), - offsetof(struct SI_RequestConfig, _asn_ctx), - asn_MAP_SI_RequestConfig_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SI_RequestConfig_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SI_RequestConfig = { - "SI-RequestConfig", - "SI-RequestConfig", - &asn_OP_SEQUENCE, - asn_DEF_SI_RequestConfig_tags_1, - sizeof(asn_DEF_SI_RequestConfig_tags_1) - /sizeof(asn_DEF_SI_RequestConfig_tags_1[0]), /* 1 */ - asn_DEF_SI_RequestConfig_tags_1, /* Same as above */ - sizeof(asn_DEF_SI_RequestConfig_tags_1) - /sizeof(asn_DEF_SI_RequestConfig_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SI_RequestConfig_1, - 3, /* Elements count */ - &asn_SPC_SI_RequestConfig_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SI-RequestConfig.h b/src/codec_utils/SYSINFO/SI-RequestConfig.h deleted file mode 100644 index 3ebd2d4cd..000000000 --- a/src/codec_utils/SYSINFO/SI-RequestConfig.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SI_RequestConfig_H_ -#define _SI_RequestConfig_H_ - - -#include - -/* Including external dependencies */ -#include -#include "RACH-ConfigGeneric.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion { - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneEighth = 0, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneFourth = 1, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_oneHalf = 2, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_one = 3, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_two = 4, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_four = 5, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_eight = 6, - SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion_sixteen = 7 -} e_SI_RequestConfig__rach_OccasionsSI__ssb_perRACH_Occasion; -typedef enum SI_RequestConfig__si_RequestPeriod { - SI_RequestConfig__si_RequestPeriod_one = 0, - SI_RequestConfig__si_RequestPeriod_two = 1, - SI_RequestConfig__si_RequestPeriod_four = 2, - SI_RequestConfig__si_RequestPeriod_six = 3, - SI_RequestConfig__si_RequestPeriod_eight = 4, - SI_RequestConfig__si_RequestPeriod_ten = 5, - SI_RequestConfig__si_RequestPeriod_twelve = 6, - SI_RequestConfig__si_RequestPeriod_sixteen = 7 -} e_SI_RequestConfig__si_RequestPeriod; - -/* Forward declarations */ -struct SI_RequestResources; - -/* SI-RequestConfig */ -typedef struct SI_RequestConfig { - struct SI_RequestConfig__rach_OccasionsSI { - 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 SI_RequestConfig__si_RequestResources { - A_SEQUENCE_OF(struct 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; -} SI_RequestConfig_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_ssb_perRACH_Occasion_4; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_si_RequestPeriod_13; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SI_RequestConfig; -extern asn_SEQUENCE_specifics_t asn_SPC_SI_RequestConfig_specs_1; -extern asn_TYPE_member_t asn_MBR_SI_RequestConfig_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SI_RequestConfig_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SI-RequestResources.c b/src/codec_utils/SYSINFO/SI-RequestResources.c deleted file mode 100644 index 76505133f..000000000 --- a/src/codec_utils/SYSINFO/SI-RequestResources.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SI-RequestResources.h" - -static int -memb_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_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_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_oer_constraints_t asn_OER_memb_ra_PreambleStartIndex_constr_2 CC_NOTUSED = { - { 1, 1 } /* (0..63) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_AssociationPeriodIndex_constr_3 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_4 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_SI_RequestResources_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SI_RequestResources, ra_PreambleStartIndex), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ra_PreambleStartIndex_constr_2, &asn_PER_memb_ra_PreambleStartIndex_constr_2, memb_ra_PreambleStartIndex_constraint_1 }, - 0, 0, /* No default value */ - "ra-PreambleStartIndex" - }, - { ATF_POINTER, 2, offsetof(struct SI_RequestResources, ra_AssociationPeriodIndex), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ra_AssociationPeriodIndex_constr_3, &asn_PER_memb_ra_AssociationPeriodIndex_constr_3, memb_ra_AssociationPeriodIndex_constraint_1 }, - 0, 0, /* No default value */ - "ra-AssociationPeriodIndex" - }, - { ATF_POINTER, 1, offsetof(struct SI_RequestResources, ra_ssb_OccasionMaskIndex), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ra_ssb_OccasionMaskIndex_constr_4, &asn_PER_memb_ra_ssb_OccasionMaskIndex_constr_4, memb_ra_ssb_OccasionMaskIndex_constraint_1 }, - 0, 0, /* No default value */ - "ra-ssb-OccasionMaskIndex" - }, -}; -static const int asn_MAP_SI_RequestResources_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_SI_RequestResources_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SI_RequestResources_specs_1 = { - sizeof(struct SI_RequestResources), - offsetof(struct SI_RequestResources, _asn_ctx), - asn_MAP_SI_RequestResources_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SI_RequestResources_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SI_RequestResources = { - "SI-RequestResources", - "SI-RequestResources", - &asn_OP_SEQUENCE, - asn_DEF_SI_RequestResources_tags_1, - sizeof(asn_DEF_SI_RequestResources_tags_1) - /sizeof(asn_DEF_SI_RequestResources_tags_1[0]), /* 1 */ - asn_DEF_SI_RequestResources_tags_1, /* Same as above */ - sizeof(asn_DEF_SI_RequestResources_tags_1) - /sizeof(asn_DEF_SI_RequestResources_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SI_RequestResources_1, - 3, /* Elements count */ - &asn_SPC_SI_RequestResources_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SI-RequestResources.h b/src/codec_utils/SYSINFO/SI-RequestResources.h deleted file mode 100644 index 3f7bb85d4..000000000 --- a/src/codec_utils/SYSINFO/SI-RequestResources.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SI_RequestResources_H_ -#define _SI_RequestResources_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SI-RequestResources */ -typedef struct 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; -} SI_RequestResources_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SI_RequestResources; -extern asn_SEQUENCE_specifics_t asn_SPC_SI_RequestResources_specs_1; -extern asn_TYPE_member_t asn_MBR_SI_RequestResources_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SI_RequestResources_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SI-SchedulingInfo.c b/src/codec_utils/SYSINFO/SI-SchedulingInfo.c deleted file mode 100644 index f076381b9..000000000 --- a/src/codec_utils/SYSINFO/SI-SchedulingInfo.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SI-SchedulingInfo.h" - -#include "SI-RequestConfig.h" -#include "SchedulingInfo.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_oer_constraints_t asn_OER_type_schedulingInfoList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_WindowLength_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_schedulingInfoList_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_systemInformationAreaID_constr_16 CC_NOTUSED = { - { 0, 0 }, - 24 /* (SIZE(24..24)) */}; -static asn_per_constraints_t asn_PER_memb_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_schedulingInfoList_2[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SchedulingInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_schedulingInfoList_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_schedulingInfoList_specs_2 = { - sizeof(struct SI_SchedulingInfo__schedulingInfoList), - offsetof(struct SI_SchedulingInfo__schedulingInfoList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_schedulingInfoList_2 = { - "schedulingInfoList", - "schedulingInfoList", - &asn_OP_SEQUENCE_OF, - asn_DEF_schedulingInfoList_tags_2, - sizeof(asn_DEF_schedulingInfoList_tags_2) - /sizeof(asn_DEF_schedulingInfoList_tags_2[0]) - 1, /* 1 */ - asn_DEF_schedulingInfoList_tags_2, /* Same as above */ - sizeof(asn_DEF_schedulingInfoList_tags_2) - /sizeof(asn_DEF_schedulingInfoList_tags_2[0]), /* 2 */ - { &asn_OER_type_schedulingInfoList_constr_2, &asn_PER_type_schedulingInfoList_constr_2, SEQUENCE_OF_constraint }, - asn_MBR_schedulingInfoList_2, - 1, /* Single element */ - &asn_SPC_schedulingInfoList_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_WindowLength_specs_4 = { - asn_MAP_si_WindowLength_value2enum_4, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_si_WindowLength_4 = { - "si-WindowLength", - "si-WindowLength", - &asn_OP_NativeEnumerated, - asn_DEF_si_WindowLength_tags_4, - sizeof(asn_DEF_si_WindowLength_tags_4) - /sizeof(asn_DEF_si_WindowLength_tags_4[0]) - 1, /* 1 */ - asn_DEF_si_WindowLength_tags_4, /* Same as above */ - sizeof(asn_DEF_si_WindowLength_tags_4) - /sizeof(asn_DEF_si_WindowLength_tags_4[0]), /* 2 */ - { &asn_OER_type_si_WindowLength_constr_4, &asn_PER_type_si_WindowLength_constr_4, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_si_WindowLength_specs_4 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SI_SchedulingInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SI_SchedulingInfo, schedulingInfoList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_schedulingInfoList_2, - 0, - { &asn_OER_memb_schedulingInfoList_constr_2, &asn_PER_memb_schedulingInfoList_constr_2, memb_schedulingInfoList_constraint_1 }, - 0, 0, /* No default value */ - "schedulingInfoList" - }, - { ATF_NOFLAGS, 0, offsetof(struct SI_SchedulingInfo, si_WindowLength), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_si_WindowLength_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-WindowLength" - }, - { ATF_POINTER, 3, offsetof(struct SI_SchedulingInfo, si_RequestConfig), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SI_RequestConfig, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-RequestConfig" - }, - { ATF_POINTER, 2, offsetof(struct SI_SchedulingInfo, si_RequestConfigSUL), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SI_RequestConfig, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-RequestConfigSUL" - }, - { ATF_POINTER, 1, offsetof(struct SI_SchedulingInfo, systemInformationAreaID), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_systemInformationAreaID_constr_16, &asn_PER_memb_systemInformationAreaID_constr_16, memb_systemInformationAreaID_constraint_1 }, - 0, 0, /* No default value */ - "systemInformationAreaID" - }, -}; -static const int asn_MAP_SI_SchedulingInfo_oms_1[] = { 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_SI_SchedulingInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SI_SchedulingInfo_specs_1 = { - sizeof(struct SI_SchedulingInfo), - offsetof(struct SI_SchedulingInfo, _asn_ctx), - asn_MAP_SI_SchedulingInfo_tag2el_1, - 5, /* Count of tags in the map */ - asn_MAP_SI_SchedulingInfo_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SI_SchedulingInfo = { - "SI-SchedulingInfo", - "SI-SchedulingInfo", - &asn_OP_SEQUENCE, - asn_DEF_SI_SchedulingInfo_tags_1, - sizeof(asn_DEF_SI_SchedulingInfo_tags_1) - /sizeof(asn_DEF_SI_SchedulingInfo_tags_1[0]), /* 1 */ - asn_DEF_SI_SchedulingInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_SI_SchedulingInfo_tags_1) - /sizeof(asn_DEF_SI_SchedulingInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SI_SchedulingInfo_1, - 5, /* Elements count */ - &asn_SPC_SI_SchedulingInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SI-SchedulingInfo.h b/src/codec_utils/SYSINFO/SI-SchedulingInfo.h deleted file mode 100644 index a4619bf7e..000000000 --- a/src/codec_utils/SYSINFO/SI-SchedulingInfo.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SI_SchedulingInfo_H_ -#define _SI_SchedulingInfo_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SI_SchedulingInfo__si_WindowLength { - SI_SchedulingInfo__si_WindowLength_s5 = 0, - SI_SchedulingInfo__si_WindowLength_s10 = 1, - SI_SchedulingInfo__si_WindowLength_s20 = 2, - SI_SchedulingInfo__si_WindowLength_s40 = 3, - SI_SchedulingInfo__si_WindowLength_s80 = 4, - SI_SchedulingInfo__si_WindowLength_s160 = 5, - SI_SchedulingInfo__si_WindowLength_s320 = 6, - SI_SchedulingInfo__si_WindowLength_s640 = 7, - SI_SchedulingInfo__si_WindowLength_s1280 = 8 -} e_SI_SchedulingInfo__si_WindowLength; - -/* Forward declarations */ -struct SI_RequestConfig; -struct SchedulingInfo; - -/* SI-SchedulingInfo */ -typedef struct SI_SchedulingInfo { - struct SI_SchedulingInfo__schedulingInfoList { - A_SEQUENCE_OF(struct SchedulingInfo) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } schedulingInfoList; - long si_WindowLength; - struct SI_RequestConfig *si_RequestConfig; /* OPTIONAL */ - struct 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; -} SI_SchedulingInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_si_WindowLength_4; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SI_SchedulingInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_SI_SchedulingInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_SI_SchedulingInfo_1[5]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SI_SchedulingInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SIB-Mapping.c b/src/codec_utils/SYSINFO/SIB-Mapping.c deleted file mode 100644 index 4360f9574..000000000 --- a/src/codec_utils/SYSINFO/SIB-Mapping.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SIB-Mapping.h" - -#include "SIB-TypeInfo.h" -static asn_oer_constraints_t asn_OER_type_SIB_Mapping_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..32)) */}; -asn_per_constraints_t asn_PER_type_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_SIB_Mapping_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_SIB_TypeInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_SIB_Mapping_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_SIB_Mapping_specs_1 = { - sizeof(struct SIB_Mapping), - offsetof(struct SIB_Mapping, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_SIB_Mapping = { - "SIB-Mapping", - "SIB-Mapping", - &asn_OP_SEQUENCE_OF, - asn_DEF_SIB_Mapping_tags_1, - sizeof(asn_DEF_SIB_Mapping_tags_1) - /sizeof(asn_DEF_SIB_Mapping_tags_1[0]), /* 1 */ - asn_DEF_SIB_Mapping_tags_1, /* Same as above */ - sizeof(asn_DEF_SIB_Mapping_tags_1) - /sizeof(asn_DEF_SIB_Mapping_tags_1[0]), /* 1 */ - { &asn_OER_type_SIB_Mapping_constr_1, &asn_PER_type_SIB_Mapping_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_SIB_Mapping_1, - 1, /* Single element */ - &asn_SPC_SIB_Mapping_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SIB-Mapping.h b/src/codec_utils/SYSINFO/SIB-Mapping.h deleted file mode 100644 index 2d2367700..000000000 --- a/src/codec_utils/SYSINFO/SIB-Mapping.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SIB_Mapping_H_ -#define _SIB_Mapping_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct SIB_TypeInfo; - -/* SIB-Mapping */ -typedef struct SIB_Mapping { - A_SEQUENCE_OF(struct SIB_TypeInfo) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SIB_Mapping_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_SIB_Mapping; -extern asn_SET_OF_specifics_t asn_SPC_SIB_Mapping_specs_1; -extern asn_TYPE_member_t asn_MBR_SIB_Mapping_1[1]; -extern asn_per_constraints_t asn_PER_type_SIB_Mapping_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SIB_Mapping_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SIB-TypeInfo.c b/src/codec_utils/SYSINFO/SIB-TypeInfo.c deleted file mode 100644 index 648622e0d..000000000 --- a/src/codec_utils/SYSINFO/SIB-TypeInfo.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_oer_constraints_t asn_OER_type_type_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_areaScope_constr_21 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_valueTag_constr_20 CC_NOTUSED = { - { 1, 1 } /* (0..31) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_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_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_type_specs_2 = { - asn_MAP_type_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_type_2 = { - "type", - "type", - &asn_OP_NativeEnumerated, - asn_DEF_type_tags_2, - sizeof(asn_DEF_type_tags_2) - /sizeof(asn_DEF_type_tags_2[0]) - 1, /* 1 */ - asn_DEF_type_tags_2, /* Same as above */ - sizeof(asn_DEF_type_tags_2) - /sizeof(asn_DEF_type_tags_2[0]), /* 2 */ - { &asn_OER_type_type_constr_2, &asn_PER_type_type_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_type_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_areaScope_value2enum_21[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_areaScope_enum2value_21[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_areaScope_specs_21 = { - asn_MAP_areaScope_value2enum_21, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_areaScope_21 = { - "areaScope", - "areaScope", - &asn_OP_NativeEnumerated, - asn_DEF_areaScope_tags_21, - sizeof(asn_DEF_areaScope_tags_21) - /sizeof(asn_DEF_areaScope_tags_21[0]) - 1, /* 1 */ - asn_DEF_areaScope_tags_21, /* Same as above */ - sizeof(asn_DEF_areaScope_tags_21) - /sizeof(asn_DEF_areaScope_tags_21[0]), /* 2 */ - { &asn_OER_type_areaScope_constr_21, &asn_PER_type_areaScope_constr_21, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_areaScope_specs_21 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SIB_TypeInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SIB_TypeInfo, type), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_type_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "type" - }, - { ATF_POINTER, 2, offsetof(struct SIB_TypeInfo, valueTag), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_valueTag_constr_20, &asn_PER_memb_valueTag_constr_20, memb_valueTag_constraint_1 }, - 0, 0, /* No default value */ - "valueTag" - }, - { ATF_POINTER, 1, offsetof(struct SIB_TypeInfo, areaScope), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_areaScope_21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "areaScope" - }, -}; -static const int asn_MAP_SIB_TypeInfo_oms_1[] = { 1, 2 }; -static const ber_tlv_tag_t asn_DEF_SIB_TypeInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SIB_TypeInfo_specs_1 = { - sizeof(struct SIB_TypeInfo), - offsetof(struct SIB_TypeInfo, _asn_ctx), - asn_MAP_SIB_TypeInfo_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_SIB_TypeInfo_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SIB_TypeInfo = { - "SIB-TypeInfo", - "SIB-TypeInfo", - &asn_OP_SEQUENCE, - asn_DEF_SIB_TypeInfo_tags_1, - sizeof(asn_DEF_SIB_TypeInfo_tags_1) - /sizeof(asn_DEF_SIB_TypeInfo_tags_1[0]), /* 1 */ - asn_DEF_SIB_TypeInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_SIB_TypeInfo_tags_1) - /sizeof(asn_DEF_SIB_TypeInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SIB_TypeInfo_1, - 3, /* Elements count */ - &asn_SPC_SIB_TypeInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SIB-TypeInfo.h b/src/codec_utils/SYSINFO/SIB-TypeInfo.h deleted file mode 100644 index c6aa37d15..000000000 --- a/src/codec_utils/SYSINFO/SIB-TypeInfo.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SIB_TypeInfo_H_ -#define _SIB_TypeInfo_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SIB_TypeInfo__type { - SIB_TypeInfo__type_sibType2 = 0, - SIB_TypeInfo__type_sibType3 = 1, - SIB_TypeInfo__type_sibType4 = 2, - SIB_TypeInfo__type_sibType5 = 3, - SIB_TypeInfo__type_sibType6 = 4, - SIB_TypeInfo__type_sibType7 = 5, - SIB_TypeInfo__type_sibType8 = 6, - SIB_TypeInfo__type_sibType9 = 7, - SIB_TypeInfo__type_spare8 = 8, - SIB_TypeInfo__type_spare7 = 9, - SIB_TypeInfo__type_spare6 = 10, - SIB_TypeInfo__type_spare5 = 11, - SIB_TypeInfo__type_spare4 = 12, - SIB_TypeInfo__type_spare3 = 13, - SIB_TypeInfo__type_spare2 = 14, - SIB_TypeInfo__type_spare1 = 15 - /* - * Enumeration is extensible - */ -} e_SIB_TypeInfo__type; -typedef enum SIB_TypeInfo__areaScope { - SIB_TypeInfo__areaScope_true = 0 -} e_SIB_TypeInfo__areaScope; - -/* SIB-TypeInfo */ -typedef struct SIB_TypeInfo { - long type; - long *valueTag; /* OPTIONAL */ - long *areaScope; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SIB_TypeInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_type_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_areaScope_21; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SIB_TypeInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_SIB_TypeInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_SIB_TypeInfo_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SIB_TypeInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SIB1.c b/src/codec_utils/SYSINFO/SIB1.c deleted file mode 100644 index 5dcf37aa3..000000000 --- a/src/codec_utils/SYSINFO/SIB1.c +++ /dev/null @@ -1,699 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SIB1.h" - -#include "ConnEstFailureControl.h" -#include "SI-SchedulingInfo.h" -#include "ServingCellConfigCommonSIB.h" -#include "UE-TimersAndConstants.h" -#include "UAC-BarringPerCatList.h" -#include "UAC-BarringPerPLMN-List.h" -static int -memb_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_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_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_oer_constraints_t asn_OER_memb_q_RxLevMinOffset_constr_4 CC_NOTUSED = { - { 1, 1 } /* (1..8) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_q_QualMinOffset_constr_7 CC_NOTUSED = { - { 1, 1 } /* (1..8) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ims_EmergencySupport_constr_12 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_eCallOverIMS_Support_constr_14 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_individualPLMNList_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(2..12)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_individualPLMNList_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(2..12)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_useFullResumeID_constr_25 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_cellSelectionInfo_2[] = { - { ATF_NOFLAGS, 0, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMin), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Q_RxLevMin, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "q-RxLevMin" - }, - { ATF_POINTER, 4, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMinOffset), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_q_RxLevMinOffset_constr_4, &asn_PER_memb_q_RxLevMinOffset_constr_4, memb_q_RxLevMinOffset_constraint_2 }, - 0, 0, /* No default value */ - "q-RxLevMinOffset" - }, - { ATF_POINTER, 3, offsetof(struct SIB1__cellSelectionInfo, q_RxLevMinSUL), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Q_RxLevMin, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "q-RxLevMinSUL" - }, - { ATF_POINTER, 2, offsetof(struct SIB1__cellSelectionInfo, q_QualMin), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_Q_QualMin, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "q-QualMin" - }, - { ATF_POINTER, 1, offsetof(struct SIB1__cellSelectionInfo, q_QualMinOffset), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_q_QualMinOffset_constr_7, &asn_PER_memb_q_QualMinOffset_constr_7, memb_q_QualMinOffset_constraint_2 }, - 0, 0, /* No default value */ - "q-QualMinOffset" - }, -}; -static const int asn_MAP_cellSelectionInfo_oms_2[] = { 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_cellSelectionInfo_tags_2[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_cellSelectionInfo_specs_2 = { - sizeof(struct SIB1__cellSelectionInfo), - offsetof(struct SIB1__cellSelectionInfo, _asn_ctx), - asn_MAP_cellSelectionInfo_tag2el_2, - 5, /* Count of tags in the map */ - asn_MAP_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_cellSelectionInfo_2 = { - "cellSelectionInfo", - "cellSelectionInfo", - &asn_OP_SEQUENCE, - asn_DEF_cellSelectionInfo_tags_2, - sizeof(asn_DEF_cellSelectionInfo_tags_2) - /sizeof(asn_DEF_cellSelectionInfo_tags_2[0]) - 1, /* 1 */ - asn_DEF_cellSelectionInfo_tags_2, /* Same as above */ - sizeof(asn_DEF_cellSelectionInfo_tags_2) - /sizeof(asn_DEF_cellSelectionInfo_tags_2[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_cellSelectionInfo_2, - 5, /* Elements count */ - &asn_SPC_cellSelectionInfo_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_ims_EmergencySupport_value2enum_12[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_ims_EmergencySupport_enum2value_12[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_ims_EmergencySupport_specs_12 = { - asn_MAP_ims_EmergencySupport_value2enum_12, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ims_EmergencySupport_12 = { - "ims-EmergencySupport", - "ims-EmergencySupport", - &asn_OP_NativeEnumerated, - asn_DEF_ims_EmergencySupport_tags_12, - sizeof(asn_DEF_ims_EmergencySupport_tags_12) - /sizeof(asn_DEF_ims_EmergencySupport_tags_12[0]) - 1, /* 1 */ - asn_DEF_ims_EmergencySupport_tags_12, /* Same as above */ - sizeof(asn_DEF_ims_EmergencySupport_tags_12) - /sizeof(asn_DEF_ims_EmergencySupport_tags_12[0]), /* 2 */ - { &asn_OER_type_ims_EmergencySupport_constr_12, &asn_PER_type_ims_EmergencySupport_constr_12, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ims_EmergencySupport_specs_12 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_eCallOverIMS_Support_value2enum_14[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_eCallOverIMS_Support_enum2value_14[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_eCallOverIMS_Support_specs_14 = { - asn_MAP_eCallOverIMS_Support_value2enum_14, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_eCallOverIMS_Support_14 = { - "eCallOverIMS-Support", - "eCallOverIMS-Support", - &asn_OP_NativeEnumerated, - asn_DEF_eCallOverIMS_Support_tags_14, - sizeof(asn_DEF_eCallOverIMS_Support_tags_14) - /sizeof(asn_DEF_eCallOverIMS_Support_tags_14[0]) - 1, /* 1 */ - asn_DEF_eCallOverIMS_Support_tags_14, /* Same as above */ - sizeof(asn_DEF_eCallOverIMS_Support_tags_14) - /sizeof(asn_DEF_eCallOverIMS_Support_tags_14[0]), /* 2 */ - { &asn_OER_type_eCallOverIMS_Support_constr_14, &asn_PER_type_eCallOverIMS_Support_constr_14, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_eCallOverIMS_Support_specs_14 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_individualPLMNList_23[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), - 0, - &asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_individualPLMNList_tags_23[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_individualPLMNList_specs_23 = { - sizeof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList), - offsetof(struct 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_individualPLMNList_23 = { - "individualPLMNList", - "individualPLMNList", - &asn_OP_SEQUENCE_OF, - asn_DEF_individualPLMNList_tags_23, - sizeof(asn_DEF_individualPLMNList_tags_23) - /sizeof(asn_DEF_individualPLMNList_tags_23[0]) - 1, /* 1 */ - asn_DEF_individualPLMNList_tags_23, /* Same as above */ - sizeof(asn_DEF_individualPLMNList_tags_23) - /sizeof(asn_DEF_individualPLMNList_tags_23[0]), /* 2 */ - { &asn_OER_type_individualPLMNList_constr_23, &asn_PER_type_individualPLMNList_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_individualPLMNList_23, - 1, /* Single element */ - &asn_SPC_individualPLMNList_specs_23 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_uac_AccessCategory1_SelectionAssistanceInfo_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.plmnCommon), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "plmnCommon" - }, - { ATF_POINTER, 0, offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, choice.individualPLMNList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_individualPLMNList_23, - 0, - { &asn_OER_memb_individualPLMNList_constr_23, &asn_PER_memb_individualPLMNList_constr_23, memb_individualPLMNList_constraint_21 }, - 0, 0, /* No default value */ - "individualPLMNList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 = { - sizeof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo), - offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, _asn_ctx), - offsetof(struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo, present), - sizeof(((struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21, &asn_PER_type_uac_AccessCategory1_SelectionAssistanceInfo_constr_21, CHOICE_constraint }, - asn_MBR_uac_AccessCategory1_SelectionAssistanceInfo_21, - 2, /* Elements count */ - &asn_SPC_uac_AccessCategory1_SelectionAssistanceInfo_specs_21 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_uac_BarringInfo_17[] = { - { ATF_POINTER, 2, offsetof(struct SIB1__uac_BarringInfo, uac_BarringForCommon), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_BarringPerCatList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringForCommon" - }, - { ATF_POINTER, 1, offsetof(struct SIB1__uac_BarringInfo, uac_BarringPerPLMN_List), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_BarringPerPLMN_List, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringPerPLMN-List" - }, - { ATF_NOFLAGS, 0, offsetof(struct SIB1__uac_BarringInfo, uac_BarringInfoSetList), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_BarringInfoSetList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringInfoSetList" - }, - { ATF_POINTER, 1, offsetof(struct SIB1__uac_BarringInfo, uac_AccessCategory1_SelectionAssistanceInfo), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_uac_AccessCategory1_SelectionAssistanceInfo_21, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-AccessCategory1-SelectionAssistanceInfo" - }, -}; -static const int asn_MAP_uac_BarringInfo_oms_17[] = { 0, 1, 3 }; -static const ber_tlv_tag_t asn_DEF_uac_BarringInfo_tags_17[] = { - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_uac_BarringInfo_specs_17 = { - sizeof(struct SIB1__uac_BarringInfo), - offsetof(struct SIB1__uac_BarringInfo, _asn_ctx), - asn_MAP_uac_BarringInfo_tag2el_17, - 4, /* Count of tags in the map */ - asn_MAP_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_uac_BarringInfo_17 = { - "uac-BarringInfo", - "uac-BarringInfo", - &asn_OP_SEQUENCE, - asn_DEF_uac_BarringInfo_tags_17, - sizeof(asn_DEF_uac_BarringInfo_tags_17) - /sizeof(asn_DEF_uac_BarringInfo_tags_17[0]) - 1, /* 1 */ - asn_DEF_uac_BarringInfo_tags_17, /* Same as above */ - sizeof(asn_DEF_uac_BarringInfo_tags_17) - /sizeof(asn_DEF_uac_BarringInfo_tags_17[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_uac_BarringInfo_17, - 4, /* Elements count */ - &asn_SPC_uac_BarringInfo_specs_17 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_useFullResumeID_value2enum_25[] = { - { 0, 4, "true" } -}; -static const unsigned int asn_MAP_useFullResumeID_enum2value_25[] = { - 0 /* true(0) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_useFullResumeID_specs_25 = { - asn_MAP_useFullResumeID_value2enum_25, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_useFullResumeID_25 = { - "useFullResumeID", - "useFullResumeID", - &asn_OP_NativeEnumerated, - asn_DEF_useFullResumeID_tags_25, - sizeof(asn_DEF_useFullResumeID_tags_25) - /sizeof(asn_DEF_useFullResumeID_tags_25[0]) - 1, /* 1 */ - asn_DEF_useFullResumeID_tags_25, /* Same as above */ - sizeof(asn_DEF_useFullResumeID_tags_25) - /sizeof(asn_DEF_useFullResumeID_tags_25[0]), /* 2 */ - { &asn_OER_type_useFullResumeID_constr_25, &asn_PER_type_useFullResumeID_constr_25, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_useFullResumeID_specs_25 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_28[] = { - (ASN_TAG_CLASS_CONTEXT | (11 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_28 = { - sizeof(struct SIB1__nonCriticalExtension), - offsetof(struct 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_nonCriticalExtension_28 = { - "nonCriticalExtension", - "nonCriticalExtension", - &asn_OP_SEQUENCE, - asn_DEF_nonCriticalExtension_tags_28, - sizeof(asn_DEF_nonCriticalExtension_tags_28) - /sizeof(asn_DEF_nonCriticalExtension_tags_28[0]) - 1, /* 1 */ - asn_DEF_nonCriticalExtension_tags_28, /* Same as above */ - sizeof(asn_DEF_nonCriticalExtension_tags_28) - /sizeof(asn_DEF_nonCriticalExtension_tags_28[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - 0, 0, /* No members */ - &asn_SPC_nonCriticalExtension_specs_28 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_SIB1_1[] = { - { ATF_POINTER, 1, offsetof(struct SIB1, cellSelectionInfo), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_cellSelectionInfo_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellSelectionInfo" - }, - { ATF_NOFLAGS, 0, offsetof(struct SIB1, cellAccessRelatedInfo), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_CellAccessRelatedInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "cellAccessRelatedInfo" - }, - { ATF_POINTER, 10, offsetof(struct SIB1, connEstFailureControl), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ConnEstFailureControl, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "connEstFailureControl" - }, - { ATF_POINTER, 9, offsetof(struct SIB1, si_SchedulingInfo), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SI_SchedulingInfo, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-SchedulingInfo" - }, - { ATF_POINTER, 8, offsetof(struct SIB1, servingCellConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ServingCellConfigCommonSIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "servingCellConfigCommon" - }, - { ATF_POINTER, 7, offsetof(struct SIB1, ims_EmergencySupport), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ims_EmergencySupport_12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ims-EmergencySupport" - }, - { ATF_POINTER, 6, offsetof(struct SIB1, eCallOverIMS_Support), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_eCallOverIMS_Support_14, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "eCallOverIMS-Support" - }, - { ATF_POINTER, 5, offsetof(struct SIB1, ue_TimersAndConstants), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UE_TimersAndConstants, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ue-TimersAndConstants" - }, - { ATF_POINTER, 4, offsetof(struct SIB1, uac_BarringInfo), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - 0, - &asn_DEF_uac_BarringInfo_17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringInfo" - }, - { ATF_POINTER, 3, offsetof(struct SIB1, useFullResumeID), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_useFullResumeID_25, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "useFullResumeID" - }, - { ATF_POINTER, 2, offsetof(struct 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 SIB1, nonCriticalExtension), - (ASN_TAG_CLASS_CONTEXT | (11 << 2)), - 0, - &asn_DEF_nonCriticalExtension_28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nonCriticalExtension" - }, -}; -static const int asn_MAP_SIB1_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; -static const ber_tlv_tag_t asn_DEF_SIB1_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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 */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_SIB1_specs_1 = { - sizeof(struct SIB1), - offsetof(struct SIB1, _asn_ctx), - asn_MAP_SIB1_tag2el_1, - 12, /* Count of tags in the map */ - asn_MAP_SIB1_oms_1, /* Optional members */ - 11, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SIB1 = { - "SIB1", - "SIB1", - &asn_OP_SEQUENCE, - asn_DEF_SIB1_tags_1, - sizeof(asn_DEF_SIB1_tags_1) - /sizeof(asn_DEF_SIB1_tags_1[0]), /* 1 */ - asn_DEF_SIB1_tags_1, /* Same as above */ - sizeof(asn_DEF_SIB1_tags_1) - /sizeof(asn_DEF_SIB1_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SIB1_1, - 12, /* Elements count */ - &asn_SPC_SIB1_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SIB1.h b/src/codec_utils/SYSINFO/SIB1.h deleted file mode 100644 index ad8772787..000000000 --- a/src/codec_utils/SYSINFO/SIB1.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SIB1_H_ -#define _SIB1_H_ - - -#include - -/* Including external dependencies */ -#include "CellAccessRelatedInfo.h" -#include -#include -#include "Q-RxLevMin.h" -#include -#include "Q-QualMin.h" -#include -#include "UAC-BarringInfoSetList.h" -#include "UAC-AccessCategory1-SelectionAssistanceInfo.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SIB1__ims_EmergencySupport { - SIB1__ims_EmergencySupport_true = 0 -} e_SIB1__ims_EmergencySupport; -typedef enum SIB1__eCallOverIMS_Support { - SIB1__eCallOverIMS_Support_true = 0 -} e_SIB1__eCallOverIMS_Support; -typedef enum SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR { - SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_NOTHING, /* No components present */ - SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_plmnCommon, - SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR_individualPLMNList -} SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR; -typedef enum SIB1__useFullResumeID { - SIB1__useFullResumeID_true = 0 -} e_SIB1__useFullResumeID; - -/* Forward declarations */ -struct ConnEstFailureControl; -struct SI_SchedulingInfo; -struct ServingCellConfigCommonSIB; -struct UE_TimersAndConstants; -struct UAC_BarringPerCatList; -struct UAC_BarringPerPLMN_List; - -/* SIB1 */ -typedef struct SIB1 { - struct SIB1__cellSelectionInfo { - Q_RxLevMin_t q_RxLevMin; - long *q_RxLevMinOffset; /* OPTIONAL */ - Q_RxLevMin_t *q_RxLevMinSUL; /* OPTIONAL */ - Q_QualMin_t *q_QualMin; /* OPTIONAL */ - long *q_QualMinOffset; /* OPTIONAL */ - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *cellSelectionInfo; - CellAccessRelatedInfo_t cellAccessRelatedInfo; - struct ConnEstFailureControl *connEstFailureControl; /* OPTIONAL */ - struct SI_SchedulingInfo *si_SchedulingInfo; /* OPTIONAL */ - struct ServingCellConfigCommonSIB *servingCellConfigCommon; /* OPTIONAL */ - long *ims_EmergencySupport; /* OPTIONAL */ - long *eCallOverIMS_Support; /* OPTIONAL */ - struct UE_TimersAndConstants *ue_TimersAndConstants; /* OPTIONAL */ - struct SIB1__uac_BarringInfo { - struct UAC_BarringPerCatList *uac_BarringForCommon; /* OPTIONAL */ - struct UAC_BarringPerPLMN_List *uac_BarringPerPLMN_List; /* OPTIONAL */ - UAC_BarringInfoSetList_t uac_BarringInfoSetList; - struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo { - SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_PR present; - union SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo_u { - UAC_AccessCategory1_SelectionAssistanceInfo_t plmnCommon; - struct SIB1__uac_BarringInfo__uac_AccessCategory1_SelectionAssistanceInfo__individualPLMNList { - A_SEQUENCE_OF(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 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; -} SIB1_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_ims_EmergencySupport_12; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_eCallOverIMS_Support_14; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_useFullResumeID_25; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SIB1; - -#ifdef __cplusplus -} -#endif - -#endif /* _SIB1_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SchedulingInfo.c b/src/codec_utils/SYSINFO/SchedulingInfo.c deleted file mode 100644 index 0b85aa6bf..000000000 --- a/src/codec_utils/SYSINFO/SchedulingInfo.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_oer_constraints_t asn_OER_type_si_BroadcastStatus_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_si_Periodicity_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_si_BroadcastStatus_value2enum_2[] = { - { 0, 12, "broadcasting" }, - { 1, 15, "notBroadcasting" } -}; -static const unsigned int asn_MAP_si_BroadcastStatus_enum2value_2[] = { - 0, /* broadcasting(0) */ - 1 /* notBroadcasting(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_si_BroadcastStatus_specs_2 = { - asn_MAP_si_BroadcastStatus_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_si_BroadcastStatus_2 = { - "si-BroadcastStatus", - "si-BroadcastStatus", - &asn_OP_NativeEnumerated, - asn_DEF_si_BroadcastStatus_tags_2, - sizeof(asn_DEF_si_BroadcastStatus_tags_2) - /sizeof(asn_DEF_si_BroadcastStatus_tags_2[0]) - 1, /* 1 */ - asn_DEF_si_BroadcastStatus_tags_2, /* Same as above */ - sizeof(asn_DEF_si_BroadcastStatus_tags_2) - /sizeof(asn_DEF_si_BroadcastStatus_tags_2[0]), /* 2 */ - { &asn_OER_type_si_BroadcastStatus_constr_2, &asn_PER_type_si_BroadcastStatus_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_si_BroadcastStatus_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_si_Periodicity_specs_5 = { - asn_MAP_si_Periodicity_value2enum_5, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_si_Periodicity_5 = { - "si-Periodicity", - "si-Periodicity", - &asn_OP_NativeEnumerated, - asn_DEF_si_Periodicity_tags_5, - sizeof(asn_DEF_si_Periodicity_tags_5) - /sizeof(asn_DEF_si_Periodicity_tags_5[0]) - 1, /* 1 */ - asn_DEF_si_Periodicity_tags_5, /* Same as above */ - sizeof(asn_DEF_si_Periodicity_tags_5) - /sizeof(asn_DEF_si_Periodicity_tags_5[0]), /* 2 */ - { &asn_OER_type_si_Periodicity_constr_5, &asn_PER_type_si_Periodicity_constr_5, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_si_Periodicity_specs_5 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SchedulingInfo_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, si_BroadcastStatus), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_si_BroadcastStatus_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-BroadcastStatus" - }, - { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, si_Periodicity), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_si_Periodicity_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "si-Periodicity" - }, - { ATF_NOFLAGS, 0, offsetof(struct SchedulingInfo, sib_MappingInfo), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SIB_Mapping, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "sib-MappingInfo" - }, -}; -static const ber_tlv_tag_t asn_DEF_SchedulingInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SchedulingInfo_specs_1 = { - sizeof(struct SchedulingInfo), - offsetof(struct SchedulingInfo, _asn_ctx), - asn_MAP_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_SchedulingInfo = { - "SchedulingInfo", - "SchedulingInfo", - &asn_OP_SEQUENCE, - asn_DEF_SchedulingInfo_tags_1, - sizeof(asn_DEF_SchedulingInfo_tags_1) - /sizeof(asn_DEF_SchedulingInfo_tags_1[0]), /* 1 */ - asn_DEF_SchedulingInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_SchedulingInfo_tags_1) - /sizeof(asn_DEF_SchedulingInfo_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SchedulingInfo_1, - 3, /* Elements count */ - &asn_SPC_SchedulingInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SchedulingInfo.h b/src/codec_utils/SYSINFO/SchedulingInfo.h deleted file mode 100644 index a6078066e..000000000 --- a/src/codec_utils/SYSINFO/SchedulingInfo.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SchedulingInfo_H_ -#define _SchedulingInfo_H_ - - -#include - -/* Including external dependencies */ -#include -#include "SIB-Mapping.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SchedulingInfo__si_BroadcastStatus { - SchedulingInfo__si_BroadcastStatus_broadcasting = 0, - SchedulingInfo__si_BroadcastStatus_notBroadcasting = 1 -} e_SchedulingInfo__si_BroadcastStatus; -typedef enum SchedulingInfo__si_Periodicity { - SchedulingInfo__si_Periodicity_rf8 = 0, - SchedulingInfo__si_Periodicity_rf16 = 1, - SchedulingInfo__si_Periodicity_rf32 = 2, - SchedulingInfo__si_Periodicity_rf64 = 3, - SchedulingInfo__si_Periodicity_rf128 = 4, - SchedulingInfo__si_Periodicity_rf256 = 5, - SchedulingInfo__si_Periodicity_rf512 = 6 -} e_SchedulingInfo__si_Periodicity; - -/* SchedulingInfo */ -typedef struct SchedulingInfo { - long si_BroadcastStatus; - long si_Periodicity; - SIB_Mapping_t sib_MappingInfo; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} SchedulingInfo_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_si_BroadcastStatus_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_si_Periodicity_5; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SchedulingInfo; -extern asn_SEQUENCE_specifics_t asn_SPC_SchedulingInfo_specs_1; -extern asn_TYPE_member_t asn_MBR_SchedulingInfo_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SchedulingInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SearchSpace.c b/src/codec_utils/SYSINFO/SearchSpace.c deleted file mode 100644 index ba35a341a..000000000 --- a/src/codec_utils/SYSINFO/SearchSpace.c +++ /dev/null @@ -1,2077 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SearchSpace.h" - -static int -memb_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_oer_constraints_t asn_OER_memb_sl2_constr_6 CC_NOTUSED = { - { 1, 1 } /* (0..1) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl4_constr_7 CC_NOTUSED = { - { 1, 1 } /* (0..3) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl5_constr_8 CC_NOTUSED = { - { 1, 1 } /* (0..4) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl8_constr_9 CC_NOTUSED = { - { 1, 1 } /* (0..7) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl10_constr_10 CC_NOTUSED = { - { 1, 1 } /* (0..9) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl16_constr_11 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl20_constr_12 CC_NOTUSED = { - { 1, 1 } /* (0..19) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl40_constr_13 CC_NOTUSED = { - { 1, 1 } /* (0..39) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl80_constr_14 CC_NOTUSED = { - { 1, 1 } /* (0..79) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl160_constr_15 CC_NOTUSED = { - { 1, 1 } /* (0..159) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl320_constr_16 CC_NOTUSED = { - { 2, 1 } /* (0..319) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl640_constr_17 CC_NOTUSED = { - { 2, 1 } /* (0..639) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl1280_constr_18 CC_NOTUSED = { - { 2, 1 } /* (0..1279) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_sl2560_constr_19 CC_NOTUSED = { - { 2, 1 } /* (0..2559) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_monitoringSlotPeriodicityAndOffset_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel1_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel2_constr_32 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel4_constr_41 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel8_constr_50 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel16_constr_59 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel1_constr_74 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel2_constr_77 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel4_constr_80 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel8_constr_83 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_aggregationLevel16_constr_86 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy1_constr_95 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dummy2_constr_104 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dci_Formats_constr_109 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_searchSpaceType_constr_68 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_duration_constr_20 CC_NOTUSED = { - { 2, 1 } /* (2..2559) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_monitoringSymbolsWithinSlot_constr_21 CC_NOTUSED = { - { 0, 0 }, - 14 /* (SIZE(14..14)) */}; -static asn_per_constraints_t asn_PER_memb_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_monitoringSlotPeriodicityAndOffset_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct 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 SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl2_constr_6, &asn_PER_memb_sl2_constr_6, memb_sl2_constraint_4 }, - 0, 0, /* No default value */ - "sl2" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl4), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl4_constr_7, &asn_PER_memb_sl4_constr_7, memb_sl4_constraint_4 }, - 0, 0, /* No default value */ - "sl4" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl5), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl5_constr_8, &asn_PER_memb_sl5_constr_8, memb_sl5_constraint_4 }, - 0, 0, /* No default value */ - "sl5" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl8), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl8_constr_9, &asn_PER_memb_sl8_constr_9, memb_sl8_constraint_4 }, - 0, 0, /* No default value */ - "sl8" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl10), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl10_constr_10, &asn_PER_memb_sl10_constr_10, memb_sl10_constraint_4 }, - 0, 0, /* No default value */ - "sl10" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl16), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl16_constr_11, &asn_PER_memb_sl16_constr_11, memb_sl16_constraint_4 }, - 0, 0, /* No default value */ - "sl16" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl20), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl20_constr_12, &asn_PER_memb_sl20_constr_12, memb_sl20_constraint_4 }, - 0, 0, /* No default value */ - "sl20" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl40), - (ASN_TAG_CLASS_CONTEXT | (8 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl40_constr_13, &asn_PER_memb_sl40_constr_13, memb_sl40_constraint_4 }, - 0, 0, /* No default value */ - "sl40" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl80), - (ASN_TAG_CLASS_CONTEXT | (9 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl80_constr_14, &asn_PER_memb_sl80_constr_14, memb_sl80_constraint_4 }, - 0, 0, /* No default value */ - "sl80" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl160), - (ASN_TAG_CLASS_CONTEXT | (10 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl160_constr_15, &asn_PER_memb_sl160_constr_15, memb_sl160_constraint_4 }, - 0, 0, /* No default value */ - "sl160" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl320), - (ASN_TAG_CLASS_CONTEXT | (11 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl320_constr_16, &asn_PER_memb_sl320_constr_16, memb_sl320_constraint_4 }, - 0, 0, /* No default value */ - "sl320" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl640), - (ASN_TAG_CLASS_CONTEXT | (12 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl640_constr_17, &asn_PER_memb_sl640_constr_17, memb_sl640_constraint_4 }, - 0, 0, /* No default value */ - "sl640" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl1280), - (ASN_TAG_CLASS_CONTEXT | (13 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl1280_constr_18, &asn_PER_memb_sl1280_constr_18, memb_sl1280_constraint_4 }, - 0, 0, /* No default value */ - "sl1280" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, choice.sl2560), - (ASN_TAG_CLASS_CONTEXT | (14 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_sl2560_constr_19, &asn_PER_memb_sl2560_constr_19, memb_sl2560_constraint_4 }, - 0, 0, /* No default value */ - "sl2560" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_monitoringSlotPeriodicityAndOffset_specs_4 = { - sizeof(struct SearchSpace__monitoringSlotPeriodicityAndOffset), - offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, _asn_ctx), - offsetof(struct SearchSpace__monitoringSlotPeriodicityAndOffset, present), - sizeof(((struct SearchSpace__monitoringSlotPeriodicityAndOffset *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_monitoringSlotPeriodicityAndOffset_constr_4, &asn_PER_type_monitoringSlotPeriodicityAndOffset_constr_4, CHOICE_constraint }, - asn_MBR_monitoringSlotPeriodicityAndOffset_4, - 15, /* Elements count */ - &asn_SPC_monitoringSlotPeriodicityAndOffset_specs_4 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel1_specs_23 = { - asn_MAP_aggregationLevel1_value2enum_23, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel1_23 = { - "aggregationLevel1", - "aggregationLevel1", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel1_tags_23, - sizeof(asn_DEF_aggregationLevel1_tags_23) - /sizeof(asn_DEF_aggregationLevel1_tags_23[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel1_tags_23, /* Same as above */ - sizeof(asn_DEF_aggregationLevel1_tags_23) - /sizeof(asn_DEF_aggregationLevel1_tags_23[0]), /* 2 */ - { &asn_OER_type_aggregationLevel1_constr_23, &asn_PER_type_aggregationLevel1_constr_23, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel1_specs_23 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel2_specs_32 = { - asn_MAP_aggregationLevel2_value2enum_32, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel2_32 = { - "aggregationLevel2", - "aggregationLevel2", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel2_tags_32, - sizeof(asn_DEF_aggregationLevel2_tags_32) - /sizeof(asn_DEF_aggregationLevel2_tags_32[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel2_tags_32, /* Same as above */ - sizeof(asn_DEF_aggregationLevel2_tags_32) - /sizeof(asn_DEF_aggregationLevel2_tags_32[0]), /* 2 */ - { &asn_OER_type_aggregationLevel2_constr_32, &asn_PER_type_aggregationLevel2_constr_32, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel2_specs_32 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel4_specs_41 = { - asn_MAP_aggregationLevel4_value2enum_41, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel4_41 = { - "aggregationLevel4", - "aggregationLevel4", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel4_tags_41, - sizeof(asn_DEF_aggregationLevel4_tags_41) - /sizeof(asn_DEF_aggregationLevel4_tags_41[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel4_tags_41, /* Same as above */ - sizeof(asn_DEF_aggregationLevel4_tags_41) - /sizeof(asn_DEF_aggregationLevel4_tags_41[0]), /* 2 */ - { &asn_OER_type_aggregationLevel4_constr_41, &asn_PER_type_aggregationLevel4_constr_41, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel4_specs_41 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel8_specs_50 = { - asn_MAP_aggregationLevel8_value2enum_50, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel8_50 = { - "aggregationLevel8", - "aggregationLevel8", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel8_tags_50, - sizeof(asn_DEF_aggregationLevel8_tags_50) - /sizeof(asn_DEF_aggregationLevel8_tags_50[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel8_tags_50, /* Same as above */ - sizeof(asn_DEF_aggregationLevel8_tags_50) - /sizeof(asn_DEF_aggregationLevel8_tags_50[0]), /* 2 */ - { &asn_OER_type_aggregationLevel8_constr_50, &asn_PER_type_aggregationLevel8_constr_50, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel8_specs_50 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_aggregationLevel16_specs_59 = { - asn_MAP_aggregationLevel16_value2enum_59, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel16_59 = { - "aggregationLevel16", - "aggregationLevel16", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel16_tags_59, - sizeof(asn_DEF_aggregationLevel16_tags_59) - /sizeof(asn_DEF_aggregationLevel16_tags_59[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel16_tags_59, /* Same as above */ - sizeof(asn_DEF_aggregationLevel16_tags_59) - /sizeof(asn_DEF_aggregationLevel16_tags_59[0]), /* 2 */ - { &asn_OER_type_aggregationLevel16_constr_59, &asn_PER_type_aggregationLevel16_constr_59, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel16_specs_59 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_nrofCandidates_22[] = { - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel1_23, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel1" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel2), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel2_32, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel2" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel4), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel4_41, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel4" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel8), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel8_50, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel8" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__nrofCandidates, aggregationLevel16), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel16_59, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel16" - }, -}; -static const ber_tlv_tag_t asn_DEF_nrofCandidates_tags_22[] = { - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_nrofCandidates_specs_22 = { - sizeof(struct SearchSpace__nrofCandidates), - offsetof(struct SearchSpace__nrofCandidates, _asn_ctx), - asn_MAP_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_nrofCandidates_22 = { - "nrofCandidates", - "nrofCandidates", - &asn_OP_SEQUENCE, - asn_DEF_nrofCandidates_tags_22, - sizeof(asn_DEF_nrofCandidates_tags_22) - /sizeof(asn_DEF_nrofCandidates_tags_22[0]) - 1, /* 1 */ - asn_DEF_nrofCandidates_tags_22, /* Same as above */ - sizeof(asn_DEF_nrofCandidates_tags_22) - /sizeof(asn_DEF_nrofCandidates_tags_22[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_nrofCandidates_22, - 5, /* Elements count */ - &asn_SPC_nrofCandidates_specs_22 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_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_dci_Format0_0_AndFormat1_0_specs_70 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format0_0_AndFormat1_0), - offsetof(struct 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) */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_dci_Format0_0_AndFormat1_0_70 = { - "dci-Format0-0-AndFormat1-0", - "dci-Format0-0-AndFormat1-0", - &asn_OP_SEQUENCE, - asn_DEF_dci_Format0_0_AndFormat1_0_tags_70, - sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70) - /sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70[0]) - 1, /* 1 */ - asn_DEF_dci_Format0_0_AndFormat1_0_tags_70, /* Same as above */ - sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70) - /sizeof(asn_DEF_dci_Format0_0_AndFormat1_0_tags_70[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - 0, 0, /* No members */ - &asn_SPC_dci_Format0_0_AndFormat1_0_specs_70 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel1_value2enum_74[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_aggregationLevel1_enum2value_74[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel1_specs_74 = { - asn_MAP_aggregationLevel1_value2enum_74, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel1_74 = { - "aggregationLevel1", - "aggregationLevel1", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel1_tags_74, - sizeof(asn_DEF_aggregationLevel1_tags_74) - /sizeof(asn_DEF_aggregationLevel1_tags_74[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel1_tags_74, /* Same as above */ - sizeof(asn_DEF_aggregationLevel1_tags_74) - /sizeof(asn_DEF_aggregationLevel1_tags_74[0]), /* 2 */ - { &asn_OER_type_aggregationLevel1_constr_74, &asn_PER_type_aggregationLevel1_constr_74, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel1_specs_74 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel2_value2enum_77[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_aggregationLevel2_enum2value_77[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel2_specs_77 = { - asn_MAP_aggregationLevel2_value2enum_77, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel2_77 = { - "aggregationLevel2", - "aggregationLevel2", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel2_tags_77, - sizeof(asn_DEF_aggregationLevel2_tags_77) - /sizeof(asn_DEF_aggregationLevel2_tags_77[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel2_tags_77, /* Same as above */ - sizeof(asn_DEF_aggregationLevel2_tags_77) - /sizeof(asn_DEF_aggregationLevel2_tags_77[0]), /* 2 */ - { &asn_OER_type_aggregationLevel2_constr_77, &asn_PER_type_aggregationLevel2_constr_77, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel2_specs_77 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel4_value2enum_80[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_aggregationLevel4_enum2value_80[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel4_specs_80 = { - asn_MAP_aggregationLevel4_value2enum_80, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel4_80 = { - "aggregationLevel4", - "aggregationLevel4", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel4_tags_80, - sizeof(asn_DEF_aggregationLevel4_tags_80) - /sizeof(asn_DEF_aggregationLevel4_tags_80[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel4_tags_80, /* Same as above */ - sizeof(asn_DEF_aggregationLevel4_tags_80) - /sizeof(asn_DEF_aggregationLevel4_tags_80[0]), /* 2 */ - { &asn_OER_type_aggregationLevel4_constr_80, &asn_PER_type_aggregationLevel4_constr_80, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel4_specs_80 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel8_value2enum_83[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_aggregationLevel8_enum2value_83[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel8_specs_83 = { - asn_MAP_aggregationLevel8_value2enum_83, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel8_83 = { - "aggregationLevel8", - "aggregationLevel8", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel8_tags_83, - sizeof(asn_DEF_aggregationLevel8_tags_83) - /sizeof(asn_DEF_aggregationLevel8_tags_83[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel8_tags_83, /* Same as above */ - sizeof(asn_DEF_aggregationLevel8_tags_83) - /sizeof(asn_DEF_aggregationLevel8_tags_83[0]), /* 2 */ - { &asn_OER_type_aggregationLevel8_constr_83, &asn_PER_type_aggregationLevel8_constr_83, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel8_specs_83 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_aggregationLevel16_value2enum_86[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_aggregationLevel16_enum2value_86[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_aggregationLevel16_specs_86 = { - asn_MAP_aggregationLevel16_value2enum_86, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_aggregationLevel16_86 = { - "aggregationLevel16", - "aggregationLevel16", - &asn_OP_NativeEnumerated, - asn_DEF_aggregationLevel16_tags_86, - sizeof(asn_DEF_aggregationLevel16_tags_86) - /sizeof(asn_DEF_aggregationLevel16_tags_86[0]) - 1, /* 1 */ - asn_DEF_aggregationLevel16_tags_86, /* Same as above */ - sizeof(asn_DEF_aggregationLevel16_tags_86) - /sizeof(asn_DEF_aggregationLevel16_tags_86[0]), /* 2 */ - { &asn_OER_type_aggregationLevel16_constr_86, &asn_PER_type_aggregationLevel16_constr_86, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_aggregationLevel16_specs_86 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_nrofCandidates_SFI_73[] = { - { ATF_POINTER, 5, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel1_74, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel1" - }, - { ATF_POINTER, 4, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel2), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel2_77, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel2" - }, - { ATF_POINTER, 3, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel4), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel4_80, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel4" - }, - { ATF_POINTER, 2, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel8), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel8_83, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel8" - }, - { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, aggregationLevel16), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_aggregationLevel16_86, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "aggregationLevel16" - }, -}; -static const int asn_MAP_nrofCandidates_SFI_oms_73[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_nrofCandidates_SFI_tags_73[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_nrofCandidates_SFI_specs_73 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI), - offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI, _asn_ctx), - asn_MAP_nrofCandidates_SFI_tag2el_73, - 5, /* Count of tags in the map */ - asn_MAP_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_nrofCandidates_SFI_73 = { - "nrofCandidates-SFI", - "nrofCandidates-SFI", - &asn_OP_SEQUENCE, - asn_DEF_nrofCandidates_SFI_tags_73, - sizeof(asn_DEF_nrofCandidates_SFI_tags_73) - /sizeof(asn_DEF_nrofCandidates_SFI_tags_73[0]) - 1, /* 1 */ - asn_DEF_nrofCandidates_SFI_tags_73, /* Same as above */ - sizeof(asn_DEF_nrofCandidates_SFI_tags_73) - /sizeof(asn_DEF_nrofCandidates_SFI_tags_73[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_nrofCandidates_SFI_73, - 5, /* Elements count */ - &asn_SPC_nrofCandidates_SFI_specs_73 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_dci_Format2_0_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0, nrofCandidates_SFI), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_nrofCandidates_SFI_73, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrofCandidates-SFI" - }, -}; -static const ber_tlv_tag_t asn_DEF_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_dci_Format2_0_tag2el_72[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofCandidates-SFI */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_0_specs_72 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_0), - offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_0, _asn_ctx), - asn_MAP_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_dci_Format2_0_72 = { - "dci-Format2-0", - "dci-Format2-0", - &asn_OP_SEQUENCE, - asn_DEF_dci_Format2_0_tags_72, - sizeof(asn_DEF_dci_Format2_0_tags_72) - /sizeof(asn_DEF_dci_Format2_0_tags_72[0]) - 1, /* 1 */ - asn_DEF_dci_Format2_0_tags_72, /* Same as above */ - sizeof(asn_DEF_dci_Format2_0_tags_72) - /sizeof(asn_DEF_dci_Format2_0_tags_72[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_dci_Format2_0_72, - 1, /* Elements count */ - &asn_SPC_dci_Format2_0_specs_72 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_dci_Format2_1_tags_90[] = { - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_1_specs_90 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_1), - offsetof(struct 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) */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_dci_Format2_1_90 = { - "dci-Format2-1", - "dci-Format2-1", - &asn_OP_SEQUENCE, - asn_DEF_dci_Format2_1_tags_90, - sizeof(asn_DEF_dci_Format2_1_tags_90) - /sizeof(asn_DEF_dci_Format2_1_tags_90[0]) - 1, /* 1 */ - asn_DEF_dci_Format2_1_tags_90, /* Same as above */ - sizeof(asn_DEF_dci_Format2_1_tags_90) - /sizeof(asn_DEF_dci_Format2_1_tags_90[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - 0, 0, /* No members */ - &asn_SPC_dci_Format2_1_specs_90 /* Additional specs */ -}; - -static const ber_tlv_tag_t asn_DEF_dci_Format2_2_tags_92[] = { - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SEQUENCE_specifics_t asn_SPC_dci_Format2_2_specs_92 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_2), - offsetof(struct 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) */ - -1, /* First extension addition */ -}; -static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_dci_Format2_2_92 = { - "dci-Format2-2", - "dci-Format2-2", - &asn_OP_SEQUENCE, - asn_DEF_dci_Format2_2_tags_92, - sizeof(asn_DEF_dci_Format2_2_tags_92) - /sizeof(asn_DEF_dci_Format2_2_tags_92[0]) - 1, /* 1 */ - asn_DEF_dci_Format2_2_tags_92, /* Same as above */ - sizeof(asn_DEF_dci_Format2_2_tags_92) - /sizeof(asn_DEF_dci_Format2_2_tags_92[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - 0, 0, /* No members */ - &asn_SPC_dci_Format2_2_specs_92 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_dummy1_specs_95 = { - asn_MAP_dummy1_value2enum_95, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dummy1_95 = { - "dummy1", - "dummy1", - &asn_OP_NativeEnumerated, - asn_DEF_dummy1_tags_95, - sizeof(asn_DEF_dummy1_tags_95) - /sizeof(asn_DEF_dummy1_tags_95[0]) - 1, /* 1 */ - asn_DEF_dummy1_tags_95, /* Same as above */ - sizeof(asn_DEF_dummy1_tags_95) - /sizeof(asn_DEF_dummy1_tags_95[0]), /* 2 */ - { &asn_OER_type_dummy1_constr_95, &asn_PER_type_dummy1_constr_95, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dummy1_specs_95 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_dummy2_value2enum_104[] = { - { 0, 2, "n1" }, - { 1, 2, "n2" } -}; -static const unsigned int asn_MAP_dummy2_enum2value_104[] = { - 0, /* n1(0) */ - 1 /* n2(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_dummy2_specs_104 = { - asn_MAP_dummy2_value2enum_104, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dummy2_104 = { - "dummy2", - "dummy2", - &asn_OP_NativeEnumerated, - asn_DEF_dummy2_tags_104, - sizeof(asn_DEF_dummy2_tags_104) - /sizeof(asn_DEF_dummy2_tags_104[0]) - 1, /* 1 */ - asn_DEF_dummy2_tags_104, /* Same as above */ - sizeof(asn_DEF_dummy2_tags_104) - /sizeof(asn_DEF_dummy2_tags_104[0]), /* 2 */ - { &asn_OER_type_dummy2_constr_104, &asn_PER_type_dummy2_constr_104, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dummy2_specs_104 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_dci_Format2_3_94[] = { - { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, dummy1), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dummy1_95, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dummy1" - }, - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, dummy2), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dummy2_104, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dummy2" - }, -}; -static const int asn_MAP_dci_Format2_3_oms_94[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_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_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_dci_Format2_3_specs_94 = { - sizeof(struct SearchSpace__searchSpaceType__common__dci_Format2_3), - offsetof(struct SearchSpace__searchSpaceType__common__dci_Format2_3, _asn_ctx), - asn_MAP_dci_Format2_3_tag2el_94, - 2, /* Count of tags in the map */ - asn_MAP_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_dci_Format2_3_94 = { - "dci-Format2-3", - "dci-Format2-3", - &asn_OP_SEQUENCE, - asn_DEF_dci_Format2_3_tags_94, - sizeof(asn_DEF_dci_Format2_3_tags_94) - /sizeof(asn_DEF_dci_Format2_3_tags_94[0]) - 1, /* 1 */ - asn_DEF_dci_Format2_3_tags_94, /* Same as above */ - sizeof(asn_DEF_dci_Format2_3_tags_94) - /sizeof(asn_DEF_dci_Format2_3_tags_94[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_dci_Format2_3_94, - 2, /* Elements count */ - &asn_SPC_dci_Format2_3_specs_94 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_common_69[] = { - { ATF_POINTER, 5, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format0_0_AndFormat1_0), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_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 SearchSpace__searchSpaceType__common, dci_Format2_0), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_dci_Format2_0_72, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dci-Format2-0" - }, - { ATF_POINTER, 3, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_1), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - 0, - &asn_DEF_dci_Format2_1_90, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dci-Format2-1" - }, - { ATF_POINTER, 2, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_2), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - 0, - &asn_DEF_dci_Format2_2_92, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dci-Format2-2" - }, - { ATF_POINTER, 1, offsetof(struct SearchSpace__searchSpaceType__common, dci_Format2_3), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - 0, - &asn_DEF_dci_Format2_3_94, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dci-Format2-3" - }, -}; -static const int asn_MAP_common_oms_69[] = { 0, 1, 2, 3, 4 }; -static const ber_tlv_tag_t asn_DEF_common_tags_69[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_common_specs_69 = { - sizeof(struct SearchSpace__searchSpaceType__common), - offsetof(struct SearchSpace__searchSpaceType__common, _asn_ctx), - asn_MAP_common_tag2el_69, - 5, /* Count of tags in the map */ - asn_MAP_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_common_69 = { - "common", - "common", - &asn_OP_SEQUENCE, - asn_DEF_common_tags_69, - sizeof(asn_DEF_common_tags_69) - /sizeof(asn_DEF_common_tags_69[0]) - 1, /* 1 */ - asn_DEF_common_tags_69, /* Same as above */ - sizeof(asn_DEF_common_tags_69) - /sizeof(asn_DEF_common_tags_69[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_common_69, - 5, /* Elements count */ - &asn_SPC_common_specs_69 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_dci_Formats_value2enum_109[] = { - { 0, 18, "formats0-0-And-1-0" }, - { 1, 18, "formats0-1-And-1-1" } -}; -static const unsigned int asn_MAP_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_dci_Formats_specs_109 = { - asn_MAP_dci_Formats_value2enum_109, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dci_Formats_109 = { - "dci-Formats", - "dci-Formats", - &asn_OP_NativeEnumerated, - asn_DEF_dci_Formats_tags_109, - sizeof(asn_DEF_dci_Formats_tags_109) - /sizeof(asn_DEF_dci_Formats_tags_109[0]) - 1, /* 1 */ - asn_DEF_dci_Formats_tags_109, /* Same as above */ - sizeof(asn_DEF_dci_Formats_tags_109) - /sizeof(asn_DEF_dci_Formats_tags_109[0]), /* 2 */ - { &asn_OER_type_dci_Formats_constr_109, &asn_PER_type_dci_Formats_constr_109, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dci_Formats_specs_109 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ue_Specific_108[] = { - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace__searchSpaceType__ue_Specific, dci_Formats), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dci_Formats_109, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dci-Formats" - }, -}; -static const ber_tlv_tag_t asn_DEF_ue_Specific_tags_108[] = { - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ue_Specific_tag2el_108[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dci-Formats */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ue_Specific_specs_108 = { - sizeof(struct SearchSpace__searchSpaceType__ue_Specific), - offsetof(struct SearchSpace__searchSpaceType__ue_Specific, _asn_ctx), - asn_MAP_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_ue_Specific_108 = { - "ue-Specific", - "ue-Specific", - &asn_OP_SEQUENCE, - asn_DEF_ue_Specific_tags_108, - sizeof(asn_DEF_ue_Specific_tags_108) - /sizeof(asn_DEF_ue_Specific_tags_108[0]) - 1, /* 1 */ - asn_DEF_ue_Specific_tags_108, /* Same as above */ - sizeof(asn_DEF_ue_Specific_tags_108) - /sizeof(asn_DEF_ue_Specific_tags_108[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ue_Specific_108, - 1, /* Elements count */ - &asn_SPC_ue_Specific_specs_108 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_searchSpaceType_68[] = { - { ATF_POINTER, 0, offsetof(struct SearchSpace__searchSpaceType, choice.common), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_common_69, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "common" - }, - { ATF_POINTER, 0, offsetof(struct SearchSpace__searchSpaceType, choice.ue_Specific), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - 0, - &asn_DEF_ue_Specific_108, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ue-Specific" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_searchSpaceType_specs_68 = { - sizeof(struct SearchSpace__searchSpaceType), - offsetof(struct SearchSpace__searchSpaceType, _asn_ctx), - offsetof(struct SearchSpace__searchSpaceType, present), - sizeof(((struct SearchSpace__searchSpaceType *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_searchSpaceType_constr_68, &asn_PER_type_searchSpaceType_constr_68, CHOICE_constraint }, - asn_MBR_searchSpaceType_68, - 2, /* Elements count */ - &asn_SPC_searchSpaceType_specs_68 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_SearchSpace_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct SearchSpace, searchSpaceId), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SearchSpaceId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceId" - }, - { ATF_POINTER, 6, offsetof(struct SearchSpace, controlResourceSetId), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ControlResourceSetId, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "controlResourceSetId" - }, - { ATF_POINTER, 5, offsetof(struct SearchSpace, monitoringSlotPeriodicityAndOffset), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_monitoringSlotPeriodicityAndOffset_4, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "monitoringSlotPeriodicityAndOffset" - }, - { ATF_POINTER, 4, offsetof(struct SearchSpace, duration), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_duration_constr_20, &asn_PER_memb_duration_constr_20, memb_duration_constraint_1 }, - 0, 0, /* No default value */ - "duration" - }, - { ATF_POINTER, 3, offsetof(struct SearchSpace, monitoringSymbolsWithinSlot), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_monitoringSymbolsWithinSlot_constr_21, &asn_PER_memb_monitoringSymbolsWithinSlot_constr_21, memb_monitoringSymbolsWithinSlot_constraint_1 }, - 0, 0, /* No default value */ - "monitoringSymbolsWithinSlot" - }, - { ATF_POINTER, 2, offsetof(struct SearchSpace, nrofCandidates), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - 0, - &asn_DEF_nrofCandidates_22, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "nrofCandidates" - }, - { ATF_POINTER, 1, offsetof(struct SearchSpace, searchSpaceType), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_searchSpaceType_68, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "searchSpaceType" - }, -}; -static const int asn_MAP_SearchSpace_oms_1[] = { 1, 2, 3, 4, 5, 6 }; -static const ber_tlv_tag_t asn_DEF_SearchSpace_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_SearchSpace_specs_1 = { - sizeof(struct SearchSpace), - offsetof(struct SearchSpace, _asn_ctx), - asn_MAP_SearchSpace_tag2el_1, - 7, /* Count of tags in the map */ - asn_MAP_SearchSpace_oms_1, /* Optional members */ - 6, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_SearchSpace = { - "SearchSpace", - "SearchSpace", - &asn_OP_SEQUENCE, - asn_DEF_SearchSpace_tags_1, - sizeof(asn_DEF_SearchSpace_tags_1) - /sizeof(asn_DEF_SearchSpace_tags_1[0]), /* 1 */ - asn_DEF_SearchSpace_tags_1, /* Same as above */ - sizeof(asn_DEF_SearchSpace_tags_1) - /sizeof(asn_DEF_SearchSpace_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_SearchSpace_1, - 7, /* Elements count */ - &asn_SPC_SearchSpace_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SearchSpace.h b/src/codec_utils/SYSINFO/SearchSpace.h deleted file mode 100644 index 946840057..000000000 --- a/src/codec_utils/SYSINFO/SearchSpace.h +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SearchSpace_H_ -#define _SearchSpace_H_ - - -#include - -/* Including external dependencies */ -#include "SearchSpaceId.h" -#include "ControlResourceSetId.h" -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SearchSpace__monitoringSlotPeriodicityAndOffset_PR { - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_NOTHING, /* No components present */ - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl4, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl8, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl10, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl16, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl20, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl40, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl80, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl160, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl320, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl640, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1280, - SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl2560 -} SearchSpace__monitoringSlotPeriodicityAndOffset_PR; -typedef enum SearchSpace__nrofCandidates__aggregationLevel1 { - SearchSpace__nrofCandidates__aggregationLevel1_n0 = 0, - SearchSpace__nrofCandidates__aggregationLevel1_n1 = 1, - SearchSpace__nrofCandidates__aggregationLevel1_n2 = 2, - SearchSpace__nrofCandidates__aggregationLevel1_n3 = 3, - SearchSpace__nrofCandidates__aggregationLevel1_n4 = 4, - SearchSpace__nrofCandidates__aggregationLevel1_n5 = 5, - SearchSpace__nrofCandidates__aggregationLevel1_n6 = 6, - SearchSpace__nrofCandidates__aggregationLevel1_n8 = 7 -} e_SearchSpace__nrofCandidates__aggregationLevel1; -typedef enum SearchSpace__nrofCandidates__aggregationLevel2 { - SearchSpace__nrofCandidates__aggregationLevel2_n0 = 0, - SearchSpace__nrofCandidates__aggregationLevel2_n1 = 1, - SearchSpace__nrofCandidates__aggregationLevel2_n2 = 2, - SearchSpace__nrofCandidates__aggregationLevel2_n3 = 3, - SearchSpace__nrofCandidates__aggregationLevel2_n4 = 4, - SearchSpace__nrofCandidates__aggregationLevel2_n5 = 5, - SearchSpace__nrofCandidates__aggregationLevel2_n6 = 6, - SearchSpace__nrofCandidates__aggregationLevel2_n8 = 7 -} e_SearchSpace__nrofCandidates__aggregationLevel2; -typedef enum SearchSpace__nrofCandidates__aggregationLevel4 { - SearchSpace__nrofCandidates__aggregationLevel4_n0 = 0, - SearchSpace__nrofCandidates__aggregationLevel4_n1 = 1, - SearchSpace__nrofCandidates__aggregationLevel4_n2 = 2, - SearchSpace__nrofCandidates__aggregationLevel4_n3 = 3, - SearchSpace__nrofCandidates__aggregationLevel4_n4 = 4, - SearchSpace__nrofCandidates__aggregationLevel4_n5 = 5, - SearchSpace__nrofCandidates__aggregationLevel4_n6 = 6, - SearchSpace__nrofCandidates__aggregationLevel4_n8 = 7 -} e_SearchSpace__nrofCandidates__aggregationLevel4; -typedef enum SearchSpace__nrofCandidates__aggregationLevel8 { - SearchSpace__nrofCandidates__aggregationLevel8_n0 = 0, - SearchSpace__nrofCandidates__aggregationLevel8_n1 = 1, - SearchSpace__nrofCandidates__aggregationLevel8_n2 = 2, - SearchSpace__nrofCandidates__aggregationLevel8_n3 = 3, - SearchSpace__nrofCandidates__aggregationLevel8_n4 = 4, - SearchSpace__nrofCandidates__aggregationLevel8_n5 = 5, - SearchSpace__nrofCandidates__aggregationLevel8_n6 = 6, - SearchSpace__nrofCandidates__aggregationLevel8_n8 = 7 -} e_SearchSpace__nrofCandidates__aggregationLevel8; -typedef enum SearchSpace__nrofCandidates__aggregationLevel16 { - SearchSpace__nrofCandidates__aggregationLevel16_n0 = 0, - SearchSpace__nrofCandidates__aggregationLevel16_n1 = 1, - SearchSpace__nrofCandidates__aggregationLevel16_n2 = 2, - SearchSpace__nrofCandidates__aggregationLevel16_n3 = 3, - SearchSpace__nrofCandidates__aggregationLevel16_n4 = 4, - SearchSpace__nrofCandidates__aggregationLevel16_n5 = 5, - SearchSpace__nrofCandidates__aggregationLevel16_n6 = 6, - SearchSpace__nrofCandidates__aggregationLevel16_n8 = 7 -} e_SearchSpace__nrofCandidates__aggregationLevel16; -typedef enum SearchSpace__searchSpaceType_PR { - SearchSpace__searchSpaceType_PR_NOTHING, /* No components present */ - SearchSpace__searchSpaceType_PR_common, - SearchSpace__searchSpaceType_PR_ue_Specific -} SearchSpace__searchSpaceType_PR; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1 { - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel1; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2 { - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel2; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4 { - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel4; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8 { - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel8; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16 { - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_0__nrofCandidates_SFI__aggregationLevel16; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1 { - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl2 = 1, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl4 = 2, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl5 = 3, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl8 = 4, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl10 = 5, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl16 = 6, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl20 = 7 -} e_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1; -typedef enum SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2 { - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n1 = 0, - SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n2 = 1 -} e_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2; -typedef enum SearchSpace__searchSpaceType__ue_Specific__dci_Formats { - SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_0_And_1_0 = 0, - SearchSpace__searchSpaceType__ue_Specific__dci_Formats_formats0_1_And_1_1 = 1 -} e_SearchSpace__searchSpaceType__ue_Specific__dci_Formats; - -/* SearchSpace */ -typedef struct SearchSpace { - SearchSpaceId_t searchSpaceId; - ControlResourceSetId_t *controlResourceSetId; /* OPTIONAL */ - struct SearchSpace__monitoringSlotPeriodicityAndOffset { - SearchSpace__monitoringSlotPeriodicityAndOffset_PR present; - union SearchSpace__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 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 SearchSpace__searchSpaceType { - SearchSpace__searchSpaceType_PR present; - union SearchSpace__searchSpaceType_u { - struct SearchSpace__searchSpaceType__common { - struct 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 SearchSpace__searchSpaceType__common__dci_Format2_0 { - struct 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 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 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 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 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; -} SearchSpace_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel1_23; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel2_32; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel4_41; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel8_50; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel16_59; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel1_74; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel2_77; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel4_80; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel8_83; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_aggregationLevel16_86; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dummy1_95; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dummy2_104; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dci_Formats_109; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_SearchSpace; -extern asn_SEQUENCE_specifics_t asn_SPC_SearchSpace_specs_1; -extern asn_TYPE_member_t asn_MBR_SearchSpace_1[7]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SearchSpace_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SearchSpaceId.c b/src/codec_utils/SYSINFO/SearchSpaceId.c deleted file mode 100644 index 355d1aff2..000000000 --- a/src/codec_utils/SYSINFO/SearchSpaceId.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SearchSpaceId.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_SearchSpaceId_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..39) */, - -1}; -asn_per_constraints_t asn_PER_type_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_SearchSpaceId_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SearchSpaceId = { - "SearchSpaceId", - "SearchSpaceId", - &asn_OP_NativeInteger, - asn_DEF_SearchSpaceId_tags_1, - sizeof(asn_DEF_SearchSpaceId_tags_1) - /sizeof(asn_DEF_SearchSpaceId_tags_1[0]), /* 1 */ - asn_DEF_SearchSpaceId_tags_1, /* Same as above */ - sizeof(asn_DEF_SearchSpaceId_tags_1) - /sizeof(asn_DEF_SearchSpaceId_tags_1[0]), /* 1 */ - { &asn_OER_type_SearchSpaceId_constr_1, &asn_PER_type_SearchSpaceId_constr_1, SearchSpaceId_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/SearchSpaceId.h b/src/codec_utils/SYSINFO/SearchSpaceId.h deleted file mode 100644 index 6ea84b12a..000000000 --- a/src/codec_utils/SYSINFO/SearchSpaceId.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SearchSpaceId_H_ -#define _SearchSpaceId_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SearchSpaceId */ -typedef long SearchSpaceId_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SearchSpaceId_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SearchSpaceId; -asn_struct_free_f SearchSpaceId_free; -asn_struct_print_f SearchSpaceId_print; -asn_constr_check_f SearchSpaceId_constraint; -ber_type_decoder_f SearchSpaceId_decode_ber; -der_type_encoder_f SearchSpaceId_encode_der; -xer_type_decoder_f SearchSpaceId_decode_xer; -xer_type_encoder_f SearchSpaceId_encode_xer; -oer_type_decoder_f SearchSpaceId_decode_oer; -oer_type_encoder_f SearchSpaceId_encode_oer; -per_type_decoder_f SearchSpaceId_decode_uper; -per_type_encoder_f SearchSpaceId_encode_uper; -per_type_decoder_f SearchSpaceId_decode_aper; -per_type_encoder_f SearchSpaceId_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SearchSpaceId_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SearchSpaceZero.c b/src/codec_utils/SYSINFO/SearchSpaceZero.c deleted file mode 100644 index 9a94cf0f8..000000000 --- a/src/codec_utils/SYSINFO/SearchSpaceZero.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SearchSpaceZero.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_SearchSpaceZero_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..15) */, - -1}; -asn_per_constraints_t asn_PER_type_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_SearchSpaceZero_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SearchSpaceZero = { - "SearchSpaceZero", - "SearchSpaceZero", - &asn_OP_NativeInteger, - asn_DEF_SearchSpaceZero_tags_1, - sizeof(asn_DEF_SearchSpaceZero_tags_1) - /sizeof(asn_DEF_SearchSpaceZero_tags_1[0]), /* 1 */ - asn_DEF_SearchSpaceZero_tags_1, /* Same as above */ - sizeof(asn_DEF_SearchSpaceZero_tags_1) - /sizeof(asn_DEF_SearchSpaceZero_tags_1[0]), /* 1 */ - { &asn_OER_type_SearchSpaceZero_constr_1, &asn_PER_type_SearchSpaceZero_constr_1, SearchSpaceZero_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/SearchSpaceZero.h b/src/codec_utils/SYSINFO/SearchSpaceZero.h deleted file mode 100644 index d362c4225..000000000 --- a/src/codec_utils/SYSINFO/SearchSpaceZero.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SearchSpaceZero_H_ -#define _SearchSpaceZero_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SearchSpaceZero */ -typedef long SearchSpaceZero_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SearchSpaceZero_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SearchSpaceZero; -asn_struct_free_f SearchSpaceZero_free; -asn_struct_print_f SearchSpaceZero_print; -asn_constr_check_f SearchSpaceZero_constraint; -ber_type_decoder_f SearchSpaceZero_decode_ber; -der_type_encoder_f SearchSpaceZero_encode_der; -xer_type_decoder_f SearchSpaceZero_decode_xer; -xer_type_encoder_f SearchSpaceZero_encode_xer; -oer_type_decoder_f SearchSpaceZero_decode_oer; -oer_type_encoder_f SearchSpaceZero_encode_oer; -per_type_decoder_f SearchSpaceZero_decode_uper; -per_type_encoder_f SearchSpaceZero_encode_uper; -per_type_decoder_f SearchSpaceZero_decode_aper; -per_type_encoder_f SearchSpaceZero_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SearchSpaceZero_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.c b/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.c deleted file mode 100644 index 95c87e353..000000000 --- a/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.c +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "ServingCellConfigCommonSIB.h" - -#include "UplinkConfigCommonSIB.h" -#include "TDD-UL-DL-ConfigCommon.h" -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static int -memb_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_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_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_oer_constraints_t asn_OER_type_n_TimingAdvanceOffset_constr_5 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_inOneGroup_constr_10 CC_NOTUSED = { - { 0, 0 }, - 8 /* (SIZE(8..8)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_groupPresence_constr_11 CC_NOTUSED = { - { 0, 0 }, - 8 /* (SIZE(8..8)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_ssb_PeriodicityServingCell_constr_12 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_ss_PBCH_BlockPower_constr_20 CC_NOTUSED = { - { 1, 0 } /* (-60..50) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_n_TimingAdvanceOffset_value2enum_5[] = { - { 0, 2, "n0" }, - { 1, 6, "n25600" }, - { 2, 6, "n39936" } -}; -static const unsigned int asn_MAP_n_TimingAdvanceOffset_enum2value_5[] = { - 0, /* n0(0) */ - 1, /* n25600(1) */ - 2 /* n39936(2) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_n_TimingAdvanceOffset_specs_5 = { - asn_MAP_n_TimingAdvanceOffset_value2enum_5, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_n_TimingAdvanceOffset_5 = { - "n-TimingAdvanceOffset", - "n-TimingAdvanceOffset", - &asn_OP_NativeEnumerated, - asn_DEF_n_TimingAdvanceOffset_tags_5, - sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5) - /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5[0]) - 1, /* 1 */ - asn_DEF_n_TimingAdvanceOffset_tags_5, /* Same as above */ - sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5) - /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_5[0]), /* 2 */ - { &asn_OER_type_n_TimingAdvanceOffset_constr_5, &asn_PER_type_n_TimingAdvanceOffset_constr_5, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_n_TimingAdvanceOffset_specs_5 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ssb_PositionsInBurst_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, inOneGroup), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_inOneGroup_constr_10, &asn_PER_memb_inOneGroup_constr_10, memb_inOneGroup_constraint_9 }, - 0, 0, /* No default value */ - "inOneGroup" - }, - { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, groupPresence), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_groupPresence_constr_11, &asn_PER_memb_groupPresence_constr_11, memb_groupPresence_constraint_9 }, - 0, 0, /* No default value */ - "groupPresence" - }, -}; -static const int asn_MAP_ssb_PositionsInBurst_oms_9[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_ssb_PositionsInBurst_tags_9[] = { - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_ssb_PositionsInBurst_specs_9 = { - sizeof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst), - offsetof(struct ServingCellConfigCommonSIB__ssb_PositionsInBurst, _asn_ctx), - asn_MAP_ssb_PositionsInBurst_tag2el_9, - 2, /* Count of tags in the map */ - asn_MAP_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_ssb_PositionsInBurst_9 = { - "ssb-PositionsInBurst", - "ssb-PositionsInBurst", - &asn_OP_SEQUENCE, - asn_DEF_ssb_PositionsInBurst_tags_9, - sizeof(asn_DEF_ssb_PositionsInBurst_tags_9) - /sizeof(asn_DEF_ssb_PositionsInBurst_tags_9[0]) - 1, /* 1 */ - asn_DEF_ssb_PositionsInBurst_tags_9, /* Same as above */ - sizeof(asn_DEF_ssb_PositionsInBurst_tags_9) - /sizeof(asn_DEF_ssb_PositionsInBurst_tags_9[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ssb_PositionsInBurst_9, - 2, /* Elements count */ - &asn_SPC_ssb_PositionsInBurst_specs_9 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_ssb_PeriodicityServingCell_specs_12 = { - asn_MAP_ssb_PeriodicityServingCell_value2enum_12, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_ssb_PeriodicityServingCell_12 = { - "ssb-PeriodicityServingCell", - "ssb-PeriodicityServingCell", - &asn_OP_NativeEnumerated, - asn_DEF_ssb_PeriodicityServingCell_tags_12, - sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12) - /sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12[0]) - 1, /* 1 */ - asn_DEF_ssb_PeriodicityServingCell_tags_12, /* Same as above */ - sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12) - /sizeof(asn_DEF_ssb_PeriodicityServingCell_tags_12[0]), /* 2 */ - { &asn_OER_type_ssb_PeriodicityServingCell_constr_12, &asn_PER_type_ssb_PeriodicityServingCell_constr_12, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_ssb_PeriodicityServingCell_specs_12 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_ServingCellConfigCommonSIB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, downlinkConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_DownlinkConfigCommonSIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "downlinkConfigCommon" - }, - { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommonSIB, uplinkConfigCommon), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UplinkConfigCommonSIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uplinkConfigCommon" - }, - { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommonSIB, supplementaryUplink), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UplinkConfigCommonSIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "supplementaryUplink" - }, - { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB, n_TimingAdvanceOffset), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_n_TimingAdvanceOffset_5, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "n-TimingAdvanceOffset" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ssb_PositionsInBurst), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - 0, - &asn_DEF_ssb_PositionsInBurst_9, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ssb-PositionsInBurst" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ssb_PeriodicityServingCell), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_ssb_PeriodicityServingCell_12, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ssb-PeriodicityServingCell" - }, - { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommonSIB, tdd_UL_DL_ConfigurationCommon), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_UL_DL_ConfigCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "tdd-UL-DL-ConfigurationCommon" - }, - { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommonSIB, ss_PBCH_BlockPower), - (ASN_TAG_CLASS_CONTEXT | (7 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_ss_PBCH_BlockPower_constr_20, &asn_PER_memb_ss_PBCH_BlockPower_constr_20, memb_ss_PBCH_BlockPower_constraint_1 }, - 0, 0, /* No default value */ - "ss-PBCH-BlockPower" - }, -}; -static const int asn_MAP_ServingCellConfigCommonSIB_oms_1[] = { 1, 2, 3, 6 }; -static const ber_tlv_tag_t asn_DEF_ServingCellConfigCommonSIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_ServingCellConfigCommonSIB_specs_1 = { - sizeof(struct ServingCellConfigCommonSIB), - offsetof(struct ServingCellConfigCommonSIB, _asn_ctx), - asn_MAP_ServingCellConfigCommonSIB_tag2el_1, - 8, /* Count of tags in the map */ - asn_MAP_ServingCellConfigCommonSIB_oms_1, /* Optional members */ - 4, 0, /* Root/Additions */ - 8, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommonSIB = { - "ServingCellConfigCommonSIB", - "ServingCellConfigCommonSIB", - &asn_OP_SEQUENCE, - asn_DEF_ServingCellConfigCommonSIB_tags_1, - sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1) - /sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ - asn_DEF_ServingCellConfigCommonSIB_tags_1, /* Same as above */ - sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1) - /sizeof(asn_DEF_ServingCellConfigCommonSIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ServingCellConfigCommonSIB_1, - 8, /* Elements count */ - &asn_SPC_ServingCellConfigCommonSIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.h b/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.h deleted file mode 100644 index eb40a0bc9..000000000 --- a/src/codec_utils/SYSINFO/ServingCellConfigCommonSIB.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _ServingCellConfigCommonSIB_H_ -#define _ServingCellConfigCommonSIB_H_ - - -#include - -/* Including external dependencies */ -#include "DownlinkConfigCommonSIB.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum ServingCellConfigCommonSIB__n_TimingAdvanceOffset { - ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n0 = 0, - ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n25600 = 1, - ServingCellConfigCommonSIB__n_TimingAdvanceOffset_n39936 = 2 -} e_ServingCellConfigCommonSIB__n_TimingAdvanceOffset; -typedef enum ServingCellConfigCommonSIB__ssb_PeriodicityServingCell { - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms5 = 0, - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms10 = 1, - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms20 = 2, - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms40 = 3, - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms80 = 4, - ServingCellConfigCommonSIB__ssb_PeriodicityServingCell_ms160 = 5 -} e_ServingCellConfigCommonSIB__ssb_PeriodicityServingCell; - -/* Forward declarations */ -struct UplinkConfigCommonSIB; -struct TDD_UL_DL_ConfigCommon; - -/* ServingCellConfigCommonSIB */ -typedef struct ServingCellConfigCommonSIB { - DownlinkConfigCommonSIB_t downlinkConfigCommon; - struct UplinkConfigCommonSIB *uplinkConfigCommon; /* OPTIONAL */ - struct UplinkConfigCommonSIB *supplementaryUplink; /* OPTIONAL */ - long *n_TimingAdvanceOffset; /* OPTIONAL */ - struct 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 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; -} ServingCellConfigCommonSIB_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_n_TimingAdvanceOffset_5; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_ssb_PeriodicityServingCell_12; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommonSIB; -extern asn_SEQUENCE_specifics_t asn_SPC_ServingCellConfigCommonSIB_specs_1; -extern asn_TYPE_member_t asn_MBR_ServingCellConfigCommonSIB_1[8]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ServingCellConfigCommonSIB_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/SubcarrierSpacing.c b/src/codec_utils/SYSINFO/SubcarrierSpacing.c deleted file mode 100644 index e48e3a099..000000000 --- a/src/codec_utils/SYSINFO/SubcarrierSpacing.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "SubcarrierSpacing.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_SubcarrierSpacing_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_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_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_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_SubcarrierSpacing_specs_1 = { - asn_MAP_SubcarrierSpacing_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_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_SubcarrierSpacing_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_SubcarrierSpacing = { - "SubcarrierSpacing", - "SubcarrierSpacing", - &asn_OP_NativeEnumerated, - asn_DEF_SubcarrierSpacing_tags_1, - sizeof(asn_DEF_SubcarrierSpacing_tags_1) - /sizeof(asn_DEF_SubcarrierSpacing_tags_1[0]), /* 1 */ - asn_DEF_SubcarrierSpacing_tags_1, /* Same as above */ - sizeof(asn_DEF_SubcarrierSpacing_tags_1) - /sizeof(asn_DEF_SubcarrierSpacing_tags_1[0]), /* 1 */ - { &asn_OER_type_SubcarrierSpacing_constr_1, &asn_PER_type_SubcarrierSpacing_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_SubcarrierSpacing_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/SubcarrierSpacing.h b/src/codec_utils/SYSINFO/SubcarrierSpacing.h deleted file mode 100644 index 7376aeb8c..000000000 --- a/src/codec_utils/SYSINFO/SubcarrierSpacing.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _SubcarrierSpacing_H_ -#define _SubcarrierSpacing_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum SubcarrierSpacing { - SubcarrierSpacing_kHz15 = 0, - SubcarrierSpacing_kHz30 = 1, - SubcarrierSpacing_kHz60 = 2, - SubcarrierSpacing_kHz120 = 3, - SubcarrierSpacing_kHz240 = 4, - SubcarrierSpacing_spare3 = 5, - SubcarrierSpacing_spare2 = 6, - SubcarrierSpacing_spare1 = 7 -} e_SubcarrierSpacing; - -/* SubcarrierSpacing */ -typedef long SubcarrierSpacing_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_SubcarrierSpacing_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_SubcarrierSpacing; -extern const asn_INTEGER_specifics_t asn_SPC_SubcarrierSpacing_specs_1; -asn_struct_free_f SubcarrierSpacing_free; -asn_struct_print_f SubcarrierSpacing_print; -asn_constr_check_f SubcarrierSpacing_constraint; -ber_type_decoder_f SubcarrierSpacing_decode_ber; -der_type_encoder_f SubcarrierSpacing_encode_der; -xer_type_decoder_f SubcarrierSpacing_decode_xer; -xer_type_encoder_f SubcarrierSpacing_encode_xer; -oer_type_decoder_f SubcarrierSpacing_decode_oer; -oer_type_encoder_f SubcarrierSpacing_encode_oer; -per_type_decoder_f SubcarrierSpacing_decode_uper; -per_type_encoder_f SubcarrierSpacing_encode_uper; -per_type_decoder_f SubcarrierSpacing_decode_aper; -per_type_encoder_f SubcarrierSpacing_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _SubcarrierSpacing_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/TCI-StateId.c b/src/codec_utils/SYSINFO/TCI-StateId.c deleted file mode 100644 index a36f9b95d..000000000 --- a/src/codec_utils/SYSINFO/TCI-StateId.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "TCI-StateId.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_TCI_StateId_constr_1 CC_NOTUSED = { - { 1, 1 } /* (0..127) */, - -1}; -asn_per_constraints_t asn_PER_type_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_TCI_StateId_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TCI_StateId = { - "TCI-StateId", - "TCI-StateId", - &asn_OP_NativeInteger, - asn_DEF_TCI_StateId_tags_1, - sizeof(asn_DEF_TCI_StateId_tags_1) - /sizeof(asn_DEF_TCI_StateId_tags_1[0]), /* 1 */ - asn_DEF_TCI_StateId_tags_1, /* Same as above */ - sizeof(asn_DEF_TCI_StateId_tags_1) - /sizeof(asn_DEF_TCI_StateId_tags_1[0]), /* 1 */ - { &asn_OER_type_TCI_StateId_constr_1, &asn_PER_type_TCI_StateId_constr_1, TCI_StateId_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/TCI-StateId.h b/src/codec_utils/SYSINFO/TCI-StateId.h deleted file mode 100644 index c165b9beb..000000000 --- a/src/codec_utils/SYSINFO/TCI-StateId.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _TCI_StateId_H_ -#define _TCI_StateId_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* TCI-StateId */ -typedef long TCI_StateId_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TCI_StateId_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TCI_StateId; -asn_struct_free_f TCI_StateId_free; -asn_struct_print_f TCI_StateId_print; -asn_constr_check_f TCI_StateId_constraint; -ber_type_decoder_f TCI_StateId_decode_ber; -der_type_encoder_f TCI_StateId_encode_der; -xer_type_decoder_f TCI_StateId_decode_xer; -xer_type_encoder_f TCI_StateId_encode_xer; -oer_type_decoder_f TCI_StateId_decode_oer; -oer_type_encoder_f TCI_StateId_encode_oer; -per_type_decoder_f TCI_StateId_decode_uper; -per_type_encoder_f TCI_StateId_encode_uper; -per_type_decoder_f TCI_StateId_decode_aper; -per_type_encoder_f TCI_StateId_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TCI_StateId_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.c b/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.c deleted file mode 100644 index 3e299f661..000000000 --- a/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "TDD-UL-DL-ConfigCommon.h" - -#include "TDD-UL-DL-Pattern.h" -asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigCommon_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_ConfigCommon, referenceSubcarrierSpacing), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_SubcarrierSpacing, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "referenceSubcarrierSpacing" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_ConfigCommon, pattern1), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_UL_DL_Pattern, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pattern1" - }, - { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_ConfigCommon, pattern2), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TDD_UL_DL_Pattern, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "pattern2" - }, -}; -static const int asn_MAP_TDD_UL_DL_ConfigCommon_oms_1[] = { 2 }; -static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_ConfigCommon_specs_1 = { - sizeof(struct TDD_UL_DL_ConfigCommon), - offsetof(struct TDD_UL_DL_ConfigCommon, _asn_ctx), - asn_MAP_TDD_UL_DL_ConfigCommon_tag2el_1, - 3, /* Count of tags in the map */ - asn_MAP_TDD_UL_DL_ConfigCommon_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 3, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigCommon = { - "TDD-UL-DL-ConfigCommon", - "TDD-UL-DL-ConfigCommon", - &asn_OP_SEQUENCE, - asn_DEF_TDD_UL_DL_ConfigCommon_tags_1, - sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1) - /sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ - asn_DEF_TDD_UL_DL_ConfigCommon_tags_1, /* Same as above */ - sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1) - /sizeof(asn_DEF_TDD_UL_DL_ConfigCommon_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_UL_DL_ConfigCommon_1, - 3, /* Elements count */ - &asn_SPC_TDD_UL_DL_ConfigCommon_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.h b/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.h deleted file mode 100644 index 6603e0e4d..000000000 --- a/src/codec_utils/SYSINFO/TDD-UL-DL-ConfigCommon.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _TDD_UL_DL_ConfigCommon_H_ -#define _TDD_UL_DL_ConfigCommon_H_ - - -#include - -/* Including external dependencies */ -#include "SubcarrierSpacing.h" -#include "TDD-UL-DL-Pattern.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct TDD_UL_DL_Pattern; - -/* TDD-UL-DL-ConfigCommon */ -typedef struct TDD_UL_DL_ConfigCommon { - SubcarrierSpacing_t referenceSubcarrierSpacing; - TDD_UL_DL_Pattern_t pattern1; - struct 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; -} TDD_UL_DL_ConfigCommon_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_ConfigCommon; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_ConfigCommon_specs_1; -extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_ConfigCommon_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TDD_UL_DL_ConfigCommon_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.c b/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.c deleted file mode 100644 index b1175d3d3..000000000 --- a/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_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_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_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_oer_constraints_t asn_OER_type_dl_UL_TransmissionPeriodicity_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_nrofDownlinkSlots_constr_11 CC_NOTUSED = { - { 2, 1 } /* (0..320) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofDownlinkSymbols_constr_12 CC_NOTUSED = { - { 1, 1 } /* (0..13) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofUplinkSlots_constr_13 CC_NOTUSED = { - { 2, 1 } /* (0..320) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_memb_nrofUplinkSymbols_constr_14 CC_NOTUSED = { - { 1, 1 } /* (0..13) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_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_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_dl_UL_TransmissionPeriodicity_specs_2 = { - asn_MAP_dl_UL_TransmissionPeriodicity_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dl_UL_TransmissionPeriodicity_2 = { - "dl-UL-TransmissionPeriodicity", - "dl-UL-TransmissionPeriodicity", - &asn_OP_NativeEnumerated, - asn_DEF_dl_UL_TransmissionPeriodicity_tags_2, - sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2) - /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2[0]) - 1, /* 1 */ - asn_DEF_dl_UL_TransmissionPeriodicity_tags_2, /* Same as above */ - sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2) - /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_tags_2[0]), /* 2 */ - { &asn_OER_type_dl_UL_TransmissionPeriodicity_constr_2, &asn_PER_type_dl_UL_TransmissionPeriodicity_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dl_UL_TransmissionPeriodicity_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_dl_UL_TransmissionPeriodicity_v1530_value2enum_17[] = { - { 0, 3, "ms3" }, - { 1, 3, "ms4" } -}; -static const unsigned int asn_MAP_dl_UL_TransmissionPeriodicity_v1530_enum2value_17[] = { - 0, /* ms3(0) */ - 1 /* ms4(1) */ -}; -static const asn_INTEGER_specifics_t asn_SPC_dl_UL_TransmissionPeriodicity_v1530_specs_17 = { - asn_MAP_dl_UL_TransmissionPeriodicity_v1530_value2enum_17, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_dl_UL_TransmissionPeriodicity_v1530_17 = { - "dl-UL-TransmissionPeriodicity-v1530", - "dl-UL-TransmissionPeriodicity-v1530", - &asn_OP_NativeEnumerated, - asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17, - sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17) - /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]) - 1, /* 1 */ - asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17, /* Same as above */ - sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17) - /sizeof(asn_DEF_dl_UL_TransmissionPeriodicity_v1530_tags_17[0]), /* 2 */ - { &asn_OER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17, &asn_PER_type_dl_UL_TransmissionPeriodicity_v1530_constr_17, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_dl_UL_TransmissionPeriodicity_v1530_specs_17 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_ext1_16[] = { - { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_Pattern__ext1, dl_UL_TransmissionPeriodicity_v1530), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dl_UL_TransmissionPeriodicity_v1530_17, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-UL-TransmissionPeriodicity-v1530" - }, -}; -static const int asn_MAP_ext1_oms_16[] = { 0 }; -static const ber_tlv_tag_t asn_DEF_ext1_tags_16[] = { - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_ext1_tag2el_16[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* dl-UL-TransmissionPeriodicity-v1530 */ -}; -static asn_SEQUENCE_specifics_t asn_SPC_ext1_specs_16 = { - sizeof(struct TDD_UL_DL_Pattern__ext1), - offsetof(struct TDD_UL_DL_Pattern__ext1, _asn_ctx), - asn_MAP_ext1_tag2el_16, - 1, /* Count of tags in the map */ - asn_MAP_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_ext1_16 = { - "ext1", - "ext1", - &asn_OP_SEQUENCE, - asn_DEF_ext1_tags_16, - sizeof(asn_DEF_ext1_tags_16) - /sizeof(asn_DEF_ext1_tags_16[0]) - 1, /* 1 */ - asn_DEF_ext1_tags_16, /* Same as above */ - sizeof(asn_DEF_ext1_tags_16) - /sizeof(asn_DEF_ext1_tags_16[0]), /* 2 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_ext1_16, - 1, /* Elements count */ - &asn_SPC_ext1_specs_16 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_TDD_UL_DL_Pattern_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, dl_UL_TransmissionPeriodicity), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_dl_UL_TransmissionPeriodicity_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "dl-UL-TransmissionPeriodicity" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofDownlinkSlots), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_nrofDownlinkSlots_constr_11, &asn_PER_memb_nrofDownlinkSlots_constr_11, memb_nrofDownlinkSlots_constraint_1 }, - 0, 0, /* No default value */ - "nrofDownlinkSlots" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofDownlinkSymbols), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_nrofDownlinkSymbols_constr_12, &asn_PER_memb_nrofDownlinkSymbols_constr_12, memb_nrofDownlinkSymbols_constraint_1 }, - 0, 0, /* No default value */ - "nrofDownlinkSymbols" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofUplinkSlots), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_nrofUplinkSlots_constr_13, &asn_PER_memb_nrofUplinkSlots_constr_13, memb_nrofUplinkSlots_constraint_1 }, - 0, 0, /* No default value */ - "nrofUplinkSlots" - }, - { ATF_NOFLAGS, 0, offsetof(struct TDD_UL_DL_Pattern, nrofUplinkSymbols), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_nrofUplinkSymbols_constr_14, &asn_PER_memb_nrofUplinkSymbols_constr_14, memb_nrofUplinkSymbols_constraint_1 }, - 0, 0, /* No default value */ - "nrofUplinkSymbols" - }, - { ATF_POINTER, 1, offsetof(struct TDD_UL_DL_Pattern, ext1), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - 0, - &asn_DEF_ext1_16, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "ext1" - }, -}; -static const int asn_MAP_TDD_UL_DL_Pattern_oms_1[] = { 5 }; -static const ber_tlv_tag_t asn_DEF_TDD_UL_DL_Pattern_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_TDD_UL_DL_Pattern_specs_1 = { - sizeof(struct TDD_UL_DL_Pattern), - offsetof(struct TDD_UL_DL_Pattern, _asn_ctx), - asn_MAP_TDD_UL_DL_Pattern_tag2el_1, - 6, /* Count of tags in the map */ - asn_MAP_TDD_UL_DL_Pattern_oms_1, /* Optional members */ - 0, 1, /* Root/Additions */ - 5, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_Pattern = { - "TDD-UL-DL-Pattern", - "TDD-UL-DL-Pattern", - &asn_OP_SEQUENCE, - asn_DEF_TDD_UL_DL_Pattern_tags_1, - sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1) - /sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ - asn_DEF_TDD_UL_DL_Pattern_tags_1, /* Same as above */ - sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1) - /sizeof(asn_DEF_TDD_UL_DL_Pattern_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_TDD_UL_DL_Pattern_1, - 6, /* Elements count */ - &asn_SPC_TDD_UL_DL_Pattern_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.h b/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.h deleted file mode 100644 index 98ba0728a..000000000 --- a/src/codec_utils/SYSINFO/TDD-UL-DL-Pattern.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _TDD_UL_DL_Pattern_H_ -#define _TDD_UL_DL_Pattern_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity { - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5 = 0, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p625 = 1, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1 = 2, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms1p25 = 3, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2 = 4, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms2p5 = 5, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms5 = 6, - TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms10 = 7 -} e_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity; -typedef enum TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530 { - TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms3 = 0, - TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530_ms4 = 1 -} e_TDD_UL_DL_Pattern__ext1__dl_UL_TransmissionPeriodicity_v1530; - -/* TDD-UL-DL-Pattern */ -typedef struct 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 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; -} TDD_UL_DL_Pattern_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_dl_UL_TransmissionPeriodicity_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_dl_UL_TransmissionPeriodicity_v1530_17; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_TDD_UL_DL_Pattern; -extern asn_SEQUENCE_specifics_t asn_SPC_TDD_UL_DL_Pattern_specs_1; -extern asn_TYPE_member_t asn_MBR_TDD_UL_DL_Pattern_1[6]; - -#ifdef __cplusplus -} -#endif - -#endif /* _TDD_UL_DL_Pattern_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/TimeAlignmentTimer.c b/src/codec_utils/SYSINFO/TimeAlignmentTimer.c deleted file mode 100644 index 0c761a847..000000000 --- a/src/codec_utils/SYSINFO/TimeAlignmentTimer.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "TimeAlignmentTimer.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_TimeAlignmentTimer_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_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_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_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_TimeAlignmentTimer_specs_1 = { - asn_MAP_TimeAlignmentTimer_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_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_TimeAlignmentTimer_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TimeAlignmentTimer = { - "TimeAlignmentTimer", - "TimeAlignmentTimer", - &asn_OP_NativeEnumerated, - asn_DEF_TimeAlignmentTimer_tags_1, - sizeof(asn_DEF_TimeAlignmentTimer_tags_1) - /sizeof(asn_DEF_TimeAlignmentTimer_tags_1[0]), /* 1 */ - asn_DEF_TimeAlignmentTimer_tags_1, /* Same as above */ - sizeof(asn_DEF_TimeAlignmentTimer_tags_1) - /sizeof(asn_DEF_TimeAlignmentTimer_tags_1[0]), /* 1 */ - { &asn_OER_type_TimeAlignmentTimer_constr_1, &asn_PER_type_TimeAlignmentTimer_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_TimeAlignmentTimer_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/TimeAlignmentTimer.h b/src/codec_utils/SYSINFO/TimeAlignmentTimer.h deleted file mode 100644 index 13258bd37..000000000 --- a/src/codec_utils/SYSINFO/TimeAlignmentTimer.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _TimeAlignmentTimer_H_ -#define _TimeAlignmentTimer_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum TimeAlignmentTimer { - TimeAlignmentTimer_ms500 = 0, - TimeAlignmentTimer_ms750 = 1, - TimeAlignmentTimer_ms1280 = 2, - TimeAlignmentTimer_ms1920 = 3, - TimeAlignmentTimer_ms2560 = 4, - TimeAlignmentTimer_ms5120 = 5, - TimeAlignmentTimer_ms10240 = 6, - TimeAlignmentTimer_infinity = 7 -} e_TimeAlignmentTimer; - -/* TimeAlignmentTimer */ -typedef long TimeAlignmentTimer_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TimeAlignmentTimer_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TimeAlignmentTimer; -extern const asn_INTEGER_specifics_t asn_SPC_TimeAlignmentTimer_specs_1; -asn_struct_free_f TimeAlignmentTimer_free; -asn_struct_print_f TimeAlignmentTimer_print; -asn_constr_check_f TimeAlignmentTimer_constraint; -ber_type_decoder_f TimeAlignmentTimer_decode_ber; -der_type_encoder_f TimeAlignmentTimer_encode_der; -xer_type_decoder_f TimeAlignmentTimer_decode_xer; -xer_type_encoder_f TimeAlignmentTimer_encode_xer; -oer_type_decoder_f TimeAlignmentTimer_decode_oer; -oer_type_encoder_f TimeAlignmentTimer_encode_oer; -per_type_decoder_f TimeAlignmentTimer_decode_uper; -per_type_encoder_f TimeAlignmentTimer_encode_uper; -per_type_decoder_f TimeAlignmentTimer_decode_aper; -per_type_encoder_f TimeAlignmentTimer_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TimeAlignmentTimer_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/TrackingAreaCode.c b/src/codec_utils/SYSINFO/TrackingAreaCode.c deleted file mode 100644 index 0be90adeb..000000000 --- a/src/codec_utils/SYSINFO/TrackingAreaCode.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "TrackingAreaCode.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_TrackingAreaCode_constr_1 CC_NOTUSED = { - { 0, 0 }, - 24 /* (SIZE(24..24)) */}; -asn_per_constraints_t asn_PER_type_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_TrackingAreaCode_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_TrackingAreaCode = { - "TrackingAreaCode", - "TrackingAreaCode", - &asn_OP_BIT_STRING, - asn_DEF_TrackingAreaCode_tags_1, - sizeof(asn_DEF_TrackingAreaCode_tags_1) - /sizeof(asn_DEF_TrackingAreaCode_tags_1[0]), /* 1 */ - asn_DEF_TrackingAreaCode_tags_1, /* Same as above */ - sizeof(asn_DEF_TrackingAreaCode_tags_1) - /sizeof(asn_DEF_TrackingAreaCode_tags_1[0]), /* 1 */ - { &asn_OER_type_TrackingAreaCode_constr_1, &asn_PER_type_TrackingAreaCode_constr_1, TrackingAreaCode_constraint }, - 0, 0, /* No members */ - &asn_SPC_BIT_STRING_specs /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/TrackingAreaCode.h b/src/codec_utils/SYSINFO/TrackingAreaCode.h deleted file mode 100644 index 2a42e6b6c..000000000 --- a/src/codec_utils/SYSINFO/TrackingAreaCode.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _TrackingAreaCode_H_ -#define _TrackingAreaCode_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* TrackingAreaCode */ -typedef BIT_STRING_t TrackingAreaCode_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_TrackingAreaCode_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_TrackingAreaCode; -asn_struct_free_f TrackingAreaCode_free; -asn_struct_print_f TrackingAreaCode_print; -asn_constr_check_f TrackingAreaCode_constraint; -ber_type_decoder_f TrackingAreaCode_decode_ber; -der_type_encoder_f TrackingAreaCode_encode_der; -xer_type_decoder_f TrackingAreaCode_decode_xer; -xer_type_encoder_f TrackingAreaCode_encode_xer; -oer_type_decoder_f TrackingAreaCode_decode_oer; -oer_type_encoder_f TrackingAreaCode_encode_oer; -per_type_decoder_f TrackingAreaCode_decode_uper; -per_type_encoder_f TrackingAreaCode_encode_uper; -per_type_decoder_f TrackingAreaCode_decode_aper; -per_type_encoder_f TrackingAreaCode_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _TrackingAreaCode_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.c b/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.c deleted file mode 100644 index aa67dc8be..000000000 --- a/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-AccessCategory1-SelectionAssistanceInfo.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_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_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1[] = { - { 0, 1, "a" }, - { 1, 1, "b" }, - { 2, 1, "c" } -}; -static const unsigned int asn_MAP_UAC_AccessCategory1_SelectionAssistanceInfo_enum2value_1[] = { - 0, /* a(0) */ - 1, /* b(1) */ - 2 /* c(2) */ -}; -const asn_INTEGER_specifics_t asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 = { - asn_MAP_UAC_AccessCategory1_SelectionAssistanceInfo_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_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_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo = { - "UAC-AccessCategory1-SelectionAssistanceInfo", - "UAC-AccessCategory1-SelectionAssistanceInfo", - &asn_OP_NativeEnumerated, - asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, - sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) - /sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ - asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1) - /sizeof(asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo_tags_1[0]), /* 1 */ - { &asn_OER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1, &asn_PER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.h b/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.h deleted file mode 100644 index 25a236ab2..000000000 --- a/src/codec_utils/SYSINFO/UAC-AccessCategory1-SelectionAssistanceInfo.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_AccessCategory1_SelectionAssistanceInfo_H_ -#define _UAC_AccessCategory1_SelectionAssistanceInfo_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UAC_AccessCategory1_SelectionAssistanceInfo { - UAC_AccessCategory1_SelectionAssistanceInfo_a = 0, - UAC_AccessCategory1_SelectionAssistanceInfo_b = 1, - UAC_AccessCategory1_SelectionAssistanceInfo_c = 2 -} e_UAC_AccessCategory1_SelectionAssistanceInfo; - -/* UAC-AccessCategory1-SelectionAssistanceInfo */ -typedef long UAC_AccessCategory1_SelectionAssistanceInfo_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UAC_AccessCategory1_SelectionAssistanceInfo_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UAC_AccessCategory1_SelectionAssistanceInfo; -extern const asn_INTEGER_specifics_t asn_SPC_UAC_AccessCategory1_SelectionAssistanceInfo_specs_1; -asn_struct_free_f UAC_AccessCategory1_SelectionAssistanceInfo_free; -asn_struct_print_f UAC_AccessCategory1_SelectionAssistanceInfo_print; -asn_constr_check_f UAC_AccessCategory1_SelectionAssistanceInfo_constraint; -ber_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_ber; -der_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_der; -xer_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_xer; -xer_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_xer; -oer_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_oer; -oer_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_oer; -per_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_uper; -per_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_uper; -per_type_decoder_f UAC_AccessCategory1_SelectionAssistanceInfo_decode_aper; -per_type_encoder_f UAC_AccessCategory1_SelectionAssistanceInfo_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_AccessCategory1_SelectionAssistanceInfo_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSet.c b/src/codec_utils/SYSINFO/UAC-BarringInfoSet.c deleted file mode 100644 index c7dea3f7c..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSet.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_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_oer_constraints_t asn_OER_type_uac_BarringFactor_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_uac_BarringTime_constr_19 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_uac_BarringForAccessIdentity_constr_28 CC_NOTUSED = { - { 0, 0 }, - 7 /* (SIZE(7..7)) */}; -static asn_per_constraints_t asn_PER_memb_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_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_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_uac_BarringFactor_specs_2 = { - asn_MAP_uac_BarringFactor_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_uac_BarringFactor_2 = { - "uac-BarringFactor", - "uac-BarringFactor", - &asn_OP_NativeEnumerated, - asn_DEF_uac_BarringFactor_tags_2, - sizeof(asn_DEF_uac_BarringFactor_tags_2) - /sizeof(asn_DEF_uac_BarringFactor_tags_2[0]) - 1, /* 1 */ - asn_DEF_uac_BarringFactor_tags_2, /* Same as above */ - sizeof(asn_DEF_uac_BarringFactor_tags_2) - /sizeof(asn_DEF_uac_BarringFactor_tags_2[0]), /* 2 */ - { &asn_OER_type_uac_BarringFactor_constr_2, &asn_PER_type_uac_BarringFactor_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_uac_BarringFactor_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_uac_BarringTime_specs_19 = { - asn_MAP_uac_BarringTime_value2enum_19, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_uac_BarringTime_19 = { - "uac-BarringTime", - "uac-BarringTime", - &asn_OP_NativeEnumerated, - asn_DEF_uac_BarringTime_tags_19, - sizeof(asn_DEF_uac_BarringTime_tags_19) - /sizeof(asn_DEF_uac_BarringTime_tags_19[0]) - 1, /* 1 */ - asn_DEF_uac_BarringTime_tags_19, /* Same as above */ - sizeof(asn_DEF_uac_BarringTime_tags_19) - /sizeof(asn_DEF_uac_BarringTime_tags_19[0]), /* 2 */ - { &asn_OER_type_uac_BarringTime_constr_19, &asn_PER_type_uac_BarringTime_constr_19, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_uac_BarringTime_specs_19 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UAC_BarringInfoSet_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringFactor), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_uac_BarringFactor_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringFactor" - }, - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringTime), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_uac_BarringTime_19, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-BarringTime" - }, - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringInfoSet, uac_BarringForAccessIdentity), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BIT_STRING, - 0, - { &asn_OER_memb_uac_BarringForAccessIdentity_constr_28, &asn_PER_memb_uac_BarringForAccessIdentity_constr_28, memb_uac_BarringForAccessIdentity_constraint_1 }, - 0, 0, /* No default value */ - "uac-BarringForAccessIdentity" - }, -}; -static const ber_tlv_tag_t asn_DEF_UAC_BarringInfoSet_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringInfoSet_specs_1 = { - sizeof(struct UAC_BarringInfoSet), - offsetof(struct UAC_BarringInfoSet, _asn_ctx), - asn_MAP_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_UAC_BarringInfoSet = { - "UAC-BarringInfoSet", - "UAC-BarringInfoSet", - &asn_OP_SEQUENCE, - asn_DEF_UAC_BarringInfoSet_tags_1, - sizeof(asn_DEF_UAC_BarringInfoSet_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSet_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringInfoSet_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringInfoSet_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSet_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UAC_BarringInfoSet_1, - 3, /* Elements count */ - &asn_SPC_UAC_BarringInfoSet_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSet.h b/src/codec_utils/SYSINFO/UAC-BarringInfoSet.h deleted file mode 100644 index 33ec8c57b..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSet.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringInfoSet_H_ -#define _UAC_BarringInfoSet_H_ - - -#include - -/* Including external dependencies */ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UAC_BarringInfoSet__uac_BarringFactor { - UAC_BarringInfoSet__uac_BarringFactor_p00 = 0, - UAC_BarringInfoSet__uac_BarringFactor_p05 = 1, - UAC_BarringInfoSet__uac_BarringFactor_p10 = 2, - UAC_BarringInfoSet__uac_BarringFactor_p15 = 3, - UAC_BarringInfoSet__uac_BarringFactor_p20 = 4, - UAC_BarringInfoSet__uac_BarringFactor_p25 = 5, - UAC_BarringInfoSet__uac_BarringFactor_p30 = 6, - UAC_BarringInfoSet__uac_BarringFactor_p40 = 7, - UAC_BarringInfoSet__uac_BarringFactor_p50 = 8, - UAC_BarringInfoSet__uac_BarringFactor_p60 = 9, - UAC_BarringInfoSet__uac_BarringFactor_p70 = 10, - UAC_BarringInfoSet__uac_BarringFactor_p75 = 11, - UAC_BarringInfoSet__uac_BarringFactor_p80 = 12, - UAC_BarringInfoSet__uac_BarringFactor_p85 = 13, - UAC_BarringInfoSet__uac_BarringFactor_p90 = 14, - UAC_BarringInfoSet__uac_BarringFactor_p95 = 15 -} e_UAC_BarringInfoSet__uac_BarringFactor; -typedef enum UAC_BarringInfoSet__uac_BarringTime { - UAC_BarringInfoSet__uac_BarringTime_s4 = 0, - UAC_BarringInfoSet__uac_BarringTime_s8 = 1, - UAC_BarringInfoSet__uac_BarringTime_s16 = 2, - UAC_BarringInfoSet__uac_BarringTime_s32 = 3, - UAC_BarringInfoSet__uac_BarringTime_s64 = 4, - UAC_BarringInfoSet__uac_BarringTime_s128 = 5, - UAC_BarringInfoSet__uac_BarringTime_s256 = 6, - UAC_BarringInfoSet__uac_BarringTime_s512 = 7 -} e_UAC_BarringInfoSet__uac_BarringTime; - -/* UAC-BarringInfoSet */ -typedef struct 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; -} UAC_BarringInfoSet_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_uac_BarringFactor_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_uac_BarringTime_19; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSet; -extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringInfoSet_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringInfoSet_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringInfoSet_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.c b/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.c deleted file mode 100644 index 128d8cbbc..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringInfoSetIndex.h" - -int -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. - */ -static asn_oer_constraints_t asn_OER_type_UAC_BarringInfoSetIndex_constr_1 CC_NOTUSED = { - { 1, 1 } /* (1..8) */, - -1}; -asn_per_constraints_t asn_PER_type_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_UAC_BarringInfoSetIndex_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetIndex = { - "UAC-BarringInfoSetIndex", - "UAC-BarringInfoSetIndex", - &asn_OP_NativeInteger, - asn_DEF_UAC_BarringInfoSetIndex_tags_1, - sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringInfoSetIndex_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSetIndex_tags_1[0]), /* 1 */ - { &asn_OER_type_UAC_BarringInfoSetIndex_constr_1, &asn_PER_type_UAC_BarringInfoSetIndex_constr_1, UAC_BarringInfoSetIndex_constraint }, - 0, 0, /* No members */ - 0 /* No specifics */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.h b/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.h deleted file mode 100644 index 855a79e31..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSetIndex.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringInfoSetIndex_H_ -#define _UAC_BarringInfoSetIndex_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* UAC-BarringInfoSetIndex */ -typedef long UAC_BarringInfoSetIndex_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_UAC_BarringInfoSetIndex_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetIndex; -asn_struct_free_f UAC_BarringInfoSetIndex_free; -asn_struct_print_f UAC_BarringInfoSetIndex_print; -asn_constr_check_f UAC_BarringInfoSetIndex_constraint; -ber_type_decoder_f UAC_BarringInfoSetIndex_decode_ber; -der_type_encoder_f UAC_BarringInfoSetIndex_encode_der; -xer_type_decoder_f UAC_BarringInfoSetIndex_decode_xer; -xer_type_encoder_f UAC_BarringInfoSetIndex_encode_xer; -oer_type_decoder_f UAC_BarringInfoSetIndex_decode_oer; -oer_type_encoder_f UAC_BarringInfoSetIndex_encode_oer; -per_type_decoder_f UAC_BarringInfoSetIndex_decode_uper; -per_type_encoder_f UAC_BarringInfoSetIndex_encode_uper; -per_type_decoder_f UAC_BarringInfoSetIndex_decode_aper; -per_type_encoder_f UAC_BarringInfoSetIndex_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringInfoSetIndex_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.c b/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.c deleted file mode 100644 index ac316b336..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringInfoSetList.h" - -#include "UAC-BarringInfoSet.h" -static asn_oer_constraints_t asn_OER_type_UAC_BarringInfoSetList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..8)) */}; -asn_per_constraints_t asn_PER_type_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_UAC_BarringInfoSetList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UAC_BarringInfoSet, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UAC_BarringInfoSetList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UAC_BarringInfoSetList_specs_1 = { - sizeof(struct UAC_BarringInfoSetList), - offsetof(struct UAC_BarringInfoSetList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetList = { - "UAC-BarringInfoSetList", - "UAC-BarringInfoSetList", - &asn_OP_SEQUENCE_OF, - asn_DEF_UAC_BarringInfoSetList_tags_1, - sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringInfoSetList_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1) - /sizeof(asn_DEF_UAC_BarringInfoSetList_tags_1[0]), /* 1 */ - { &asn_OER_type_UAC_BarringInfoSetList_constr_1, &asn_PER_type_UAC_BarringInfoSetList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UAC_BarringInfoSetList_1, - 1, /* Single element */ - &asn_SPC_UAC_BarringInfoSetList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.h b/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.h deleted file mode 100644 index 87d5fa1c1..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringInfoSetList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringInfoSetList_H_ -#define _UAC_BarringInfoSetList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UAC_BarringInfoSet; - -/* UAC-BarringInfoSetList */ -typedef struct UAC_BarringInfoSetList { - A_SEQUENCE_OF(struct UAC_BarringInfoSet) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UAC_BarringInfoSetList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringInfoSetList; -extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringInfoSetList_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringInfoSetList_1[1]; -extern asn_per_constraints_t asn_PER_type_UAC_BarringInfoSetList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringInfoSetList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerCat.c b/src/codec_utils/SYSINFO/UAC-BarringPerCat.c deleted file mode 100644 index 857695b5d..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerCat.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringPerCat.h" - -static int -memb_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_oer_constraints_t asn_OER_memb_accessCategory_constr_2 CC_NOTUSED = { - { 1, 1 } /* (1..63) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_UAC_BarringPerCat_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerCat, accessCategory), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_accessCategory_constr_2, &asn_PER_memb_accessCategory_constr_2, memb_accessCategory_constraint_1 }, - 0, 0, /* No default value */ - "accessCategory" - }, - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerCat, uac_barringInfoSetIndex), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_BarringInfoSetIndex, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-barringInfoSetIndex" - }, -}; -static const ber_tlv_tag_t asn_DEF_UAC_BarringPerCat_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringPerCat_specs_1 = { - sizeof(struct UAC_BarringPerCat), - offsetof(struct UAC_BarringPerCat, _asn_ctx), - asn_MAP_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_UAC_BarringPerCat = { - "UAC-BarringPerCat", - "UAC-BarringPerCat", - &asn_OP_SEQUENCE, - asn_DEF_UAC_BarringPerCat_tags_1, - sizeof(asn_DEF_UAC_BarringPerCat_tags_1) - /sizeof(asn_DEF_UAC_BarringPerCat_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringPerCat_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringPerCat_tags_1) - /sizeof(asn_DEF_UAC_BarringPerCat_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UAC_BarringPerCat_1, - 2, /* Elements count */ - &asn_SPC_UAC_BarringPerCat_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerCat.h b/src/codec_utils/SYSINFO/UAC-BarringPerCat.h deleted file mode 100644 index 08caed539..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerCat.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringPerCat_H_ -#define _UAC_BarringPerCat_H_ - - -#include - -/* Including external dependencies */ -#include -#include "UAC-BarringInfoSetIndex.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* UAC-BarringPerCat */ -typedef struct UAC_BarringPerCat { - long accessCategory; - UAC_BarringInfoSetIndex_t uac_barringInfoSetIndex; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UAC_BarringPerCat_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCat; -extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringPerCat_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringPerCat_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringPerCat_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerCatList.c b/src/codec_utils/SYSINFO/UAC-BarringPerCatList.c deleted file mode 100644 index 0149fdcb1..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerCatList.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringPerCatList.h" - -#include "UAC-BarringPerCat.h" -static asn_oer_constraints_t asn_OER_type_UAC_BarringPerCatList_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..63)) */}; -asn_per_constraints_t asn_PER_type_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_UAC_BarringPerCatList_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UAC_BarringPerCat, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UAC_BarringPerCatList_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerCatList_specs_1 = { - sizeof(struct UAC_BarringPerCatList), - offsetof(struct UAC_BarringPerCatList, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCatList = { - "UAC-BarringPerCatList", - "UAC-BarringPerCatList", - &asn_OP_SEQUENCE_OF, - asn_DEF_UAC_BarringPerCatList_tags_1, - sizeof(asn_DEF_UAC_BarringPerCatList_tags_1) - /sizeof(asn_DEF_UAC_BarringPerCatList_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringPerCatList_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringPerCatList_tags_1) - /sizeof(asn_DEF_UAC_BarringPerCatList_tags_1[0]), /* 1 */ - { &asn_OER_type_UAC_BarringPerCatList_constr_1, &asn_PER_type_UAC_BarringPerCatList_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UAC_BarringPerCatList_1, - 1, /* Single element */ - &asn_SPC_UAC_BarringPerCatList_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerCatList.h b/src/codec_utils/SYSINFO/UAC-BarringPerCatList.h deleted file mode 100644 index f3b05af10..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerCatList.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringPerCatList_H_ -#define _UAC_BarringPerCatList_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UAC_BarringPerCat; - -/* UAC-BarringPerCatList */ -typedef struct UAC_BarringPerCatList { - A_SEQUENCE_OF(struct UAC_BarringPerCat) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UAC_BarringPerCatList_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerCatList; -extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerCatList_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringPerCatList_1[1]; -extern asn_per_constraints_t asn_PER_type_UAC_BarringPerCatList_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringPerCatList_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.c b/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.c deleted file mode 100644 index 1797ddfe5..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringPerPLMN-List.h" - -#include "UAC-BarringPerPLMN.h" -static asn_oer_constraints_t asn_OER_type_UAC_BarringPerPLMN_List_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1 /* (SIZE(1..12)) */}; -asn_per_constraints_t asn_PER_type_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_UAC_BarringPerPLMN_List_1[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_UAC_BarringPerPLMN, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_UAC_BarringPerPLMN_List_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerPLMN_List_specs_1 = { - sizeof(struct UAC_BarringPerPLMN_List), - offsetof(struct UAC_BarringPerPLMN_List, _asn_ctx), - 0, /* XER encoding is XMLDelimitedItemList */ -}; -asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN_List = { - "UAC-BarringPerPLMN-List", - "UAC-BarringPerPLMN-List", - &asn_OP_SEQUENCE_OF, - asn_DEF_UAC_BarringPerPLMN_List_tags_1, - sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1) - /sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringPerPLMN_List_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1) - /sizeof(asn_DEF_UAC_BarringPerPLMN_List_tags_1[0]), /* 1 */ - { &asn_OER_type_UAC_BarringPerPLMN_List_constr_1, &asn_PER_type_UAC_BarringPerPLMN_List_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_UAC_BarringPerPLMN_List_1, - 1, /* Single element */ - &asn_SPC_UAC_BarringPerPLMN_List_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.h b/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.h deleted file mode 100644 index 8a3711397..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN-List.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringPerPLMN_List_H_ -#define _UAC_BarringPerPLMN_List_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward declarations */ -struct UAC_BarringPerPLMN; - -/* UAC-BarringPerPLMN-List */ -typedef struct UAC_BarringPerPLMN_List { - A_SEQUENCE_OF(struct UAC_BarringPerPLMN) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UAC_BarringPerPLMN_List_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN_List; -extern asn_SET_OF_specifics_t asn_SPC_UAC_BarringPerPLMN_List_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_List_1[1]; -extern asn_per_constraints_t asn_PER_type_UAC_BarringPerPLMN_List_constr_1; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringPerPLMN_List_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.c b/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.c deleted file mode 100644 index 44735c6c3..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UAC-BarringPerPLMN.h" - -#include "UAC-BarringPerCatList.h" -static int -memb_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_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_oer_constraints_t asn_OER_type_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { - { 0, 0 }, - 63 /* (SIZE(63..63)) */}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_uac_ImplicitACBarringList_constr_4 CC_NOTUSED = { - { 0, 0 }, - 63 /* (SIZE(63..63)) */}; -static asn_per_constraints_t asn_PER_memb_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_oer_constraints_t asn_OER_type_uac_ACBarringListType_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_memb_plmn_IdentityIndex_constr_2 CC_NOTUSED = { - { 1, 1 } /* (1..12) */, - -1}; -static asn_per_constraints_t asn_PER_memb_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_uac_ImplicitACBarringList_4[] = { - { ATF_POINTER, 0, 0, - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_UAC_BarringInfoSetIndex, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "" - }, -}; -static const ber_tlv_tag_t asn_DEF_uac_ImplicitACBarringList_tags_4[] = { - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static asn_SET_OF_specifics_t asn_SPC_uac_ImplicitACBarringList_specs_4 = { - sizeof(struct UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList), - offsetof(struct 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_uac_ImplicitACBarringList_4 = { - "uac-ImplicitACBarringList", - "uac-ImplicitACBarringList", - &asn_OP_SEQUENCE_OF, - asn_DEF_uac_ImplicitACBarringList_tags_4, - sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4) - /sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4[0]) - 1, /* 1 */ - asn_DEF_uac_ImplicitACBarringList_tags_4, /* Same as above */ - sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4) - /sizeof(asn_DEF_uac_ImplicitACBarringList_tags_4[0]), /* 2 */ - { &asn_OER_type_uac_ImplicitACBarringList_constr_4, &asn_PER_type_uac_ImplicitACBarringList_constr_4, SEQUENCE_OF_constraint }, - asn_MBR_uac_ImplicitACBarringList_4, - 1, /* Single element */ - &asn_SPC_uac_ImplicitACBarringList_specs_4 /* Additional specs */ -}; - -static asn_TYPE_member_t asn_MBR_uac_ACBarringListType_3[] = { - { ATF_POINTER, 0, offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ImplicitACBarringList), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - 0, - &asn_DEF_uac_ImplicitACBarringList_4, - 0, - { &asn_OER_memb_uac_ImplicitACBarringList_constr_4, &asn_PER_memb_uac_ImplicitACBarringList_constr_4, memb_uac_ImplicitACBarringList_constraint_3 }, - 0, 0, /* No default value */ - "uac-ImplicitACBarringList" - }, - { ATF_POINTER, 0, offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, choice.uac_ExplicitACBarringList), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_UAC_BarringPerCatList, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-ExplicitACBarringList" - }, -}; -static const asn_TYPE_tag2member_t asn_MAP_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_uac_ACBarringListType_specs_3 = { - sizeof(struct UAC_BarringPerPLMN__uac_ACBarringListType), - offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, _asn_ctx), - offsetof(struct UAC_BarringPerPLMN__uac_ACBarringListType, present), - sizeof(((struct UAC_BarringPerPLMN__uac_ACBarringListType *)0)->present), - asn_MAP_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_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) */ - { &asn_OER_type_uac_ACBarringListType_constr_3, &asn_PER_type_uac_ACBarringListType_constr_3, CHOICE_constraint }, - asn_MBR_uac_ACBarringListType_3, - 2, /* Elements count */ - &asn_SPC_uac_ACBarringListType_specs_3 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UAC_BarringPerPLMN, plmn_IdentityIndex), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NativeInteger, - 0, - { &asn_OER_memb_plmn_IdentityIndex_constr_2, &asn_PER_memb_plmn_IdentityIndex_constr_2, memb_plmn_IdentityIndex_constraint_1 }, - 0, 0, /* No default value */ - "plmn-IdentityIndex" - }, - { ATF_POINTER, 1, offsetof(struct UAC_BarringPerPLMN, uac_ACBarringListType), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - +1, /* EXPLICIT tag at current level */ - &asn_DEF_uac_ACBarringListType_3, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "uac-ACBarringListType" - }, -}; -static const int asn_MAP_UAC_BarringPerPLMN_oms_1[] = { 1 }; -static const ber_tlv_tag_t asn_DEF_UAC_BarringPerPLMN_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_UAC_BarringPerPLMN_specs_1 = { - sizeof(struct UAC_BarringPerPLMN), - offsetof(struct UAC_BarringPerPLMN, _asn_ctx), - asn_MAP_UAC_BarringPerPLMN_tag2el_1, - 2, /* Count of tags in the map */ - asn_MAP_UAC_BarringPerPLMN_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - -1, /* First extension addition */ -}; -asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN = { - "UAC-BarringPerPLMN", - "UAC-BarringPerPLMN", - &asn_OP_SEQUENCE, - asn_DEF_UAC_BarringPerPLMN_tags_1, - sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1) - /sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ - asn_DEF_UAC_BarringPerPLMN_tags_1, /* Same as above */ - sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1) - /sizeof(asn_DEF_UAC_BarringPerPLMN_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UAC_BarringPerPLMN_1, - 2, /* Elements count */ - &asn_SPC_UAC_BarringPerPLMN_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.h b/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.h deleted file mode 100644 index 23fed3a96..000000000 --- a/src/codec_utils/SYSINFO/UAC-BarringPerPLMN.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UAC_BarringPerPLMN_H_ -#define _UAC_BarringPerPLMN_H_ - - -#include - -/* Including external dependencies */ -#include -#include "UAC-BarringInfoSetIndex.h" -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UAC_BarringPerPLMN__uac_ACBarringListType_PR { - UAC_BarringPerPLMN__uac_ACBarringListType_PR_NOTHING, /* No components present */ - UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ImplicitACBarringList, - UAC_BarringPerPLMN__uac_ACBarringListType_PR_uac_ExplicitACBarringList -} UAC_BarringPerPLMN__uac_ACBarringListType_PR; - -/* Forward declarations */ -struct UAC_BarringPerCatList; - -/* UAC-BarringPerPLMN */ -typedef struct UAC_BarringPerPLMN { - long plmn_IdentityIndex; - struct UAC_BarringPerPLMN__uac_ACBarringListType { - UAC_BarringPerPLMN__uac_ACBarringListType_PR present; - union UAC_BarringPerPLMN__uac_ACBarringListType_u { - struct UAC_BarringPerPLMN__uac_ACBarringListType__uac_ImplicitACBarringList { - A_SEQUENCE_OF(UAC_BarringInfoSetIndex_t) list; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; - } *uac_ImplicitACBarringList; - struct 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; -} UAC_BarringPerPLMN_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UAC_BarringPerPLMN; -extern asn_SEQUENCE_specifics_t asn_SPC_UAC_BarringPerPLMN_specs_1; -extern asn_TYPE_member_t asn_MBR_UAC_BarringPerPLMN_1[2]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UAC_BarringPerPLMN_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UE-TimersAndConstants.c b/src/codec_utils/SYSINFO/UE-TimersAndConstants.c deleted file mode 100644 index 041c985be..000000000 --- a/src/codec_utils/SYSINFO/UE-TimersAndConstants.c +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "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_oer_constraints_t asn_OER_type_t300_constr_2 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t301_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t310_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n310_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t311_constr_37 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_n311_constr_45 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_oer_constraints_t asn_OER_type_t319_constr_54 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_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_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_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_t300_specs_2 = { - asn_MAP_t300_value2enum_2, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_t300_2 = { - "t300", - "t300", - &asn_OP_NativeEnumerated, - asn_DEF_t300_tags_2, - sizeof(asn_DEF_t300_tags_2) - /sizeof(asn_DEF_t300_tags_2[0]) - 1, /* 1 */ - asn_DEF_t300_tags_2, /* Same as above */ - sizeof(asn_DEF_t300_tags_2) - /sizeof(asn_DEF_t300_tags_2[0]), /* 2 */ - { &asn_OER_type_t300_constr_2, &asn_PER_type_t300_constr_2, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_t300_specs_2 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_t301_specs_11 = { - asn_MAP_t301_value2enum_11, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_t301_11 = { - "t301", - "t301", - &asn_OP_NativeEnumerated, - asn_DEF_t301_tags_11, - sizeof(asn_DEF_t301_tags_11) - /sizeof(asn_DEF_t301_tags_11[0]) - 1, /* 1 */ - asn_DEF_t301_tags_11, /* Same as above */ - sizeof(asn_DEF_t301_tags_11) - /sizeof(asn_DEF_t301_tags_11[0]), /* 2 */ - { &asn_OER_type_t301_constr_11, &asn_PER_type_t301_constr_11, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_t301_specs_11 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_t310_specs_20 = { - asn_MAP_t310_value2enum_20, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_t310_20 = { - "t310", - "t310", - &asn_OP_NativeEnumerated, - asn_DEF_t310_tags_20, - sizeof(asn_DEF_t310_tags_20) - /sizeof(asn_DEF_t310_tags_20[0]) - 1, /* 1 */ - asn_DEF_t310_tags_20, /* Same as above */ - sizeof(asn_DEF_t310_tags_20) - /sizeof(asn_DEF_t310_tags_20[0]), /* 2 */ - { &asn_OER_type_t310_constr_20, &asn_PER_type_t310_constr_20, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_t310_specs_20 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_n310_specs_28 = { - asn_MAP_n310_value2enum_28, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_n310_28 = { - "n310", - "n310", - &asn_OP_NativeEnumerated, - asn_DEF_n310_tags_28, - sizeof(asn_DEF_n310_tags_28) - /sizeof(asn_DEF_n310_tags_28[0]) - 1, /* 1 */ - asn_DEF_n310_tags_28, /* Same as above */ - sizeof(asn_DEF_n310_tags_28) - /sizeof(asn_DEF_n310_tags_28[0]), /* 2 */ - { &asn_OER_type_n310_constr_28, &asn_PER_type_n310_constr_28, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_n310_specs_28 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_t311_specs_37 = { - asn_MAP_t311_value2enum_37, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_t311_37 = { - "t311", - "t311", - &asn_OP_NativeEnumerated, - asn_DEF_t311_tags_37, - sizeof(asn_DEF_t311_tags_37) - /sizeof(asn_DEF_t311_tags_37[0]) - 1, /* 1 */ - asn_DEF_t311_tags_37, /* Same as above */ - sizeof(asn_DEF_t311_tags_37) - /sizeof(asn_DEF_t311_tags_37[0]), /* 2 */ - { &asn_OER_type_t311_constr_37, &asn_PER_type_t311_constr_37, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_t311_specs_37 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_n311_specs_45 = { - asn_MAP_n311_value2enum_45, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_n311_45 = { - "n311", - "n311", - &asn_OP_NativeEnumerated, - asn_DEF_n311_tags_45, - sizeof(asn_DEF_n311_tags_45) - /sizeof(asn_DEF_n311_tags_45[0]) - 1, /* 1 */ - asn_DEF_n311_tags_45, /* Same as above */ - sizeof(asn_DEF_n311_tags_45) - /sizeof(asn_DEF_n311_tags_45[0]), /* 2 */ - { &asn_OER_type_n311_constr_45, &asn_PER_type_n311_constr_45, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_n311_specs_45 /* Additional specs */ -}; - -static const asn_INTEGER_enum_map_t asn_MAP_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_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_t319_specs_54 = { - asn_MAP_t319_value2enum_54, /* "tag" => N; sorted by tag */ - asn_MAP_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_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_t319_54 = { - "t319", - "t319", - &asn_OP_NativeEnumerated, - asn_DEF_t319_tags_54, - sizeof(asn_DEF_t319_tags_54) - /sizeof(asn_DEF_t319_tags_54[0]) - 1, /* 1 */ - asn_DEF_t319_tags_54, /* Same as above */ - sizeof(asn_DEF_t319_tags_54) - /sizeof(asn_DEF_t319_tags_54[0]), /* 2 */ - { &asn_OER_type_t319_constr_54, &asn_PER_type_t319_constr_54, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_t319_specs_54 /* Additional specs */ -}; - -asn_TYPE_member_t asn_MBR_UE_TimersAndConstants_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t300), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_t300_2, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "t300" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t301), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_t301_11, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "t301" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t310), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_t310_20, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "t310" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, n310), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_n310_28, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "n310" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t311), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_t311_37, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "t311" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, n311), - (ASN_TAG_CLASS_CONTEXT | (5 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_n311_45, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "n311" - }, - { ATF_NOFLAGS, 0, offsetof(struct UE_TimersAndConstants, t319), - (ASN_TAG_CLASS_CONTEXT | (6 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_t319_54, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "t319" - }, -}; -static const ber_tlv_tag_t asn_DEF_UE_TimersAndConstants_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_UE_TimersAndConstants_specs_1 = { - sizeof(struct UE_TimersAndConstants), - offsetof(struct UE_TimersAndConstants, _asn_ctx), - asn_MAP_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_UE_TimersAndConstants = { - "UE-TimersAndConstants", - "UE-TimersAndConstants", - &asn_OP_SEQUENCE, - asn_DEF_UE_TimersAndConstants_tags_1, - sizeof(asn_DEF_UE_TimersAndConstants_tags_1) - /sizeof(asn_DEF_UE_TimersAndConstants_tags_1[0]), /* 1 */ - asn_DEF_UE_TimersAndConstants_tags_1, /* Same as above */ - sizeof(asn_DEF_UE_TimersAndConstants_tags_1) - /sizeof(asn_DEF_UE_TimersAndConstants_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UE_TimersAndConstants_1, - 7, /* Elements count */ - &asn_SPC_UE_TimersAndConstants_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UE-TimersAndConstants.h b/src/codec_utils/SYSINFO/UE-TimersAndConstants.h deleted file mode 100644 index 01525c9c9..000000000 --- a/src/codec_utils/SYSINFO/UE-TimersAndConstants.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UE_TimersAndConstants_H_ -#define _UE_TimersAndConstants_H_ - - -#include - -/* Including external dependencies */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum UE_TimersAndConstants__t300 { - UE_TimersAndConstants__t300_ms100 = 0, - UE_TimersAndConstants__t300_ms200 = 1, - UE_TimersAndConstants__t300_ms300 = 2, - UE_TimersAndConstants__t300_ms400 = 3, - UE_TimersAndConstants__t300_ms600 = 4, - UE_TimersAndConstants__t300_ms1000 = 5, - UE_TimersAndConstants__t300_ms1500 = 6, - UE_TimersAndConstants__t300_ms2000 = 7 -} e_UE_TimersAndConstants__t300; -typedef enum UE_TimersAndConstants__t301 { - UE_TimersAndConstants__t301_ms100 = 0, - UE_TimersAndConstants__t301_ms200 = 1, - UE_TimersAndConstants__t301_ms300 = 2, - UE_TimersAndConstants__t301_ms400 = 3, - UE_TimersAndConstants__t301_ms600 = 4, - UE_TimersAndConstants__t301_ms1000 = 5, - UE_TimersAndConstants__t301_ms1500 = 6, - UE_TimersAndConstants__t301_ms2000 = 7 -} e_UE_TimersAndConstants__t301; -typedef enum UE_TimersAndConstants__t310 { - UE_TimersAndConstants__t310_ms0 = 0, - UE_TimersAndConstants__t310_ms50 = 1, - UE_TimersAndConstants__t310_ms100 = 2, - UE_TimersAndConstants__t310_ms200 = 3, - UE_TimersAndConstants__t310_ms500 = 4, - UE_TimersAndConstants__t310_ms1000 = 5, - UE_TimersAndConstants__t310_ms2000 = 6 -} e_UE_TimersAndConstants__t310; -typedef enum UE_TimersAndConstants__n310 { - UE_TimersAndConstants__n310_n1 = 0, - UE_TimersAndConstants__n310_n2 = 1, - UE_TimersAndConstants__n310_n3 = 2, - UE_TimersAndConstants__n310_n4 = 3, - UE_TimersAndConstants__n310_n6 = 4, - UE_TimersAndConstants__n310_n8 = 5, - UE_TimersAndConstants__n310_n10 = 6, - UE_TimersAndConstants__n310_n20 = 7 -} e_UE_TimersAndConstants__n310; -typedef enum UE_TimersAndConstants__t311 { - UE_TimersAndConstants__t311_ms1000 = 0, - UE_TimersAndConstants__t311_ms3000 = 1, - UE_TimersAndConstants__t311_ms5000 = 2, - UE_TimersAndConstants__t311_ms10000 = 3, - UE_TimersAndConstants__t311_ms15000 = 4, - UE_TimersAndConstants__t311_ms20000 = 5, - UE_TimersAndConstants__t311_ms30000 = 6 -} e_UE_TimersAndConstants__t311; -typedef enum UE_TimersAndConstants__n311 { - UE_TimersAndConstants__n311_n1 = 0, - UE_TimersAndConstants__n311_n2 = 1, - UE_TimersAndConstants__n311_n3 = 2, - UE_TimersAndConstants__n311_n4 = 3, - UE_TimersAndConstants__n311_n5 = 4, - UE_TimersAndConstants__n311_n6 = 5, - UE_TimersAndConstants__n311_n8 = 6, - UE_TimersAndConstants__n311_n10 = 7 -} e_UE_TimersAndConstants__n311; -typedef enum UE_TimersAndConstants__t319 { - UE_TimersAndConstants__t319_ms100 = 0, - UE_TimersAndConstants__t319_ms200 = 1, - UE_TimersAndConstants__t319_ms300 = 2, - UE_TimersAndConstants__t319_ms400 = 3, - UE_TimersAndConstants__t319_ms600 = 4, - UE_TimersAndConstants__t319_ms1000 = 5, - UE_TimersAndConstants__t319_ms1500 = 6, - UE_TimersAndConstants__t319_ms2000 = 7 -} e_UE_TimersAndConstants__t319; - -/* UE-TimersAndConstants */ -typedef struct 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; -} UE_TimersAndConstants_t; - -/* Implementation */ -/* extern asn_TYPE_descriptor_t asn_DEF_t300_2; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_t301_11; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_t310_20; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_n310_28; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_t311_37; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_n311_45; // (Use -fall-defs-global to expose) */ -/* extern asn_TYPE_descriptor_t asn_DEF_t319_54; // (Use -fall-defs-global to expose) */ -extern asn_TYPE_descriptor_t asn_DEF_UE_TimersAndConstants; -extern asn_SEQUENCE_specifics_t asn_SPC_UE_TimersAndConstants_specs_1; -extern asn_TYPE_member_t asn_MBR_UE_TimersAndConstants_1[7]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UE_TimersAndConstants_H_ */ -#include diff --git a/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.c b/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.c deleted file mode 100644 index 31db6f669..000000000 --- a/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "UplinkConfigCommonSIB.h" - -asn_TYPE_member_t asn_MBR_UplinkConfigCommonSIB_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, frequencyInfoUL), - (ASN_TAG_CLASS_CONTEXT | (0 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_FrequencyInfoUL_SIB, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "frequencyInfoUL" - }, - { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, initialUplinkBWP), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_BWP_UplinkCommon, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "initialUplinkBWP" - }, - { ATF_NOFLAGS, 0, offsetof(struct UplinkConfigCommonSIB, timeAlignmentTimerCommon), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_TimeAlignmentTimer, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "timeAlignmentTimerCommon" - }, -}; -static const ber_tlv_tag_t asn_DEF_UplinkConfigCommonSIB_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) -}; -static const asn_TYPE_tag2member_t asn_MAP_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_UplinkConfigCommonSIB_specs_1 = { - sizeof(struct UplinkConfigCommonSIB), - offsetof(struct UplinkConfigCommonSIB, _asn_ctx), - asn_MAP_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_UplinkConfigCommonSIB = { - "UplinkConfigCommonSIB", - "UplinkConfigCommonSIB", - &asn_OP_SEQUENCE, - asn_DEF_UplinkConfigCommonSIB_tags_1, - sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1) - /sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ - asn_DEF_UplinkConfigCommonSIB_tags_1, /* Same as above */ - sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1) - /sizeof(asn_DEF_UplinkConfigCommonSIB_tags_1[0]), /* 1 */ - { 0, 0, SEQUENCE_constraint }, - asn_MBR_UplinkConfigCommonSIB_1, - 3, /* Elements count */ - &asn_SPC_UplinkConfigCommonSIB_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.h b/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.h deleted file mode 100644 index 54b021501..000000000 --- a/src/codec_utils/SYSINFO/UplinkConfigCommonSIB.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "NR-RRC-Definitions" - * found in "../../mib_sib1.asn1" - * `asn1c -D ./new_out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _UplinkConfigCommonSIB_H_ -#define _UplinkConfigCommonSIB_H_ - - -#include - -/* Including external dependencies */ -#include "FrequencyInfoUL-SIB.h" -#include "BWP-UplinkCommon.h" -#include "TimeAlignmentTimer.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* UplinkConfigCommonSIB */ -typedef struct UplinkConfigCommonSIB { - FrequencyInfoUL_SIB_t frequencyInfoUL; - BWP_UplinkCommon_t initialUplinkBWP; - TimeAlignmentTimer_t timeAlignmentTimerCommon; - - /* Context for parsing across buffer boundaries */ - asn_struct_ctx_t _asn_ctx; -} UplinkConfigCommonSIB_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_UplinkConfigCommonSIB; -extern asn_SEQUENCE_specifics_t asn_SPC_UplinkConfigCommonSIB_specs_1; -extern asn_TYPE_member_t asn_MBR_UplinkConfigCommonSIB_1[3]; - -#ifdef __cplusplus -} -#endif - -#endif /* _UplinkConfigCommonSIB_H_ */ -#include -- 2.16.6