-- ASN1START
-- TAG-BCCH-BCH-MESSAGE-START

BCCH-BCH-Message ::=            SEQUENCE {
    message                         BCCH-BCH-MessageType
}

BCCH-BCH-MessageType ::=        CHOICE {
    mib                             MIB,
    messageClassExtension           SEQUENCE {}
}

-- TAG-BCCH-BCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BCCH-DL-SCH-MESSAGE-START

BCCH-DL-SCH-Message ::=         SEQUENCE {
    message                         BCCH-DL-SCH-MessageType
}

BCCH-DL-SCH-MessageType ::=     CHOICE {
    c1                              CHOICE {
        systemInformation               SystemInformation,
        systemInformationBlockType1     SIB1
    },
    messageClassExtension           SEQUENCE {}
}

-- TAG-BCCH-DL-SCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DL-CCCH-MESSAGE-START


DL-CCCH-Message ::=             SEQUENCE {
    message                         DL-CCCH-MessageType
}

DL-CCCH-MessageType ::=         CHOICE {
    c1                              CHOICE {
        rrcReject                       RRCReject,
        rrcSetup                        RRCSetup,
        spare2                          NULL,
        spare1                          NULL
    },
    messageClassExtension           SEQUENCE {}
}

-- TAG-DL-CCCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DL-DCCH-MESSAGE-START

DL-DCCH-Message ::=              SEQUENCE {
    message                         DL-DCCH-MessageType
}

DL-DCCH-MessageType ::=         CHOICE {
    c1                              CHOICE {
        rrcReconfiguration              RRCReconfiguration,
        rrcResume                       RRCResume,
        rrcRelease                      RRCRelease,
        rrcReestablishment              RRCReestablishment,
        securityModeCommand             SecurityModeCommand,
        dlInformationTransfer           DLInformationTransfer,
        ueCapabilityEnquiry             UECapabilityEnquiry,
        counterCheck                    CounterCheck,
        mobilityFromNRCommand           MobilityFromNRCommand,
        spare7 NULL,
        spare6 NULL, spare5 NULL, spare4 NULL,
        spare3 NULL, spare2 NULL, spare1 NULL
    },
    messageClassExtension   SEQUENCE {}
}

-- TAG-DL-DCCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCCH-PCH-MESSAGE-START

PCCH-Message ::=                SEQUENCE {
    message                         PCCH-MessageType
}

PCCH-MessageType ::=            CHOICE {
    c1                              CHOICE {
        paging                          Paging,
        spare1  NULL
    },
    messageClassExtension       SEQUENCE {}
}

-- TAG-PCCH-PCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UL-CCCH-MESSAGE-START


UL-CCCH-Message ::=             SEQUENCE {
    message                         UL-CCCH-MessageType
}

UL-CCCH-MessageType ::=         CHOICE {
    c1                              CHOICE {
        rrcSetupRequest                 RRCSetupRequest,
        rrcResumeRequest                RRCResumeRequest,
        rrcReestablishmentRequest       RRCReestablishmentRequest,
        rrcSystemInfoRequest            RRCSystemInfoRequest
    },
    messageClassExtension           SEQUENCE {}
}

-- TAG-UL-CCCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UL-CCCH1-MESSAGE-START


UL-CCCH1-Message ::=            SEQUENCE {
    message                         UL-CCCH1-MessageType
}

UL-CCCH1-MessageType ::=        CHOICE {
    c1                              CHOICE {
        rrcResumeRequest1               RRCResumeRequest1,
        spare3 NULL,
        spare2 NULL,
        spare1 NULL

    },
    messageClassExtension SEQUENCE {}
}

-- TAG-UL-CCCH1-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UL-DCCH-MESSAGE-START

UL-DCCH-Message ::=             SEQUENCE {
    message                         UL-DCCH-MessageType
}

UL-DCCH-MessageType ::=         CHOICE {
    c1                              CHOICE {
        measurementReport               MeasurementReport,
        rrcReconfigurationComplete      RRCReconfigurationComplete,
        rrcSetupComplete                RRCSetupComplete,
        rrcReestablishmentComplete      RRCReestablishmentComplete,
        rrcResumeComplete               RRCResumeComplete,
        securityModeComplete            SecurityModeComplete,
        securityModeFailure             SecurityModeFailure,
        ulInformationTransfer           ULInformationTransfer,
        locationMeasurementIndication   LocationMeasurementIndication,
        ueCapabilityInformation         UECapabilityInformation,
        counterCheckResponse            CounterCheckResponse,
        ueAssistanceInformation         UEAssistanceInformation,
        failureInformation              FailureInformation, 
        ulInformationTransferMRDC       ULInformationTransferMRDC,
        scgFailureInformation           SCGFailureInformation,
        scgFailureInformationEUTRA      SCGFailureInformationEUTRA
    },
    messageClassExtension           SEQUENCE {}
}

-- TAG-UL-DCCH-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-COUNTERCHECK-START


CounterCheck ::=                SEQUENCE {
    rrc-TransactionIdentifier       RRC-TransactionIdentifier,
    criticalExtensions              CHOICE {
        counterCheck                    CounterCheck-IEs,
        criticalExtensionsFuture        SEQUENCE {}
    }
}

CounterCheck-IEs ::=            SEQUENCE {
    drb-CountMSB-InfoList           DRB-CountMSB-InfoList,
    lateNonCriticalExtension        OCTET STRING                        OPTIONAL,
    nonCriticalExtension            SEQUENCE {}                         OPTIONAL
}

DRB-CountMSB-InfoList ::=       SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info

DRB-CountMSB-Info ::=           SEQUENCE {
    drb-Identity                    DRB-Identity,
    countMSB-Uplink                 INTEGER(0..33554431),
    countMSB-Downlink               INTEGER(0..33554431)
}

-- TAG-COUNTERCHECK-STOP
-- ASN1STOP
-- ASN1START
-- TAG-COUNTERCHECKRESPONSE-START

CounterCheckResponse ::=        SEQUENCE {
    rrc-TransactionIdentifier       RRC-TransactionIdentifier,
    criticalExtensions              CHOICE {
        counterCheckResponse            CounterCheckResponse-IEs,
        criticalExtensionsFuture        SEQUENCE {}
    }
}

CounterCheckResponse-IEs ::=    SEQUENCE {
    drb-CountInfoList               DRB-CountInfoList,
    lateNonCriticalExtension        OCTET STRING                        OPTIONAL,
    nonCriticalExtension            SEQUENCE {}                         OPTIONAL

}

DRB-CountInfoList ::=           SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo

DRB-CountInfo ::=               SEQUENCE {
    drb-Identity                    DRB-Identity,
    count-Uplink                    INTEGER(0..4294967295),
    count-Downlink                  INTEGER(0..4294967295)
}

-- TAG-COUNTERCHECKRESPONSE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DLINFORMATIONTRANSFER-START

DLInformationTransfer ::=           SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        dlInformationTransfer           DLInformationTransfer-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

DLInformationTransfer-IEs ::=   SEQUENCE {
    dedicatedNAS-Message                DedicatedNAS-Message                OPTIONAL,   -- Need N
    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                SEQUENCE {} OPTIONAL
}

-- TAG-DLINFORMATIONTRANSFER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FAILUREINFORMATION-START

FailureInformation ::=         SEQUENCE {
    criticalExtensions             CHOICE {
        failureInformation             FailureInformation-IEs,
        criticalExtensionsFuture       SEQUENCE {}
    }
}

FailureInformation-IEs ::=     SEQUENCE {
    failureInfoRLC-Bearer          FailureInfoRLC-Bearer    OPTIONAL,
    lateNonCriticalExtension       OCTET STRING             OPTIONAL,
    nonCriticalExtension           SEQUENCE {}              OPTIONAL
}

FailureInfoRLC-Bearer ::=      SEQUENCE {
    cellGroupId                    CellGroupId,
    logicalChannelIdentity         LogicalChannelIdentity,
    failureType                    ENUMERATED {duplication, spare3, spare2, spare1}
}

-- TAG-FAILUREINFORMATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-LOCATIONMEASUREMENTINDICATION-START

LocationMeasurementIndication ::=   SEQUENCE {
    criticalExtensions                      CHOICE {
        locationMeasurementIndication               LocationMeasurementIndication-IEs,
        criticalExtensionsFuture                    SEQUENCE {}
    }
}

LocationMeasurementIndication-IEs ::=       SEQUENCE {
    measurementIndication       SetupRelease {LocationMeasurementInfo},

    lateNonCriticalExtension                OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                    SEQUENCE{}                                                              OPTIONAL
}

-- TAG-LOCATIONMEASUREMENTINDICATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASUREMENTREPORT-START

MeasurementReport ::=               SEQUENCE {
    criticalExtensions                  CHOICE {
        measurementReport                   MeasurementReport-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

MeasurementReport-IEs ::=           SEQUENCE {
    measResults                         MeasResults,

    lateNonCriticalExtension                OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                    SEQUENCE{}                                                              OPTIONAL
}

-- TAG-MEASUREMENTREPORT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MIB-START

MIB ::=                             SEQUENCE {
    systemFrameNumber                   BIT STRING (SIZE (6)),
    subCarrierSpacingCommon             ENUMERATED {scs15or60, scs30or120},
    ssb-SubcarrierOffset                INTEGER (0..15),
    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},
    pdcch-ConfigSIB1                    PDCCH-ConfigSIB1,
    cellBarred                          ENUMERATED {barred, notBarred},
    intraFreqReselection                ENUMERATED {allowed, notAllowed},
    spare                               BIT STRING (SIZE (1))
}

-- TAG-MIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MOBILITYFROMNRCOMMAND-START

MobilityFromNRCommand ::=       SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
            mobilityFromNRCommand               MobilityFromNRCommand-IEs,
            criticalExtensionsFuture                SEQUENCE {}
    }
}

MobilityFromNRCommand-IEs ::=   SEQUENCE {
    targetRAT-Type                          ENUMERATED { eutra, spare3, spare2, spare1, ...},
    targetRAT-MessageContainer              OCTET STRING,
    nas-SecurityParamFromNR                 OCTET STRING                                OPTIONAL,   -- Cond HO-ToEPC
    lateNonCriticalExtension                OCTET STRING                                OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                                 OPTIONAL
}

-- TAG-MOBILITYFROMNRCOMMAND-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PAGING-START

Paging ::=                          SEQUENCE {
    pagingRecordList                        PagingRecordList                                                        OPTIONAL, -- Need N
    lateNonCriticalExtension                OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                    SEQUENCE{}                                                              OPTIONAL
}

PagingRecordList ::=                SEQUENCE (SIZE(1..maxNrofPageRec)) OF PagingRecord

PagingRecord ::=                    SEQUENCE {
    ue-Identity                         PagingUE-Identity,
    accessType                          ENUMERATED {non3GPP}    OPTIONAL,   -- Need N
    ...
}

PagingUE-Identity ::=               CHOICE {
    ng-5G-S-TMSI                        NG-5G-S-TMSI,
    fullI-RNTI                          I-RNTI-Value,
    ...
}

-- TAG-PAGING-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCREESTABLISHMENT-START

RRCReestablishment ::=              SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReestablishment                  RRCReestablishment-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReestablishment-IEs ::=          SEQUENCE {
    nextHopChainingCount                NextHopChainingCount,
    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-RRCREESTABLISHMENT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCREESTABLISHMENTCOMPLETE-START

RRCReestablishmentComplete ::=      SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReestablishmentComplete          RRCReestablishmentComplete-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReestablishmentComplete-IEs ::=  SEQUENCE {
    lateNonCriticalExtension            OCTET STRING                    OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                     OPTIONAL
}

-- TAG-RRCREESTABLISHMENTCOMPLETE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCREESTABLISHMENTREQUEST-START


RRCReestablishmentRequest ::=       SEQUENCE {
    rrcReestablishmentRequest           RRCReestablishmentRequest-IEs
}

RRCReestablishmentRequest-IEs ::=   SEQUENCE {
    ue-Identity                         ReestabUE-Identity,
    reestablishmentCause                ReestablishmentCause,
    spare                               BIT STRING (SIZE (1))
}

ReestabUE-Identity ::=              SEQUENCE {
    c-RNTI                              RNTI-Value,
    physCellId                          PhysCellId,
    shortMAC-I                          ShortMAC-I
}

ReestablishmentCause ::=            ENUMERATED {reconfigurationFailure, handoverFailure, otherFailure, spare1}

-- TAG-RRCREESTABLISHMENTREQUEST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRECONFIGURATION-START

RRCReconfiguration ::=              SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReconfiguration                  RRCReconfiguration-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReconfiguration-IEs ::=          SEQUENCE {
    radioBearerConfig                       RadioBearerConfig                                                      OPTIONAL, -- Need M
    secondaryCellGroup                      OCTET STRING (CONTAINING CellGroupConfig)                              OPTIONAL, -- Need M
    measConfig                              MeasConfig                                                             OPTIONAL, -- Need M
    lateNonCriticalExtension                OCTET STRING                                                           OPTIONAL,
    nonCriticalExtension                    RRCReconfiguration-v1530-IEs                                           OPTIONAL
}

RRCReconfiguration-v1530-IEs ::=            SEQUENCE {
    masterCellGroup                         OCTET STRING (CONTAINING CellGroupConfig)                              OPTIONAL, -- Need M
    fullConfig                              ENUMERATED {true}                                                      OPTIONAL, -- Cond FullConfig
    dedicatedNAS-MessageList                SEQUENCE (SIZE(1..maxDRB)) OF DedicatedNAS-Message                     OPTIONAL, -- Cond nonHO
    masterKeyUpdate                         MasterKeyUpdate                                                        OPTIONAL, -- Cond MasterKeyChange
    dedicatedSIB1-Delivery                  OCTET STRING (CONTAINING SIB1)                                         OPTIONAL, -- Need N
    dedicatedSystemInformationDelivery      OCTET STRING (CONTAINING SystemInformation)                            OPTIONAL, -- Need N
    otherConfig                             OtherConfig                                                            OPTIONAL, -- Need M
    nonCriticalExtension                    RRCReconfiguration-v1540-IEs                                           OPTIONAL
}

RRCReconfiguration-v1540-IEs ::=        SEQUENCE {
    otherConfig-v1540                       OtherConfig-v1540                      OPTIONAL, -- Need M
    nonCriticalExtension                    RRCReconfiguration-v1560-IEs           OPTIONAL
}

RRCReconfiguration-v1560-IEs ::=            SEQUENCE {
    mrdc-SecondaryCellGroupConfig               SetupRelease { MRDC-SecondaryCellGroupConfig }                    OPTIONAL,   -- Need M
    radioBearerConfig2                          OCTET STRING (CONTAINING RadioBearerConfig)                       OPTIONAL,   -- Need M
    sk-Counter                                  SK-Counter                                                        OPTIONAL,   -- Need N
    nonCriticalExtension                        SEQUENCE {}                                                       OPTIONAL
}

MRDC-SecondaryCellGroupConfig ::=       SEQUENCE {
    mrdc-ReleaseAndAdd                  ENUMERATED {true}                                                         OPTIONAL,   -- Need N
    mrdc-SecondaryCellGroup             CHOICE {
        nr-SCG                              OCTET STRING  (CONTAINING RRCReconfiguration), 
        eutra-SCG                           OCTET STRING
    }
}

MasterKeyUpdate ::=                 SEQUENCE {
    keySetChangeIndicator           BOOLEAN,
    nextHopChainingCount            NextHopChainingCount,
    nas-Container                   OCTET STRING                                                     OPTIONAL,    -- Cond securityNASC
    ...
}

-- TAG-RRCRECONFIGURATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRECONFIGURATIONCOMPLETE-START

RRCReconfigurationComplete ::=              SEQUENCE {
    rrc-TransactionIdentifier                   RRC-TransactionIdentifier,
    criticalExtensions                          CHOICE {
        rrcReconfigurationComplete                  RRCReconfigurationComplete-IEs,
        criticalExtensionsFuture                    SEQUENCE {}
    }
}

RRCReconfigurationComplete-IEs ::=          SEQUENCE {
    lateNonCriticalExtension                    OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                        RRCReconfigurationComplete-v1530-IEs                                    OPTIONAL
}

RRCReconfigurationComplete-v1530-IEs ::=    SEQUENCE {
    uplinkTxDirectCurrentList                   UplinkTxDirectCurrentList                                               OPTIONAL,
    nonCriticalExtension                        RRCReconfigurationComplete-v1560-IEs                                    OPTIONAL
}

RRCReconfigurationComplete-v1560-IEs ::=    SEQUENCE {
    scg-Response                                CHOICE {
        nr-SCG-Response                                 OCTET STRING,
        eutra-SCG-Response                              OCTET STRING
    }                                                                                                                   OPTIONAL,
    nonCriticalExtension                        SEQUENCE {}                                                             OPTIONAL
}


-- TAG-RRCRECONFIGURATIONCOMPLETE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCREJECT-START

RRCReject ::=                       SEQUENCE {
    criticalExtensions                  CHOICE {
        rrcReject                           RRCReject-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReject-IEs ::=                   SEQUENCE {
    waitTime                            RejectWaitTime                                                          OPTIONAL,   -- Need N
    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-RRCREJECT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRELEASE-START

RRCRelease ::=                      SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcRelease                          RRCRelease-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCRelease-IEs ::=                  SEQUENCE {
    redirectedCarrierInfo               RedirectedCarrierInfo                                                   OPTIONAL,   -- Need N
    cellReselectionPriorities           CellReselectionPriorities                                               OPTIONAL,   -- Need R
    suspendConfig                       SuspendConfig                                                           OPTIONAL,   -- Need R
    deprioritisationReq                 SEQUENCE {
        deprioritisationType                ENUMERATED {frequency, nr},
        deprioritisationTimer               ENUMERATED {min5, min10, min15, min30}
    }                                                                                                           OPTIONAL,   -- Need N
    lateNonCriticalExtension                OCTET STRING                                                        OPTIONAL,
    nonCriticalExtension                    RRCRelease-v1540-IEs                                                OPTIONAL
}

RRCRelease-v1540-IEs ::=            SEQUENCE {
    waitTime                           RejectWaitTime                OPTIONAL, -- Need N
    nonCriticalExtension               SEQUENCE {}                   OPTIONAL
}

RedirectedCarrierInfo ::=           CHOICE {
    nr                                  CarrierInfoNR,
    eutra                               RedirectedCarrierInfo-EUTRA,
    ...
}

RedirectedCarrierInfo-EUTRA ::=     SEQUENCE {
    eutraFrequency                          ARFCN-ValueEUTRA,
    cnType                                  ENUMERATED {epc,fiveGC}                                             OPTIONAL    -- Need N
}

CarrierInfoNR ::=                   SEQUENCE {
    carrierFreq                         ARFCN-ValueNR,
    ssbSubcarrierSpacing                SubcarrierSpacing,
    smtc                                SSB-MTC                                                                 OPTIONAL,      -- Need S
    ...
}

SuspendConfig ::=                   SEQUENCE {
    fullI-RNTI                          I-RNTI-Value,
    shortI-RNTI                         ShortI-RNTI-Value,
    ran-PagingCycle                     PagingCycle,
    ran-NotificationAreaInfo            RAN-NotificationAreaInfo                                                OPTIONAL,   -- Need M
    t380                                PeriodicRNAU-TimerValue                                                 OPTIONAL,   -- Need R
    nextHopChainingCount                NextHopChainingCount,
    ...
}


PeriodicRNAU-TimerValue ::=         ENUMERATED { min5, min10, min20, min30, min60, min120, min360, min720}


CellReselectionPriorities ::=       SEQUENCE {
    freqPriorityListEUTRA               FreqPriorityListEUTRA                                                   OPTIONAL,       -- Need M
    freqPriorityListNR                  FreqPriorityListNR                                                      OPTIONAL,       -- Need M
    t320                                ENUMERATED {min5, min10, min20, min30, min60, min120, min180, spare1}   OPTIONAL,       -- Need R
    ...
}

PagingCycle ::=                     ENUMERATED {rf32, rf64, rf128, rf256}

FreqPriorityListEUTRA ::=           SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA

FreqPriorityListNR ::=              SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR

FreqPriorityEUTRA ::=               SEQUENCE {
    carrierFreq                         ARFCN-ValueEUTRA,
    cellReselectionPriority             CellReselectionPriority,
    cellReselectionSubPriority          CellReselectionSubPriority                                              OPTIONAL        -- Need R
}

FreqPriorityNR ::=                  SEQUENCE {
    carrierFreq                         ARFCN-ValueNR,
    cellReselectionPriority             CellReselectionPriority,
    cellReselectionSubPriority          CellReselectionSubPriority                                              OPTIONAL        -- Need R
}

RAN-NotificationAreaInfo ::=        CHOICE {
    cellList                            PLMN-RAN-AreaCellList,
    ran-AreaConfigList                  PLMN-RAN-AreaConfigList,
    ...
}

PLMN-RAN-AreaCellList ::=           SEQUENCE (SIZE (1.. maxPLMNIdentities)) OF PLMN-RAN-AreaCell

PLMN-RAN-AreaCell ::=               SEQUENCE {
    plmn-Identity                       PLMN-Identity                                                           OPTIONAL,   -- Need S
    ran-AreaCells                       SEQUENCE (SIZE (1..32)) OF  CellIdentity
}

PLMN-RAN-AreaConfigList ::=         SEQUENCE (SIZE (1..maxPLMNIdentities)) OF PLMN-RAN-AreaConfig

PLMN-RAN-AreaConfig ::=             SEQUENCE {
    plmn-Identity                       PLMN-Identity                                                           OPTIONAL,   -- Need S
    ran-Area                            SEQUENCE (SIZE (1..16)) OF  RAN-AreaConfig
}

RAN-AreaConfig ::=                  SEQUENCE {
    trackingAreaCode            TrackingAreaCode,
    ran-AreaCodeList            SEQUENCE (SIZE (1..32)) OF  RAN-AreaCode        OPTIONAL    -- Need R
}

-- TAG-RRCRELEASE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRESUME-START

RRCResume ::=                       SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcResume                           RRCResume-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCResume-IEs ::=                   SEQUENCE {
    radioBearerConfig                   RadioBearerConfig                                                       OPTIONAL, -- Need M
    masterCellGroup                     OCTET STRING (CONTAINING CellGroupConfig)                               OPTIONAL, -- Need M
    measConfig                          MeasConfig                                                              OPTIONAL, -- Need M
    fullConfig                          ENUMERATED {true}                                                       OPTIONAL, -- Need N

    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                RRCResume-v1560-IEs                                                     OPTIONAL
}

RRCResume-v1560-IEs ::=             SEQUENCE {
    radioBearerConfig2                  OCTET STRING (CONTAINING RadioBearerConfig)                            OPTIONAL, -- Need M
    sk-Counter                          SK-Counter                                                             OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                             OPTIONAL
}

-- TAG-RRCRESUME-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRESUMECOMPLETE-START

RRCResumeComplete ::=                   SEQUENCE {
    rrc-TransactionIdentifier               RRC-TransactionIdentifier,
    criticalExtensions                      CHOICE {
        rrcResumeComplete                       RRCResumeComplete-IEs,
        criticalExtensionsFuture                SEQUENCE {}
    }
}

RRCResumeComplete-IEs ::=               SEQUENCE {
    dedicatedNAS-Message                    DedicatedNAS-Message                                                    OPTIONAL,
    selectedPLMN-Identity                   INTEGER (1..maxPLMN)                                                    OPTIONAL,
    uplinkTxDirectCurrentList               UplinkTxDirectCurrentList                                               OPTIONAL,
    lateNonCriticalExtension                OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                    SEQUENCE{}                                                              OPTIONAL
}

-- TAG-RRCRESUMECOMPLETE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRESUMEREQUEST-START

RRCResumeRequest ::=            SEQUENCE {
        rrcResumeRequest            RRCResumeRequest-IEs
}

RRCResumeRequest-IEs ::=        SEQUENCE {
    resumeIdentity                  ShortI-RNTI-Value,
    resumeMAC-I                     BIT STRING (SIZE (16)),
    resumeCause                     ResumeCause,
    spare                           BIT STRING (SIZE (1))
}

-- TAG-RRCRESUMEREQUEST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCRESUMEREQUEST1-START

RRCResumeRequest1 ::= SEQUENCE {
       rrcResumeRequest1      RRCResumeRequest1-IEs
}

RRCResumeRequest1-IEs ::=    SEQUENCE {
    resumeIdentity               I-RNTI-Value,
    resumeMAC-I                  BIT STRING (SIZE (16)),
    resumeCause                  ResumeCause,
    spare                        BIT STRING (SIZE (1))
}

-- TAG-RRCRESUMEREQUEST1-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCSETUP-START

RRCSetup ::=                        SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcSetup                            RRCSetup-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCSetup-IEs ::=                    SEQUENCE {
    radioBearerConfig                   RadioBearerConfig,
    masterCellGroup                     OCTET STRING (CONTAINING CellGroupConfig),

    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-RRCSETUP-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCSETUPCOMPLETE-START

RRCSetupComplete ::=                SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcSetupComplete                    RRCSetupComplete-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCSetupComplete-IEs ::=            SEQUENCE {
    selectedPLMN-Identity               INTEGER (1..maxPLMN),
    registeredAMF                       RegisteredAMF                                   OPTIONAL,
    guami-Type                          ENUMERATED {native, mapped}                     OPTIONAL,
    s-NSSAI-List                        SEQUENCE (SIZE (1..maxNrofS-NSSAI)) OF S-NSSAI  OPTIONAL,
    dedicatedNAS-Message                DedicatedNAS-Message,
    ng-5G-S-TMSI-Value                  CHOICE {
        ng-5G-S-TMSI                        NG-5G-S-TMSI,
        ng-5G-S-TMSI-Part2                  BIT STRING (SIZE (9))
    }                                                                                   OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                                    OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                      OPTIONAL
}

RegisteredAMF ::=                   SEQUENCE {
    plmn-Identity                       PLMN-Identity                                   OPTIONAL,
    amf-Identifier                      AMF-Identifier
}

-- TAG-RRCSETUPCOMPLETE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCSETUPREQUEST-START

RRCSetupRequest ::=                 SEQUENCE {
    rrcSetupRequest                     RRCSetupRequest-IEs
}

RRCSetupRequest-IEs ::=             SEQUENCE {
    ue-Identity                         InitialUE-Identity,
    establishmentCause                  EstablishmentCause,
    spare                               BIT STRING (SIZE (1))
}

InitialUE-Identity ::=              CHOICE {
    ng-5G-S-TMSI-Part1                  BIT STRING (SIZE (39)),
    randomValue                         BIT STRING (SIZE (39))
}

EstablishmentCause ::=              ENUMERATED {
                                        emergency, highPriorityAccess, mt-Access, mo-Signalling,
                                        mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, mps-PriorityAccess, mcs-PriorityAccess,
                                        spare6, spare5, spare4, spare3, spare2, spare1}

-- TAG-RRCSETUPREQUEST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRCSYSTEMINFOREQUEST-START

RRCSystemInfoRequest ::=            SEQUENCE {
    criticalExtensions                  CHOICE {
        rrcSystemInfoRequest-r15            RRCSystemInfoRequest-r15-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCSystemInfoRequest-r15-IEs ::=    SEQUENCE {
    requested-SI-List                   BIT STRING (SIZE (maxSI-Message)),  --32bits
    spare                               BIT STRING (SIZE (12))
}

-- TAG-RRCSYSTEMINFOREQUEST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCGFAILUREINFORMATION-START

SCGFailureInformation ::=                 SEQUENCE {
    criticalExtensions                         CHOICE {
        scgFailureInformation                     SCGFailureInformation-IEs,
        criticalExtensionsFuture                 SEQUENCE {}
    }
}

SCGFailureInformation-IEs ::=             SEQUENCE {
    failureReportSCG                              FailureReportSCG            OPTIONAL,
    nonCriticalExtension                         SEQUENCE {}                  OPTIONAL
}

FailureReportSCG ::=                       SEQUENCE {
    failureType                                    ENUMERATED {
                                                           t310-Expiry, randomAccessProblem,
                                                           rlc-MaxNumRetx,
                                                           synchReconfigFailureSCG, scg-ReconfigFailure,
                                                           srb3-IntegrityFailure,  spare2, spare1},
    measResultFreqList                           MeasResultFreqList                       OPTIONAL,
    measResultSCG-Failure                       OCTET STRING (CONTAINING MeasResultSCG-Failure)                              OPTIONAL,
    ...
}

MeasResultFreqList ::=               SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR


-- TAG-SCGFAILUREINFORMATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCGFAILUREINFORMATIONEUTRA-START

SCGFailureInformationEUTRA ::=                SEQUENCE {
    criticalExtensions                                CHOICE {
        scgFailureInformationEUTRA                       SCGFailureInformationEUTRA-IEs,
        criticalExtensionsFuture                          SEQUENCE {}
    }
}

SCGFailureInformationEUTRA-IEs ::=           SEQUENCE {
    failureReportSCG-EUTRA                           FailureReportSCG-EUTRA                      OPTIONAL,
    nonCriticalExtension                              SEQUENCE {}                                    OPTIONAL
}

FailureReportSCG-EUTRA ::=                     SEQUENCE {
    failureType                                          ENUMERATED {
                                                                t313-Expiry, randomAccessProblem,
                                                                rlc-MaxNumRetx, scg-ChangeFailure, spare4,
                                                                spare3, spare2, spare1},
    measResultFreqListMRDC                            MeasResultFreqListFailMRDC                OPTIONAL,
    measResultSCG-FailureMRDC                        OCTET STRING                          OPTIONAL,
    ...
}

MeasResultFreqListFailMRDC ::=      SEQUENCE (SIZE (1.. maxFreq)) OF MeasResult2EUTRA

-- TAG-SCGFAILUREINFORMATIONEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SECURITYMODECOMMAND-START

SecurityModeCommand ::=             SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        securityModeCommand                 SecurityModeCommand-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

SecurityModeCommand-IEs ::=         SEQUENCE {
    securityConfigSMC                   SecurityConfigSMC,

    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

SecurityConfigSMC ::=               SEQUENCE {
    securityAlgorithmConfig             SecurityAlgorithmConfig,
    ...
}

-- TAG-SECURITYMODECOMMAND-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SECURITYMODECOMPLETE-START

SecurityModeComplete ::=            SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        securityModeComplete                SecurityModeComplete-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

SecurityModeComplete-IEs ::=        SEQUENCE {
    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-SECURITYMODECOMPLETE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SECURITYMODEFAILURE-START

SecurityModeFailure ::=             SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        securityModeFailure                 SecurityModeFailure-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

SecurityModeFailure-IEs ::=         SEQUENCE {
    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-SECURITYMODEFAILURE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB1-START

SIB1 ::=        SEQUENCE {
    cellSelectionInfo                   SEQUENCE {
        q-RxLevMin                          Q-RxLevMin,
        q-RxLevMinOffset                    INTEGER (1..8)                                              OPTIONAL,   -- Need S
        q-RxLevMinSUL                       Q-RxLevMin                                                  OPTIONAL,   -- Need R
        q-QualMin                           Q-QualMin                                                   OPTIONAL,   -- Need S
        q-QualMinOffset                     INTEGER (1..8)                                              OPTIONAL    -- Need S
    }                                                                                                   OPTIONAL,   -- Cond Standalone
    cellAccessRelatedInfo               CellAccessRelatedInfo,
    connEstFailureControl               ConnEstFailureControl                                           OPTIONAL,   -- Need R
    si-SchedulingInfo                   SI-SchedulingInfo                                               OPTIONAL,   -- Need R
    servingCellConfigCommon             ServingCellConfigCommonSIB                                      OPTIONAL,   -- Need R
    ims-EmergencySupport                ENUMERATED {true}                                               OPTIONAL,   -- Need R
    eCallOverIMS-Support                ENUMERATED {true}                                               OPTIONAL,   -- Cond Absent
    ue-TimersAndConstants               UE-TimersAndConstants                                           OPTIONAL,   -- Need R

    uac-BarringInfo                     SEQUENCE {
        uac-BarringForCommon                UAC-BarringPerCatList                                       OPTIONAL,   -- Need S
        uac-BarringPerPLMN-List             UAC-BarringPerPLMN-List                                     OPTIONAL,   -- Need S
        uac-BarringInfoSetList              UAC-BarringInfoSetList,
        uac-AccessCategory1-SelectionAssistanceInfo CHOICE {
            plmnCommon                           UAC-AccessCategory1-SelectionAssistanceInfo,
            individualPLMNList                   SEQUENCE (SIZE (2..maxPLMN)) OF UAC-AccessCategory1-SelectionAssistanceInfo
        }                                                                                               OPTIONAL    -- Need S
    }                                                                                                   OPTIONAL,   -- Need R

    useFullResumeID                     ENUMERATED {true}                                               OPTIONAL,   -- Need N

    lateNonCriticalExtension            OCTET STRING                                                    OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                      OPTIONAL
}

UAC-AccessCategory1-SelectionAssistanceInfo ::=    ENUMERATED {a, b, c}

-- TAG-SIB1-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SYSTEMINFORMATION-START

SystemInformation ::=               SEQUENCE {
    criticalExtensions                  CHOICE {
        systemInformation                   SystemInformation-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

SystemInformation-IEs ::=           SEQUENCE {
    sib-TypeAndInfo                     SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
        sib2                                SIB2,
        sib3                                SIB3,
        sib4                                SIB4,
        sib5                                SIB5,
        sib6                                SIB6,
        sib7                                SIB7,
        sib8                                SIB8,
        sib9                                SIB9,
        ...
    },

    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-SYSTEMINFORMATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UEASSISTANCEINFORMATION-START

UEAssistanceInformation ::=         SEQUENCE {
    criticalExtensions                  CHOICE {
        ueAssistanceInformation             UEAssistanceInformation-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

UEAssistanceInformation-IEs ::=     SEQUENCE {
    delayBudgetReport                   DelayBudgetReport                   OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                UEAssistanceInformation-v1540-IEs   OPTIONAL
}

DelayBudgetReport::=                CHOICE {
    type1                               ENUMERATED {
                                            msMinus1280, msMinus640, msMinus320, msMinus160,msMinus80, msMinus60, msMinus40,
                                            msMinus20, ms0, ms20,ms40, ms60, ms80, ms160, ms320, ms640, ms1280},
    ...
}

UEAssistanceInformation-v1540-IEs ::= SEQUENCE {
    overheatingAssistance               OverheatingAssistance               OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

OverheatingAssistance ::=           SEQUENCE {
    reducedMaxCCs                       SEQUENCE {
        reducedCCsDL                        INTEGER (0..31),
        reducedCCsUL                        INTEGER (0..31)
    } OPTIONAL,
    reducedMaxBW-FR1                    SEQUENCE {
        reducedBW-FR1-DL                    ReducedAggregatedBandwidth,
        reducedBW-FR1-UL                    ReducedAggregatedBandwidth
    } OPTIONAL,
    reducedMaxBW-FR2                    SEQUENCE {
        reducedBW-FR2-DL                    ReducedAggregatedBandwidth,
        reducedBW-FR2-UL                    ReducedAggregatedBandwidth
    } OPTIONAL,
    reducedMaxMIMO-LayersFR1            SEQUENCE {
        reducedMIMO-LayersFR1-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR1-UL            MIMO-LayersUL
    } OPTIONAL,
    reducedMaxMIMO-LayersFR2            SEQUENCE {
        reducedMIMO-LayersFR2-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR2-UL            MIMO-LayersUL
    } OPTIONAL
}

ReducedAggregatedBandwidth ::= ENUMERATED {mhz0, mhz10, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz200, mhz300, mhz400}

-- TAG-UEASSISTANCEINFORMATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UECAPABILITYENQUIRY-START

UECapabilityEnquiry ::=         SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        ueCapabilityEnquiry                 UECapabilityEnquiry-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

UECapabilityEnquiry-IEs ::=     SEQUENCE {
    ue-CapabilityRAT-RequestList        UE-CapabilityRAT-RequestList,
    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    ue-CapabilityEnquiryExt             OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)                 OPTIONAL
}

UECapabilityEnquiry-v1560-IEs ::=   SEQUENCE {
    capabilityRequestFilterCommon       UE-CapabilityRequestFilterCommon                                        OPTIONAL, -- Need N
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-UECAPABILITYENQUIRY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UECAPABILITYINFORMATION-START

UECapabilityInformation ::=         SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        ueCapabilityInformation             UECapabilityInformation-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

UECapabilityInformation-IEs ::=     SEQUENCE {
    ue-CapabilityRAT-ContainerList      UE-CapabilityRAT-ContainerList                                          OPTIONAL,

    lateNonCriticalExtension            OCTET STRING                                                            OPTIONAL,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-UECAPABILITYINFORMATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ULINFORMATIONTRANSFER-START

ULInformationTransfer ::=           SEQUENCE {
    criticalExtensions                  CHOICE {
        ulInformationTransfer               ULInformationTransfer-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

ULInformationTransfer-IEs ::=       SEQUENCE {
    dedicatedNAS-Message                DedicatedNAS-Message                OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-ULINFORMATIONTRANSFER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ULINFORMATIONTRANSFERMRDC-START

ULInformationTransferMRDC ::=               SEQUENCE {
    criticalExtensions                          CHOICE {
        c1                                          CHOICE {
            ulInformationTransferMRDC                   ULInformationTransferMRDC-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture            SEQUENCE {}
    }
}

ULInformationTransferMRDC-IEs::=           SEQUENCE {
    ul-DCCH-MessageNR                           OCTET STRING                    OPTIONAL,
    ul-DCCH-MessageEUTRA                        OCTET STRING                    OPTIONAL,
    lateNonCriticalExtension                    OCTET STRING                    OPTIONAL,
    nonCriticalExtension                        SEQUENCE {}                     OPTIONAL
}

-- TAG-ULINFORMATIONTRANSFERMRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SETUPRELEASE-START

SetupRelease { ElementTypeParam } ::= CHOICE {
    release         NULL,
    setup           ElementTypeParam
}

-- TAG-SETUPRELEASE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB2-START

SIB2 ::=                            SEQUENCE {
    cellReselectionInfoCommon           SEQUENCE {
        nrofSS-BlocksToAverage              INTEGER (2..maxNrofSS-BlocksToAverage)          OPTIONAL,       -- Need S
        absThreshSS-BlocksConsolidation     ThresholdNR                                     OPTIONAL,       -- Need S
        rangeToBestCell                     RangeToBestCell                                 OPTIONAL,       -- Need R
        q-Hyst                              ENUMERATED {
                                                dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
                                                dB12, dB14, dB16, dB18, dB20, dB22, dB24},
        speedStateReselectionPars           SEQUENCE {
            mobilityStateParameters             MobilityStateParameters,
            q-HystSF                        SEQUENCE {
                sf-Medium                       ENUMERATED {dB-6, dB-4, dB-2, dB0},
                sf-High                         ENUMERATED {dB-6, dB-4, dB-2, dB0}
            }
        }                                                                                   OPTIONAL,       -- Need R
    ...
    },
    cellReselectionServingFreqInfo      SEQUENCE {
        s-NonIntraSearchP                   ReselectionThreshold                            OPTIONAL,       -- Need S
        s-NonIntraSearchQ                   ReselectionThresholdQ                           OPTIONAL,       -- Need S
        threshServingLowP                   ReselectionThreshold,
        threshServingLowQ                   ReselectionThresholdQ                           OPTIONAL,       -- Need R
        cellReselectionPriority             CellReselectionPriority,
        cellReselectionSubPriority          CellReselectionSubPriority                      OPTIONAL,       -- Need R
        ...
    },
    intraFreqCellReselectionInfo        SEQUENCE {
        q-RxLevMin                          Q-RxLevMin,
        q-RxLevMinSUL                       Q-RxLevMin                                      OPTIONAL,       -- Need R
        q-QualMin                           Q-QualMin                                       OPTIONAL,       -- Need S
        s-IntraSearchP                      ReselectionThreshold,
        s-IntraSearchQ                      ReselectionThresholdQ                           OPTIONAL,       -- Need S
        t-ReselectionNR                     T-Reselection,
        frequencyBandList                   MultiFrequencyBandListNR-SIB                    OPTIONAL,       -- Need S
        frequencyBandListSUL                MultiFrequencyBandListNR-SIB                    OPTIONAL,       -- Need R
        p-Max                               P-Max                                           OPTIONAL,       -- Need R
        smtc                                SSB-MTC                                         OPTIONAL,       -- Need R
        ss-RSSI-Measurement                 SS-RSSI-Measurement                             OPTIONAL,       -- Need R
        ssb-ToMeasure                       SSB-ToMeasure                                   OPTIONAL,       -- Need R
        deriveSSB-IndexFromCell             BOOLEAN,
        ...,
        [[
        t-ReselectionNR-SF                  SpeedStateScaleFactors                          OPTIONAL        -- Need N
        ]]
    },
    ...
}

RangeToBestCell    ::= Q-OffsetRange

-- TAG-SIB2-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB3-START

SIB3 ::=                            SEQUENCE {
    intraFreqNeighCellList              IntraFreqNeighCellList      OPTIONAL,   -- Need R
    intraFreqBlackCellList              IntraFreqBlackCellList      OPTIONAL,   -- Need R
    lateNonCriticalExtension            OCTET STRING                OPTIONAL,
    ...
}

IntraFreqNeighCellList ::=          SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo

IntraFreqNeighCellInfo ::=          SEQUENCE {
    physCellId                          PhysCellId,
    q-OffsetCell                        Q-OffsetRange,
    q-RxLevMinOffsetCell                INTEGER (1..8)              OPTIONAL,   -- Need R
    q-RxLevMinOffsetCellSUL             INTEGER (1..8)              OPTIONAL,   -- Need R
    q-QualMinOffsetCell                 INTEGER (1..8)              OPTIONAL,   -- Need R
    ...
}

IntraFreqBlackCellList ::=          SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range

-- TAG-SIB3-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB4-START

SIB4 ::=                            SEQUENCE {
    interFreqCarrierFreqList            InterFreqCarrierFreqList,
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...
}

InterFreqCarrierFreqList ::=        SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo

InterFreqCarrierFreqInfo ::=        SEQUENCE {
    dl-CarrierFreq                      ARFCN-ValueNR,
    frequencyBandList                   MultiFrequencyBandListNR-SIB                OPTIONAL,   -- Cond Mandatory
    frequencyBandListSUL                MultiFrequencyBandListNR-SIB                OPTIONAL,   -- Need R
    nrofSS-BlocksToAverage              INTEGER (2..maxNrofSS-BlocksToAverage)      OPTIONAL,   -- Need R
    absThreshSS-BlocksConsolidation     ThresholdNR                                 OPTIONAL,   -- Need R
    smtc                                SSB-MTC                                     OPTIONAL,   -- Need R
    ssbSubcarrierSpacing                SubcarrierSpacing,
    ssb-ToMeasure                       SSB-ToMeasure                               OPTIONAL,   -- Need R
    deriveSSB-IndexFromCell             BOOLEAN,
    ss-RSSI-Measurement                 SS-RSSI-Measurement                         OPTIONAL,
    q-RxLevMin                          Q-RxLevMin,
    q-RxLevMinSUL                       Q-RxLevMin                                  OPTIONAL,   -- Need R
    q-QualMin                           Q-QualMin                                   OPTIONAL,   -- Need S,
    p-Max                               P-Max                                       OPTIONAL,   -- Need R
    t-ReselectionNR                     T-Reselection,
    t-ReselectionNR-SF                  SpeedStateScaleFactors                      OPTIONAL,    -- Need S
    threshX-HighP                       ReselectionThreshold,
    threshX-LowP                        ReselectionThreshold,
    threshX-Q                           SEQUENCE {
        threshX-HighQ                       ReselectionThresholdQ,
        threshX-LowQ                        ReselectionThresholdQ
    }                                                                               OPTIONAL,   -- Cond RSRQ
    cellReselectionPriority             CellReselectionPriority                     OPTIONAL,   -- Need R
    cellReselectionSubPriority          CellReselectionSubPriority                  OPTIONAL,   -- Need R
    q-OffsetFreq                        Q-OffsetRange                               DEFAULT dB0,
    interFreqNeighCellList              InterFreqNeighCellList                      OPTIONAL,   -- Need R
    interFreqBlackCellList              InterFreqBlackCellList                      OPTIONAL,   -- Need R
    ...
}

InterFreqNeighCellList ::=          SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo

InterFreqNeighCellInfo ::=          SEQUENCE {
    physCellId                          PhysCellId,
    q-OffsetCell                        Q-OffsetRange,
    q-RxLevMinOffsetCell                INTEGER (1..8)                              OPTIONAL,   -- Need R
    q-RxLevMinOffsetCellSUL             INTEGER (1..8)                              OPTIONAL,   -- Need R
    q-QualMinOffsetCell                 INTEGER (1..8)                              OPTIONAL,   -- Need R
    ...

}

InterFreqBlackCellList ::=          SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range

-- TAG-SIB4-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB5-START

SIB5 ::=                            SEQUENCE {
    carrierFreqListEUTRA                CarrierFreqListEUTRA                        OPTIONAL,       -- Need R
    t-ReselectionEUTRA                  T-Reselection,
    t-ReselectionEUTRA-SF               SpeedStateScaleFactors                      OPTIONAL,       -- Need S
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...
}

CarrierFreqListEUTRA ::=            SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF CarrierFreqEUTRA

CarrierFreqEUTRA ::=                SEQUENCE {
    carrierFreq                         ARFCN-ValueEUTRA,
    eutra-multiBandInfoList             EUTRA-MultiBandInfoList                     OPTIONAL,       -- Need R
    eutra-FreqNeighCellList             EUTRA-FreqNeighCellList                     OPTIONAL,       -- Need R
    eutra-BlackCellList                 EUTRA-FreqBlackCellList                     OPTIONAL,       -- Need R
    allowedMeasBandwidth                EUTRA-AllowedMeasBandwidth,
    presenceAntennaPort1                EUTRA-PresenceAntennaPort1,
    cellReselectionPriority             CellReselectionPriority                     OPTIONAL,       -- Need R
    cellReselectionSubPriority          CellReselectionSubPriority                  OPTIONAL,       -- Need R
    threshX-High                        ReselectionThreshold,
    threshX-Low                         ReselectionThreshold,
    q-RxLevMin                          INTEGER (-70..-22),
    q-QualMin                           INTEGER (-34..-3),
    p-MaxEUTRA                          INTEGER (-30..33),
    threshX-Q                           SEQUENCE {
        threshX-HighQ                       ReselectionThresholdQ,
        threshX-LowQ                        ReselectionThresholdQ
    }                                                                               OPTIONAL        -- Cond RSRQ
}

EUTRA-FreqBlackCellList ::=         SEQUENCE (SIZE (1..maxEUTRA-CellBlack)) OF EUTRA-PhysCellIdRange

EUTRA-FreqNeighCellList ::=         SEQUENCE (SIZE (1..maxCellEUTRA)) OF EUTRA-FreqNeighCellInfo

EUTRA-FreqNeighCellInfo ::=         SEQUENCE {
    physCellId                          EUTRA-PhysCellId,
    dummy                               EUTRA-Q-OffsetRange,
    q-RxLevMinOffsetCell                INTEGER (1..8)                              OPTIONAL,       -- Need R
    q-QualMinOffsetCell                 INTEGER (1..8)                              OPTIONAL        -- Need R
}

-- TAG-SIB5-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB6-START

SIB6 ::=                            SEQUENCE {
    messageIdentifier                   BIT STRING (SIZE (16)),
    serialNumber                        BIT STRING (SIZE (16)),
    warningType                         OCTET STRING (SIZE (2)),
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...
}

-- TAG-SIB6-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB7-START

SIB7 ::=                            SEQUENCE {
    messageIdentifier                   BIT STRING (SIZE (16)),
    serialNumber                        BIT STRING (SIZE (16)),
    warningMessageSegmentType           ENUMERATED {notLastSegment, lastSegment},
    warningMessageSegmentNumber         INTEGER (0..63),
    warningMessageSegment               OCTET STRING,
    dataCodingScheme                    OCTET STRING (SIZE (1))                     OPTIONAL,   -- Cond Segment1
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...
}

-- TAG-SIB7-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB8-START

SIB8 ::=                        SEQUENCE {
    messageIdentifier               BIT STRING (SIZE (16)),
    serialNumber                    BIT STRING (SIZE (16)),
    warningMessageSegmentType       ENUMERATED {notLastSegment, lastSegment},
    warningMessageSegmentNumber     INTEGER (0..63),
    warningMessageSegment           OCTET STRING,
    dataCodingScheme                OCTET STRING (SIZE (1))                         OPTIONAL,   -- Cond Segment1
    warningAreaCoordinatesSegment   OCTET STRING                                    OPTIONAL,   -- Need R
    lateNonCriticalExtension        OCTET STRING                                    OPTIONAL,
    ...
}

-- TAG-SIB8-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SIB9-START

SIB9 ::=                            SEQUENCE {
    timeInfo                            SEQUENCE {
        timeInfoUTC                         INTEGER (0..549755813887),
        dayLightSavingTime                  BIT STRING (SIZE (2))                   OPTIONAL,   -- Need R
        leapSeconds                         INTEGER (-127..128)                     OPTIONAL,   -- Need R
        localTimeOffset                     INTEGER (-63..64)                       OPTIONAL    -- Need R
    }                                                                               OPTIONAL,   -- Need R
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...
}

-- TAG-SIB9-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ADDITIONALSPECTRUMEMISSION-START

AdditionalSpectrumEmission ::=              INTEGER (0..7)

-- TAG-ADDITIONALSPECTRUMEMISSION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ALPHA-START

Alpha ::=                       ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}

-- TAG-ALPHA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-AMF-IDENTIFIER-START

AMF-Identifier ::=                      BIT STRING (SIZE (24))

-- TAG-AMF-IDENTIFIER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ARFCN-VALUEEUTRA-START

ARFCN-ValueEUTRA ::=                INTEGER (0..maxEARFCN)

-- TAG-ARFCN-VALUEEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ARFCN-VALUENR-START

ARFCN-ValueNR ::=               INTEGER (0..maxNARFCN)

-- TAG-ARFCN-VALUENR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BEAMFAILURERECOVERYCONFIG-START

BeamFailureRecoveryConfig ::=       SEQUENCE {
    rootSequenceIndex-BFR               INTEGER (0..137)                                                          OPTIONAL, -- Need M
    rach-ConfigBFR                      RACH-ConfigGeneric                                                        OPTIONAL, -- Need M
    rsrp-ThresholdSSB                   RSRP-Range                                                                OPTIONAL, -- Need M
    candidateBeamRSList                 SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR   OPTIONAL, -- Need M
    ssb-perRACH-Occasion                ENUMERATED {oneEighth, oneFourth, oneHalf, one, two,
                                                       four, eight, sixteen}                                      OPTIONAL, -- Need M
    ra-ssb-OccasionMaskIndex            INTEGER (0..15)                                                           OPTIONAL, -- Need M
    recoverySearchSpaceId               SearchSpaceId                                                             OPTIONAL, -- Need R
    ra-Prioritization                   RA-Prioritization                                                         OPTIONAL, -- Need R
    beamFailureRecoveryTimer            ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, ms150, ms200}            OPTIONAL, -- Need M
    ...,
    [[
    msg1-SubcarrierSpacing-v1530        SubcarrierSpacing                                                         OPTIONAL  -- Need M
    ]]
}

PRACH-ResourceDedicatedBFR ::=      CHOICE {
    ssb                                 BFR-SSB-Resource,
    csi-RS                              BFR-CSIRS-Resource
}

BFR-SSB-Resource ::=                SEQUENCE {
    ssb                                 SSB-Index,
    ra-PreambleIndex                    INTEGER (0..63),
    ...
}

BFR-CSIRS-Resource ::=              SEQUENCE {
    csi-RS                              NZP-CSI-RS-ResourceId,
    ra-OccasionList                     SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1)   OPTIONAL,   -- Need R
    ra-PreambleIndex                    INTEGER (0..63)                                                                 OPTIONAL,   -- Need R
    ...
}

-- TAG-BEAMFAILURERECOVERYCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BSR-CONFIG-START

BSR-Config ::=                      SEQUENCE {
    periodicBSR-Timer                   ENUMERATED { sf1, sf5, sf10, sf16, sf20, sf32, sf40, sf64,
                                                        sf80, sf128, sf160, sf320, sf640, sf1280, sf2560, infinity },
    retxBSR-Timer                       ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280, sf2560,
                                                        sf5120, sf10240, spare5, spare4, spare3, spare2, spare1},
    logicalChannelSR-DelayTimer         ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1}    OPTIONAL, -- Need R
    ...
}

-- TAG-BSR-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-START

BWP ::=                             SEQUENCE {
    locationAndBandwidth                INTEGER (0..37949),
    subcarrierSpacing                   SubcarrierSpacing,
    cyclicPrefix                        ENUMERATED { extended }                                                 OPTIONAL    -- Need R
}


-- TAG-BWP-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-DOWNLINK-START

BWP-Downlink ::=                    SEQUENCE {
    bwp-Id                              BWP-Id,
    bwp-Common                          BWP-DownlinkCommon                                         OPTIONAL,   -- Cond SetupOtherBWP
    bwp-Dedicated                       BWP-DownlinkDedicated                                      OPTIONAL,   -- Cond SetupOtherBWP
    ...
}

-- TAG-BWP-DOWNLINK-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-DOWNLINKCOMMON-START

BWP-DownlinkCommon ::=              SEQUENCE {
    genericParameters                   BWP,
    pdcch-ConfigCommon                  SetupRelease { PDCCH-ConfigCommon }                                     OPTIONAL,   -- Need M
    pdsch-ConfigCommon                  SetupRelease { PDSCH-ConfigCommon }                                     OPTIONAL,   -- Need M
    ...
}

-- TAG-BWP-DOWNLINKCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-DOWNLINKDEDICATED-START

BWP-DownlinkDedicated ::=           SEQUENCE {
    pdcch-Config                        SetupRelease { PDCCH-Config }                                           OPTIONAL,   -- Need M
    pdsch-Config                        SetupRelease { PDSCH-Config }                                           OPTIONAL,   -- Need M
    sps-Config                          SetupRelease { SPS-Config }                                             OPTIONAL,   -- Need M
    radioLinkMonitoringConfig           SetupRelease { RadioLinkMonitoringConfig }                              OPTIONAL,   -- Need M
    ...
}

-- TAG-BWP-DOWNLINKDEDICATED-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-ID-START

BWP-Id ::=                          INTEGER (0..maxNrofBWPs)

-- TAG-BWP-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-UPLINK-START

BWP-Uplink ::=                      SEQUENCE {
    bwp-Id                              BWP-Id,
    bwp-Common                          BWP-UplinkCommon                                            OPTIONAL,   -- Cond SetupOtherBWP
    bwp-Dedicated                       BWP-UplinkDedicated                                         OPTIONAL,   -- Cond SetupOtherBWP
    ...
}

-- TAG-BWP-UPLINK-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-UPLINKCOMMON-START

BWP-UplinkCommon ::=                SEQUENCE {
    genericParameters                   BWP,
    rach-ConfigCommon                   SetupRelease { RACH-ConfigCommon }                                      OPTIONAL,   -- Need M
    pusch-ConfigCommon                  SetupRelease { PUSCH-ConfigCommon }                                     OPTIONAL,   -- Need M
    pucch-ConfigCommon                  SetupRelease { PUCCH-ConfigCommon }                                     OPTIONAL,   -- Need M
    ...
}

-- TAG-BWP-UPLINKCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BWP-UPLINKDEDICATED-START

BWP-UplinkDedicated ::=             SEQUENCE {
    pucch-Config                        SetupRelease { PUCCH-Config }                                   OPTIONAL,   -- Need M
    pusch-Config                        SetupRelease { PUSCH-Config }                                   OPTIONAL,   -- Need M
    configuredGrantConfig               SetupRelease { ConfiguredGrantConfig }                          OPTIONAL,   -- Need M
    srs-Config                          SetupRelease { SRS-Config }                                     OPTIONAL,   -- Need M
    beamFailureRecoveryConfig           SetupRelease { BeamFailureRecoveryConfig }                      OPTIONAL,   -- Cond SpCellOnly
    ...
}

-- TAG-BWP-UPLINKDEDICATED-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLACCESSRELATEDINFO-START

CellAccessRelatedInfo   ::=         SEQUENCE {
    plmn-IdentityList                   PLMN-IdentityInfoList,
    cellReservedForOtherUse             ENUMERATED {true}  OPTIONAL,            -- Need R
    ...
}

-- TAG-CELLACCESSRELATEDINFO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLACCESSRELATEDINFOEUTRA-5GC-START

CellAccessRelatedInfo-EUTRA-5GC  ::=    SEQUENCE {
    plmn-IdentityList-eutra-5gc             PLMN-IdentityList-EUTRA-5GC,
    trackingAreaCode-eutra-5gc              TrackingAreaCode,
    ranac-5gc                               RAN-AreaCode                                OPTIONAL,
    cellIdentity-eutra-5gc                  CellIdentity-EUTRA-5GC
}

PLMN-IdentityList-EUTRA-5GC::=          SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity-EUTRA-5GC

PLMN-Identity-EUTRA-5GC ::=             CHOICE {
    plmn-Identity-EUTRA-5GC                 PLMN-Identity,
    plmn-index                              INTEGER (1..maxPLMN)
}

CellIdentity-EUTRA-5GC ::=              CHOICE {
    cellIdentity-EUTRA                      BIT STRING (SIZE (28)),
cellId-index                            INTEGER (1..maxPLMN)
}

-- TAG-CELLACCESSRELATEDINFOEUTRA-5GC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLACCESSRELATEDINFOEUTRA-EPC-START

CellAccessRelatedInfo-EUTRA-EPC  ::=    SEQUENCE {
    plmn-IdentityList-eutra-epc             PLMN-IdentityList-EUTRA-EPC,
    trackingAreaCode-eutra-epc              BIT STRING (SIZE (16)),
    cellIdentity-eutra-epc                  BIT STRING (SIZE (28))
}

PLMN-IdentityList-EUTRA-EPC::=          SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity

-- TAG-CELLACCESSRELATEDINFOEUTRA-EPC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLGROUPCONFIG-START

-- Configuration of one Cell-Group:
CellGroupConfig ::=                         SEQUENCE {
    cellGroupId                                 CellGroupId,

    rlc-BearerToAddModList                      SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-BearerConfig            OPTIONAL,   -- Need N
    rlc-BearerToReleaseList                     SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity      OPTIONAL,   -- Need N

    mac-CellGroupConfig                         MAC-CellGroupConfig                                         OPTIONAL,   -- Need M

    physicalCellGroupConfig                     PhysicalCellGroupConfig                                     OPTIONAL,   -- Need M

    spCellConfig                                SpCellConfig                                                OPTIONAL,   -- Need M
    sCellToAddModList                           SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig           OPTIONAL,   -- Need N
    sCellToReleaseList                          SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex            OPTIONAL,   -- Need N
    ...,
    [[
    reportUplinkTxDirectCurrent-v1530           ENUMERATED {true}                                           OPTIONAL    -- Cond BWP-Reconfig
    ]]
}

-- Serving cell specific MAC and PHY parameters for a SpCell:
SpCellConfig ::=                        SEQUENCE {
    servCellIndex                       ServCellIndex                                               OPTIONAL,   -- Cond SCG
    reconfigurationWithSync             ReconfigurationWithSync                                     OPTIONAL,   -- Cond ReconfWithSync
    rlf-TimersAndConstants              SetupRelease { RLF-TimersAndConstants }                     OPTIONAL,   -- Need M
    rlmInSyncOutOfSyncThreshold         ENUMERATED {n1}                                             OPTIONAL,   -- Need S
    spCellConfigDedicated               ServingCellConfig                                           OPTIONAL,   -- Need M
    ...
}

ReconfigurationWithSync ::=         SEQUENCE {
    spCellConfigCommon                  ServingCellConfigCommon                                         OPTIONAL,   -- Need M
    newUE-Identity                      RNTI-Value,
    t304                                ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000},
    rach-ConfigDedicated                CHOICE {
        uplink                              RACH-ConfigDedicated,
        supplementaryUplink                 RACH-ConfigDedicated
    }                                                                                               OPTIONAL,   -- Need N
    ...,
    [[
    smtc                                SSB-MTC                                                     OPTIONAL    -- Need S
    ]]
}

SCellConfig ::=                     SEQUENCE {
    sCellIndex                          SCellIndex,
    sCellConfigCommon                   ServingCellConfigCommon                                     OPTIONAL,   -- Cond SCellAdd
    sCellConfigDedicated                ServingCellConfig                                           OPTIONAL,   -- Cond SCellAddMod
    ...,
    [[
    smtc                                SSB-MTC                                                     OPTIONAL    -- Need S
    ]]
}

-- TAG-CELLGROUPCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLGROUPID-START

CellGroupId ::=                             INTEGER (0.. maxSecondaryCellGroups)

-- TAG-CELLGROUPID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLIDENTITY-START

CellIdentity ::=                         BIT STRING (SIZE (36))

-- TAG-CELLIDENTITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLRESELECTIONPRIORITY-START

CellReselectionPriority ::=             INTEGER (0..7)

-- TAG-CELLRESELECTIONPRIORITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CELLRESELECTIONSUBPRIORITY-START

CellReselectionSubPriority ::=          ENUMERATED {oDot2, oDot4, oDot6, oDot8}

-- TAG-CELLRESELECTIONSUBPRIORITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CGI-Info-EUTRA-START

CGI-InfoEUTRA ::=                    SEQUENCE {
    cgi-info-EPC                            SEQUENCE {
            cgi-info-EPC-legacy                     CellAccessRelatedInfo-EUTRA-EPC,
            cgi-info-EPC-list                       SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-EPC     OPTIONAL
    }                                                                                                                   OPTIONAL,
    cgi-info-5GC                            SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-5GC             OPTIONAL,
    freqBandIndicator                       FreqBandIndicatorEUTRA,
    multiBandInfoList                       MultiBandInfoListEUTRA                                                      OPTIONAL,
    freqBandIndicatorPriority               ENUMERATED {true}                                                           OPTIONAL
}

-- TAG-CGI-Info-EUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CGI-INFO-NR-START

CGI-InfoNR ::=                    SEQUENCE {
    plmn-IdentityInfoList               PLMN-IdentityInfoList               OPTIONAL,
    frequencyBandList                   MultiFrequencyBandListNR            OPTIONAL,
    noSIB1                              SEQUENCE {
        ssb-SubcarrierOffset                INTEGER (0..15),
        pdcch-ConfigSIB1                    PDCCH-ConfigSIB1
    }                                                                       OPTIONAL,
    ...
}

-- TAG-CGI-INFO-NR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CODEBOOKCONFIG-START

CodebookConfig ::=                                  SEQUENCE {
    codebookType                                        CHOICE {
        type1                                               SEQUENCE {
            subType                                             CHOICE {
                typeI-SinglePanel                                   SEQUENCE {
                    nrOfAntennaPorts                                    CHOICE {
                        two                                                 SEQUENCE {
                            twoTX-CodebookSubsetRestriction                     BIT STRING (SIZE (6))
                        },
                        moreThanTwo                                         SEQUENCE {
                            n1-n2                                               CHOICE {
                                two-one-TypeI-SinglePanel-Restriction               BIT STRING (SIZE (8)),
                                two-two-TypeI-SinglePanel-Restriction               BIT STRING (SIZE (64)),
                                four-one-TypeI-SinglePanel-Restriction              BIT STRING (SIZE (16)),
                                three-two-TypeI-SinglePanel-Restriction             BIT STRING (SIZE (96)),
                                six-one-TypeI-SinglePanel-Restriction               BIT STRING (SIZE (24)),
                                four-two-TypeI-SinglePanel-Restriction              BIT STRING (SIZE (128)),
                                eight-one-TypeI-SinglePanel-Restriction             BIT STRING (SIZE (32)),
                                four-three-TypeI-SinglePanel-Restriction            BIT STRING (SIZE (192)),
                                six-two-TypeI-SinglePanel-Restriction               BIT STRING (SIZE (192)),
                                twelve-one-TypeI-SinglePanel-Restriction            BIT STRING (SIZE (48)),
                                four-four-TypeI-SinglePanel-Restriction             BIT STRING (SIZE (256)),
                                eight-two-TypeI-SinglePanel-Restriction             BIT STRING (SIZE (256)),
                                sixteen-one-TypeI-SinglePanel-Restriction           BIT STRING (SIZE (64))
                            },
                            typeI-SinglePanel-codebookSubsetRestriction-i2      BIT STRING (SIZE (16))        OPTIONAL    -- Need R
                        }
                    },
                    typeI-SinglePanel-ri-Restriction                    BIT STRING (SIZE (8))
                },
                typeI-MultiPanel                                    SEQUENCE {
                    ng-n1-n2                                                CHOICE {
                        two-two-one-TypeI-MultiPanel-Restriction                BIT STRING (SIZE (8)),
                        two-four-one-TypeI-MultiPanel-Restriction               BIT STRING (SIZE (16)),
                        four-two-one-TypeI-MultiPanel-Restriction               BIT STRING (SIZE (8)),
                        two-two-two-TypeI-MultiPanel-Restriction                BIT STRING (SIZE (64)),
                        two-eight-one-TypeI-MultiPanel-Restriction              BIT STRING (SIZE (32)),
                        four-four-one-TypeI-MultiPanel-Restriction              BIT STRING (SIZE (16)),
                        two-four-two-TypeI-MultiPanel-Restriction               BIT STRING (SIZE (128)),
                        four-two-two-TypeI-MultiPanel-Restriction               BIT STRING (SIZE (64))
                    },
                    ri-Restriction                          BIT STRING (SIZE (4))
                }
            },
            codebookMode                                        INTEGER (1..2)

        },
        type2                                   SEQUENCE {
            subType                                 CHOICE {
                typeII                                  SEQUENCE {
                    n1-n2-codebookSubsetRestriction         CHOICE {
                        two-one                                 BIT STRING (SIZE (16)),
                        two-two                                 BIT STRING (SIZE (43)),
                        four-one                                BIT STRING (SIZE (32)),
                        three-two                               BIT STRING (SIZE (59)),
                        six-one                                 BIT STRING (SIZE (48)),
                        four-two                                BIT STRING (SIZE (75)),
                        eight-one                               BIT STRING (SIZE (64)),
                        four-three                              BIT STRING (SIZE (107)),
                        six-two                                 BIT STRING (SIZE (107)),
                        twelve-one                              BIT STRING (SIZE (96)),
                        four-four                               BIT STRING (SIZE (139)),
                        eight-two                               BIT STRING (SIZE (139)),
                        sixteen-one                             BIT STRING (SIZE (128))
                    },
                    typeII-RI-Restriction                   BIT STRING (SIZE (2))
                },
                typeII-PortSelection                    SEQUENCE {
                    portSelectionSamplingSize               ENUMERATED {n1, n2, n3, n4}                   OPTIONAL,       -- Need R
                    typeII-PortSelectionRI-Restriction      BIT STRING (SIZE (2))
                }
            },
            phaseAlphabetSize                       ENUMERATED {n4, n8},
            subbandAmplitude                        BOOLEAN,
            numberOfBeams                           ENUMERATED {two, three, four}
        }
    }
}

-- TAG-CODEBOOKCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CONFIGUREDGRANTCONFIG-START

ConfiguredGrantConfig ::=           SEQUENCE {
    frequencyHopping                    ENUMERATED {intraSlot, interSlot}                                       OPTIONAL,   -- Need S,
    cg-DMRS-Configuration               DMRS-UplinkConfig,
    mcs-Table                           ENUMERATED {qam256, qam64LowSE}                                         OPTIONAL,   -- Need S
    mcs-TableTransformPrecoder          ENUMERATED {qam256, qam64LowSE}                                         OPTIONAL,   -- Need S
    uci-OnPUSCH                         SetupRelease { CG-UCI-OnPUSCH }                                         OPTIONAL,   -- Need M
    resourceAllocation                  ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch },
    rbg-Size                            ENUMERATED {config2}                                                    OPTIONAL,   -- Need S
    powerControlLoopToUse               ENUMERATED {n0, n1},
    p0-PUSCH-Alpha                      P0-PUSCH-AlphaSetId,
    transformPrecoder                   ENUMERATED {enabled, disabled}                                          OPTIONAL,   -- Need S
    nrofHARQ-Processes                  INTEGER(1..16),
    repK                                ENUMERATED {n1, n2, n4, n8},
    repK-RV                             ENUMERATED {s1-0231, s2-0303, s3-0000}                                  OPTIONAL,   -- Need R
    periodicity                         ENUMERATED {
                                                sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14,
                                                sym32x14, sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym320x14, sym512x14,
                                                sym640x14, sym1024x14, sym1280x14, sym2560x14, sym5120x14,
                                                sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12, sym32x12,
                                                sym40x12, sym64x12, sym80x12, sym128x12, sym160x12, sym256x12, sym320x12, sym512x12, sym640x12,
                                                sym1280x12, sym2560x12
    },
    configuredGrantTimer                    INTEGER (1..64)                                                     OPTIONAL,   -- Need R
    rrc-ConfiguredUplinkGrant               SEQUENCE {
        timeDomainOffset                        INTEGER (0..5119),
        timeDomainAllocation                    INTEGER  (0..15),
        frequencyDomainAllocation               BIT STRING (SIZE(18)),
        antennaPort                             INTEGER (0..31),
        dmrs-SeqInitialization                  INTEGER (0..1)                                                  OPTIONAL,   -- Need R
        precodingAndNumberOfLayers              INTEGER (0..63),
        srs-ResourceIndicator                   INTEGER (0..15)                                                 OPTIONAL,   -- Need R
        mcsAndTBS                               INTEGER (0..31),
        frequencyHoppingOffset                  INTEGER (1.. maxNrofPhysicalResourceBlocks-1)                   OPTIONAL,   -- Need R
        pathlossReferenceIndex                  INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1),
        ...
    }                                                                                                           OPTIONAL,   -- Need R
    ...
}

CG-UCI-OnPUSCH ::= CHOICE {
    dynamic                                 SEQUENCE (SIZE (1..4)) OF BetaOffsets,
    semiStatic                              BetaOffsets
}

-- TAG-CONFIGUREDGRANTCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CONNESTFAILURECONTROL-START

ConnEstFailureControl ::=   SEQUENCE {
    connEstFailCount                    ENUMERATED {n1, n2, n3, n4},
    connEstFailOffsetValidity           ENUMERATED {s30, s60, s120, s240, s300, s420, s600, s900},
    connEstFailOffset                   INTEGER (0..15)                                                         OPTIONAL    -- Need S
}

-- TAG-CONNESTFAILURECONTROL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CONTROLRESOURCESET-START

ControlResourceSet ::=              SEQUENCE {
    controlResourceSetId                ControlResourceSetId,

    frequencyDomainResources            BIT STRING (SIZE (45)),
    duration                            INTEGER (1..maxCoReSetDuration),
    cce-REG-MappingType                 CHOICE {
        interleaved                         SEQUENCE {
            reg-BundleSize                      ENUMERATED {n2, n3, n6},
            interleaverSize                     ENUMERATED {n2, n3, n6},
            shiftIndex                          INTEGER(0..maxNrofPhysicalResourceBlocks-1)       OPTIONAL -- Need S
        },
        nonInterleaved                      NULL
    },
    precoderGranularity                 ENUMERATED {sameAsREG-bundle, allContiguousRBs},
    tci-StatesPDCCH-ToAddList           SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Cond NotSIB1-initialBWP
    tci-StatesPDCCH-ToReleaseList       SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Cond NotSIB1-initialBWP
    tci-PresentInDCI                        ENUMERATED {enabled}                                  OPTIONAL, -- Need S
    pdcch-DMRS-ScramblingID                 INTEGER (0..65535)                                    OPTIONAL, -- Need S
    ...
}

-- TAG-CONTROLRESOURCESET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CONTROLRESOURCESETID-START

ControlResourceSetId ::=                INTEGER (0..maxNrofControlResourceSets-1)

-- TAG-CONTROLRESOURCESETID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CONTROLRESOURCESETZERO-START

ControlResourceSetZero ::=                  INTEGER (0..15)

-- TAG-CONTROLRESOURCESETZERO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CrossCarrierSchedulingConfig-START

CrossCarrierSchedulingConfig ::=        SEQUENCE {
    schedulingCellInfo                      CHOICE {
        own                                     SEQUENCE {                  -- Cross carrier scheduling: scheduling cell
            cif-Presence                            BOOLEAN
        },
        other                                   SEQUENCE {                  -- Cross carrier scheduling: scheduled cell
            schedulingCellId                        ServCellIndex,
            cif-InSchedulingCell                    INTEGER (1..7)
        }
    },
    ...
}

-- TAG-CrossCarrierSchedulingConfig-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-APERIODICTRIGGERSTATELIST-START

CSI-AperiodicTriggerStateList ::=   SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState

CSI-AperiodicTriggerState ::=       SEQUENCE {
    associatedReportConfigInfoList      SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) OF CSI-AssociatedReportConfigInfo,
    ...
}

CSI-AssociatedReportConfigInfo ::=  SEQUENCE {
    reportConfigId                      CSI-ReportConfigId,
    resourcesForChannel                 CHOICE {
        nzp-CSI-RS                          SEQUENCE {
            resourceSet                         INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),
            qcl-info                            SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId
                                                                                        OPTIONAL  -- Cond Aperiodic
        },
        csi-SSB-ResourceSet                 INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig)
    },
    csi-IM-ResourcesForInterference     INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig)
                                                                                        OPTIONAL, -- Cond CSI-IM-ForInterference
    nzp-CSI-RS-ResourcesForInterference INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)
                                                                                        OPTIONAL, -- Cond NZP-CSI-RS-ForInterference
    ...
}

-- TAG-CSI-APERIODICTRIGGERSTATELIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-FREQUENCYOCCUPATION-START

CSI-FrequencyOccupation ::=         SEQUENCE {
    startingRB                          INTEGER (0..maxNrofPhysicalResourceBlocks-1),
    nrofRBs                             INTEGER (24..maxNrofPhysicalResourceBlocksPlus1),
    ...
}

-- TAG-CSI-FREQUENCYOCCUPATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-IM-RESOURCE-START

CSI-IM-Resource ::=                 SEQUENCE {
    csi-IM-ResourceId                   CSI-IM-ResourceId,
    csi-IM-ResourceElementPattern           CHOICE {
        pattern0                                SEQUENCE {
            subcarrierLocation-p0                   ENUMERATED { s0, s2, s4, s6, s8, s10 },
            symbolLocation-p0                       INTEGER (0..12)
        },
        pattern1                                SEQUENCE {
            subcarrierLocation-p1                   ENUMERATED { s0, s4, s8 },
            symbolLocation-p1                       INTEGER (0..13)
        }
    }                                                                                   OPTIONAL,   -- Need M
    freqBand                            CSI-FrequencyOccupation                         OPTIONAL,   -- Need M
    periodicityAndOffset                CSI-ResourcePeriodicityAndOffset                OPTIONAL,   -- Cond PeriodicOrSemiPersistent
    ...
}

-- TAG-CSI-IM-RESOURCE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-IM-RESOURCEID-START

CSI-IM-ResourceId ::=               INTEGER (0..maxNrofCSI-IM-Resources-1)

-- TAG-CSI-IM-RESOURCEID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-IM-RESOURCESET-START

CSI-IM-ResourceSet ::=              SEQUENCE {
    csi-IM-ResourceSetId                CSI-IM-ResourceSetId,
    csi-IM-Resources                    SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) OF CSI-IM-ResourceId,
    ...
}
-- TAG-CSI-IM-RESOURCESET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-IM-RESOURCESETID-START

CSI-IM-ResourceSetId ::=            INTEGER (0..maxNrofCSI-IM-ResourceSets-1)

-- TAG-CSI-IM-RESOURCESETID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-MEASCONFIG-START

CSI-MeasConfig ::=                  SEQUENCE {
    nzp-CSI-RS-ResourceToAddModList     SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-Resource   OPTIONAL, -- Need N
    nzp-CSI-RS-ResourceToReleaseList    SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-ResourceId OPTIONAL, -- Need N
    nzp-CSI-RS-ResourceSetToAddModList  SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSet
                                                                                                                  OPTIONAL, -- Need N
    nzp-CSI-RS-ResourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSetId
                                                                                                                  OPTIONAL, -- Need N
    csi-IM-ResourceToAddModList         SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-Resource           OPTIONAL, -- Need N
    csi-IM-ResourceToReleaseList        SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-ResourceId         OPTIONAL, -- Need N
    csi-IM-ResourceSetToAddModList      SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSet     OPTIONAL, -- Need N
    csi-IM-ResourceSetToReleaseList     SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSetId   OPTIONAL, -- Need N
    csi-SSB-ResourceSetToAddModList     SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSet   OPTIONAL, -- Need N
    csi-SSB-ResourceSetToReleaseList    SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSetId OPTIONAL, -- Need N
    csi-ResourceConfigToAddModList      SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfig
                                                                                                                  OPTIONAL, -- Need N
    csi-ResourceConfigToReleaseList     SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfigId
                                                                                                                  OPTIONAL, -- Need N
    csi-ReportConfigToAddModList        SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfig  OPTIONAL, -- Need N
    csi-ReportConfigToReleaseList       SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfigId
                                                                                                                  OPTIONAL, -- Need N
    reportTriggerSize                   INTEGER (0..6)                                                            OPTIONAL, -- Need M
    aperiodicTriggerStateList           SetupRelease { CSI-AperiodicTriggerStateList }                            OPTIONAL, -- Need M
    semiPersistentOnPUSCH-TriggerStateList    SetupRelease { CSI-SemiPersistentOnPUSCH-TriggerStateList }         OPTIONAL, -- Need M
    ...
}

-- TAG-CSI-MEASCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-REPORTCONFIG-START

CSI-ReportConfig ::=                SEQUENCE {
    reportConfigId                          CSI-ReportConfigId,
    carrier                                 ServCellIndex                   OPTIONAL,   -- Need S
    resourcesForChannelMeasurement          CSI-ResourceConfigId,
    csi-IM-ResourcesForInterference         CSI-ResourceConfigId            OPTIONAL,   -- Need R
    nzp-CSI-RS-ResourcesForInterference     CSI-ResourceConfigId            OPTIONAL,   -- Need R
    reportConfigType                        CHOICE {
        periodic                                SEQUENCE {
            reportSlotConfig                        CSI-ReportPeriodicityAndOffset,
            pucch-CSI-ResourceList                  SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
        },
        semiPersistentOnPUCCH                   SEQUENCE {
            reportSlotConfig                        CSI-ReportPeriodicityAndOffset,
            pucch-CSI-ResourceList                  SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
        },
        semiPersistentOnPUSCH                   SEQUENCE {
            reportSlotConfig                        ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320},
            reportSlotOffsetList                SEQUENCE (SIZE (1.. maxNrofUL-Allocations)) OF INTEGER(0..32),
            p0alpha                                 P0-PUSCH-AlphaSetId
        },
        aperiodic                               SEQUENCE {
            reportSlotOffsetList                SEQUENCE (SIZE (1..maxNrofUL-Allocations)) OF INTEGER(0..32)
        }
    },
    reportQuantity                          CHOICE {
        none                                    NULL,
        cri-RI-PMI-CQI                          NULL,
        cri-RI-i1                               NULL,
        cri-RI-i1-CQI                           SEQUENCE {
            pdsch-BundleSizeForCSI                  ENUMERATED {n2, n4}                                         OPTIONAL    -- Need S
        },
        cri-RI-CQI                              NULL,
        cri-RSRP                                NULL,
        ssb-Index-RSRP                          NULL,
        cri-RI-LI-PMI-CQI                       NULL
    },
    reportFreqConfiguration                 SEQUENCE {
        cqi-FormatIndicator                     ENUMERATED { widebandCQI, subbandCQI }                          OPTIONAL,   -- Need R
        pmi-FormatIndicator                     ENUMERATED { widebandPMI, subbandPMI }                          OPTIONAL,   -- Need R
        csi-ReportingBand                       CHOICE {
            subbands3                               BIT STRING(SIZE(3)),
            subbands4                               BIT STRING(SIZE(4)),
            subbands5                               BIT STRING(SIZE(5)),
            subbands6                               BIT STRING(SIZE(6)),
            subbands7                               BIT STRING(SIZE(7)),
            subbands8                               BIT STRING(SIZE(8)),
            subbands9                               BIT STRING(SIZE(9)),
            subbands10                              BIT STRING(SIZE(10)),
            subbands11                              BIT STRING(SIZE(11)),
            subbands12                              BIT STRING(SIZE(12)),
            subbands13                              BIT STRING(SIZE(13)),
            subbands14                              BIT STRING(SIZE(14)),
            subbands15                              BIT STRING(SIZE(15)),
            subbands16                              BIT STRING(SIZE(16)),
            subbands17                              BIT STRING(SIZE(17)),
            subbands18                              BIT STRING(SIZE(18)),
            ...,
            subbands19-v1530                        BIT STRING(SIZE(19))
        }   OPTIONAL    -- Need S

    }                                                                                                           OPTIONAL,   -- Need R
    timeRestrictionForChannelMeasurements           ENUMERATED {configured, notConfigured},
    timeRestrictionForInterferenceMeasurements      ENUMERATED {configured, notConfigured},
    codebookConfig                                  CodebookConfig                                              OPTIONAL,   -- Need R
    dummy                                           ENUMERATED {n1, n2}                                         OPTIONAL,   -- Need R
    groupBasedBeamReporting                     CHOICE {
        enabled                                     NULL,
        disabled                                    SEQUENCE {
            nrofReportedRS                          ENUMERATED {n1, n2, n3, n4}                                 OPTIONAL    -- Need S
        }
    },
    cqi-Table                   ENUMERATED {table1, table2, table3, spare1}                                     OPTIONAL,   -- Need R
    subbandSize                 ENUMERATED {value1, value2},
    non-PMI-PortIndication      SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL,   -- Need R
    ...,
    [[
    semiPersistentOnPUSCH-v1530         SEQUENCE {
        reportSlotConfig-v1530              ENUMERATED {sl4, sl8, sl16}
    }                                                                                                           OPTIONAL    -- Need R
    ]]
}

CSI-ReportPeriodicityAndOffset ::=  CHOICE {
    slots4                              INTEGER(0..3),
    slots5                              INTEGER(0..4),
    slots8                              INTEGER(0..7),
    slots10                             INTEGER(0..9),
    slots16                             INTEGER(0..15),
    slots20                             INTEGER(0..19),
    slots40                             INTEGER(0..39),
    slots80                             INTEGER(0..79),
    slots160                            INTEGER(0..159),
    slots320                            INTEGER(0..319)
}

PUCCH-CSI-Resource ::=              SEQUENCE {
    uplinkBandwidthPartId               BWP-Id,
    pucch-Resource                      PUCCH-ResourceId
}

PortIndexFor8Ranks ::=              CHOICE {
    portIndex8                          SEQUENCE{
        rank1-8                             PortIndex8                                                      OPTIONAL,   -- Need R
        rank2-8                             SEQUENCE(SIZE(2)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank3-8                             SEQUENCE(SIZE(3)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank4-8                             SEQUENCE(SIZE(4)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank5-8                             SEQUENCE(SIZE(5)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank6-8                             SEQUENCE(SIZE(6)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank7-8                             SEQUENCE(SIZE(7)) OF PortIndex8                                 OPTIONAL,   -- Need R
        rank8-8                             SEQUENCE(SIZE(8)) OF PortIndex8                                 OPTIONAL    -- Need R
    },
    portIndex4                          SEQUENCE{
        rank1-4                             PortIndex4                                                      OPTIONAL,   -- Need R
        rank2-4                             SEQUENCE(SIZE(2)) OF PortIndex4                                 OPTIONAL,   -- Need R
        rank3-4                             SEQUENCE(SIZE(3)) OF PortIndex4                                 OPTIONAL,   -- Need R
        rank4-4                             SEQUENCE(SIZE(4)) OF PortIndex4                                 OPTIONAL    -- Need R
    },
    portIndex2                          SEQUENCE{
        rank1-2                             PortIndex2                                                      OPTIONAL,   -- Need R
        rank2-2                             SEQUENCE(SIZE(2)) OF PortIndex2                                 OPTIONAL    -- Need R
    },
    portIndex1                          NULL
}

PortIndex8::=                       INTEGER (0..7)
PortIndex4::=                       INTEGER (0..3)
PortIndex2::=                       INTEGER (0..1)

-- TAG-CSI-REPORTCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-REPORTCONFIGID-START

CSI-ReportConfigId ::=              INTEGER (0..maxNrofCSI-ReportConfigurations-1)

-- TAG-CSI-REPORTCONFIGID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-RESOURCECONFIG-START

CSI-ResourceConfig ::=      SEQUENCE {
    csi-ResourceConfigId        CSI-ResourceConfigId,
    csi-RS-ResourceSetList      CHOICE {
        nzp-CSI-RS-SSB              SEQUENCE {
            nzp-CSI-RS-ResourceSetList  SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)) OF NZP-CSI-RS-ResourceSetId
                                                                                                                 OPTIONAL, -- Need R
            csi-SSB-ResourceSetList     SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId
                                                                                                                 OPTIONAL  -- Need R
        },
        csi-IM-ResourceSetList      SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId
    },

    bwp-Id                      BWP-Id,
    resourceType                ENUMERATED { aperiodic, semiPersistent, periodic },
    ...
}

-- TAG-CSI-RESOURCECONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-RESOURCECONFIGID-START

CSI-ResourceConfigId ::=            INTEGER (0..maxNrofCSI-ResourceConfigurations-1)

-- TAG-CSI-RESOURCECONFIGID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-RESOURCEPERIODICITYANDOFFSET-START

CSI-ResourcePeriodicityAndOffset ::=    CHOICE {
    slots4                              INTEGER (0..3),
    slots5                              INTEGER (0..4),
    slots8                              INTEGER (0..7),
    slots10                             INTEGER (0..9),
    slots16                             INTEGER (0..15),
    slots20                             INTEGER (0..19),
    slots32                             INTEGER (0..31),
    slots40                             INTEGER (0..39),
    slots64                             INTEGER (0..63),
    slots80                             INTEGER (0..79),
    slots160                            INTEGER (0..159),
    slots320                            INTEGER (0..319),
    slots640                            INTEGER (0..639)
}

-- TAG-CSI-RESOURCEPERIODICITYANDOFFSET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-RS-RESOURCECONFIGMOBILITY-START

CSI-RS-ResourceConfigMobility ::=   SEQUENCE {
    subcarrierSpacing                   SubcarrierSpacing,
    csi-RS-CellList-Mobility            SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility,
    ... ,
    [[
    refServCellIndex-v1530              ServCellIndex                                                           OPTIONAL    -- Need S
    ]]


}

CSI-RS-CellMobility ::=             SEQUENCE {
    cellId                              PhysCellId,
    csi-rs-MeasurementBW                SEQUENCE {
        nrofPRBs                            ENUMERATED { size24, size48, size96, size192, size264},
        startPRB                            INTEGER(0..2169)
    },
    density                             ENUMERATED {d1,d3}                                                      OPTIONAL,   -- Need R
    csi-rs-ResourceList-Mobility        SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesRRM)) OF CSI-RS-Resource-Mobility
}

CSI-RS-Resource-Mobility ::=        SEQUENCE {
    csi-RS-Index                        CSI-RS-Index,
    slotConfig                          CHOICE {
        ms4                                 INTEGER (0..31),
        ms5                                 INTEGER (0..39),
        ms10                                INTEGER (0..79),
        ms20                                INTEGER (0..159),
        ms40                                INTEGER (0..319)
    },
    associatedSSB                       SEQUENCE {
        ssb-Index                           SSB-Index,
        isQuasiColocated                    BOOLEAN
    }                                                                                                           OPTIONAL, -- Need R
    frequencyDomainAllocation           CHOICE {
        row1                                BIT STRING (SIZE (4)),
        row2                                BIT STRING (SIZE (12))
    },
    firstOFDMSymbolInTimeDomain         INTEGER (0..13),
    sequenceGenerationConfig            INTEGER (0..1023),
    ...
}

CSI-RS-Index ::=                    INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1)

-- TAG-CSI-RS-RESOURCECONFIGMOBILITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-RS-RESOURCEMAPPING-START

CSI-RS-ResourceMapping ::=          SEQUENCE {
    frequencyDomainAllocation           CHOICE {
        row1                                BIT STRING (SIZE (4)),
        row2                                BIT STRING (SIZE (12)),
        row4                                BIT STRING (SIZE (3)),
        other                               BIT STRING (SIZE (6))
    },
    nrofPorts                           ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32},
    firstOFDMSymbolInTimeDomain         INTEGER (0..13),
    firstOFDMSymbolInTimeDomain2        INTEGER (2..12)                                                         OPTIONAL,   -- Need R
    cdm-Type                            ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4},
    density                             CHOICE {
        dot5                                ENUMERATED {evenPRBs, oddPRBs},
        one                                 NULL,
        three                               NULL,
        spare                               NULL
    },
    freqBand                            CSI-FrequencyOccupation,
    ...
}

-- TAG-CSI-RS-RESOURCEMAPPING-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-START

CSI-SemiPersistentOnPUSCH-TriggerStateList ::=
                                 SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) OF CSI-SemiPersistentOnPUSCH-TriggerState

CSI-SemiPersistentOnPUSCH-TriggerState ::=      SEQUENCE {
    associatedReportConfigInfo                      CSI-ReportConfigId,
    ...
}

-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-SSB-RESOURCESET-START

CSI-SSB-ResourceSet ::=             SEQUENCE {
    csi-SSB-ResourceSetId               CSI-SSB-ResourceSetId,
    csi-SSB-ResourceList                SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) OF SSB-Index,
    ...
}

-- TAG-CSI-SSB-RESOURCESET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CSI-SSB-RESOURCESETID-START

CSI-SSB-ResourceSetId ::=           INTEGER (0..maxNrofCSI-SSB-ResourceSets-1)

-- TAG-CSI-SSB-RESOURCESETID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DEDICATED-NAS-MESSAGE-START

DedicatedNAS-Message ::=        OCTET STRING

-- TAG-DEDICATED-NAS-MESSAGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DMRS-DOWNLINKCONFIG-START

DMRS-DownlinkConfig ::=             SEQUENCE {
    dmrs-Type                           ENUMERATED {type2}                                                      OPTIONAL,   -- Need S
    dmrs-AdditionalPosition             ENUMERATED {pos0, pos1, pos3}                                           OPTIONAL,   -- Need S
    maxLength                           ENUMERATED {len2}                                                       OPTIONAL,   -- Need S
    scramblingID0                       INTEGER (0..65535)                                                      OPTIONAL,   -- Need S
    scramblingID1                       INTEGER (0..65535)                                                      OPTIONAL,   -- Need S
    phaseTrackingRS                     SetupRelease { PTRS-DownlinkConfig  }                                   OPTIONAL,   -- Need M
    ...
}

-- TAG-DMRS-DOWNLINKCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DMRS-UPLINKCONFIG-START

DMRS-UplinkConfig ::=               SEQUENCE {
    dmrs-Type                           ENUMERATED {type2}                                                  OPTIONAL,   -- Need S
    dmrs-AdditionalPosition             ENUMERATED {pos0, pos1, pos3}                                       OPTIONAL,   -- Need S
    phaseTrackingRS                     SetupRelease { PTRS-UplinkConfig }                                  OPTIONAL,   -- Need M
    maxLength                           ENUMERATED {len2}                                                   OPTIONAL,   -- Need S
    transformPrecodingDisabled          SEQUENCE {
        scramblingID0                       INTEGER (0..65535)                                              OPTIONAL,   -- Need S
        scramblingID1                       INTEGER (0..65535)                                              OPTIONAL,   -- Need S
        ...
    }                                                                                                       OPTIONAL,   -- Need R
    transformPrecodingEnabled           SEQUENCE {
        nPUSCH-Identity                     INTEGER(0..1007)                                                OPTIONAL,   -- Need S
        sequenceGroupHopping                ENUMERATED {disabled}                                           OPTIONAL,   -- Need S
        sequenceHopping                     ENUMERATED {enabled}                                            OPTIONAL,   -- Need S
        ...
    }                                                                                                       OPTIONAL,   -- Need R
    ...
}

-- TAG-DMRS-UPLINKCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DOWNLINKCONFIGCOMMON-START

DownlinkConfigCommon ::=        SEQUENCE {
    frequencyInfoDL                 FrequencyInfoDL                                 OPTIONAL,   -- Cond InterFreqHOAndServCellAdd
    initialDownlinkBWP              BWP-DownlinkCommon                              OPTIONAL,   -- Cond ServCellAdd
    ...
}

-- TAG-DOWNLINKCONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DOWNLINKCONFIGCOMMONSIB-START

DownlinkConfigCommonSIB ::=     SEQUENCE {
    frequencyInfoDL                 FrequencyInfoDL-SIB,
    initialDownlinkBWP              BWP-DownlinkCommon,
    bcch-Config                         BCCH-Config,
    pcch-Config                         PCCH-Config,
    ...
}


BCCH-Config ::=                 SEQUENCE { 
    modificationPeriodCoeff         ENUMERATED {n2, n4, n8, n16},
    ...
}


PCCH-Config ::=             SEQUENCE {
    defaultPagingCycle                  PagingCycle,
    nAndPagingFrameOffset               CHOICE {
        oneT                                NULL,
        halfT                               INTEGER (0..1),
        quarterT                            INTEGER (0..3),
        oneEighthT                          INTEGER (0..7),
        oneSixteenthT                       INTEGER (0..15)
    },
    ns                                  ENUMERATED {four, two, one},
    firstPDCCH-MonitoringOccasionOfPO   CHOICE {
        sCS15KHZoneT                                                            SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..139),
        sCS30KHZoneT-SCS15KHZhalfT                                              SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..279),
        sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT                             SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..559),
        sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT         SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..1119),
        sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT
                                                                                SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..2239),
        sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT              SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..4479),
        sCS120KHZoneEighthT-SCS60KHZoneSixteenthT                               SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..8959),
        sCS120KHZoneSixteenthT                                                  SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..17919)
    }   OPTIONAL,           -- Need R
    ...
}

-- TAG-DOWNLINKCONFIGCOMMONSIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DOWNLINKPREEMPTION-START

DownlinkPreemption ::=              SEQUENCE {
    int-RNTI                            RNTI-Value,
    timeFrequencySet                    ENUMERATED {set0, set1},
    dci-PayloadSize                     INTEGER (0..maxINT-DCI-PayloadSize),
    int-ConfigurationPerServingCell     SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell,
    ...
}

INT-ConfigurationPerServingCell ::= SEQUENCE {
    servingCellId                       ServCellIndex,
    positionInDCI                       INTEGER (0..maxINT-DCI-PayloadSize-1)
}

-- TAG-DOWNLINKPREEMPTION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DRB-IDENTITY-START

DRB-Identity ::=                    INTEGER (1..32)

-- TAG-DRB-IDENTITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-DRX-CONFIG-START

DRX-Config ::=                      SEQUENCE {
    drx-onDurationTimer                 CHOICE {
                                            subMilliSeconds INTEGER (1..31),
                                            milliSeconds    ENUMERATED {
                                                ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60,
                                                ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200,
                                                ms1600, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
                                            },
    drx-InactivityTimer                 ENUMERATED {
                                            ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, ms80,
                                            ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8,
                                            spare7, spare6, spare5, spare4, spare3, spare2, spare1},
    drx-HARQ-RTT-TimerDL                INTEGER (0..56),
    drx-HARQ-RTT-TimerUL                INTEGER (0..56),
    drx-RetransmissionTimerDL           ENUMERATED {
                                            sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128,
                                            sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9,
                                            spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1},
    drx-RetransmissionTimerUL           ENUMERATED {
                                            sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128,
                                            sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9,
                                            spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 },
    drx-LongCycleStartOffset            CHOICE {
        ms10                                INTEGER(0..9),
        ms20                                INTEGER(0..19),
        ms32                                INTEGER(0..31),
        ms40                                INTEGER(0..39),
        ms60                                INTEGER(0..59),
        ms64                                INTEGER(0..63),
        ms70                                INTEGER(0..69),
        ms80                                INTEGER(0..79),
        ms128                               INTEGER(0..127),
        ms160                               INTEGER(0..159),
        ms256                               INTEGER(0..255),
        ms320                               INTEGER(0..319),
        ms512                               INTEGER(0..511),
        ms640                               INTEGER(0..639),
        ms1024                              INTEGER(0..1023),
        ms1280                              INTEGER(0..1279),
        ms2048                              INTEGER(0..2047),
        ms2560                              INTEGER(0..2559),
        ms5120                              INTEGER(0..5119),
        ms10240                             INTEGER(0..10239)
    },

    shortDRX                            SEQUENCE {
        drx-ShortCycle                      ENUMERATED  {
                                                ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32,
                                                ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9,
                                                spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 },
        drx-ShortCycleTimer                 INTEGER (1..16)
    }                                                                                                           OPTIONAL,   -- Need R
    drx-SlotOffset                      INTEGER (0..31)
}

-- TAG-DRX-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FILTERCOEFFICIENT-START

FilterCoefficient ::=       ENUMERATED { fc0, fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19, spare1, ...}

-- TAG-FILTERCOEFFICIENT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQBANDINDICATORNR-START

FreqBandIndicatorNR ::=             INTEGER (1..1024)

-- TAG-FREQBANDINDICATORNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQUENCYINFODL-START

FrequencyInfoDL ::=                 SEQUENCE {
    absoluteFrequencySSB                ARFCN-ValueNR                                                   OPTIONAL,   -- Cond SpCellAdd
    frequencyBandList                   MultiFrequencyBandListNR,
    absoluteFrequencyPointA             ARFCN-ValueNR,
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    ...
}

-- TAG-FREQUENCYINFODL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQUENCYINFODL-SIB-START

FrequencyInfoDL-SIB ::=             SEQUENCE {
    frequencyBandList                   MultiFrequencyBandListNR-SIB,
    offsetToPointA                      INTEGER (0..2199),
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier
}

-- TAG-FREQUENCYINFODL-SIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQUENCYINFOUL-START

FrequencyInfoUL ::=                 SEQUENCE {
    frequencyBandList                   MultiFrequencyBandListNR                                OPTIONAL,   -- Cond FDD-OrSUL
    absoluteFrequencyPointA             ARFCN-ValueNR                                           OPTIONAL,   -- Cond FDD-OrSUL
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    additionalSpectrumEmission          AdditionalSpectrumEmission                              OPTIONAL,   -- Need S
    p-Max                               P-Max                                                   OPTIONAL,   -- Need S
    frequencyShift7p5khz                ENUMERATED {true}                                       OPTIONAL,   -- Cond FDD-TDD-OrSUL-Optional
    ...
}

-- TAG-FREQUENCYINFOUL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQUENCYINFOUL-SIB-START

FrequencyInfoUL-SIB ::=                 SEQUENCE {
    frequencyBandList                   MultiFrequencyBandListNR-SIB                            OPTIONAL,   -- Cond FDD-OrSUL
    absoluteFrequencyPointA             ARFCN-ValueNR                                           OPTIONAL,   -- Cond FDD-OrSUL
    scs-SpecificCarrierList             SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    p-Max                               P-Max                                                   OPTIONAL,   -- Need S
    frequencyShift7p5khz                ENUMERATED {true}                                       OPTIONAL,   -- Cond FDD-TDD-OrSUL-Optional
    ...
}

-- TAG-FREQUENCYINFOUL-SIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-HYSTERESIS-START

Hysteresis ::=                      INTEGER (0..30)

-- TAG-HYSTERESIS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-I-RNTI-VALUE-START

I-RNTI-Value ::=                        BIT STRING (SIZE(40))

-- TAG-I-RNTI-VALUE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-LOCATIONMEASUREMENTINFO-START

LocationMeasurementInfo ::=     CHOICE {
        eutra-RSTD                  EUTRA-RSTD-InfoList,
        ...,
        eutra-FineTimingDetection    NULL
}

EUTRA-RSTD-InfoList ::= SEQUENCE (SIZE (1..maxInterRAT-RSTD-Freq)) OF EUTRA-RSTD-Info

EUTRA-RSTD-Info ::= SEQUENCE {
    carrierFreq                 ARFCN-ValueEUTRA,
    measPRS-Offset              INTEGER (0..39),
    ...
}

-- TAG-LOCATIONMEASUREMENTINFO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-LOGICALCHANNELCONFIG-START

LogicalChannelConfig ::=            SEQUENCE {
    ul-SpecificParameters               SEQUENCE {
        priority                            INTEGER (1..16),
        prioritisedBitRate                  ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512,
                                            kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity},
        bucketSizeDuration                  ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000,
                                                            spare7, spare6, spare5, spare4, spare3,spare2, spare1},
        allowedServingCells                 SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF ServCellIndex
                                                                                                    OPTIONAL,   -- PDCP-CADuplication
        allowedSCS-List                     SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing       OPTIONAL,   -- Need R
        maxPUSCH-Duration                   ENUMERATED {ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1}
                                                                                                    OPTIONAL,   -- Need R
        configuredGrantType1Allowed         ENUMERATED {true}                                       OPTIONAL,   -- Need R
        logicalChannelGroup                 INTEGER (0..maxLCG-ID)                                  OPTIONAL,   -- Need R
        schedulingRequestID                 SchedulingRequestId                                     OPTIONAL,   -- Need R
        logicalChannelSR-Mask               BOOLEAN,
        logicalChannelSR-DelayTimerApplied  BOOLEAN,
        ...,
        bitRateQueryProhibitTimer       ENUMERATED { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12,s30}   OPTIONAL    -- Need R
    }                                                                                               OPTIONAL,   -- Cond UL
    ...
}

-- TAG-LOGICALCHANNELCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-LOGICALCHANNELIDENTITY-START

LogicalChannelIdentity ::=          INTEGER (1..maxLC-ID)

-- TAG-LOGICALCHANNELIDENTITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MAC-CELLGROUPCONFIG-START

MAC-CellGroupConfig ::=             SEQUENCE {
    drx-Config                          SetupRelease { DRX-Config }                                     OPTIONAL,   -- Need M
    schedulingRequestConfig             SchedulingRequestConfig                                         OPTIONAL,   -- Need M
    bsr-Config                          BSR-Config                                                      OPTIONAL,   -- Need M
    tag-Config                          TAG-Config                                                      OPTIONAL,   -- Need M
    phr-Config                          SetupRelease { PHR-Config }                                     OPTIONAL,   -- Need M
    skipUplinkTxDynamic                 BOOLEAN,
    ...,
    [[
    csi-Mask                                BOOLEAN                                                     OPTIONAL,   -- Need M
    dataInactivityTimer                     SetupRelease { DataInactivityTimer }                        OPTIONAL    -- Cond MCG-Only
    ]]
}

DataInactivityTimer ::=         ENUMERATED {s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180}

-- TAG-MAC-CELLGROUPCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASCONFIG-START

MeasConfig ::=                      SEQUENCE {
    measObjectToRemoveList              MeasObjectToRemoveList                                              OPTIONAL,   -- Need N
    measObjectToAddModList              MeasObjectToAddModList                                              OPTIONAL,   -- Need N
    reportConfigToRemoveList            ReportConfigToRemoveList                                            OPTIONAL,   -- Need N
    reportConfigToAddModList            ReportConfigToAddModList                                            OPTIONAL,   -- Need N
    measIdToRemoveList                  MeasIdToRemoveList                                                  OPTIONAL,   -- Need N
    measIdToAddModList                  MeasIdToAddModList                                                  OPTIONAL,   -- Need N
    s-MeasureConfig                     CHOICE {
        ssb-RSRP                            RSRP-Range,
        csi-RSRP                            RSRP-Range
    }                                                                                                       OPTIONAL,   -- Need M
    quantityConfig                      QuantityConfig                                                      OPTIONAL,   -- Need M
    measGapConfig                       MeasGapConfig                                                       OPTIONAL,   -- Need M
    measGapSharingConfig                MeasGapSharingConfig                                                OPTIONAL,   -- Need M
    ...
}

MeasObjectToRemoveList ::=              SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId

MeasIdToRemoveList ::=                  SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId

ReportConfigToRemoveList ::=            SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId

-- TAG-MEASCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASGAPCONFIG-START

MeasGapConfig ::=                   SEQUENCE {
    gapFR2                              SetupRelease { GapConfig }                                              OPTIONAL,   -- Need M
    ...,
    [[
    gapFR1                              SetupRelease { GapConfig }                                              OPTIONAL,   -- Need M
    gapUE                               SetupRelease { GapConfig }                                              OPTIONAL    -- Need M
    ]]

}

GapConfig ::=                       SEQUENCE {
    gapOffset                           INTEGER (0..159),
    mgl                                 ENUMERATED {ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6},
    mgrp                                ENUMERATED {ms20, ms40, ms80, ms160},
    mgta                                ENUMERATED {ms0, ms0dot25, ms0dot5},
    ...,
    [[
    refServCellIndicator            ENUMERATED {pCell, pSCell, mcg-FR2}                                         OPTIONAL   -- Cond NEDCorNRDC
    ]]

}

-- TAG-MEASGAPCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASGAPSHARINGCONFIG-START

MeasGapSharingConfig ::=        SEQUENCE {
    gapSharingFR2                   SetupRelease { MeasGapSharingScheme }       OPTIONAL,   -- Need M
    ...,
    [[
    gapSharingFR1                   SetupRelease { MeasGapSharingScheme }       OPTIONAL,   --Need M
    gapSharingUE                    SetupRelease { MeasGapSharingScheme }       OPTIONAL    --Need M
    ]]

}

MeasGapSharingScheme::=         ENUMERATED {scheme00, scheme01, scheme10, scheme11}

-- TAG-MEASGAPSHARINGCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASID-START

MeasId ::=                          INTEGER (1..maxNrofMeasId)

-- TAG-MEASID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASIDTOADDMODLIST-START

MeasIdToAddModList ::=              SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasIdToAddMod

MeasIdToAddMod ::=                  SEQUENCE {
    measId                              MeasId,
    measObjectId                        MeasObjectId,
    reportConfigId                      ReportConfigId
}

-- TAG-MEASIDTOADDMODLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASOBJECTEUTRA-START

MeasObjectEUTRA::=                          SEQUENCE {
    carrierFreq                                 ARFCN-ValueEUTRA,
    allowedMeasBandwidth                        EUTRA-AllowedMeasBandwidth,
    cellsToRemoveListEUTRAN                     EUTRA-CellIndexList                                         OPTIONAL,    -- Need N
    cellsToAddModListEUTRAN                     SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-Cell         OPTIONAL,    -- Need N
    blackCellsToRemoveListEUTRAN                EUTRA-CellIndexList                                         OPTIONAL,    -- Need N
    blackCellsToAddModListEUTRAN                SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-BlackCell    OPTIONAL,    -- Need N
    eutra-PresenceAntennaPort1                  EUTRA-PresenceAntennaPort1,
    eutra-Q-OffsetRange                         EUTRA-Q-OffsetRange                                         OPTIONAL,    -- Need R
    widebandRSRQ-Meas                           BOOLEAN,
    ...
}

EUTRA-CellIndexList ::=                     SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-CellIndex

EUTRA-CellIndex ::=                         INTEGER (1..maxCellMeasEUTRA)


EUTRA-Cell ::=                              SEQUENCE {
    cellIndexEUTRA                              EUTRA-CellIndex,
    physCellId                                  EUTRA-PhysCellId,
    cellIndividualOffset                        EUTRA-Q-OffsetRange
}


EUTRA-BlackCell ::=                         SEQUENCE {
    cellIndexEUTRA                              EUTRA-CellIndex,
    physCellIdRange                             EUTRA-PhysCellIdRange
}

-- TAG-MEASOBJECTEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASOBJECTID-START

MeasObjectId ::=                    INTEGER (1..maxNrofObjectId)

-- TAG-MEASOBJECTID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASOBJECTNR-START

MeasObjectNR ::=                    SEQUENCE {
    ssbFrequency                        ARFCN-ValueNR                                           OPTIONAL,   -- Cond SSBorAssociatedSSB
    ssbSubcarrierSpacing                SubcarrierSpacing                                       OPTIONAL,   -- Cond SSBorAssociatedSSB
    smtc1                               SSB-MTC                                                 OPTIONAL,   -- Cond SSBorAssociatedSSB
    smtc2                               SSB-MTC2                                                OPTIONAL,   -- Cond IntraFreqConnected
    refFreqCSI-RS                       ARFCN-ValueNR                                           OPTIONAL,   -- Cond CSI-RS
    referenceSignalConfig               ReferenceSignalConfig,
    absThreshSS-BlocksConsolidation     ThresholdNR                                                     OPTIONAL,   -- Need R
    absThreshCSI-RS-Consolidation       ThresholdNR                                                     OPTIONAL,   -- Need R
    nrofSS-BlocksToAverage              INTEGER (2..maxNrofSS-BlocksToAverage)                          OPTIONAL,   -- Need R
    nrofCSI-RS-ResourcesToAverage       INTEGER (2..maxNrofCSI-RS-ResourcesToAverage)                   OPTIONAL,   -- Need R
    quantityConfigIndex                 INTEGER (1..maxNrofQuantityConfig),
    offsetMO                            Q-OffsetRangeList,
    cellsToRemoveList                   PCI-List                                                        OPTIONAL,   -- Need N
    cellsToAddModList                   CellsToAddModList                                               OPTIONAL,   -- Need N
    blackCellsToRemoveList              PCI-RangeIndexList                                              OPTIONAL,   -- Need N
    blackCellsToAddModList              SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement      OPTIONAL,   -- Need N
    whiteCellsToRemoveList              PCI-RangeIndexList                                              OPTIONAL,   -- Need N
    whiteCellsToAddModList              SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement      OPTIONAL,   -- Need N
    ... ,
    [[
    freqBandIndicatorNR-v1530           FreqBandIndicatorNR                                             OPTIONAL,   -- Need R
    measCycleSCell-v1530                ENUMERATED {sf160, sf256, sf320, sf512, sf640, sf1024, sf1280}  OPTIONAL    -- Need R
    ]]
}

ReferenceSignalConfig::=            SEQUENCE {
    ssb-ConfigMobility                  SSB-ConfigMobility                                              OPTIONAL,   -- Need M
    csi-rs-ResourceConfigMobility       SetupRelease { CSI-RS-ResourceConfigMobility }                  OPTIONAL    -- Need M
}

SSB-ConfigMobility::=               SEQUENCE {

    ssb-ToMeasure                           SetupRelease { SSB-ToMeasure }                              OPTIONAL,   -- Need M
    deriveSSB-IndexFromCell             BOOLEAN,
    ss-RSSI-Measurement                         SS-RSSI-Measurement                                     OPTIONAL,   -- Need M
    ...
}


Q-OffsetRangeList ::=               SEQUENCE {
    rsrpOffsetSSB                       Q-OffsetRange               DEFAULT dB0,
    rsrqOffsetSSB                       Q-OffsetRange               DEFAULT dB0,
    sinrOffsetSSB                       Q-OffsetRange               DEFAULT dB0,
    rsrpOffsetCSI-RS                    Q-OffsetRange               DEFAULT dB0,
    rsrqOffsetCSI-RS                    Q-OffsetRange               DEFAULT dB0,
    sinrOffsetCSI-RS                    Q-OffsetRange               DEFAULT dB0
}


ThresholdNR ::=                     SEQUENCE{
    thresholdRSRP                       RSRP-Range                                                      OPTIONAL,   -- Need R
    thresholdRSRQ                       RSRQ-Range                                                      OPTIONAL,   -- Need R
    thresholdSINR                       SINR-Range                                                      OPTIONAL    -- Need R
}

CellsToAddModList ::=               SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod

CellsToAddMod ::=                   SEQUENCE {
    physCellId                          PhysCellId,
    cellIndividualOffset                Q-OffsetRangeList
}




-- TAG-MEASOBJECTNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASOBJECTTOADDMODLIST-START

MeasObjectToAddModList ::=                  SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectToAddMod

MeasObjectToAddMod ::=                      SEQUENCE {
    measObjectId                                MeasObjectId,
    measObject                                  CHOICE {
        measObjectNR                                MeasObjectNR,
        ... ,
        measObjectEUTRA                             MeasObjectEUTRA
    }
}

-- TAG-MEASOBJECTTOADDMODLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULTCELLLISTSFTD-NR-START

MeasResultCellListSFTD-NR ::=          SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-NR

MeasResultCellSFTD-NR ::=              SEQUENCE {
    physCellId                            PhysCellId,
    sfn-OffsetResult                      INTEGER (0..1023),
    frameBoundaryOffsetResult             INTEGER (-30720..30719),
    rsrp-Result                           RSRP-Range                      OPTIONAL
}

-- TAG-MEASRESULTCELLLISTSFTD-NR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULTCELLLISTSFTD-EUTRA-START

MeasResultCellListSFTD-EUTRA ::=          SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultSFTD-EUTRA

MeasResultSFTD-EUTRA ::=           SEQUENCE {
    eutra-PhysCellId                    EUTRA-PhysCellId,
    sfn-OffsetResult                    INTEGER (0..1023),
    frameBoundaryOffsetResult           INTEGER (-30720..30719),
    rsrp-Result                         RSRP-Range                      OPTIONAL
}

-- TAG-MEASRESULTCELLLISTSFTD-EUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULTS-START

MeasResults ::=                         SEQUENCE {
    measId                                  MeasId,
    measResultServingMOList                 MeasResultServMOList,
    measResultNeighCells                    CHOICE {
        measResultListNR                        MeasResultListNR,
        ...,
        measResultListEUTRA                     MeasResultListEUTRA
    }                                                                                                                   OPTIONAL,
    ...,
    [[
    measResultServFreqListEUTRA-SCG         MeasResultServFreqListEUTRA-SCG                                             OPTIONAL,
    measResultServFreqListNR-SCG            MeasResultServFreqListNR-SCG                                                OPTIONAL,
    measResultSFTD-EUTRA                    MeasResultSFTD-EUTRA                                                        OPTIONAL,
    measResultSFTD-NR                       MeasResultCellSFTD-NR                                                       OPTIONAL
     ]]

}

MeasResultServMOList ::=                SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO

MeasResultServMO ::=                    SEQUENCE {
    servCellId                              ServCellIndex,
    measResultServingCell                   MeasResultNR,
    measResultBestNeighCell                 MeasResultNR                                                                OPTIONAL,
    ...
}

MeasResultListNR ::=                    SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR

MeasResultNR ::=                        SEQUENCE {
    physCellId                              PhysCellId                                                                  OPTIONAL,
    measResult                              SEQUENCE {
        cellResults                             SEQUENCE{
            resultsSSB-Cell                         MeasQuantityResults                                                 OPTIONAL,
            resultsCSI-RS-Cell                      MeasQuantityResults                                                 OPTIONAL
        },
        rsIndexResults                          SEQUENCE{
            resultsSSB-Indexes                      ResultsPerSSB-IndexList                                             OPTIONAL,
            resultsCSI-RS-Indexes                   ResultsPerCSI-RS-IndexList                                          OPTIONAL
        }                                                                                                               OPTIONAL
    },
    ...,
    [[
    cgi-Info                                CGI-InfoNR                                                                    OPTIONAL
    ]]
}

MeasResultListEUTRA ::=                 SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA

MeasResultEUTRA ::=                     SEQUENCE {
    eutra-PhysCellId                        PhysCellId,
    measResult                              MeasQuantityResultsEUTRA,

    cgi-Info                                CGI-InfoEUTRA                                                               OPTIONAL,...
}

MultiBandInfoListEUTRA ::=              SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicatorEUTRA

MeasQuantityResults ::=                 SEQUENCE {
    rsrp                                    RSRP-Range                                                                  OPTIONAL,
    rsrq                                    RSRQ-Range                                                                  OPTIONAL,
    sinr                                    SINR-Range                                                                  OPTIONAL
}


MeasQuantityResultsEUTRA ::=            SEQUENCE {
    rsrp                                    RSRP-RangeEUTRA                                                             OPTIONAL,
    rsrq                                    RSRQ-RangeEUTRA                                                             OPTIONAL,
    sinr                                    SINR-RangeEUTRA                                                             OPTIONAL
}


ResultsPerSSB-IndexList::=              SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerSSB-Index

ResultsPerSSB-Index ::=                 SEQUENCE {
    ssb-Index                               SSB-Index,
    ssb-Results                             MeasQuantityResults                                                         OPTIONAL
}

ResultsPerCSI-RS-IndexList::=           SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerCSI-RS-Index

ResultsPerCSI-RS-Index ::=              SEQUENCE {
    csi-RS-Index                            CSI-RS-Index,
    csi-RS-Results                          MeasQuantityResults                                                         OPTIONAL
}
MeasResultServFreqListEUTRA-SCG ::= SEQUENCE (SIZE (1..maxNrofServingCellsEUTRA)) OF MeasResult2EUTRA

MeasResultServFreqListNR-SCG ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResult2NR

-- TAG-MEASRESULTS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULT2EUTRA-START

MeasResult2EUTRA ::=       SEQUENCE {
    carrierFreq                         ARFCN-ValueEUTRA,
    measResultServingCell               MeasResultEUTRA                 OPTIONAL,
    measResultBestNeighCell             MeasResultEUTRA                 OPTIONAL,
    ...
}

-- TAG-MEASRESULT2EUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULT2NR-START

MeasResult2NR ::=                   SEQUENCE {
    ssbFrequency                        ARFCN-ValueNR                           OPTIONAL,
    refFreqCSI-RS                       ARFCN-ValueNR                           OPTIONAL,
    measResultServingCell               MeasResultNR                            OPTIONAL,
    measResultNeighCellListNR           MeasResultListNR                        OPTIONAL,
    ...
}

-- TAG-MEASRESULT2NR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASRESULTSCG-FAILURE-START

MeasResultSCG-Failure ::=           SEQUENCE {
    measResultPerMOList                 MeasResultList2NR,
    ...
}

MeasResultList2NR ::=               SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR

-- TAG-MEASRESULTSCG-FAILURE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MOBILITYSTATEPARAMETERS-START

MobilityStateParameters ::=         SEQUENCE{
    t-Evaluation                        ENUMERATED {
                                            s30, s60, s120, s180, s240, spare3, spare2, spare1},
    t-HystNormal                        ENUMERATED {
                                            s30, s60, s120, s180, s240, spare3, spare2, spare1},
    n-CellChangeMedium                  INTEGER (1..16),
    n-CellChangeHigh                    INTEGER (1..16)
}

-- TAG-MOBILITYSTATEPARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MULTIFREQUENCYBANDLISTNR-START

MultiFrequencyBandListNR ::=        SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR

-- TAG-MULTIFREQUENCYBANDLISTNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-START

MultiFrequencyBandListNR-SIB ::=            SEQUENCE (SIZE (1.. maxNrofMultiBands)) OF NR-MultiBandInfo

NR-MultiBandInfo ::=                        SEQUENCE {
    freqBandIndicatorNR                         FreqBandIndicatorNR         OPTIONAL,   -- Cond OptULNotSIB2
    nr-NS-PmaxList                              NR-NS-PmaxList              OPTIONAL    -- Need S
}

-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NEXTHOPCHAININGCOUNT-START

NextHopChainingCount ::=                    INTEGER (0..7)

-- TAG-NEXTHOPCHAININGCOUNT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NG-5G-S-TMSI-START

NG-5G-S-TMSI ::=                         BIT STRING (SIZE (48))

-- TAG-NG-5G-S-TMSI-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NR-NS-PMAXLIST-START

NR-NS-PmaxList ::=                          SEQUENCE (SIZE (1..maxNR-NS-Pmax)) OF NR-NS-PmaxValue

NR-NS-PmaxValue ::=                     SEQUENCE {
    additionalPmax                          P-Max                               OPTIONAL,   -- Need N
    additionalSpectrumEmission              AdditionalSpectrumEmission
}

-- TAG-NR-NS-PMAXLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NZP-CSI-RS-RESOURCE-START

NZP-CSI-RS-Resource ::=             SEQUENCE {
    nzp-CSI-RS-ResourceId               NZP-CSI-RS-ResourceId,
    resourceMapping                     CSI-RS-ResourceMapping,
    powerControlOffset                  INTEGER (-8..15),
    powerControlOffsetSS                ENUMERATED{db-3, db0, db3, db6}                 OPTIONAL,   -- Need R
    scramblingID                        ScramblingId,
    periodicityAndOffset                CSI-ResourcePeriodicityAndOffset                OPTIONAL,   -- Cond PeriodicOrSemiPersistent
    qcl-InfoPeriodicCSI-RS              TCI-StateId                                     OPTIONAL,   -- Cond Periodic
    ...
}

-- TAG-NZP-CSI-RS-RESOURCE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NZP-CSI-RS-RESOURCEID-START

NZP-CSI-RS-ResourceId ::=           INTEGER (0..maxNrofNZP-CSI-RS-Resources-1)

-- TAG-NZP-CSI-RS-RESOURCEID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NZP-CSI-RS-RESOURCESET-START
NZP-CSI-RS-ResourceSet ::=          SEQUENCE {
    nzp-CSI-ResourceSetId               NZP-CSI-RS-ResourceSetId,
    nzp-CSI-RS-Resources                SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId,
    repetition                          ENUMERATED { on, off }                                                          OPTIONAL,   -- Need S
    aperiodicTriggeringOffset           INTEGER(0..6)                                                                   OPTIONAL,   -- Need S
    trs-Info                            ENUMERATED {true}                                                               OPTIONAL,   -- Need R
    ...
}

-- TAG-NZP-CSI-RS-RESOURCESET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NZP-CSI-RS-RESOURCESETID-START

NZP-CSI-RS-ResourceSetId ::=        INTEGER (0..maxNrofNZP-CSI-RS-ResourceSets-1)

-- TAG-NZP-CSI-RS-RESOURCESETID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-P-MAX-START

P-Max ::=                           INTEGER (-30..33)

-- TAG-P-MAX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCI-LIST-START

PCI-List ::=                        SEQUENCE (SIZE (1..maxNrofCellMeas)) OF PhysCellId

-- TAG-PCI-LIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCI-RANGE-START

PCI-Range ::=                       SEQUENCE {
    start                               PhysCellId,
    range                               ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n84,
                                                    n96, n128, n168, n252, n504, n1008,spare1}                  OPTIONAL    -- Need S
}

-- TAG-PCI-RANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCI-RANGEELEMENT-START

PCI-RangeElement ::=                SEQUENCE {
    pci-RangeIndex                      PCI-RangeIndex,
    pci-Range                           PCI-Range
}

-- TAG-PCI-RANGEELEMENT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCI-RANGEINDEX-START

PCI-RangeIndex ::=                  INTEGER (1..maxNrofPCI-Ranges)

-- TAG-PCI-RANGEINDEX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PCI-RANGEINDEXLIST-START

PCI-RangeIndexList ::=              SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeIndex

-- TAG-PCI-RANGEINDEXLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCCH-CONFIG-START

PDCCH-Config ::=                    SEQUENCE {
    controlResourceSetToAddModList      SEQUENCE(SIZE (1..3)) OF ControlResourceSet                 OPTIONAL,   -- Need N
    controlResourceSetToReleaseList     SEQUENCE(SIZE (1..3)) OF ControlResourceSetId               OPTIONAL,   -- Need N
    searchSpacesToAddModList            SEQUENCE(SIZE (1..10)) OF SearchSpace                       OPTIONAL,   -- Need N
    searchSpacesToReleaseList           SEQUENCE(SIZE (1..10)) OF SearchSpaceId                     OPTIONAL,   -- Need N
    downlinkPreemption                  SetupRelease { DownlinkPreemption }                         OPTIONAL,   -- Need M
    tpc-PUSCH                           SetupRelease { PUSCH-TPC-CommandConfig }                    OPTIONAL,   -- Need M
    tpc-PUCCH                           SetupRelease { PUCCH-TPC-CommandConfig }                    OPTIONAL,   -- Need M
    tpc-SRS                             SetupRelease { SRS-TPC-CommandConfig}                       OPTIONAL,   -- Need M
    ...
}

-- TAG-PDCCH-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCCH-CONFIGCOMMON-START

PDCCH-ConfigCommon ::=              SEQUENCE {
    controlResourceSetZero              ControlResourceSetZero                                  OPTIONAL,   -- Cond InitialBWP-Only
    commonControlResourceSet            ControlResourceSet                                      OPTIONAL,   -- Need R
    searchSpaceZero                     SearchSpaceZero                                         OPTIONAL,   -- Cond InitialBWP-Only
    commonSearchSpaceList               SEQUENCE (SIZE(1..4)) OF SearchSpace                    OPTIONAL,   -- Need R
    searchSpaceSIB1                     SearchSpaceId                                           OPTIONAL,   -- Need S
    searchSpaceOtherSystemInformation   SearchSpaceId                                           OPTIONAL,   -- Need S
    pagingSearchSpace                   SearchSpaceId                                           OPTIONAL,   -- Need S
    ra-SearchSpace                      SearchSpaceId                                           OPTIONAL,   -- Need S
    ...,
    [[
    firstPDCCH-MonitoringOccasionOfPO   CHOICE {
        sCS15KHZoneT                                                             SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..139),
        sCS30KHZoneT-SCS15KHZhalfT                                               SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..279),
        sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT                              SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..559),
        sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT          SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..1119),
        sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..2239),
        sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT               SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..4479),
        sCS120KHZoneEighthT-SCS60KHZoneSixteenthT                                SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..8959),
        sCS120KHZoneSixteenthT                                                   SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..17919)
    }                                                                                                                OPTIONAL       -- Cond OtherBWP
    ]]
}

-- TAG-PDCCH-CONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCCH-CONFIGSIB1-START

PDCCH-ConfigSIB1 ::=                SEQUENCE {
    controlResourceSetZero              ControlResourceSetZero,
    searchSpaceZero                     SearchSpaceZero
}

-- TAG-PDCCH-CONFIGSIB1-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCCH-SERVINGCELLCONFIG-START

PDCCH-ServingCellConfig ::=         SEQUENCE {
    slotFormatIndicator                 SetupRelease { SlotFormatIndicator }                                OPTIONAL,   -- Need M
    ...
}

-- TAG-PDCCH-SERVINGCELLCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCP-CONFIG-START

PDCP-Config ::=         SEQUENCE {
    drb                     SEQUENCE {
        discardTimer            ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200,
                                            ms250, ms300, ms500, ms750, ms1500, infinity}       OPTIONAL, -- Cond Setup
        pdcp-SN-SizeUL          ENUMERATED {len12bits, len18bits}                               OPTIONAL, -- Cond Setup2
        pdcp-SN-SizeDL          ENUMERATED {len12bits, len18bits}                               OPTIONAL, -- Cond Setup2
        headerCompression       CHOICE {
            notUsed                 NULL,
            rohc                    SEQUENCE {
                maxCID                  INTEGER (1..16383)                                      DEFAULT 15,
                profiles                SEQUENCE {
                    profile0x0001           BOOLEAN,
                    profile0x0002           BOOLEAN,
                    profile0x0003           BOOLEAN,
                    profile0x0004           BOOLEAN,
                    profile0x0006           BOOLEAN,
                    profile0x0101           BOOLEAN,
                    profile0x0102           BOOLEAN,
                    profile0x0103           BOOLEAN,
                    profile0x0104           BOOLEAN
                },
                drb-ContinueROHC            ENUMERATED { true }                                 OPTIONAL    -- Need N
            },
            uplinkOnlyROHC          SEQUENCE {
                maxCID                  INTEGER (1..16383)                                      DEFAULT 15,
                profiles                SEQUENCE {
                    profile0x0006           BOOLEAN
                },
                drb-ContinueROHC            ENUMERATED { true }                                 OPTIONAL    -- Need N
            },
            ...
        },
        integrityProtection     ENUMERATED { enabled }                                          OPTIONAL,   -- Cond ConnectedTo5GC1
        statusReportRequired    ENUMERATED { true }                                             OPTIONAL,   -- Cond Rlc-AM
        outOfOrderDelivery      ENUMERATED { true }                                             OPTIONAL    -- Need R
    }                                                                                           OPTIONAL,   -- Cond DRB
    moreThanOneRLC          SEQUENCE {
        primaryPath             SEQUENCE {
            cellGroup               CellGroupId                                                 OPTIONAL,   -- Need R
            logicalChannel          LogicalChannelIdentity                                      OPTIONAL    -- Need R
        },
        ul-DataSplitThreshold   UL-DataSplitThreshold                                           OPTIONAL, -- Cond SplitBearer
        pdcp-Duplication            BOOLEAN                                                     OPTIONAL    -- Need R
    }                                                                                           OPTIONAL, -- Cond MoreThanOneRLC

    t-Reordering                ENUMERATED {
                                    ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40,
                                    ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220,
                                    ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250,
                                    ms1500, ms1750, ms2000, ms2250, ms2500, ms2750,
                                    ms3000, spare28, spare27, spare26, spare25, spare24,
                                    spare23, spare22, spare21, spare20,
                                    spare19, spare18, spare17, spare16, spare15, spare14,
                                    spare13, spare12, spare11, spare10, spare09,
                                    spare08, spare07, spare06, spare05, spare04, spare03,
                                    spare02, spare01 }                                          OPTIONAL, -- Need S
    ...,
    [[
    cipheringDisabled       ENUMERATED {true}                                                   OPTIONAL    -- Cond ConnectedTo5GC
    ]]
}

UL-DataSplitThreshold ::= ENUMERATED {
                                            b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800,
                                            b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400,
                                            b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}

-- TAG-PDCP-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDSCH-CONFIG-START

PDSCH-Config ::=                        SEQUENCE {
    dataScramblingIdentityPDSCH             INTEGER (0..1023)                                                   OPTIONAL,   -- Need S
    dmrs-DownlinkForPDSCH-MappingTypeA      SetupRelease { DMRS-DownlinkConfig }                                OPTIONAL,   -- Need M
    dmrs-DownlinkForPDSCH-MappingTypeB      SetupRelease { DMRS-DownlinkConfig }                                OPTIONAL,   -- Need M

    tci-StatesToAddModList                  SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-State                  OPTIONAL,   -- Need N
    tci-StatesToReleaseList                 SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-StateId                OPTIONAL,   -- Need N
    vrb-ToPRB-Interleaver                   ENUMERATED {n2, n4}                                                 OPTIONAL,   -- Need S
    resourceAllocation                      ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch},
    pdsch-TimeDomainAllocationList          SetupRelease { PDSCH-TimeDomainResourceAllocationList }             OPTIONAL,   -- Need M
    pdsch-AggregationFactor                 ENUMERATED { n2, n4, n8 }                                           OPTIONAL,   -- Need S
    rateMatchPatternToAddModList            SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern   OPTIONAL,   -- Need N
    rateMatchPatternToReleaseList           SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL,   -- Need N
    rateMatchPatternGroup1                  RateMatchPatternGroup                                               OPTIONAL,   -- Need R
    rateMatchPatternGroup2                  RateMatchPatternGroup                                               OPTIONAL,   -- Need R

    rbg-Size                                ENUMERATED {config1, config2},
    mcs-Table                               ENUMERATED {qam256, qam64LowSE}                                     OPTIONAL,   -- Need S
    maxNrofCodeWordsScheduledByDCI          ENUMERATED {n1, n2}                                                 OPTIONAL,   -- Need R

    prb-BundlingType                        CHOICE {
        staticBundling                          SEQUENCE {
            bundleSize                              ENUMERATED { n4, wideband }                                 OPTIONAL    -- Need S
        },
        dynamicBundling                     SEQUENCE {
            bundleSizeSet1                      ENUMERATED { n4, wideband, n2-wideband, n4-wideband }           OPTIONAL,   -- Need S
            bundleSizeSet2                      ENUMERATED { n4, wideband }                                     OPTIONAL    -- Need S
        }
    },
    zp-CSI-RS-ResourceToAddModList                  SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-Resource
                                                                                                                OPTIONAL,   -- Need N
    zp-CSI-RS-ResourceToReleaseList                 SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-ResourceId
                                                                                                                OPTIONAL,   -- Need N
    aperiodic-ZP-CSI-RS-ResourceSetsToAddModList    SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet
                                                                                                                OPTIONAL,   -- Need N
    aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId
                                                                                                                OPTIONAL,   -- Need N
    sp-ZP-CSI-RS-ResourceSetsToAddModList   SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet
                                                                                                                OPTIONAL,   -- Need N
    sp-ZP-CSI-RS-ResourceSetsToReleaseList  SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId
                                                                                                                OPTIONAL,   -- Need N
    p-ZP-CSI-RS-ResourceSet                 SetupRelease { ZP-CSI-RS-ResourceSet }
                                                                                                                OPTIONAL,   -- Need M
    ...
}
RateMatchPatternGroup ::=               SEQUENCE (SIZE (1..maxNrofRateMatchPatternsPerGroup)) OF CHOICE {
    cellLevel                               RateMatchPatternId,
    bwpLevel                                RateMatchPatternId
}

-- TAG-PDSCH-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDSCH-CONFIGCOMMON-START

PDSCH-ConfigCommon ::=                  SEQUENCE {
    pdsch-TimeDomainAllocationList                  PDSCH-TimeDomainResourceAllocationList          OPTIONAL,   -- Need R
    ...
}

-- TAG-PDSCH-CONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDSCH-SERVINGCELLCONFIG-START

PDSCH-ServingCellConfig ::=             SEQUENCE {
    codeBlockGroupTransmission              SetupRelease { PDSCH-CodeBlockGroupTransmission }       OPTIONAL,   -- Need M
    xOverhead                               ENUMERATED { xOh6, xOh12, xOh18 }                       OPTIONAL,   -- Need S
    nrofHARQ-ProcessesForPDSCH              ENUMERATED {n2, n4, n6, n10, n12, n16}                  OPTIONAL,   -- Need S
    pucch-Cell                              ServCellIndex                                           OPTIONAL,   -- Cond SCellAddOnly
    ...,
    [[
    maxMIMO-Layers                          INTEGER (1..8)                                          OPTIONAL,  -- Need M
    processingType2Enabled                  BOOLEAN                                                 OPTIONAL   -- Need M
    ]]
}

PDSCH-CodeBlockGroupTransmission ::=    SEQUENCE {
    maxCodeBlockGroupsPerTransportBlock     ENUMERATED {n2, n4, n6, n8},
    codeBlockGroupFlushIndicator            BOOLEAN,
    ...
}

-- TAG-PDSCH-SERVINGCELLCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-START


PDSCH-TimeDomainResourceAllocationList ::=  SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation

PDSCH-TimeDomainResourceAllocation ::=   SEQUENCE {
    k0                                      INTEGER(0..32)                                                     OPTIONAL,   -- Need S
    mappingType                             ENUMERATED {typeA, typeB},
    startSymbolAndLength                    INTEGER (0..127)
}

-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PHR-CONFIG-START

PHR-Config ::=                      SEQUENCE {
    phr-PeriodicTimer                   ENUMERATED {sf10, sf20, sf50, sf100, sf200,sf500, sf1000, infinity},
    phr-ProhibitTimer                   ENUMERATED {sf0, sf10, sf20, sf50, sf100,sf200, sf500, sf1000},
    phr-Tx-PowerFactorChange            ENUMERATED {dB1, dB3, dB6, infinity},
    multiplePHR                         BOOLEAN,
    dummy                               BOOLEAN,
    phr-Type2OtherCell                  BOOLEAN,
    phr-ModeOtherCG                     ENUMERATED {real, virtual},
    ...
}

-- TAG-PHR-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PHYSCELLID-START

PhysCellId ::=                      INTEGER (0..1007)

-- TAG-PHYSCELLID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PHYSICALCELLGROUPCONFIG-START

PhysicalCellGroupConfig ::=         SEQUENCE {
    harq-ACK-SpatialBundlingPUCCH       ENUMERATED {true}                                               OPTIONAL,   -- Need S
    harq-ACK-SpatialBundlingPUSCH       ENUMERATED {true}                                               OPTIONAL,   -- Need S
    p-NR-FR1                            P-Max                                                           OPTIONAL,   -- Need R
    pdsch-HARQ-ACK-Codebook             ENUMERATED {semiStatic, dynamic},
    tpc-SRS-RNTI                        RNTI-Value                                                      OPTIONAL,   -- Need R
    tpc-PUCCH-RNTI                      RNTI-Value                                                      OPTIONAL,   -- Need R
    tpc-PUSCH-RNTI                      RNTI-Value                                                      OPTIONAL,   -- Need R
    sp-CSI-RNTI                         RNTI-Value                                                      OPTIONAL,   -- Need R
    cs-RNTI                             SetupRelease { RNTI-Value }                                     OPTIONAL,   -- Need M
    ...,
    [[
    mcs-C-RNTI                          RNTI-Value                                                      OPTIONAL,   -- Need R
    p-UE-FR1                            P-Max                                                           OPTIONAL    -- Cond MCG-Only
    ]],
    [[
    xScale                              ENUMERATED {dB0, dB6, spare2, spare1}                           OPTIONAL    -- Cond SCG-Only
    ]],
    [[
    pdcch-BlindDetection                SetupRelease { PDCCH-BlindDetection }                           OPTIONAL    -- Need M
    ]]
}

PDCCH-BlindDetection ::=                INTEGER (1..15)

-- TAG-PHYSICALCELLGROUPCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PLMN-IDENTITY-START

PLMN-Identity ::=                   SEQUENCE {
    mcc                                 MCC                 OPTIONAL,                   -- Cond MCC
    mnc                                 MNC
}

MCC ::=                             SEQUENCE (SIZE (3)) OF MCC-MNC-Digit

MNC ::=                             SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit

MCC-MNC-Digit ::=                   INTEGER (0..9)


-- TAG-PLMN-IDENTITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PLMN-IDENTITYINFOLIST-START

PLMN-IdentityInfoList ::=               SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-IdentityInfo

PLMN-IdentityInfo ::=                   SEQUENCE {
    plmn-IdentityList                       SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity,
    trackingAreaCode                        TrackingAreaCode                                            OPTIONAL,       -- Need R
    ranac                                   RAN-AreaCode                                                OPTIONAL,       -- Need R
    cellIdentity                            CellIdentity,
    cellReservedForOperatorUse              ENUMERATED {reserved, notReserved},
    ...
}
-- TAG-PLMN-IDENTITYINFOLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PRB-ID-START

PRB-Id ::=                          INTEGER (0..maxNrofPhysicalResourceBlocks-1)

-- TAG-PRB-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PTRS-DOWNLINKCONFIG-START

PTRS-DownlinkConfig ::=             SEQUENCE {
    frequencyDensity                    SEQUENCE (SIZE (2)) OF INTEGER (1..276)                                 OPTIONAL,   -- Need S
    timeDensity                         SEQUENCE (SIZE (3)) OF INTEGER (0..29)                                  OPTIONAL,   -- Need S
    epre-Ratio                          INTEGER (0..3)                                                          OPTIONAL,   -- Need S
    resourceElementOffset               ENUMERATED { offset01, offset10, offset11 }                             OPTIONAL,   -- Need S
    ...
}

-- TAG-PTRS-DOWNLINKCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PTRS-UPLINKCONFIG-START

PTRS-UplinkConfig ::=                   SEQUENCE {
    transformPrecoderDisabled               SEQUENCE {
        frequencyDensity                    SEQUENCE (SIZE (2)) OF INTEGER (1..276)                 OPTIONAL,   -- Need S
        timeDensity                         SEQUENCE (SIZE (3)) OF INTEGER (0..29)                  OPTIONAL,   -- Need S
        maxNrofPorts                        ENUMERATED {n1, n2},
        resourceElementOffset               ENUMERATED {offset01, offset10, offset11 }              OPTIONAL,   -- Need S
        ptrs-Power                          ENUMERATED {p00, p01, p10, p11}
    }                                                                                               OPTIONAL,   -- Need R
    transformPrecoderEnabled                SEQUENCE {
        sampleDensity                           SEQUENCE (SIZE (5)) OF INTEGER (1..276),
        timeDensityTransformPrecoding           ENUMERATED {d2}                                     OPTIONAL    -- Need S
    }                                                                                               OPTIONAL,   -- Need R
    ...
}

-- TAG-PTRS-UPLINKCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-CONFIG-START

PUCCH-Config ::=                        SEQUENCE {
    resourceSetToAddModList                 SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet   OPTIONAL, -- Need N
    resourceSetToReleaseList                SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N
    resourceToAddModList                    SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource         OPTIONAL, -- Need N
    resourceToReleaseList                   SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId       OPTIONAL, -- Need N
    format1                                 SetupRelease { PUCCH-FormatConfig }                                   OPTIONAL, -- Need M
    format2                                 SetupRelease { PUCCH-FormatConfig }                                   OPTIONAL, -- Need M
    format3                                 SetupRelease { PUCCH-FormatConfig }                                   OPTIONAL, -- Need M
    format4                                 SetupRelease { PUCCH-FormatConfig }                                   OPTIONAL, -- Need M

    schedulingRequestResourceToAddModList   SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig   
                                                                                                                  OPTIONAL, -- Need N
    schedulingRequestResourceToReleaseList  SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId
                                                                                                                  OPTIONAL, -- Need N
    multi-CSI-PUCCH-ResourceList            SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId                            OPTIONAL, -- Need M
    dl-DataToUL-ACK                         SEQUENCE (SIZE (1..8)) OF INTEGER (0..15)                             OPTIONAL, -- Need M

    spatialRelationInfoToAddModList         SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo
                                                                                                                  OPTIONAL, -- Need N
    spatialRelationInfoToReleaseList        SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId
                                                                                                                  OPTIONAL, -- Need N
    pucch-PowerControl                      PUCCH-PowerControl                                                    OPTIONAL, -- Need M
    ...
}

PUCCH-FormatConfig ::=                  SEQUENCE {
    interslotFrequencyHopping               ENUMERATED {enabled}                                                  OPTIONAL, -- Need R
    additionalDMRS                          ENUMERATED {true}                                                     OPTIONAL, -- Need R
    maxCodeRate                             PUCCH-MaxCodeRate                                                     OPTIONAL, -- Need R
    nrofSlots                               ENUMERATED {n2,n4,n8}                                                 OPTIONAL, -- Need S
    pi2BPSK                                 ENUMERATED {enabled}                                                  OPTIONAL, -- Need R
    simultaneousHARQ-ACK-CSI                ENUMERATED {true}                                                     OPTIONAL  -- Need R
}

PUCCH-MaxCodeRate ::=                   ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80}

-- A set with one or more PUCCH resources
PUCCH-ResourceSet ::=                   SEQUENCE {
    pucch-ResourceSetId                     PUCCH-ResourceSetId,
    resourceList                            SEQUENCE (SIZE (1..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId,
    maxPayloadMinus1                        INTEGER (4..256)                                                      OPTIONAL  -- Need R
}

PUCCH-ResourceSetId ::=                 INTEGER (0..maxNrofPUCCH-ResourceSets-1)

PUCCH-Resource ::=                      SEQUENCE {
    pucch-ResourceId                        PUCCH-ResourceId,
    startingPRB                             PRB-Id,
    intraSlotFrequencyHopping               ENUMERATED { enabled }                                                OPTIONAL, -- Need R
    secondHopPRB                            PRB-Id                                                                OPTIONAL, -- Need R
    format                                  CHOICE {
        format0                                 PUCCH-format0,
        format1                                 PUCCH-format1,
        format2                                 PUCCH-format2,
        format3                                 PUCCH-format3,
        format4                                 PUCCH-format4
    }
}

PUCCH-ResourceId ::=                    INTEGER (0..maxNrofPUCCH-Resources-1)


PUCCH-format0 ::=                               SEQUENCE {
    initialCyclicShift                              INTEGER(0..11),
    nrofSymbols                                     INTEGER (1..2),
    startingSymbolIndex                             INTEGER(0..13)
}

PUCCH-format1 ::=                               SEQUENCE {
    initialCyclicShift                              INTEGER(0..11),
    nrofSymbols                                     INTEGER (4..14),
    startingSymbolIndex                             INTEGER(0..10),
    timeDomainOCC                                   INTEGER(0..6)
}

PUCCH-format2 ::=                               SEQUENCE {
    nrofPRBs                                        INTEGER (1..16),
    nrofSymbols                                     INTEGER (1..2),
    startingSymbolIndex                             INTEGER(0..13)
}

PUCCH-format3 ::=                               SEQUENCE {
    nrofPRBs                                        INTEGER (1..16),
    nrofSymbols                                     INTEGER (4..14),
    startingSymbolIndex                             INTEGER(0..10)
}

PUCCH-format4 ::=                               SEQUENCE {
    nrofSymbols                                     INTEGER (4..14),
    occ-Length                                      ENUMERATED {n2,n4},
    occ-Index                                       ENUMERATED {n0,n1,n2,n3},
    startingSymbolIndex                             INTEGER(0..10)
}

-- TAG-PUCCH-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-CONFIGCOMMON-START

PUCCH-ConfigCommon ::=              SEQUENCE {
    pucch-ResourceCommon                INTEGER (0..15)                                      OPTIONAL,   -- Cond InitialBWP-Only
    pucch-GroupHopping                  ENUMERATED { neither, enable, disable },
    hoppingId                           INTEGER (0..1023)                                    OPTIONAL,   -- Need R
    p0-nominal                          INTEGER (-202..24)                                   OPTIONAL,   -- Need R
    ...
}

-- TAG-PUCCH-CONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START

PUCCH-PathlossReferenceRS-Id ::=            INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)

-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-POWERCONTROL-START
PUCCH-PowerControl ::=              SEQUENCE {
    deltaF-PUCCH-f0                     INTEGER (-16..15)                                                       OPTIONAL, -- Need R
    deltaF-PUCCH-f1                     INTEGER (-16..15)                                                       OPTIONAL, -- Need R
    deltaF-PUCCH-f2                     INTEGER (-16..15)                                                       OPTIONAL, -- Need R
    deltaF-PUCCH-f3                     INTEGER (-16..15)                                                       OPTIONAL, -- Need R
    deltaF-PUCCH-f4                     INTEGER (-16..15)                                                       OPTIONAL, -- Need R
    p0-Set                              SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH                 OPTIONAL, -- Need M
    pathlossReferenceRSs                SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS
                                                                                                                OPTIONAL, -- Need M
    twoPUCCH-PC-AdjustmentStates        ENUMERATED {twoStates}                                                  OPTIONAL, -- Need S
    ...
}

P0-PUCCH ::=                            SEQUENCE {
    p0-PUCCH-Id                             P0-PUCCH-Id,
    p0-PUCCH-Value                          INTEGER (-16..15)
}

P0-PUCCH-Id ::=                         INTEGER (1..8)

PUCCH-PathlossReferenceRS ::=                   SEQUENCE {
    pucch-PathlossReferenceRS-Id                PUCCH-PathlossReferenceRS-Id,
    referenceSignal                             CHOICE {
        ssb-Index                                   SSB-Index,
        csi-RS-Index                                NZP-CSI-RS-ResourceId
    }
}

-- TAG-PUCCH-POWERCONTROL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-SPATIALRELATIONINFO-START

PUCCH-SpatialRelationInfo ::=           SEQUENCE {
    pucch-SpatialRelationInfoId         PUCCH-SpatialRelationInfoId,
    servingCellId                           ServCellIndex                                                    OPTIONAL,   -- Need S
    referenceSignal                         CHOICE {
        ssb-Index                               SSB-Index,
        csi-RS-Index                            NZP-CSI-RS-ResourceId,
        srs                                     SEQUENCE {
                                                    resource                            SRS-ResourceId,
                                                    uplinkBWP                           BWP-Id
                                                }
    },
    pucch-PathlossReferenceRS-Id            PUCCH-PathlossReferenceRS-Id,
    p0-PUCCH-Id                             P0-PUCCH-Id,
    closedLoopIndex                         ENUMERATED { i0, i1 }
}

PUCCH-SpatialRelationInfoId ::=         INTEGER (1..maxNrofSpatialRelationInfos)


-- TAG-PUCCH-SPATIALRELATIONINFO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUCCH-TPC-COMMANDCONFIG-START

PUCCH-TPC-CommandConfig ::=             SEQUENCE {
    tpc-IndexPCell                          INTEGER (1..15)                         OPTIONAL,   -- Cond PDCCH-OfSpcell
    tpc-IndexPUCCH-SCell                    INTEGER (1..15)                         OPTIONAL,   -- Cond PDCCH-ofSpCellOrPUCCH-Scell
    ...
}

-- TAG-PUCCH-TPC-COMMANDCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-CONFIG-START

PUSCH-Config ::=                        SEQUENCE {
    dataScramblingIdentityPUSCH             INTEGER (0..1023)                                                   OPTIONAL,   -- Need S
    txConfig                                ENUMERATED {codebook, nonCodebook}                                  OPTIONAL,   -- Need S
    dmrs-UplinkForPUSCH-MappingTypeA        SetupRelease { DMRS-UplinkConfig }                                  OPTIONAL,   -- Need M
    dmrs-UplinkForPUSCH-MappingTypeB        SetupRelease { DMRS-UplinkConfig }                                  OPTIONAL,   -- Need M

    pusch-PowerControl                      PUSCH-PowerControl                                                  OPTIONAL,   -- Need M
    frequencyHopping                        ENUMERATED {intraSlot, interSlot}                                   OPTIONAL,   -- Need S
    frequencyHoppingOffsetLists             SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1)
                                                                                                                OPTIONAL,   -- Need M
    resourceAllocation                      ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch},
    pusch-TimeDomainAllocationList          SetupRelease { PUSCH-TimeDomainResourceAllocationList }             OPTIONAL,   -- Need M
    pusch-AggregationFactor                 ENUMERATED { n2, n4, n8 }                                           OPTIONAL,   -- Need S
    mcs-Table                               ENUMERATED {qam256, qam64LowSE}                                     OPTIONAL,   -- Need S
    mcs-TableTransformPrecoder              ENUMERATED {qam256, qam64LowSE}                                     OPTIONAL,   -- Need S
    transformPrecoder                       ENUMERATED {enabled, disabled}                                      OPTIONAL,   -- Need S
    codebookSubset                          ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent,nonCoherent}
                                                                                                      OPTIONAL, -- Cond codebookBased
    maxRank                                 INTEGER (1..4)                                            OPTIONAL, -- Cond codebookBased
    rbg-Size                                ENUMERATED { config2}                                     OPTIONAL, -- Need S
    uci-OnPUSCH                             SetupRelease { UCI-OnPUSCH}                               OPTIONAL, -- Need M
    tp-pi2BPSK                              ENUMERATED {enabled}                                      OPTIONAL, -- Need S
    ...
}

UCI-OnPUSCH ::=                         SEQUENCE {
    betaOffsets                             CHOICE {
            dynamic                             SEQUENCE (SIZE (4)) OF BetaOffsets,
            semiStatic                          BetaOffsets
    }                                                                                                             OPTIONAL, -- Need M
    scaling                                 ENUMERATED { f0p5, f0p65, f0p8, f1 }
}

-- TAG-PUSCH-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-CONFIGCOMMON-START

PUSCH-ConfigCommon ::=                  SEQUENCE {
    groupHoppingEnabledTransformPrecoding   ENUMERATED {enabled}                                                OPTIONAL,   -- Need R
    pusch-TimeDomainAllocationList          PUSCH-TimeDomainResourceAllocationList                              OPTIONAL,   -- Need R
    msg3-DeltaPreamble                      INTEGER (-1..6)                                                     OPTIONAL,   -- Need R
    p0-NominalWithGrant                     INTEGER (-202..24)                                                  OPTIONAL,   -- Need R
    ...
}

-- TAG-PUSCH-CONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-POWERCONTROL-START

PUSCH-PowerControl ::=              SEQUENCE {
    tpc-Accumulation                    ENUMERATED { disabled }                                                 OPTIONAL, -- Need S
    msg3-Alpha                          Alpha                                                                   OPTIONAL, -- Need S
    p0-NominalWithoutGrant              INTEGER (-202..24)                                                      OPTIONAL, -- Need M
    p0-AlphaSets                        SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet     OPTIONAL, -- Need M
    pathlossReferenceRSToAddModList     SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS
                                                                                                                OPTIONAL, -- Need N
    pathlossReferenceRSToReleaseList    SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS-Id
                                                                                                                OPTIONAL,  -- Need N
    twoPUSCH-PC-AdjustmentStates        ENUMERATED {twoStates}                                                  OPTIONAL, -- Need S
    deltaMCS                            ENUMERATED {enabled}                                                    OPTIONAL, -- Need S
    sri-PUSCH-MappingToAddModList       SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl
                                                                                                                OPTIONAL, -- Need N
    sri-PUSCH-MappingToReleaseList      SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId
                                                                                                                OPTIONAL  -- Need N
}

P0-PUSCH-AlphaSet ::=               SEQUENCE {
    p0-PUSCH-AlphaSetId                 P0-PUSCH-AlphaSetId,
    p0                                  INTEGER (-16..15)                                                       OPTIONAL, -- Need S
    alpha                               Alpha                                                                   OPTIONAL  -- Need S
}

P0-PUSCH-AlphaSetId ::=             INTEGER (0..maxNrofP0-PUSCH-AlphaSets-1)

PUSCH-PathlossReferenceRS ::=       SEQUENCE {
    pusch-PathlossReferenceRS-Id        PUSCH-PathlossReferenceRS-Id,
    referenceSignal                     CHOICE {
        ssb-Index                           SSB-Index,
        csi-RS-Index                        NZP-CSI-RS-ResourceId
    }
}

PUSCH-PathlossReferenceRS-Id ::=    INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1)


SRI-PUSCH-PowerControl ::=          SEQUENCE {
    sri-PUSCH-PowerControlId            SRI-PUSCH-PowerControlId,
    sri-PUSCH-PathlossReferenceRS-Id    PUSCH-PathlossReferenceRS-Id,
    sri-P0-PUSCH-AlphaSetId             P0-PUSCH-AlphaSetId,
    sri-PUSCH-ClosedLoopIndex           ENUMERATED { i0, i1 }
}

SRI-PUSCH-PowerControlId ::=        INTEGER (0..maxNrofSRI-PUSCH-Mappings-1)

BetaOffsets ::=                     SEQUENCE {
    betaOffsetACK-Index1                INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetACK-Index2                INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetACK-Index3                INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetCSI-Part1-Index1          INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetCSI-Part1-Index2          INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetCSI-Part2-Index1          INTEGER(0..31)                                                          OPTIONAL, -- Need S
    betaOffsetCSI-Part2-Index2          INTEGER(0..31)                                                          OPTIONAL  -- Need S
}

-- TAG-PUSCH-POWERCONTROL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-SERVINGCELLCONFIG-START

PUSCH-ServingCellConfig ::=             SEQUENCE {
    codeBlockGroupTransmission              SetupRelease { PUSCH-CodeBlockGroupTransmission }       OPTIONAL,   -- Need M
    rateMatching                            ENUMERATED {limitedBufferRM}                            OPTIONAL,   -- Need S
    xOverhead                               ENUMERATED {xoh6, xoh12, xoh18}                         OPTIONAL,   -- Need S
    ...,
    [[
    maxMIMO-Layers                          INTEGER (1..4)                                          OPTIONAL,   -- Need M
    processingType2Enabled                  BOOLEAN                                                 OPTIONAL    -- Need M
    ]]
}

PUSCH-CodeBlockGroupTransmission ::=    SEQUENCE {
    maxCodeBlockGroupsPerTransportBlock     ENUMERATED {n2, n4, n6, n8},
    ...
}

-- TAG-PUSCH-SERVINGCELLCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-START

PUSCH-TimeDomainResourceAllocationList ::=  SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation

PUSCH-TimeDomainResourceAllocation ::=  SEQUENCE {
    k2                                      INTEGER(0..32)          OPTIONAL,   -- Need S
    mappingType                             ENUMERATED {typeA, typeB},
    startSymbolAndLength                    INTEGER (0..127)
}

-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PUSCH-TPC-COMMANDCONFIG-START

PUSCH-TPC-CommandConfig ::=         SEQUENCE {
    tpc-Index                           INTEGER (1..15)                                                 OPTIONAL,   -- Cond SUL
    tpc-IndexSUL                        INTEGER (1..15)                                                 OPTIONAL,   -- Cond SUL-Only
    targetCell                          ServCellIndex                                                   OPTIONAL,   -- Need S
    ...
}

-- TAG-PUSCH-TPC-COMMANDCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-Q-OFFSETRANGE-START

Q-OffsetRange ::=                   ENUMERATED {
                                                dB-24, dB-22, dB-20, dB-18, dB-16, dB-14,
                                                dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3,
                                                dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5,
                                                dB6, dB8, dB10, dB12, dB14, dB16, dB18,
                                                dB20, dB22, dB24}

-- TAG-Q-OFFSETRANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-Q-QUALMIN-START

Q-QualMin ::=                       INTEGER (-43..-12)

-- TAG-Q-QUALMIN-STOP
-- ASN1STOP
-- ASN1START
-- TAG-Q-RXLEVMIN-START

Q-RxLevMin ::=                      INTEGER (-70..-22)

-- TAG-Q-RXLEVMIN-STOP
-- ASN1STOP
-- ASN1START
-- TAG-QUANTITYCONFIG-START


QuantityConfig ::=                  SEQUENCE {
    quantityConfigNR-List               SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR          OPTIONAL,   -- Need M
    ...,
    [[
    quantityConfigEUTRA                 FilterConfig                                                            OPTIONAL    -- Need M
    ]]
}

QuantityConfigNR::=                 SEQUENCE {
    quantityConfigCell                  QuantityConfigRS,
    quantityConfigRS-Index              QuantityConfigRS                                                        OPTIONAL    -- Need M
}

QuantityConfigRS ::=                SEQUENCE {
    ssb-FilterConfig                    FilterConfig,
    csi-RS-FilterConfig                 FilterConfig
}

FilterConfig ::=                    SEQUENCE {
    filterCoefficientRSRP               FilterCoefficient                                       DEFAULT fc4,
    filterCoefficientRSRQ               FilterCoefficient                                       DEFAULT fc4,
    filterCoefficientRS-SINR            FilterCoefficient                                       DEFAULT fc4
}

-- TAG-QUANTITYCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RACH-CONFIGCOMMON-START

RACH-ConfigCommon ::=               SEQUENCE {
    rach-ConfigGeneric                  RACH-ConfigGeneric,
    totalNumberOfRA-Preambles           INTEGER (1..63)                                                     OPTIONAL,   -- Need S
    ssb-perRACH-OccasionAndCB-PreamblesPerSSB   CHOICE {
        oneEighth                                   ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},
        oneFourth                                   ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},
        oneHalf                                     ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},
        one                                         ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64},
        two                                         ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32},
        four                                        INTEGER (1..16),
        eight                                       INTEGER (1..8),
        sixteen                                     INTEGER (1..4)
    }                                                                                                       OPTIONAL,   -- Need M

    groupBconfigured                    SEQUENCE {
        ra-Msg3SizeGroupA                   ENUMERATED {b56, b144, b208, b256, b282, b480, b640,
                                                        b800, b1000, b72, spare6, spare5,spare4, spare3, spare2, spare1},
        messagePowerOffsetGroupB            ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18},
        numberOfRA-PreamblesGroupA          INTEGER (1..64)
    }                                                                                                       OPTIONAL,   -- Need R
    ra-ContentionResolutionTimer            ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64},
    rsrp-ThresholdSSB                       RSRP-Range                                                      OPTIONAL,   -- Need R
    rsrp-ThresholdSSB-SUL                   RSRP-Range                                                      OPTIONAL,   -- Cond SUL
    prach-RootSequenceIndex                 CHOICE {
        l839                                    INTEGER (0..837),
        l139                                    INTEGER (0..137)
    },
    msg1-SubcarrierSpacing                  SubcarrierSpacing                                               OPTIONAL,   -- Cond L139
    restrictedSetConfig                     ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB},
    msg3-transformPrecoder                  ENUMERATED {enabled}                                            OPTIONAL,   -- Need R
    ...
}

-- TAG-RACH-CONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RACH-CONFIGDEDICATED-START


RACH-ConfigDedicated ::=        SEQUENCE {
    cfra                            CFRA                                                                    OPTIONAL, -- Need S
    ra-Prioritization               RA-Prioritization                                                       OPTIONAL, -- Need N
    ...
}

CFRA ::=                    SEQUENCE {
    occasions                       SEQUENCE {
        rach-ConfigGeneric              RACH-ConfigGeneric,
        ssb-perRACH-Occasion            ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen}
                                                                                                            OPTIONAL  -- Cond SSB-CFRA
    }                                                                                                       OPTIONAL, -- Need S
    resources                       CHOICE {
        ssb                             SEQUENCE {
            ssb-ResourceList                SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource,
            ra-ssb-OccasionMaskIndex        INTEGER (0..15)
        },
        csirs                           SEQUENCE {
            csirs-ResourceList              SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource,
            rsrp-ThresholdCSI-RS            RSRP-Range
        }
    },
    ...,
    [[
    totalNumberOfRA-Preambles-v1530 INTEGER (1..63)                                                         OPTIONAL -- Cond Occasions
    ]]
}

CFRA-SSB-Resource ::=           SEQUENCE {
    ssb                             SSB-Index,
    ra-PreambleIndex                INTEGER (0..63),
    ...
}

CFRA-CSIRS-Resource ::=         SEQUENCE {
    csi-RS                          CSI-RS-Index,
    ra-OccasionList                 SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1),
    ra-PreambleIndex                INTEGER (0..63),
    ...
}

-- TAG-RACH-CONFIGDEDICATED-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RACH-CONFIGGENERIC-START

RACH-ConfigGeneric ::=              SEQUENCE {
    prach-ConfigurationIndex            INTEGER (0..255),
    msg1-FDM                            ENUMERATED {one, two, four, eight},
    msg1-FrequencyStart                 INTEGER (0..maxNrofPhysicalResourceBlocks-1),
    zeroCorrelationZoneConfig           INTEGER(0..15),
    preambleReceivedTargetPower         INTEGER (-202..-60),
    preambleTransMax                    ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200},
    powerRampingStep                    ENUMERATED {dB0, dB2, dB4, dB6},
    ra-ResponseWindow                   ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80},
    ...
}

-- TAG-RACH-CONFIGGENERIC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RA-PRIORITIZATION-START

RA-Prioritization ::=           SEQUENCE {
    powerRampingStepHighPriority    ENUMERATED {dB0, dB2, dB4, dB6},
    scalingFactorBI                 ENUMERATED {zero, dot25, dot5, dot75}                               OPTIONAL,   -- Need R
    ...
}

-- TAG-RA-PRIORITIZATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RADIOBEARERCONFIG-START

RadioBearerConfig ::=                   SEQUENCE {
    srb-ToAddModList                        SRB-ToAddModList                                        OPTIONAL,   -- Cond HO-Conn
    srb3-ToRelease                          ENUMERATED{true}                                        OPTIONAL,   -- Need N
    drb-ToAddModList                        DRB-ToAddModList                                        OPTIONAL,   -- Cond HO-toNR
    drb-ToReleaseList                       DRB-ToReleaseList                                       OPTIONAL,   -- Need N
    securityConfig                          SecurityConfig                                          OPTIONAL,   -- Need M
    ...
}

SRB-ToAddModList ::=                    SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
SRB-ToAddMod ::=                        SEQUENCE {
    srb-Identity                            SRB-Identity,
    reestablishPDCP                         ENUMERATED{true}                                        OPTIONAL,   -- Need N
    discardOnPDCP                           ENUMERATED{true}                                        OPTIONAL,   -- Need N
    pdcp-Config                             PDCP-Config                                             OPTIONAL,   -- Cond PDCP
    ...
}

DRB-ToAddModList ::=                    SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod

DRB-ToAddMod ::=                        SEQUENCE {
    cnAssociation                           CHOICE {
        eps-BearerIdentity                      INTEGER (0..15),                                                -- EPS-DRB-Setup
        sdap-Config                             SDAP-Config                                                     -- 5GC
    }                                                                                               OPTIONAL,   -- Cond DRBSetup
    drb-Identity                            DRB-Identity,
    reestablishPDCP                         ENUMERATED{true}                                        OPTIONAL,   -- Need N
    recoverPDCP                             ENUMERATED{true}                                        OPTIONAL,   -- Need N
    pdcp-Config                             PDCP-Config                                             OPTIONAL,   -- Cond PDCP
    ...
}
DRB-ToReleaseList ::=                   SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity

SecurityConfig ::=                      SEQUENCE {
    securityAlgorithmConfig                 SecurityAlgorithmConfig                                 OPTIONAL,   -- Cond RBTermChange
    keyToUse                                ENUMERATED{master, secondary}                           OPTIONAL,   -- Cond RBTermChange
    ...
}



-- TAG-RADIOBEARERCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RADIOLINKMONITORINGCONFIG-START

RadioLinkMonitoringConfig ::=       SEQUENCE {
    failureDetectionResourcesToAddModList   SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS
                                                                                                                  OPTIONAL, -- Need N
    failureDetectionResourcesToReleaseList  SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS-Id
                                                                                                                  OPTIONAL, -- Need N
    beamFailureInstanceMaxCount             ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10}                          OPTIONAL, -- Need R
    beamFailureDetectionTimer               ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10}  OPTIONAL, -- Need R
    ...
}

RadioLinkMonitoringRS ::=           SEQUENCE {
    radioLinkMonitoringRS-Id            RadioLinkMonitoringRS-Id,
    purpose                             ENUMERATED {beamFailure, rlf, both},
    detectionResource                   CHOICE {
        ssb-Index                           SSB-Index,
        csi-RS-Index                        NZP-CSI-RS-ResourceId
    },
    ...
}

-- TAG-RADIOLINKMONITORINGCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RADIOLINKMONITORINGRS-ID-START

RadioLinkMonitoringRS-Id ::=            INTEGER (0..maxNrofFailureDetectionResources-1)

-- TAG-RADIOLINKMONITORINGRS-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RAN-AREACODE-START

RAN-AreaCode ::=                INTEGER (0..255)

-- TAG-RAN-AREACODE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RATEMATCHPATTERN-START

RateMatchPattern ::=                SEQUENCE {
    rateMatchPatternId                  RateMatchPatternId,

    patternType                         CHOICE {
        bitmaps                             SEQUENCE {
            resourceBlocks                      BIT STRING (SIZE (275)),
            symbolsInResourceBlock              CHOICE {
                oneSlot                             BIT STRING (SIZE (14)),
                twoSlots                            BIT STRING (SIZE (28))
            },
            periodicityAndPattern               CHOICE {
                n2                                  BIT STRING (SIZE (2)),
                n4                                  BIT STRING (SIZE (4)),
                n5                                  BIT STRING (SIZE (5)),
                n8                                  BIT STRING (SIZE (8)),
                n10                                 BIT STRING (SIZE (10)),
                n20                                 BIT STRING (SIZE (20)),
                n40                                 BIT STRING (SIZE (40))
            }                                                                                           OPTIONAL,   -- Need S
            ...
        },
        controlResourceSet                  ControlResourceSetId
    },
    subcarrierSpacing                   SubcarrierSpacing                                               OPTIONAL,   -- Cond CellLevel
    dummy                               ENUMERATED { dynamic, semiStatic },
    ...
}

-- TAG-RATEMATCHPATTERN-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RATEMATCHPATTERNID-START

RateMatchPatternId ::=              INTEGER (0..maxNrofRateMatchPatterns-1)

-- TAG-RATEMATCHPATTERNID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RATEMATCHPATTERNLTE-CRS-START

RateMatchPatternLTE-CRS ::=         SEQUENCE {
    carrierFreqDL                       INTEGER (0..16383),
    carrierBandwidthDL                  ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1},
    mbsfn-SubframeConfigList            EUTRA-MBSFN-SubframeConfigList                                          OPTIONAL,   -- Need M
    nrofCRS-Ports                       ENUMERATED {n1, n2, n4},
    v-Shift                             ENUMERATED {n0, n1, n2, n3, n4, n5}
}

-- TAG-RATEMATCHPATTERNLTE-CRS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REJECTWAITTIME-START

RejectWaitTime ::=                  INTEGER (1..16)

-- TAG-REJECTWAITTIME-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REPORTCONFIGID-START

ReportConfigId ::=                          INTEGER (1..maxReportConfigId)

-- TAG-REPORTCONFIGID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REPORTCONFIGINTERRAT-START

ReportConfigInterRAT ::=                    SEQUENCE {
    reportType                                  CHOICE {
        periodical                                  PeriodicalReportConfigInterRAT,
        eventTriggered                              EventTriggerConfigInterRAT,
        reportCGI                                   ReportCGI-EUTRA,
        ...,
        reportSFTD                                  ReportSFTD-EUTRA
    }
}

ReportCGI-EUTRA ::=                         SEQUENCE {
    cellForWhichToReportCGI         EUTRA-PhysCellId,
    ...
}

ReportSFTD-EUTRA ::=                     SEQUENCE {
    reportSFTD-Meas                            BOOLEAN,
    reportRSRP                                 BOOLEAN,
    ...
}

EventTriggerConfigInterRAT ::=              SEQUENCE {
    eventId                                     CHOICE {
        eventB1                                     SEQUENCE {
            b1-ThresholdEUTRA                           MeasTriggerQuantityEUTRA,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            ...
        },
        eventB2                                     SEQUENCE {
            b2-Threshold1                               MeasTriggerQuantity,
            b2-Threshold2EUTRA                          MeasTriggerQuantityEUTRA,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            ...
        },
        ...
    },
    rsType                              NR-RS-Type,

    reportInterval                      ReportInterval,
    reportAmount                        ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity                      MeasReportQuantity,
    maxReportCells                      INTEGER (1..maxCellReport),
    ...

}

PeriodicalReportConfigInterRAT ::=              SEQUENCE {
    reportInterval                                  ReportInterval,
    reportAmount                                    ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity                                  MeasReportQuantity,
    maxReportCells                                  INTEGER (1..maxCellReport),
    ...
}

MeasTriggerQuantityEUTRA::=                         CHOICE {
    rsrp                                        RSRP-RangeEUTRA,
    rsrq                                        RSRQ-RangeEUTRA,
    sinr                                        SINR-RangeEUTRA
}

RSRP-RangeEUTRA ::=                 INTEGER (0..97)
RSRQ-RangeEUTRA ::=                 INTEGER (0..34)
SINR-RangeEUTRA ::=                 INTEGER (0..127)

-- TAG-REPORTCONFIGINTERRAT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REPORTCONFIGNR-START

ReportConfigNR ::=                          SEQUENCE {
    reportType                                  CHOICE {
        periodical                                  PeriodicalReportConfig,
        eventTriggered                              EventTriggerConfig,
        ...,
        reportCGI                                   ReportCGI,
        [[
        reportSFTD                                  ReportSFTD-NR
        ]]
    }
}

ReportCGI ::=                     SEQUENCE {
    cellForWhichToReportCGI          PhysCellId,
        ...
}

ReportSFTD-NR ::=                 SEQUENCE {
    reportSFTD-Meas                  BOOLEAN,
    reportRSRP                       BOOLEAN,
    ...
}

EventTriggerConfig::=                       SEQUENCE {
    eventId                                     CHOICE {
        eventA1                                     SEQUENCE {
            a1-Threshold                                MeasTriggerQuantity,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger
        },
        eventA2                                     SEQUENCE {
            a2-Threshold                                MeasTriggerQuantity,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger
        },
        eventA3                                     SEQUENCE {
            a3-Offset                                   MeasTriggerQuantityOffset,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            useWhiteCellList                            BOOLEAN
        },
        eventA4                                     SEQUENCE {
            a4-Threshold                                MeasTriggerQuantity,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            useWhiteCellList                            BOOLEAN
        },
        eventA5                                     SEQUENCE {
            a5-Threshold1                               MeasTriggerQuantity,
            a5-Threshold2                               MeasTriggerQuantity,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            useWhiteCellList                            BOOLEAN
        },
        eventA6                                     SEQUENCE {
            a6-Offset                                   MeasTriggerQuantityOffset,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            useWhiteCellList                            BOOLEAN
        },
        ...
    },

    rsType                                      NR-RS-Type,

    reportInterval                              ReportInterval,
    reportAmount                                ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},

    reportQuantityCell                          MeasReportQuantity,
    maxReportCells                              INTEGER (1..maxCellReport),

    reportQuantityRS-Indexes                     MeasReportQuantity                                            OPTIONAL,   -- Need R
    maxNrofRS-IndexesToReport                   INTEGER (1..maxNrofIndexesToReport)                            OPTIONAL,   -- Need R
    includeBeamMeasurements                     BOOLEAN,
    reportAddNeighMeas                          ENUMERATED {setup}                                             OPTIONAL,   -- Need R
    ...
}

PeriodicalReportConfig ::=                  SEQUENCE {
    rsType                                      NR-RS-Type,

    reportInterval                              ReportInterval,
    reportAmount                                ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},

    reportQuantityCell                          MeasReportQuantity,
    maxReportCells                              INTEGER (1..maxCellReport),

    reportQuantityRS-Indexes                    MeasReportQuantity                                             OPTIONAL,   -- Need R
    maxNrofRS-IndexesToReport                   INTEGER (1..maxNrofIndexesToReport)                            OPTIONAL,   -- Need R
    includeBeamMeasurements                     BOOLEAN,
    useWhiteCellList                            BOOLEAN,
    ...
}

NR-RS-Type ::=                              ENUMERATED {ssb, csi-rs}

MeasTriggerQuantity ::=                     CHOICE {
    rsrp                                        RSRP-Range,
    rsrq                                        RSRQ-Range,
    sinr                                        SINR-Range
}

MeasTriggerQuantityOffset ::=               CHOICE {
    rsrp                                        INTEGER (-30..30),
    rsrq                                        INTEGER (-30..30),
    sinr                                        INTEGER (-30..30)
}


MeasReportQuantity ::=                      SEQUENCE {
    rsrp                                        BOOLEAN,
    rsrq                                        BOOLEAN,
    sinr                                        BOOLEAN
}


-- TAG-REPORTCONFIGNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REPORTCONFIGTOADDMODLIST-START

ReportConfigToAddModList ::=        SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod

ReportConfigToAddMod ::=            SEQUENCE {
    reportConfigId                      ReportConfigId,
    reportConfig                        CHOICE {
        reportConfigNR                      ReportConfigNR,
        ...,
        reportConfigInterRAT                ReportConfigInterRAT
    }
}

-- TAG-REPORTCONFIGTOADDMODLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-REPORTINTERVAL-START

ReportInterval ::=                  ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, ms20480, ms40960,
                                                    min1,min6, min12, min30 }

-- TAG-REPORTINTERVAL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RESELECTIONTHRESHOLD-START

ReselectionThreshold ::=                INTEGER (0..31)

-- TAG-RESELECTIONTHRESHOLD-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RESELECTIONTHRESHOLDQ-START

ReselectionThresholdQ ::=           INTEGER (0..31)

-- TAG-RESELECTIONTHRESHOLDQ-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RESUMECAUSE-START

ResumeCause ::=             ENUMERATED {emergency, highPriorityAccess, mt-Access, mo-Signalling,
                                        mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, rna-Update, mps-PriorityAccess,
                                        mcs-PriorityAccess, spare1, spare2, spare3, spare4, spare5 }

-- TAG-RESUME-CAUSE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RLC-BEARERCONFIG-START

RLC-BearerConfig ::=                        SEQUENCE {
    logicalChannelIdentity                      LogicalChannelIdentity,
    servedRadioBearer                           CHOICE {
        srb-Identity                                SRB-Identity,
        drb-Identity                                DRB-Identity
    }                                                                                               OPTIONAL,   -- Cond LCH-SetupOnly
    reestablishRLC                              ENUMERATED {true}                                   OPTIONAL,   -- Need N
    rlc-Config                                  RLC-Config                                          OPTIONAL,   -- Cond LCH-Setup
    mac-LogicalChannelConfig                    LogicalChannelConfig                                OPTIONAL,   -- Cond LCH-Setup
    ...
}

-- TAG-RLC-BEARERCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RLC-CONFIG-START

RLC-Config ::=                      CHOICE {
    am                                  SEQUENCE {
        ul-AM-RLC                           UL-AM-RLC,
        dl-AM-RLC                           DL-AM-RLC
    },
    um-Bi-Directional                   SEQUENCE {
        ul-UM-RLC                           UL-UM-RLC,
        dl-UM-RLC                           DL-UM-RLC
    },
    um-Uni-Directional-UL               SEQUENCE {
        ul-UM-RLC                           UL-UM-RLC
    },
    um-Uni-Directional-DL               SEQUENCE {
        dl-UM-RLC                           DL-UM-RLC
    },
    ...
}

UL-AM-RLC ::=                       SEQUENCE {
    sn-FieldLength                      SN-FieldLengthAM                                    OPTIONAL,   -- Cond Reestab
    t-PollRetransmit                    T-PollRetransmit,
    pollPDU                             PollPDU,
    pollByte                            PollByte,
    maxRetxThreshold                    ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 }
}

DL-AM-RLC ::=                       SEQUENCE {
    sn-FieldLength                      SN-FieldLengthAM                                    OPTIONAL,   -- Cond Reestab
    t-Reassembly                        T-Reassembly,
    t-StatusProhibit                    T-StatusProhibit
}

UL-UM-RLC ::=                       SEQUENCE {
    sn-FieldLength                      SN-FieldLengthUM                                    OPTIONAL    -- Cond Reestab
}

DL-UM-RLC ::=                       SEQUENCE {
    sn-FieldLength                      SN-FieldLengthUM                                    OPTIONAL,   -- Cond Reestab
    t-Reassembly                        T-Reassembly
}

T-PollRetransmit ::=                ENUMERATED {
                                        ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                                        ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                                        ms75, ms80, ms85, ms90, ms95, ms100, ms105,
                                        ms110, ms115, ms120, ms125, ms130, ms135,
                                        ms140, ms145, ms150, ms155, ms160, ms165,
                                        ms170, ms175, ms180, ms185, ms190, ms195,
                                        ms200, ms205, ms210, ms215, ms220, ms225,
                                        ms230, ms235, ms240, ms245, ms250, ms300,
                                        ms350, ms400, ms450, ms500, ms800, ms1000,
                                        ms2000, ms4000, spare5, spare4, spare3,
                                        spare2, spare1}


PollPDU ::=                         ENUMERATED {
                                        p4, p8, p16, p32, p64, p128, p256, p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384,p20480,
                                        p24576, p28672, p32768, p40960, p49152, p57344, p65536, infinity, spare8, spare7, spare6, spare5, spare4,
                                        spare3, spare2, spare1}

PollByte ::=                        ENUMERATED {
                                        kB1, kB2, kB5, kB8, kB10, kB15, kB25, kB50, kB75,
                                        kB100, kB125, kB250, kB375, kB500, kB750, kB1000,
                                        kB1250, kB1500, kB2000, kB3000, kB4000, kB4500,
                                        kB5000, kB5500, kB6000, kB6500, kB7000, kB7500,
                                        mB8, mB9, mB10, mB11, mB12, mB13, mB14, mB15,
                                        mB16, mB17, mB18, mB20, mB25, mB30, mB40, infinity,
                                        spare20, spare19, spare18, spare17, spare16,
                                        spare15, spare14, spare13, spare12, spare11,
                                        spare10, spare9, spare8, spare7, spare6, spare5,
                                        spare4, spare3, spare2, spare1}

T-Reassembly ::=                    ENUMERATED {
                                        ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                                        ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                                        ms75, ms80, ms85, ms90, ms95, ms100, ms110,
                                        ms120, ms130, ms140, ms150, ms160, ms170,
                                        ms180, ms190, ms200, spare1}

T-StatusProhibit ::=                ENUMERATED {
                                        ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35,
                                        ms40, ms45, ms50, ms55, ms60, ms65, ms70,
                                        ms75, ms80, ms85, ms90, ms95, ms100, ms105,
                                        ms110, ms115, ms120, ms125, ms130, ms135,
                                        ms140, ms145, ms150, ms155, ms160, ms165,
                                        ms170, ms175, ms180, ms185, ms190, ms195,
                                        ms200, ms205, ms210, ms215, ms220, ms225,
                                        ms230, ms235, ms240, ms245, ms250, ms300,
                                        ms350, ms400, ms450, ms500, ms800, ms1000,
                                        ms1200, ms1600, ms2000, ms2400, spare2, spare1}

SN-FieldLengthUM ::=                ENUMERATED {size6, size12}
SN-FieldLengthAM ::=                ENUMERATED {size12, size18}

-- TAG-RLC-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RLF-TIMERSANDCONSTANTS-START

RLF-TimersAndConstants ::=          SEQUENCE {
    t310                                ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, ms4000, ms6000},
    n310                                ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20},
    n311                                ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10},
    ...,
    [[
    t311-v1530                          ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000}
    ]]
}

-- TAG-RLF-TIMERSANDCONSTANTS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RNTI-VALUE-START

RNTI-Value ::=                      INTEGER (0..65535)

-- TAG-RNTI-VALUE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RSRP-RANGE-START

RSRP-Range ::=                      INTEGER(0..127)

-- TAG-RSRP-RANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RSRQ-RANGE-START

RSRQ-Range ::=                      INTEGER(0..127)

-- TAG-RSRQ-RANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCELLINDEX-START

SCellIndex ::=                      INTEGER (1..31)

-- TAG-SCELLINDEX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCHEDULINGREQUESTCONFIG-START

SchedulingRequestConfig ::=         SEQUENCE {
    schedulingRequestToAddModList       SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestToAddMod
                                                                                                          OPTIONAL, -- Need N
    schedulingRequestToReleaseList      SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestId
                                                                                                          OPTIONAL  -- Need N
}

SchedulingRequestToAddMod ::=       SEQUENCE {
    schedulingRequestId                 SchedulingRequestId,
    sr-ProhibitTimer                    ENUMERATED {ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128}          OPTIONAL, -- Need S
    sr-TransMax                         ENUMERATED { n4, n8, n16, n32, n64, spare3, spare2, spare1}
}



-- TAG-SCHEDULINGREQUESTCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCHEDULINGREQUESTID-START

SchedulingRequestId ::=             INTEGER (0..7)

-- TAG-SCHEDULINGREQUESTID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCHEDULINGREQUESTRESOURCECONFIG-START

SchedulingRequestResourceConfig ::=     SEQUENCE {
    schedulingRequestResourceId             SchedulingRequestResourceId,
    schedulingRequestID                     SchedulingRequestId,
    periodicityAndOffset                    CHOICE {
        sym2                                    NULL,
        sym6or7                                 NULL,
        sl1                                     NULL,                       -- Recurs in every slot
        sl2                                     INTEGER (0..1),
        sl4                                     INTEGER (0..3),
        sl5                                     INTEGER (0..4),
        sl8                                     INTEGER (0..7),
        sl10                                    INTEGER (0..9),
        sl16                                    INTEGER (0..15),
        sl20                                    INTEGER (0..19),
        sl40                                    INTEGER (0..39),
        sl80                                    INTEGER (0..79),
        sl160                                   INTEGER (0..159),
        sl320                                   INTEGER (0..319),
        sl640                                   INTEGER (0..639)
    }                                                                                                       OPTIONAL,   -- Need M
    resource                                PUCCH-ResourceId                                                OPTIONAL    -- Need M
}

-- TAG-SCHEDULINGREQUESTRESOURCECONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCHEDULINGREQUESTRESOURCEID-START

SchedulingRequestResourceId ::=     INTEGER (1..maxNrofSR-Resources)

-- TAG-SCHEDULINGREQUESTRESOURCEID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCRAMBLINGID-START

ScramblingId ::=                    INTEGER(0..1023)

-- TAG-SCRAMBLINGID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SCS-SPECIFICCARRIER-START

SCS-SpecificCarrier ::=             SEQUENCE {
    offsetToCarrier                     INTEGER (0..2199),
    subcarrierSpacing                   SubcarrierSpacing,
    carrierBandwidth                    INTEGER (1..maxNrofPhysicalResourceBlocks),
    ...,
    [[
    txDirectCurrentLocation-v1530   INTEGER (0..4095)                                       OPTIONAL            -- Need S
    ]]
}

-- TAG-SCS-SPECIFICCARRIER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SDAP-CONFIG-START

SDAP-Config ::=                     SEQUENCE {
    pdu-Session                         PDU-SessionID,
    sdap-HeaderDL                       ENUMERATED {present, absent},
    sdap-HeaderUL                       ENUMERATED {present, absent},
    defaultDRB                          BOOLEAN,
    mappedQoS-FlowsToAdd                SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI                                 OPTIONAL, -- Need N
    mappedQoS-FlowsToRelease            SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI                                 OPTIONAL, -- Need N
    ...
}

QFI ::=                             INTEGER (0..maxQFI)

PDU-SessionID ::=                   INTEGER (0..255)

-- TAG-SDAP-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SEARCHSPACE-START

SearchSpace ::=                         SEQUENCE {
    searchSpaceId                           SearchSpaceId,
    controlResourceSetId                    ControlResourceSetId                                        OPTIONAL,   -- Cond SetupOnly
    monitoringSlotPeriodicityAndOffset      CHOICE {
        sl1                                     NULL,
        sl2                                     INTEGER (0..1),
        sl4                                     INTEGER (0..3),
        sl5                                     INTEGER (0..4),
        sl8                                     INTEGER (0..7),
        sl10                                    INTEGER (0..9),
        sl16                                    INTEGER (0..15),
        sl20                                    INTEGER (0..19),
        sl40                                    INTEGER (0..39),
        sl80                                    INTEGER (0..79),
        sl160                                   INTEGER (0..159),
        sl320                                   INTEGER (0..319),
        sl640                                   INTEGER (0..639),
        sl1280                                  INTEGER (0..1279),
        sl2560                                  INTEGER (0..2559)
    }                                                                                                   OPTIONAL,   -- Cond Setup
    duration                                INTEGER (2..2559)                                           OPTIONAL,   -- Need R
    monitoringSymbolsWithinSlot             BIT STRING (SIZE (14))                                      OPTIONAL,   -- Cond Setup
    nrofCandidates                          SEQUENCE {
        aggregationLevel1                       ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8},
        aggregationLevel2                       ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8},
        aggregationLevel4                       ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8},
        aggregationLevel8                       ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8},
        aggregationLevel16                      ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}
    }                                                                                                   OPTIONAL,   -- Cond Setup
    searchSpaceType                         CHOICE {
        common                                  SEQUENCE {
            dci-Format0-0-AndFormat1-0              SEQUENCE {
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-0                           SEQUENCE {
                nrofCandidates-SFI                      SEQUENCE {
                    aggregationLevel1                       ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel2                       ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel4                       ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel8                       ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel16                      ENUMERATED {n1, n2}                         OPTIONAL    -- Need R
                },
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-1                           SEQUENCE {
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-2                           SEQUENCE {
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-3                           SEQUENCE {
                dummy1                                  ENUMERATED {sl1, sl2, sl4, sl5, sl8, sl10, sl16, sl20}  OPTIONAL,   -- Cond Setup
                dummy2                                  ENUMERATED {n1, n2},
                ...
            }                                                                                           OPTIONAL    -- Need R
        },
        ue-Specific                                 SEQUENCE {
            dci-Formats                                 ENUMERATED {formats0-0-And-1-0, formats0-1-And-1-1},
            ...
        }
    }                                                                                                   OPTIONAL    -- Cond Setup
}

-- TAG-SEARCHSPACE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SEARCHSPACEID-START

SearchSpaceId ::=                   INTEGER (0..maxNrofSearchSpaces-1)

-- TAG-SEARCHSPACEID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SEARCHSPACEZERO-START

SearchSpaceZero ::=                 INTEGER (0..15)

-- TAG-SEARCHSPACEZERO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SECURITYALGORITHMCONFIG-START

SecurityAlgorithmConfig ::=         SEQUENCE {
    cipheringAlgorithm                  CipheringAlgorithm,
    integrityProtAlgorithm              IntegrityProtAlgorithm          OPTIONAL,   -- Need R
    ...
}

IntegrityProtAlgorithm ::=          ENUMERATED {
                                        nia0, nia1, nia2, nia3, spare4, spare3,
                                        spare2, spare1, ...}

CipheringAlgorithm ::=              ENUMERATED {
                                        nea0, nea1, nea2, nea3, spare4, spare3,
                                        spare2, spare1, ...}

-- TAG-SECURITYALGORITHMCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SERVCELLINDEX-START

ServCellIndex ::=                   INTEGER (0..maxNrofServingCells-1)

-- TAG-SERVCELLINDEX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SERVINGCELLCONFIG-START

ServingCellConfig ::=               SEQUENCE {
    tdd-UL-DL-ConfigurationDedicated    TDD-UL-DL-ConfigDedicated                                   OPTIONAL,   -- Cond TDD
    initialDownlinkBWP                  BWP-DownlinkDedicated                                       OPTIONAL,   -- Need M
    downlinkBWP-ToReleaseList           SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id                  OPTIONAL,   -- Need N
    downlinkBWP-ToAddModList            SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink            OPTIONAL,   -- Need N
    firstActiveDownlinkBWP-Id           BWP-Id                                                      OPTIONAL,   -- Cond SyncAndCellAdd
    bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
                                                    ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
                                                    ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
                                                    spare7, spare6, spare5, spare4, spare3, spare2, spare1 }    OPTIONAL,   --Need R
    defaultDownlinkBWP-Id               BWP-Id                                                                  OPTIONAL,   -- Need S
    uplinkConfig                        UplinkConfig                                                            OPTIONAL,   -- Need M
    supplementaryUplink                 UplinkConfig                                                            OPTIONAL,   -- Need M
    pdcch-ServingCellConfig             SetupRelease { PDCCH-ServingCellConfig }                                OPTIONAL,   -- Need M
    pdsch-ServingCellConfig             SetupRelease { PDSCH-ServingCellConfig }                                OPTIONAL,   -- Need M
    csi-MeasConfig                      SetupRelease { CSI-MeasConfig }                                         OPTIONAL,   -- Need M
    sCellDeactivationTimer              ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240,
                                                    ms320, ms400, ms480, ms520, ms640, ms720,
                                                    ms840, ms1280, spare2,spare1}       OPTIONAL,   -- Cond ServingCellWithoutPUCCH
    crossCarrierSchedulingConfig        CrossCarrierSchedulingConfig                                    OPTIONAL,   -- Need M
    tag-Id                              TAG-Id,
    dummy                               ENUMERATED {enabled}                                            OPTIONAL,   -- Need R
    pathlossReferenceLinking            ENUMERATED {spCell, sCell}                                       OPTIONAL,   -- Cond SCellOnly
    servingCellMO                       MeasObjectId                                                    OPTIONAL,   -- Cond MeasObject
    ...,
    [[
    lte-CRS-ToMatchAround               SetupRelease { RateMatchPatternLTE-CRS }                                OPTIONAL,   -- Need M
    rateMatchPatternToAddModList        SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern       OPTIONAL,   -- Need N
    rateMatchPatternToReleaseList       SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId     OPTIONAL,   -- Need N
    downlinkChannelBW-PerSCS-List       SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier                     OPTIONAL    -- Need S
    ]]
}

UplinkConfig ::=                    SEQUENCE {
    initialUplinkBWP                    BWP-UplinkDedicated                                         OPTIONAL,   -- Need M
    uplinkBWP-ToReleaseList             SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id                  OPTIONAL,   -- Need N
    uplinkBWP-ToAddModList              SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink              OPTIONAL,   -- Need N
    firstActiveUplinkBWP-Id             BWP-Id                                                      OPTIONAL,   -- Cond SyncAndCellAdd
    pusch-ServingCellConfig             SetupRelease { PUSCH-ServingCellConfig }                    OPTIONAL,   -- Need M
    carrierSwitching                    SetupRelease { SRS-CarrierSwitching }                       OPTIONAL,   -- Need M
    ...,
    [[
    powerBoostPi2BPSK                   BOOLEAN                                                     OPTIONAL,   -- Need M
    uplinkChannelBW-PerSCS-List         SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier         OPTIONAL    -- Need S
    ]]
}

-- TAG-SERVINGCELLCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SERVINGCELLCONFIGCOMMON-START

ServingCellConfigCommon ::=         SEQUENCE {
    physCellId                          PhysCellId                                                          OPTIONAL,   -- Cond HOAndServCellAdd,
    downlinkConfigCommon                DownlinkConfigCommon                                                OPTIONAL,   -- Cond HOAndServCellAdd
    uplinkConfigCommon                  UplinkConfigCommon                                                  OPTIONAL,   -- Need M
    supplementaryUplinkConfig           UplinkConfigCommon                                                  OPTIONAL,   -- Need S
    n-TimingAdvanceOffset               ENUMERATED { n0, n25600, n39936 }                                   OPTIONAL,   -- Need S
    ssb-PositionsInBurst                CHOICE {
        shortBitmap                         BIT STRING (SIZE (4)),
        mediumBitmap                        BIT STRING (SIZE (8)),
        longBitmap                          BIT STRING (SIZE (64))
    }                                                                                                       OPTIONAL, -- Cond AbsFreqSSB
    ssb-periodicityServingCell          ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 }   OPTIONAL, -- Need S
    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},
    lte-CRS-ToMatchAround               SetupRelease { RateMatchPatternLTE-CRS }                            OPTIONAL, -- Need M
    rateMatchPatternToAddModList        SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern   OPTIONAL, -- Need N
    rateMatchPatternToReleaseList       SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N
    ssbSubcarrierSpacing                SubcarrierSpacing                                                   OPTIONAL, -- Cond HOAndServCellWithSSB
    tdd-UL-DL-ConfigurationCommon       TDD-UL-DL-ConfigCommon                                              OPTIONAL, -- Cond TDD
    ss-PBCH-BlockPower                  INTEGER (-60..50),
    ...
}


-- TAG-SERVINGCELLCONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SERVINGCELLCONFIGCOMMONSIB-START

ServingCellConfigCommonSIB ::=      SEQUENCE {
    downlinkConfigCommon                DownlinkConfigCommonSIB,
    uplinkConfigCommon                  UplinkConfigCommonSIB                                       OPTIONAL, -- Need R
    supplementaryUplink                 UplinkConfigCommonSIB                                       OPTIONAL, -- Need R
    n-TimingAdvanceOffset               ENUMERATED { n0, n25600, n39936 }                           OPTIONAL, -- Need S
    ssb-PositionsInBurst                SEQUENCE {
        inOneGroup                          BIT STRING (SIZE (8)),
        groupPresence                       BIT STRING (SIZE (8))                                   OPTIONAL  -- Cond FR2-Only
    },
    ssb-PeriodicityServingCell          ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160},

    tdd-UL-DL-ConfigurationCommon       TDD-UL-DL-ConfigCommon                                      OPTIONAL, -- Cond TDD
    ss-PBCH-BlockPower                  INTEGER (-60..50),
    ...
}

-- TAG-SERVINGCELLCONFIGCOMMONSIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SHORTI-RNTI-VALUE-START

ShortI-RNTI-Value ::=   BIT STRING (SIZE(24))

-- TAG-SHORTI-RNTI-VALUE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SHORTMAC-I-START

ShortMAC-I ::=                      BIT STRING (SIZE (16))

-- TAG-SHORTMAC-I-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SINR-RANGE-START

SINR-Range ::=                      INTEGER(0..127)

-- TAG-SINR-RANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG¨CSI-SCHEDULINGINFO-START

SI-SchedulingInfo ::=               SEQUENCE {
    schedulingInfoList                  SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo,
    si-WindowLength                     ENUMERATED {s5, s10, s20, s40, s80, s160, s320, s640, s1280},
    si-RequestConfig                    SI-RequestConfig                                                OPTIONAL,  -- Cond MSG-1
    si-RequestConfigSUL                 SI-RequestConfig                                                OPTIONAL,  -- Cond SUL-MSG-1
    systemInformationAreaID             BIT STRING (SIZE (24))                                          OPTIONAL,   -- Need R
    ...
}

SchedulingInfo ::=                  SEQUENCE {
    si-BroadcastStatus                  ENUMERATED {broadcasting, notBroadcasting},
    si-Periodicity                      ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
    sib-MappingInfo                     SIB-Mapping
}

SIB-Mapping ::=                     SEQUENCE (SIZE (1..maxSIB)) OF SIB-TypeInfo

SIB-TypeInfo ::=                    SEQUENCE {
    type                                ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType6, sibType7, sibType8, sibType9,
                                                    spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1,... },
    valueTag                            INTEGER (0..31)                                                  OPTIONAL, -- Cond SIB-TYPE
    areaScope                           ENUMERATED {true}                                                OPTIONAL -- Need S
}

-- Configuration for Msg1 based SI Request
SI-RequestConfig::=                 SEQUENCE {
    rach-OccasionsSI                    SEQUENCE {
        rach-ConfigSI                       RACH-ConfigGeneric,
        ssb-perRACH-Occasion                ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen}
    }                                                                                                       OPTIONAL,   -- Need R
    si-RequestPeriod                    ENUMERATED {one, two, four, six, eight, ten, twelve, sixteen}       OPTIONAL,   -- Need R
    si-RequestResources                 SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResources
}

SI-RequestResources ::=             SEQUENCE {
    ra-PreambleStartIndex               INTEGER (0..63),
    ra-AssociationPeriodIndex           INTEGER (0..15)                                                     OPTIONAL,   -- Need R
    ra-ssb-OccasionMaskIndex            INTEGER (0..15)                                                     OPTIONAL    -- Need R
}

-- TAG-SI-SCHEDULINGINFO-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SKCOUNTER-START

SK-Counter ::=  INTEGER (0..65535)

-- TAG-SKCOUNTER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SLOTFORMATCOMBINATIONSPERCELL-START

SlotFormatCombinationsPerCell ::=   SEQUENCE {
    servingCellId                       ServCellIndex,
    subcarrierSpacing                   SubcarrierSpacing,
    subcarrierSpacing2                  SubcarrierSpacing                                                         OPTIONAL, -- Need R
    slotFormatCombinations              SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination
                                                                                                                  OPTIONAL, -- Need M
    positionInDCI                       INTEGER(0..maxSFI-DCI-PayloadSize-1)                                      OPTIONAL, -- Need M
    ...
}

SlotFormatCombination ::=           SEQUENCE {
    slotFormatCombinationId             SlotFormatCombinationId,
    slotFormats                         SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255)
}

SlotFormatCombinationId ::=         INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1)

-- TAG-SLOTFORMATCOMBINATIONSPERCELL-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SLOTFORMATINDICATOR-START

SlotFormatIndicator ::=     SEQUENCE {
    sfi-RNTI                    RNTI-Value,
    dci-PayloadSize             INTEGER (1..maxSFI-DCI-PayloadSize),
    slotFormatCombToAddModList  SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell
                                                                                                                        OPTIONAL, -- Need N
    slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex                 OPTIONAL, -- Need N
    ...
}

-- TAG-SLOTFORMATINDICATOR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-S-NSSAI-START

S-NSSAI  ::=                        CHOICE{
    sst                                 BIT STRING (SIZE (8)),
    sst-SD                              BIT STRING (SIZE (32))
}

-- TAG-S-NSSAI-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SPEEDSTATESCALEFACTORS-START

SpeedStateScaleFactors ::=          SEQUENCE {
    sf-Medium                           ENUMERATED {oDot25, oDot5, oDot75, lDot0},
    sf-High                             ENUMERATED {oDot25, oDot5, oDot75, lDot0}
}
-- TAG-SPEEDSTATESCALEFACTORS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SPS-CONFIG-START

SPS-Config ::=                          SEQUENCE {
    periodicity                             ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640,
                                                        spare6, spare5, spare4, spare3, spare2, spare1},
    nrofHARQ-Processes                      INTEGER (1..8),
    n1PUCCH-AN                              PUCCH-ResourceId                                                            OPTIONAL,   -- Need M
    mcs-Table                               ENUMERATED {qam64LowSE}                                                     OPTIONAL,   -- Need S
    ...
}

-- TAG-SPS-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRB-IDENTITY-START

SRB-Identity ::=                    INTEGER (1..3)

-- TAG-SRB-IDENTITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRS-CARRIERSWITCHING-START

SRS-CarrierSwitching ::=            SEQUENCE {
    srs-SwitchFromServCellIndex         INTEGER (0..31)                                                         OPTIONAL,   -- Need M
    srs-SwitchFromCarrier               ENUMERATED {sUL, nUL},
    srs-TPC-PDCCH-Group                 CHOICE {
        typeA                               SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config,
        typeB                               SRS-TPC-PDCCH-Config
    }                                                                                                           OPTIONAL,   -- Need M
    monitoringCells                     SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex               OPTIONAL,   -- Need M
    ...
}

SRS-TPC-PDCCH-Config ::=            SEQUENCE {
    srs-CC-SetIndexlist                 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex                                OPTIONAL    -- Need M
}

SRS-CC-SetIndex ::=                 SEQUENCE {
    cc-SetIndex                         INTEGER (0..3)                                                          OPTIONAL,   -- Need M
    cc-IndexInOneCC-Set                 INTEGER (0..7)                                                          OPTIONAL    -- Need M
}

-- TAG-SRS-CARRIERSWITCHING-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRS-CONFIG-START

SRS-Config ::=                          SEQUENCE {
    srs-ResourceSetToReleaseList            SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId    OPTIONAL,   -- Need N
    srs-ResourceSetToAddModList             SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet      OPTIONAL,   -- Need N
    srs-ResourceToReleaseList               SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId          OPTIONAL,   -- Need N
    srs-ResourceToAddModList                SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource            OPTIONAL,   -- Need N
    tpc-Accumulation                        ENUMERATED {disabled}                                               OPTIONAL,   -- Need S
    ...
}

SRS-ResourceSet ::=                     SEQUENCE {
    srs-ResourceSetId                       SRS-ResourceSetId,
    srs-ResourceIdList                      SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId    OPTIONAL, -- Cond Setup
    resourceType                            CHOICE {
        aperiodic                               SEQUENCE {
            aperiodicSRS-ResourceTrigger            INTEGER (1..maxNrofSRS-TriggerStates-1),
            csi-RS                                  NZP-CSI-RS-ResourceId                               OPTIONAL, -- Cond NonCodebook
            slotOffset                              INTEGER (1..32)                                     OPTIONAL, -- Need S
            ...,
            [[
            aperiodicSRS-ResourceTriggerList-v1530      SEQUENCE (SIZE(1..maxNrofSRS-TriggerStates-2))
                                                            OF INTEGER (1..maxNrofSRS-TriggerStates-1)  OPTIONAL  -- Need M
            ]]
        },
        semi-persistent                         SEQUENCE {
            associatedCSI-RS                        NZP-CSI-RS-ResourceId                               OPTIONAL, -- Cond NonCodebook
            ...
        },
        periodic                                SEQUENCE {
            associatedCSI-RS                        NZP-CSI-RS-ResourceId                               OPTIONAL, -- Cond NonCodebook
            ...
        }
    },
    usage                                   ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching},
    alpha                                   Alpha                                                       OPTIONAL, -- Need S
    p0                                      INTEGER (-202..24)                                          OPTIONAL, -- Cond Setup
    pathlossReferenceRS                     CHOICE {
        ssb-Index                               SSB-Index,
        csi-RS-Index                            NZP-CSI-RS-ResourceId
    }                                                                                                   OPTIONAL, -- Need M
    srs-PowerControlAdjustmentStates        ENUMERATED { sameAsFci2, separateClosedLoop}                OPTIONAL, -- Need S
    ...
}

SRS-ResourceSetId ::=                   INTEGER (0..maxNrofSRS-ResourceSets-1)

SRS-Resource ::=                        SEQUENCE {
    srs-ResourceId                          SRS-ResourceId,
    nrofSRS-Ports                           ENUMERATED {port1, ports2, ports4},
    ptrs-PortIndex                          ENUMERATED {n0, n1 }                                       OPTIONAL,   -- Need R
    transmissionComb                        CHOICE {
        n2                                      SEQUENCE {
            combOffset-n2                           INTEGER (0..1),
            cyclicShift-n2                          INTEGER (0..7)
        },
        n4                                      SEQUENCE {
            combOffset-n4                           INTEGER (0..3),
            cyclicShift-n4                          INTEGER (0..11)
        }
    },
    resourceMapping                         SEQUENCE {
        startPosition                           INTEGER (0..5),
        nrofSymbols                             ENUMERATED {n1, n2, n4},
        repetitionFactor                        ENUMERATED {n1, n2, n4}
    },
    freqDomainPosition                      INTEGER (0..67),
    freqDomainShift                         INTEGER (0..268),
    freqHopping                             SEQUENCE {
        c-SRS                                   INTEGER (0..63),
        b-SRS                                   INTEGER (0..3),
        b-hop                                   INTEGER (0..3)
    },
    groupOrSequenceHopping                  ENUMERATED { neither, groupHopping, sequenceHopping },
    resourceType                            CHOICE {
        aperiodic                               SEQUENCE {
            ...
        },
        semi-persistent                         SEQUENCE {
            periodicityAndOffset-sp                     SRS-PeriodicityAndOffset,
            ...
        },
        periodic                                SEQUENCE {
            periodicityAndOffset-p                      SRS-PeriodicityAndOffset,
            ...
        }
    },
    sequenceId                              INTEGER (0..1023),
    spatialRelationInfo                     SRS-SpatialRelationInfo                                 OPTIONAL,   -- Need R
    ...
}

SRS-SpatialRelationInfo ::=     SEQUENCE {
    servingCellId                       ServCellIndex                                               OPTIONAL,   -- Need S
    referenceSignal                     CHOICE {
        ssb-Index                           SSB-Index,
        csi-RS-Index                        NZP-CSI-RS-ResourceId,
        srs                                 SEQUENCE {
            resourceId                          SRS-ResourceId,
            uplinkBWP                           BWP-Id
        }
    }
}

SRS-ResourceId ::=                      INTEGER (0..maxNrofSRS-Resources-1)

SRS-PeriodicityAndOffset ::=            CHOICE {
    sl1                                     NULL,
    sl2                                     INTEGER(0..1),
    sl4                                     INTEGER(0..3),
    sl5                                     INTEGER(0..4),
    sl8                                     INTEGER(0..7),
    sl10                                    INTEGER(0..9),
    sl16                                    INTEGER(0..15),
    sl20                                    INTEGER(0..19),
    sl32                                    INTEGER(0..31),
    sl40                                    INTEGER(0..39),
    sl64                                    INTEGER(0..63),
    sl80                                    INTEGER(0..79),
    sl160                                   INTEGER(0..159),
    sl320                                   INTEGER(0..319),
    sl640                                   INTEGER(0..639),
    sl1280                                  INTEGER(0..1279),
    sl2560                                  INTEGER(0..2559)
}

-- TAG-SRS-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRS-TPC-COMMANDCONFIG-START

SRS-TPC-CommandConfig ::=               SEQUENCE {
    startingBitOfFormat2-3                  INTEGER (1..31)                                                     OPTIONAL,   -- Need R
    fieldTypeFormat2-3                      INTEGER (0..1)                                                      OPTIONAL,   -- Need R
    ...,
    [[
    startingBitOfFormat2-3SUL-v1530     INTEGER (1..31)                                                         OPTIONAL    -- Need R
    ]]
}

-- TAG-SRS-TPC-COMMANDCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SSB-INDEX-START

SSB-Index ::=                       INTEGER (0..maxNrofSSBs-1)

-- TAG-SSB-INDEX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SSB-MTC-START

SSB-MTC ::=                             SEQUENCE {
    periodicityAndOffset                    CHOICE {
        sf5                                 INTEGER (0..4),
        sf10                                    INTEGER (0..9),
        sf20                                    INTEGER (0..19),
        sf40                                    INTEGER (0..39),
        sf80                                    INTEGER (0..79),
        sf160                                   INTEGER (0..159)
    },
    duration                                ENUMERATED { sf1, sf2, sf3, sf4, sf5 }
}

SSB-MTC2 ::=                        SEQUENCE {
    pci-List                            SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId                   OPTIONAL,   -- Need M
    periodicity                         ENUMERATED {sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1}
}

-- TAG-SSB-MTC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SSB-TOMEASURE-START

SSB-ToMeasure ::=                   CHOICE {
    shortBitmap                         BIT STRING (SIZE (4)),
    mediumBitmap                        BIT STRING (SIZE (8)),
    longBitmap                          BIT STRING (SIZE (64))
}

-- TAG-SSB-TOMEASURE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SS-RSSI-MEASUREMENT-START

SS-RSSI-Measurement ::=             SEQUENCE {
    measurementSlots                    BIT STRING (SIZE (1..80)),
    endSymbol                           INTEGER(0..3)
}

-- TAG-SS-RSSI-MEASUREMENT-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SUBCARRIERSPACING-START

SubcarrierSpacing ::=               ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1}

-- TAG-SUBCARRIERSPACING-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TAG-CONFIG-START

TAG-Config ::=                      SEQUENCE {
    tag-ToReleaseList                   SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id                          OPTIONAL,   -- Need N
    tag-ToAddModList                    SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG                             OPTIONAL    -- Need N
}

TAG ::=                             SEQUENCE {
    tag-Id                              TAG-Id,
    timeAlignmentTimer                  TimeAlignmentTimer,
    ...
}

TAG-Id ::=                          INTEGER (0..maxNrofTAGs-1)

TimeAlignmentTimer ::=              ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity}

-- TAG-TAG-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TCI-STATE-START

TCI-State ::=                       SEQUENCE {
    tci-StateId                         TCI-StateId,
    qcl-Type1                           QCL-Info,
    qcl-Type2                           QCL-Info                                                    OPTIONAL,   -- Need R
    ...
}

QCL-Info ::=                        SEQUENCE {
    cell                                ServCellIndex                                               OPTIONAL,   -- Need R
    bwp-Id                              BWP-Id                                                      OPTIONAL, -- Cond CSI-RS-Indicated
    referenceSignal                     CHOICE {
        csi-rs                              NZP-CSI-RS-ResourceId,
        ssb                                 SSB-Index
    },
    qcl-Type                            ENUMERATED {typeA, typeB, typeC, typeD},
    ...
}

-- TAG-TCI-STATE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TCI-STATEID-START

TCI-StateId ::=                     INTEGER (0..maxNrofTCI-States-1)

-- TAG-TCI-STATEID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TDD-UL-DL-CONFIG-START

TDD-UL-DL-ConfigCommon ::=          SEQUENCE {
    referenceSubcarrierSpacing          SubcarrierSpacing,
    pattern1                            TDD-UL-DL-Pattern,
    pattern2                            TDD-UL-DL-Pattern                                                       OPTIONAL, -- Need R
    ...
}

TDD-UL-DL-Pattern ::=               SEQUENCE {
    dl-UL-TransmissionPeriodicity       ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10},
    nrofDownlinkSlots                   INTEGER (0..maxNrofSlots),
    nrofDownlinkSymbols                 INTEGER (0..maxNrofSymbols-1),
    nrofUplinkSlots                     INTEGER (0..maxNrofSlots),
    nrofUplinkSymbols                   INTEGER (0..maxNrofSymbols-1),
    ...,
    [[
    dl-UL-TransmissionPeriodicity-v1530     ENUMERATED {ms3, ms4}                                               OPTIONAL -- Need R
    ]]
}

TDD-UL-DL-ConfigDedicated ::=       SEQUENCE {
    slotSpecificConfigurationsToAddModList      SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotConfig       OPTIONAL, -- Need N
    slotSpecificConfigurationsToreleaseList     SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotIndex        OPTIONAL, -- Need N
    ...
}

TDD-UL-DL-SlotConfig ::=            SEQUENCE {
    slotIndex                           TDD-UL-DL-SlotIndex,
    symbols                             CHOICE {
        allDownlink                         NULL,
        allUplink                           NULL,
        explicit                            SEQUENCE {
            nrofDownlinkSymbols                 INTEGER (1..maxNrofSymbols-1)                                   OPTIONAL, -- Need S
            nrofUplinkSymbols                   INTEGER (1..maxNrofSymbols-1)                                   OPTIONAL  -- Need S
        }
    }
}

TDD-UL-DL-SlotIndex ::=             INTEGER (0..maxNrofSlots-1)

-- TAG-TDD-UL-DL-CONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TRACKINGAREACODE-START

TrackingAreaCode ::= BIT STRING (SIZE (24))

-- TAG-TRACKINGAREACODE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TRESELECTION-START

T-Reselection ::=                   INTEGER (0..7)

-- TAG-TRESELECTION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-TIMETOTRIGGER-START

TimeToTrigger ::=                   ENUMERATED {
                                        ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
                                        ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
                                        ms5120}

-- TAG-TIMETOTRIGGER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UAC-BARRINGINFOSETINDEX-START

UAC-BarringInfoSetIndex ::=                INTEGER (1..maxBarringInfoSet)

-- TAG-UAC-BARRINGINFOSETINDEX-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UAC-BARRINGINFOSETLIST-START

UAC-BarringInfoSetList ::=          SEQUENCE (SIZE(1..maxBarringInfoSet)) OF UAC-BarringInfoSet

UAC-BarringInfoSet ::=              SEQUENCE {
    uac-BarringFactor                   ENUMERATED {p00, p05, p10, p15, p20, p25, p30, p40,
                                                    p50, p60, p70, p75, p80, p85, p90, p95},
    uac-BarringTime                     ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
    uac-BarringForAccessIdentity        BIT STRING (SIZE(7))
}

-- TAG-UAC-BARRINGINFOSETLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UAC-BARRINGPERCATLIST-START

UAC-BarringPerCatList ::=           SEQUENCE (SIZE (1..maxAccessCat-1)) OF UAC-BarringPerCat

UAC-BarringPerCat ::=               SEQUENCE {
   accessCategory                       INTEGER (1..maxAccessCat-1),
   uac-barringInfoSetIndex              UAC-BarringInfoSetIndex
}

-- TAG-UAC-BARRINGPERCATLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UAC-BARRINGPERPLMN-LIST-START

UAC-BarringPerPLMN-List ::=         SEQUENCE (SIZE (1.. maxPLMN)) OF UAC-BarringPerPLMN

UAC-BarringPerPLMN ::=              SEQUENCE {
    plmn-IdentityIndex                  INTEGER (1..maxPLMN),
    uac-ACBarringListType               CHOICE{
        uac-ImplicitACBarringList           SEQUENCE (SIZE(maxAccessCat-1)) OF UAC-BarringInfoSetIndex,
        uac-ExplicitACBarringList           UAC-BarringPerCatList
    }                                                                                                     OPTIONAL     -- Need S
}

-- TAG-UAC-BARRINGPERPLMN-LIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-TIMERSANDCONSTANTS-START

UE-TimersAndConstants ::=           SEQUENCE {
    t300                                ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
    t301                                ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
    t310                                ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
    n310                                ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20},
    t311                                ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000},
    n311                                ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10},
    t319                                ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
    ...
}

-- TAG-UE-TIMERSANDCONSTANTS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UPLINKCONFIGCOMMON-START

UplinkConfigCommon ::=              SEQUENCE {
    frequencyInfoUL                     FrequencyInfoUL                                 OPTIONAL,   -- Cond InterFreqHOAndServCellAdd
    initialUplinkBWP                    BWP-UplinkCommon                                OPTIONAL,   -- Cond ServCellAdd
    dummy                               TimeAlignmentTimer
}

-- TAG-UPLINKCONFIGCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UPLINKCONFIGCOMMONSIB-START

UplinkConfigCommonSIB ::=               SEQUENCE {
    frequencyInfoUL                         FrequencyInfoUL-SIB,
    initialUplinkBWP                        BWP-UplinkCommon,
    timeAlignmentTimerCommon                TimeAlignmentTimer
}

-- TAG-UPLINKCONFIGCOMMONSIB-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UPLINKTXDIRECTCURRENTLIST-START

UplinkTxDirectCurrentList ::=           SEQUENCE (SIZE (1..maxNrofServingCells)) OF UplinkTxDirectCurrentCell

UplinkTxDirectCurrentCell ::=           SEQUENCE {
    servCellIndex                           ServCellIndex,
    uplinkDirectCurrentBWP                  SEQUENCE (SIZE (1..maxNrofBWPs)) OF UplinkTxDirectCurrentBWP,    ...,
    [[
    uplinkDirectCurrentBWP-SUL              SEQUENCE (SIZE (1..maxNrofBWPs)) OF UplinkTxDirectCurrentBWP               OPTIONAL
    ]]
}

UplinkTxDirectCurrentBWP ::=            SEQUENCE {
    bwp-Id                                  BWP-Id,
    shift7dot5kHz                           BOOLEAN,
    txDirectCurrentLocation                 INTEGER (0..3301)
}

-- TAG-UPLINKTXDIRECTCURRENTLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ZP-CSI-RS-RESOURCE-START

ZP-CSI-RS-Resource ::=              SEQUENCE {
    zp-CSI-RS-ResourceId                ZP-CSI-RS-ResourceId,
    resourceMapping                     CSI-RS-ResourceMapping,
    periodicityAndOffset                CSI-ResourcePeriodicityAndOffset                OPTIONAL, --Cond PeriodicOrSemiPersistent
    ...
}

ZP-CSI-RS-ResourceId ::=            INTEGER (0..maxNrofZP-CSI-RS-Resources-1)

-- TAG-ZP-CSI-RS-RESOURCE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ZP-CSI-RS-RESOURCESET-START

ZP-CSI-RS-ResourceSet ::=           SEQUENCE {
    zp-CSI-RS-ResourceSetId             ZP-CSI-RS-ResourceSetId,
    zp-CSI-RS-ResourceIdList            SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId,
    ...
}

-- TAG-ZP-CSI-RS-RESOURCESET-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ZP-CSI-RS-RESOURCESETID-START

ZP-CSI-RS-ResourceSetId ::=                     INTEGER (0..maxNrofZP-CSI-RS-ResourceSets-1)

-- TAG-ZP-CSI-RS-RESOURCESETID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-ACCESSSTRATUMRELEASE-START

AccessStratumRelease ::= ENUMERATED {
                            rel15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, ... }

-- TAG-ACCESSSTRATUMRELEASE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-BANDCOMBINATIONLIST-START

BandCombinationList ::=             SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination

BandCombinationList-v1540 ::=       SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1540

BandCombinationList-v1550 ::=       SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1550

BandCombinationList-v1560 ::=       SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination-v1560

BandCombination ::=                 SEQUENCE {
    bandList                            SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters,
    featureSetCombination               FeatureSetCombinationId,
    ca-ParametersEUTRA                  CA-ParametersEUTRA                          OPTIONAL,
    ca-ParametersNR                     CA-ParametersNR                             OPTIONAL,
    mrdc-Parameters                     MRDC-Parameters                             OPTIONAL,
    supportedBandwidthCombinationSet    BIT STRING (SIZE (1..32))                   OPTIONAL,
    powerClass-v1530                    ENUMERATED {pc2}                            OPTIONAL
}

BandCombination-v1540::=            SEQUENCE {
    bandList-v1540                      SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1540,
    ca-ParametersNR-v1540               CA-ParametersNR-v1540                       OPTIONAL
}

BandCombination-v1550 ::=           SEQUENCE {
    ca-ParametersNR-v1550               CA-ParametersNR-v1550
}

BandCombination-v1560::=            SEQUENCE {
    ne-DC-BC                                ENUMERATED {supported}                 OPTIONAL,
    ca-ParametersNRDC                       CA-ParametersNRDC                      OPTIONAL,
    ca-ParametersEUTRA-v1560                CA-ParametersEUTRA-v1560               OPTIONAL,
    ca-ParametersNR-v1560                   CA-ParametersNR-v1560                  OPTIONAL
}

BandParameters ::=                      CHOICE {
    eutra                               SEQUENCE {
        bandEUTRA                           FreqBandIndicatorEUTRA,
        ca-BandwidthClassDL-EUTRA           CA-BandwidthClassEUTRA                 OPTIONAL,
        ca-BandwidthClassUL-EUTRA           CA-BandwidthClassEUTRA                 OPTIONAL
    },
    nr                                  SEQUENCE {
        bandNR                              FreqBandIndicatorNR,
        ca-BandwidthClassDL-NR              CA-BandwidthClassNR                    OPTIONAL,
        ca-BandwidthClassUL-NR              CA-BandwidthClassNR                    OPTIONAL
    }
}

BandParameters-v1540 ::=            SEQUENCE {
    srs-CarrierSwitch                   CHOICE {
        nr                                  SEQUENCE {
            srs-SwitchingTimesListNR            SEQUENCE (SIZE (1..maxSimultaneousBands)) OF SRS-SwitchingTimeNR
        },
        eutra                               SEQUENCE {
            srs-SwitchingTimesListEUTRA         SEQUENCE (SIZE (1..maxSimultaneousBands)) OF SRS-SwitchingTimeEUTRA
        }
    }                                                                              OPTIONAL,
    srs-TxSwitch                    SEQUENCE {
        supportedSRS-TxPortSwitch       ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, t1r1, t2r2, t4r4, notSupported},
        txSwitchImpactToRx              INTEGER (1..32)                            OPTIONAL,
        txSwitchWithAnotherBand         INTEGER (1..32)                            OPTIONAL
    }                                                                              OPTIONAL
}

-- TAG-BANDCOMBINATIONLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CA-BANDWIDTHCLASSEUTRA-START

CA-BandwidthClassEUTRA ::=          ENUMERATED {a, b, c, d, e, f, ...}

-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CA-BANDWIDTHCLASSNR-START

CA-BandwidthClassNR ::=             ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...}

-- TAG-CA-BANDWIDTHCLASSNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CA-PARAMETERSEUTRA-START

CA-ParametersEUTRA ::=                          SEQUENCE {
    multipleTimingAdvance                           ENUMERATED {supported}                          OPTIONAL,
    simultaneousRx-Tx                               ENUMERATED {supported}                          OPTIONAL,
    supportedNAICS-2CRS-AP                          BIT STRING (SIZE (1..8))                        OPTIONAL,
    additionalRx-Tx-PerformanceReq                  ENUMERATED {supported}                          OPTIONAL,
    ue-CA-PowerClass-N                              ENUMERATED {class2}                             OPTIONAL,
    supportedBandwidthCombinationSetEUTRA-v1530     BIT STRING (SIZE (1..32))                       OPTIONAL,
    ...
}

CA-ParametersEUTRA-v1560 ::=                    SEQUENCE {
    totalWeightedLayers                             INTEGER (2..128)                                 OPTIONAL
}

-- TAG-CA-PARAMETERSEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CA-PARAMETERSNR-START

CA-ParametersNR ::=                 SEQUENCE {
    dummy                                         ENUMERATED {supported}      OPTIONAL,
    parallelTxSRS-PUCCH-PUSCH                     ENUMERATED {supported}      OPTIONAL,
    parallelTxPRACH-SRS-PUCCH-PUSCH               ENUMERATED {supported}      OPTIONAL,
    simultaneousRxTxInterBandCA                   ENUMERATED {supported}      OPTIONAL,
    simultaneousRxTxSUL                           ENUMERATED {supported}      OPTIONAL,
    diffNumerologyAcrossPUCCH-Group               ENUMERATED {supported}      OPTIONAL,
    diffNumerologyWithinPUCCH-GroupSmallerSCS     ENUMERATED {supported}      OPTIONAL,
    supportedNumberTAG                            ENUMERATED {n2, n3, n4}     OPTIONAL,
    ...
}

CA-ParametersNR-v1540 ::=           SEQUENCE {
    simultaneousSRS-AssocCSI-RS-AllCC                       INTEGER (5..32)         OPTIONAL,
    csi-RS-IM-ReceptionForFeedbackPerBandComb               SEQUENCE {
        maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC            INTEGER (1..64)     OPTIONAL,
        totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC     INTEGER (2..256)    OPTIONAL
    }                                                                               OPTIONAL,
    simultaneousCSI-ReportsAllCC                            INTEGER (5..32)         OPTIONAL,
    dualPA-Architecture                                     ENUMERATED {supported}  OPTIONAL
}

CA-ParametersNR-v1550 ::=           SEQUENCE {
    dummy                               ENUMERATED {supported}      OPTIONAL
}

CA-ParametersNR-v1560 ::=           SEQUENCE {
    diffNumerologyWithinPUCCH-GroupLargerSCS      ENUMERATED {supported}            OPTIONAL
}

-- TAG-CA-PARAMETERSNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CA-PARAMETERS-NRDC-START

CA-ParametersNRDC ::=					SEQUENCE {
	ca-ParametersNR-ForDC				CA-ParametersNR							OPTIONAL,
	ca-ParametersNR-ForDC-v1540			CA-ParametersNR-v1540					OPTIONAL,
	ca-ParametersNR-ForDC-v1550			CA-ParametersNR-v1550					OPTIONAL,
	ca-ParametersNR-ForDC-v1560			CA-ParametersNR-v1560					OPTIONAL,
	featureSetCombinationDC				FeatureSetCombinationId					OPTIONAL
}

-- TAG-CA-PARAMETERS-NRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-CODEBOOKPARAMETERS-START

CodebookParameters ::=             SEQUENCE {
    type1                                SEQUENCE {
        singlePanel                          SEQUENCE {
            supportedCSI-RS-ResourceList       SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
            modes                                 ENUMERATED {mode1, mode1andMode2},
            maxNumberCSI-RS-PerResourceSet    INTEGER (1..8)
        },
        multiPanel                           SEQUENCE {
            supportedCSI-RS-ResourceList      SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
            modes                                 ENUMERATED {mode1, mode2, both},
            nrofPanels                           ENUMERATED {n2, n4},
            maxNumberCSI-RS-PerResourceSet    INTEGER (1..8)
        }                                                                                                               OPTIONAL
    },
    type2                                SEQUENCE {
        supportedCSI-RS-ResourceList      SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
        parameterLx                         INTEGER (2..4),
        amplitudeScalingType               ENUMERATED {wideband, widebandAndSubband},
        amplitudeSubsetRestriction        ENUMERATED {supported}              OPTIONAL
    }                                                                                                                   OPTIONAL,
    type2-PortSelection                  SEQUENCE {
        supportedCSI-RS-ResourceList        SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
        parameterLx                           INTEGER (2..4),
        amplitudeScalingType                 ENUMERATED {wideband, widebandAndSubband}
    }                                                                                                                   OPTIONAL
}

SupportedCSI-RS-Resource ::=     SEQUENCE {
    maxNumberTxPortsPerResource      ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
    maxNumberResourcesPerBand        INTEGER (1..64),
    totalNumberTxPortsPerBand        INTEGER (2..256)
}

-- TAG-CODEBOOKPARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETCOMBINATION-START

FeatureSetCombination ::=       SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FeatureSetsPerBand

FeatureSetsPerBand ::=          SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSet

FeatureSet ::=                  CHOICE {
    eutra                           SEQUENCE {
        downlinkSetEUTRA                FeatureSetEUTRA-DownlinkId,
        uplinkSetEUTRA                  FeatureSetEUTRA-UplinkId
    },
    nr                              SEQUENCE {
        downlinkSetNR                   FeatureSetDownlinkId,
        uplinkSetNR                     FeatureSetUplinkId
    }
}

-- TAG-FEATURESETCOMBINATION-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETCOMBINATIONID-START

FeatureSetCombinationId ::=         INTEGER (0.. maxFeatureSetCombinations)

-- TAG-FEATURESETCOMBINATIONID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETDOWNLINK-START

FeatureSetDownlink ::=                  SEQUENCE {
    featureSetListPerDownlinkCC             SEQUENCE (SIZE (1..maxNrofServingCells)) OF FeatureSetDownlinkPerCC-Id,

    intraBandFreqSeparationDL               FreqSeparationClass                                                     OPTIONAL,
    scalingFactor                           ENUMERATED {f0p4, f0p75, f0p8}                                          OPTIONAL,
    crossCarrierScheduling-OtherSCS         ENUMERATED {supported}                                                  OPTIONAL,
    scellWithoutSSB                         ENUMERATED {supported}                                                  OPTIONAL,
    csi-RS-MeasSCellWithoutSSB              ENUMERATED {supported}                                                  OPTIONAL,
    dummy1                                  ENUMERATED {supported}                                                  OPTIONAL,
    type1-3-CSS                             ENUMERATED {supported}                                                  OPTIONAL,
    pdcch-MonitoringAnyOccasions            ENUMERATED {withoutDCI-Gap, withDCI-Gap}                                OPTIONAL,
    dummy2                                  ENUMERATED {supported}                                                  OPTIONAL,
    ue-SpecificUL-DL-Assignment             ENUMERATED {supported}                                                  OPTIONAL,
    searchSpaceSharingCA-DL                 ENUMERATED {supported}                                                  OPTIONAL,
    timeDurationForQCL                      SEQUENCE {
        scs-60kHz                           ENUMERATED {s7, s14, s28}                                               OPTIONAL,
        scs-120kHz                          ENUMERATED {s14, s28}                                                   OPTIONAL
    }                                                                                                               OPTIONAL,
    pdsch-ProcessingType1-DifferentTB-PerSlot SEQUENCE {
        scs-15kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-30kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-60kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-120kHz                              ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL
    }                                                                                                               OPTIONAL,
    dummy3                                  DummyA                                                                  OPTIONAL,
    dummy4                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyB                        OPTIONAL,
    dummy5                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyC                        OPTIONAL,
    dummy6                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyD                        OPTIONAL,
    dummy7                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyE                        OPTIONAL
}

FeatureSetDownlink-v1540 ::= SEQUENCE {
    oneFL-DMRS-TwoAdditionalDMRS-DL         ENUMERATED {supported}                       OPTIONAL,
    additionalDMRS-DL-Alt                   ENUMERATED {supported}                       OPTIONAL,
    twoFL-DMRS-TwoAdditionalDMRS-DL         ENUMERATED {supported}                       OPTIONAL,
    oneFL-DMRS-ThreeAdditionalDMRS-DL       ENUMERATED {supported}                       OPTIONAL,
    pdcch-MonitoringAnyOccasionsWithSpanGap SEQUENCE {
        scs-15kHz                               ENUMERATED {set1, set2, set3}            OPTIONAL,
        scs-30kHz                               ENUMERATED {set1, set2, set3}            OPTIONAL,
        scs-60kHz                               ENUMERATED {set1, set2, set3}            OPTIONAL,
        scs-120kHz                              ENUMERATED {set1, set2, set3}            OPTIONAL
    } OPTIONAL,
    pdsch-SeparationWithGap                 ENUMERATED {supported}                       OPTIONAL,
    pdsch-ProcessingType2                   SEQUENCE {
        scs-15kHz                               ProcessingParameters                     OPTIONAL,
        scs-30kHz                               ProcessingParameters                     OPTIONAL,
        scs-60kHz                               ProcessingParameters                     OPTIONAL
    } OPTIONAL,
    pdsch-ProcessingType2-Limited           SEQUENCE {
        differentTB-PerSlot-SCS-30kHz           ENUMERATED {upto1, upto2, upto4, upto7}
    } OPTIONAL,
    dl-MCS-TableAlt-DynamicIndication       ENUMERATED {supported}                       OPTIONAL
}

DummyA ::=      SEQUENCE {
    maxNumberNZP-CSI-RS-PerCC                   INTEGER (1..32),
    maxNumberPortsAcrossNZP-CSI-RS-PerCC        ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
                                                            p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
                                                            p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256},
    maxNumberCS-IM-PerCC                        ENUMERATED {n1, n2, n4, n8, n16, n32},
    maxNumberSimultaneousCSI-RS-ActBWP-AllCC    ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26,
                                                                n28, n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52,
                                                                n54, n56, n58, n60, n62, n64},
    totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
                                                                p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
                                                                p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256}
}

DummyB ::=       SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    supportedCodebookMode               ENUMERATED {mode1, mode1AndMode2},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyC ::=        SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p8, p16, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    supportedCodebookMode               ENUMERATED {mode1, mode2, both},
    supportedNumberPanels               ENUMERATED {n2, n4},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyD ::=                 SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    parameterLx                         INTEGER (2..4),
    amplitudeScalingType                ENUMERATED {wideband, widebandAndSubband},
    amplitudeSubsetRestriction          ENUMERATED {supported}                          OPTIONAL,
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyE ::=    SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    parameterLx                         INTEGER (2..4),
    amplitudeScalingType                ENUMERATED {wideband, widebandAndSubband},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

-- TAG-FEATURESETDOWNLINK-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETDOWNLINKID-START

FeatureSetDownlinkId ::=            INTEGER (0..maxDownlinkFeatureSets)

-- TAG-FEATURESETDOWNLINKID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETDOWNLINKPERCC-START

FeatureSetDownlinkPerCC ::=         SEQUENCE {
    supportedSubcarrierSpacingDL        SubcarrierSpacing,
    supportedBandwidthDL                SupportedBandwidth,
    channelBW-90mhz                     ENUMERATED {supported}                                                  OPTIONAL,
    maxNumberMIMO-LayersPDSCH           MIMO-LayersDL                                                           OPTIONAL,
    supportedModulationOrderDL          ModulationOrder                                                         OPTIONAL
}

-- TAG-FEATURESETDOWNLINKPERCC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETDOWNLINKPERCC-ID-START

FeatureSetDownlinkPerCC-Id ::=      INTEGER (1..maxPerCC-FeatureSets)

-- TAG-FEATURESETDOWNLINKPERCC-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETEUTRADOWNLINKID-START

FeatureSetEUTRA-DownlinkId ::=      INTEGER (0..maxEUTRA-DL-FeatureSets)

-- TAG-FEATURESETEUTRADOWNLINKID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETEUTRAUPLINKID-START

FeatureSetEUTRA-UplinkId ::=                    INTEGER (0..maxEUTRA-UL-FeatureSets)

-- TAG-FEATURESETEUTRAUPLINKID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETS-START

FeatureSets ::=    SEQUENCE {
    featureSetsDownlink                 SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink               OPTIONAL,
    featureSetsDownlinkPerCC            SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC            OPTIONAL,
    featureSetsUplink                   SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink                   OPTIONAL,
    featureSetsUplinkPerCC              SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC              OPTIONAL,
    ...,
    [[
    featureSetsDownlink-v1540           SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1540         OPTIONAL,
    featureSetsUplink-v1540             SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink-v1540             OPTIONAL,
    featureSetsUplinkPerCC-v1540        SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC-v1540        OPTIONAL
    ]]
}

-- TAG-FEATURESETS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETUPLINK-START

FeatureSetUplink ::=                SEQUENCE {
    featureSetListPerUplinkCC           SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id,
    scalingFactor                       ENUMERATED {f0p4, f0p75, f0p8}              OPTIONAL,
    crossCarrierScheduling-OtherSCS     ENUMERATED {supported}                      OPTIONAL,
    intraBandFreqSeparationUL           FreqSeparationClass                         OPTIONAL,
    searchSpaceSharingCA-UL             ENUMERATED {supported}                      OPTIONAL,
    dummy1                  DummyI                          OPTIONAL,
    supportedSRS-Resources              SRS-Resources                               OPTIONAL,
    twoPUCCH-Group                      ENUMERATED {supported}                      OPTIONAL,
    dynamicSwitchSUL                    ENUMERATED {supported}                      OPTIONAL,
    simultaneousTxSUL-NonSUL            ENUMERATED {supported}                      OPTIONAL,
    pusch-ProcessingType1-DifferentTB-PerSlot SEQUENCE {
        scs-15kHz                                 ENUMERATED {upto2, upto4, upto7}  OPTIONAL,
        scs-30kHz                                 ENUMERATED {upto2, upto4, upto7}  OPTIONAL,
        scs-60kHz                                 ENUMERATED {upto2, upto4, upto7}  OPTIONAL,
        scs-120kHz                                ENUMERATED {upto2, upto4, upto7}  OPTIONAL
    }                                                                               OPTIONAL,
    dummy2                               DummyF                                     OPTIONAL
}

FeatureSetUplink-v1540 ::=           SEQUENCE {
    zeroSlotOffsetAperiodicSRS           ENUMERATED {supported}                     OPTIONAL,
    pa-PhaseDiscontinuityImpacts         ENUMERATED {supported}                     OPTIONAL,
    pusch-SeparationWithGap              ENUMERATED {supported}                     OPTIONAL,
    pusch-ProcessingType2                SEQUENCE {
        scs-15kHz                            ProcessingParameters                   OPTIONAL,
        scs-30kHz                            ProcessingParameters                   OPTIONAL,
        scs-60kHz                            ProcessingParameters                   OPTIONAL
    } OPTIONAL,
    ul-MCS-TableAlt-DynamicIndication    ENUMERATED {supported}                     OPTIONAL
}

SRS-Resources ::=                           SEQUENCE {
    maxNumberAperiodicSRS-PerBWP                ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberAperiodicSRS-PerBWP-PerSlot        INTEGER (1..6),
    maxNumberPeriodicSRS-PerBWP                 ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberPeriodicSRS-PerBWP-PerSlot         INTEGER (1..6),
    maxNumberSemiPersistentSRS-PerBWP           ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberSemiPersistentSRS-PerBWP-PerSlot   INTEGER (1..6),
    maxNumberSRS-Ports-PerResource              ENUMERATED {n1, n2, n4}
}

DummyF ::=                                  SEQUENCE {
    maxNumberPeriodicCSI-ReportPerBWP           INTEGER (1..4),
    maxNumberAperiodicCSI-ReportPerBWP          INTEGER (1..4),
    maxNumberSemiPersistentCSI-ReportPerBWP     INTEGER (0..4),
    simultaneousCSI-ReportsAllCC                INTEGER (5..32)
}

-- TAG-FEATURESETUPLINK-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETUPLINKID-START

FeatureSetUplinkId ::=                  INTEGER (0..maxUplinkFeatureSets)

-- TAG-FEATURESETUPLINKID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETUPLINKPERCC-START

FeatureSetUplinkPerCC ::=               SEQUENCE {
    supportedSubcarrierSpacingUL            SubcarrierSpacing,
    supportedBandwidthUL                    SupportedBandwidth,
    channelBW-90mhz                         ENUMERATED {supported}                      OPTIONAL,
    mimo-CB-PUSCH                           SEQUENCE {
        maxNumberMIMO-LayersCB-PUSCH            MIMO-LayersUL                           OPTIONAL,
        maxNumberSRS-ResourcePerSet             INTEGER (1..2)
    }                                                                                   OPTIONAL,
    maxNumberMIMO-LayersNonCB-PUSCH         MIMO-LayersUL                               OPTIONAL,
    supportedModulationOrderUL              ModulationOrder                             OPTIONAL
}
FeatureSetUplinkPerCC-v1540 ::=       SEQUENCE {
    mimo-NonCB-PUSCH                      SEQUENCE {
        maxNumberSRS-ResourcePerSet           INTEGER (1..4),
        maxNumberSimultaneousSRS-ResourceTx   INTEGER (1..4)
    } OPTIONAL
}

-- TAG-FEATURESETUPLINKPERCC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FEATURESETUPLINKPERCC-ID-START

FeatureSetUplinkPerCC-Id ::=            INTEGER (1..maxPerCC-FeatureSets)

-- TAG-FEATURESETUPLINKPERCC-ID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQBANDINDICATOREUTRA-START

FreqBandIndicatorEUTRA ::=  INTEGER (1..maxBandsEUTRA)

-- TAG-FREQBANDINDICATOREUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQBANDLIST-START

FreqBandList ::=                SEQUENCE (SIZE (1..maxBandsMRDC)) OF FreqBandInformation

FreqBandInformation ::=         CHOICE {
    bandInformationEUTRA            FreqBandInformationEUTRA,
    bandInformationNR               FreqBandInformationNR
}

FreqBandInformationEUTRA ::=    SEQUENCE {
    bandEUTRA                       FreqBandIndicatorEUTRA,
    ca-BandwidthClassDL-EUTRA       CA-BandwidthClassEUTRA                  OPTIONAL,   -- Need N
    ca-BandwidthClassUL-EUTRA       CA-BandwidthClassEUTRA                  OPTIONAL    -- Need N
}

FreqBandInformationNR ::=       SEQUENCE {
    bandNR                          FreqBandIndicatorNR,
    maxBandwidthRequestedDL         AggregatedBandwidth                     OPTIONAL,   -- Need N
    maxBandwidthRequestedUL         AggregatedBandwidth                     OPTIONAL,   -- Need N
    maxCarriersRequestedDL          INTEGER (1..maxNrofServingCells)        OPTIONAL,   -- Need N
    maxCarriersRequestedUL          INTEGER (1..maxNrofServingCells)        OPTIONAL    -- Need N
}

AggregatedBandwidth ::=         ENUMERATED {mhz50, mhz100, mhz150, mhz200, mhz250, mhz300, mhz350,
                                            mhz400, mhz450, mhz500, mhz550, mhz600, mhz650, mhz700, mhz750, mhz800}

-- TAG-FREQBANDLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-FREQSEPARATIONCLASS-START

FreqSeparationClass ::= ENUMERATED {c1, c2, c3, ...}

-- TAG-FREQSEPARATIONCLASS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-IMS-PARAMETERS-START

IMS-Parameters ::=         SEQUENCE {
    ims-ParametersCommon       IMS-ParametersCommon                  OPTIONAL,
    ims-ParametersFRX-Diff     IMS-ParametersFRX-Diff                OPTIONAL,
    ...
}

IMS-ParametersCommon ::=   SEQUENCE {
    voiceOverEUTRA-5GC         ENUMERATED {supported}                OPTIONAL,
    ...,
    [[
    voiceOverSCG-BearerEUTRA-5GC       ENUMERATED {supported}        OPTIONAL
    ]]
}

IMS-ParametersFRX-Diff ::= SEQUENCE {
    voiceOverNR                ENUMERATED {supported}                OPTIONAL,
    ...
}

-- TAG-IMS-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-INTERRAT-PARAMETERS-START

InterRAT-Parameters ::=             SEQUENCE {
    eutra                               EUTRA-Parameters                OPTIONAL,
    ...
}

EUTRA-Parameters ::=                SEQUENCE {
    supportedBandListEUTRA          SEQUENCE (SIZE (1..maxBandsEUTRA)) OF FreqBandIndicatorEUTRA,
    eutra-ParametersCommon          EUTRA-ParametersCommon                                          OPTIONAL,
    eutra-ParametersXDD-Diff            EUTRA-ParametersXDD-Diff                                    OPTIONAL,
    ...
}

EUTRA-ParametersCommon ::=      SEQUENCE {
    mfbi-EUTRA                          ENUMERATED {supported}          OPTIONAL,
    modifiedMPR-BehaviorEUTRA           BIT STRING (SIZE (32))          OPTIONAL,
    multiNS-Pmax-EUTRA                  ENUMERATED {supported}          OPTIONAL,
    rs-SINR-MeasEUTRA                   ENUMERATED {supported}          OPTIONAL,
    ...,
    [[ 
    ne-DC                               ENUMERATED {supported}          OPTIONAL
    ]]

}

EUTRA-ParametersXDD-Diff ::=        SEQUENCE {
    rsrqMeasWidebandEUTRA               ENUMERATED {supported}          OPTIONAL,
    ...
}

-- TAG-INTERRAT-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MAC-PARAMETERS-START

MAC-Parameters ::= SEQUENCE {
    mac-ParametersCommon            MAC-ParametersCommon        OPTIONAL,
    mac-ParametersXDD-Diff          MAC-ParametersXDD-Diff      OPTIONAL
}

MAC-ParametersCommon ::=    SEQUENCE {
    lcp-Restriction                 ENUMERATED {supported}      OPTIONAL,
    dummy                           ENUMERATED {supported}      OPTIONAL,
    lch-ToSCellRestriction          ENUMERATED {supported}      OPTIONAL,
    ...,
    [[
    recommendedBitRate              ENUMERATED {supported}      OPTIONAL,
    recommendedBitRateQuery         ENUMERATED {supported}      OPTIONAL
    ]]
}

MAC-ParametersXDD-Diff ::=  SEQUENCE {
    skipUplinkTxDynamic             ENUMERATED {supported}     OPTIONAL,
    logicalChannelSR-DelayTimer     ENUMERATED {supported}     OPTIONAL,
    longDRX-Cycle                   ENUMERATED {supported}     OPTIONAL,
    shortDRX-Cycle                  ENUMERATED {supported}     OPTIONAL,
    multipleSR-Configurations       ENUMERATED {supported}     OPTIONAL,
    multipleConfiguredGrants    ENUMERATED {supported}         OPTIONAL,
    ...
}

-- TAG-MAC-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASANDMOBPARAMETERS-START

MeasAndMobParameters ::=                    SEQUENCE {
    measAndMobParametersCommon              MeasAndMobParametersCommon              OPTIONAL,
    measAndMobParametersXDD-Diff                MeasAndMobParametersXDD-Diff        OPTIONAL,
    measAndMobParametersFRX-Diff                MeasAndMobParametersFRX-Diff        OPTIONAL
}

MeasAndMobParametersCommon ::=          SEQUENCE {
    supportedGapPattern                     BIT STRING (SIZE (22))                  OPTIONAL,
    ssb-RLM                                 ENUMERATED {supported}                  OPTIONAL,
    ssb-AndCSI-RS-RLM                       ENUMERATED {supported}                  OPTIONAL,
    ...,
    [[
    eventB-MeasAndReport                    ENUMERATED {supported}                  OPTIONAL,
    handoverFDD-TDD                         ENUMERATED {supported}                  OPTIONAL,
    eutra-CGI-Reporting                     ENUMERATED {supported}                  OPTIONAL,
    nr-CGI-Reporting                        ENUMERATED {supported}                  OPTIONAL
    ]],
    [[
    independentGapConfig                    ENUMERATED {supported}                  OPTIONAL,
    periodicEUTRA-MeasAndReport             ENUMERATED {supported}                  OPTIONAL,
    handoverFR1-FR2                         ENUMERATED {supported}                  OPTIONAL,
    maxNumberCSI-RS-RRM-RS-SINR             ENUMERATED {n4, n8, n16, n32, n64, n96} OPTIONAL
    ]],
    [[
    nr-CGI-Reporting-ENDC                   ENUMERATED {supported}      OPTIONAL
    ]]
}

MeasAndMobParametersXDD-Diff ::=            SEQUENCE {
    intraAndInterF-MeasAndReport        ENUMERATED {supported}  OPTIONAL,
    eventA-MeasAndReport                ENUMERATED {supported}  OPTIONAL,
    ...,
    [[
    handoverInterF                      ENUMERATED {supported}  OPTIONAL,
    handoverLTE-EPC                     ENUMERATED {supported}  OPTIONAL,
    handoverLTE-5GC                     ENUMERATED {supported}  OPTIONAL
    ]]
}

MeasAndMobParametersFRX-Diff ::=            SEQUENCE {
    ss-SINR-Meas                                ENUMERATED {supported}      OPTIONAL,
    csi-RSRP-AndRSRQ-MeasWithSSB                ENUMERATED {supported}      OPTIONAL,
    csi-RSRP-AndRSRQ-MeasWithoutSSB             ENUMERATED {supported}      OPTIONAL,
    csi-SINR-Meas                               ENUMERATED {supported}      OPTIONAL,
    csi-RS-RLM                                  ENUMERATED {supported}      OPTIONAL,
    ...,
    [[
    handoverInterF                              ENUMERATED {supported}  OPTIONAL,
    handoverLTE-EPC                             ENUMERATED {supported}  OPTIONAL,
    handoverLTE-5GC                             ENUMERATED {supported}  OPTIONAL
    ]],
    [[
    maxNumberResource-CSI-RS-RLM                ENUMERATED {n2, n4, n6, n8}     OPTIONAL
    ]],
    [[
    simultaneousRxDataSSB-DiffNumerology        ENUMERATED {supported}  OPTIONAL
    ]]
}

-- TAG-MEASANDMOBPARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MEASANDMOBPARAMETERSMRDC-START

MeasAndMobParametersMRDC ::=            SEQUENCE {
    measAndMobParametersMRDC-Common         MeasAndMobParametersMRDC-Common                 OPTIONAL,
    measAndMobParametersMRDC-XDD-Diff       MeasAndMobParametersMRDC-XDD-Diff               OPTIONAL,
    measAndMobParametersMRDC-FRX-Diff       MeasAndMobParametersMRDC-FRX-Diff               OPTIONAL
}

MeasAndMobParametersMRDC-v1560 ::=      SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff-v1560    MeasAndMobParametersMRDC-XDD-Diff-v1560      OPTIONAL
}

MeasAndMobParametersMRDC-Common ::=     SEQUENCE {
    independentGapConfig                    ENUMERATED {supported}              OPTIONAL
}

MeasAndMobParametersMRDC-XDD-Diff ::=   SEQUENCE {
    sftd-MeasPSCell                         ENUMERATED {supported}              OPTIONAL,
    sftd-MeasNR-Cell                        ENUMERATED {supported}              OPTIONAL
}

MeasAndMobParametersMRDC-XDD-Diff-v1560 ::=    SEQUENCE {
    sftd-MeasPSCell-NEDC                           ENUMERATED {supported}        OPTIONAL
}

MeasAndMobParametersMRDC-FRX-Diff ::=          SEQUENCE {
    simultaneousRxDataSSB-DiffNumerology           ENUMERATED {supported}              OPTIONAL
}

-- TAG-MEASANDMOBPARAMETERSMRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MIMO-LAYERS-START

MIMO-LayersDL ::=   ENUMERATED {twoLayers, fourLayers, eightLayers}

MIMO-LayersUL ::=   ENUMERATED {oneLayer, twoLayers, fourLayers}

-- TAG-MIMO-LAYERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MIMO-PARAMETERSPERBAND-START

MIMO-ParametersPerBand ::=          SEQUENCE {
    tci-StatePDSCH                      SEQUENCE {
        maxNumberConfiguredTCIstatesPerCC   ENUMERATED {n4, n8, n16, n32, n64, n128}                               OPTIONAL,
        maxNumberActiveTCI-PerBWP           ENUMERATED {n1, n2, n4, n8}                                            OPTIONAL
    }                                                                                                              OPTIONAL,
    additionalActiveTCI-StatePDCCH              ENUMERATED {supported}                                             OPTIONAL,
    pusch-TransCoherence                        ENUMERATED {nonCoherent, partialCoherent, fullCoherent}            OPTIONAL,
    beamCorrespondenceWithoutUL-BeamSweeping    ENUMERATED {supported}                                             OPTIONAL,
    periodicBeamReport                          ENUMERATED {supported}                                             OPTIONAL,
    aperiodicBeamReport                         ENUMERATED {supported}                                             OPTIONAL,
    sp-BeamReportPUCCH                          ENUMERATED {supported}                                             OPTIONAL,
    sp-BeamReportPUSCH                          ENUMERATED {supported}                                             OPTIONAL,
    dummy1                                      DummyG                                                             OPTIONAL,
    maxNumberRxBeam                             INTEGER (2..8)                                                     OPTIONAL,
    maxNumberRxTxBeamSwitchDL                   SEQUENCE {
        scs-15kHz                                   ENUMERATED {n4, n7, n14}                                       OPTIONAL,
        scs-30kHz                                   ENUMERATED {n4, n7, n14}                                       OPTIONAL,
        scs-60kHz                                   ENUMERATED {n4, n7, n14}                                       OPTIONAL,
        scs-120kHz                                  ENUMERATED {n4, n7, n14}                                       OPTIONAL,
        scs-240kHz                                  ENUMERATED {n4, n7, n14}                                       OPTIONAL
    }                                                                                                              OPTIONAL,
    maxNumberNonGroupBeamReporting              ENUMERATED {n1, n2, n4}                                            OPTIONAL,
    groupBeamReporting                          ENUMERATED {supported}                                             OPTIONAL,
    uplinkBeamManagement                        SEQUENCE {
        maxNumberSRS-ResourcePerSet-BM              ENUMERATED {n2, n4, n8, n16},
        maxNumberSRS-ResourceSet                    INTEGER (1..8)
    }                                                                                                              OPTIONAL,
    maxNumberCSI-RS-BFD                 INTEGER (1..64)                                                            OPTIONAL,
    maxNumberSSB-BFD                    INTEGER (1..64)                                                            OPTIONAL,
    maxNumberCSI-RS-SSB-CBD             INTEGER (1..256)                                                           OPTIONAL,
    dummy2                              ENUMERATED {supported}                                                     OPTIONAL,
    twoPortsPTRS-UL                     ENUMERATED {supported}                                                     OPTIONAL,
    dummy5                              SRS-Resources                                                              OPTIONAL,
    dummy3                              INTEGER (1..4)                                                             OPTIONAL,
    beamReportTiming                    SEQUENCE {
        scs-15kHz                           ENUMERATED {sym2, sym4, sym8}                                          OPTIONAL,
        scs-30kHz                           ENUMERATED {sym4, sym8, sym14, sym28}                                  OPTIONAL,
        scs-60kHz                           ENUMERATED {sym8, sym14, sym28}                                        OPTIONAL,
        scs-120kHz                          ENUMERATED {sym14, sym28, sym56}                                       OPTIONAL
    }                                                                                                              OPTIONAL,
    ptrs-DensityRecommendationSetDL     SEQUENCE {
        scs-15kHz                           PTRS-DensityRecommendationDL                                           OPTIONAL,
        scs-30kHz                           PTRS-DensityRecommendationDL                                           OPTIONAL,
        scs-60kHz                           PTRS-DensityRecommendationDL                                           OPTIONAL,
        scs-120kHz                          PTRS-DensityRecommendationDL                                           OPTIONAL
    }                                                                                                              OPTIONAL,
    ptrs-DensityRecommendationSetUL     SEQUENCE {
        scs-15kHz                           PTRS-DensityRecommendationUL                                           OPTIONAL,
        scs-30kHz                           PTRS-DensityRecommendationUL                                           OPTIONAL,
        scs-60kHz                           PTRS-DensityRecommendationUL                                           OPTIONAL,
        scs-120kHz                          PTRS-DensityRecommendationUL                                           OPTIONAL
    }                                                                                                              OPTIONAL,
    dummy4                              DummyH                                                                     OPTIONAL,
    aperiodicTRS                        ENUMERATED {supported}                                                     OPTIONAL,
    ...,
    [[
    dummy6                              ENUMERATED {true}                                                          OPTIONAL,
    beamManagementSSB-CSI-RS            BeamManagementSSB-CSI-RS                                                   OPTIONAL,
    beamSwitchTiming                    SEQUENCE {
        scs-60kHz                           ENUMERATED {sym14, sym28, sym48, sym224, sym336}                       OPTIONAL,
        scs-120kHz                          ENUMERATED {sym14, sym28, sym48, sym224, sym336}                       OPTIONAL
    }                                                                                                              OPTIONAL,
    codebookParameters                  CodebookParameters                                                         OPTIONAL,
    csi-RS-IM-ReceptionForFeedback      CSI-RS-IM-ReceptionForFeedback                                             OPTIONAL,
    csi-RS-ProcFrameworkForSRS          CSI-RS-ProcFrameworkForSRS                                                 OPTIONAL,
    csi-ReportFramework                 CSI-ReportFramework                                                        OPTIONAL,
    csi-RS-ForTracking                  CSI-RS-ForTracking                                                         OPTIONAL,
    srs-AssocCSI-RS                     SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource  OPTIONAL,
    spatialRelations                    SpatialRelations                                                           OPTIONAL
    ]]
}

DummyG ::=                          SEQUENCE {
    maxNumberSSB-CSI-RS-ResourceOneTx   ENUMERATED {n8, n16, n32, n64},
    maxNumberSSB-CSI-RS-ResourceTwoTx   ENUMERATED {n0, n4, n8, n16, n32, n64},
    supportedCSI-RS-Density             ENUMERATED {one, three, oneAndThree}
}

BeamManagementSSB-CSI-RS ::=        SEQUENCE {
    maxNumberSSB-CSI-RS-ResourceOneTx   ENUMERATED {n0, n8, n16, n32, n64},
    maxNumberCSI-RS-Resource            ENUMERATED {n0, n4, n8, n16, n32, n64},
    maxNumberCSI-RS-ResourceTwoTx       ENUMERATED {n0, n4, n8, n16, n32, n64},
    supportedCSI-RS-Density             ENUMERATED {one, three, oneAndThree}                                       OPTIONAL,
    maxNumberAperiodicCSI-RS-Resource   ENUMERATED {n0, n1, n4, n8, n16, n32, n64}
}

DummyH ::=                          SEQUENCE {
    burstLength                         INTEGER (1..2),
    maxSimultaneousResourceSetsPerCC    INTEGER (1..8),
    maxConfiguredResourceSetsPerCC      INTEGER (1..64),
    maxConfiguredResourceSetsAllCC      INTEGER (1..128)
}

CSI-RS-ForTracking ::=              SEQUENCE {
    maxBurstLength                      INTEGER (1..2),
    maxSimultaneousResourceSetsPerCC    INTEGER (1..8),
    maxConfiguredResourceSetsPerCC      INTEGER (1..64),
    maxConfiguredResourceSetsAllCC      INTEGER (1..256)
}

CSI-RS-IM-ReceptionForFeedback ::=              SEQUENCE {
    maxConfigNumberNZP-CSI-RS-PerCC                 INTEGER (1..64),
    maxConfigNumberPortsAcrossNZP-CSI-RS-PerCC      INTEGER (2..256),
    maxConfigNumberCSI-IM-PerCC                     ENUMERATED {n1, n2, n4, n8, n16, n32},
    maxNumberSimultaneousNZP-CSI-RS-PerCC           INTEGER (1..64),
    totalNumberPortsSimultaneousNZP-CSI-RS-PerCC    INTEGER (2..256)
}

CSI-RS-ProcFrameworkForSRS ::=                  SEQUENCE {
    maxNumberPeriodicSRS-AssocCSI-RS-PerBWP         INTEGER (1..4),
    maxNumberAperiodicSRS-AssocCSI-RS-PerBWP        INTEGER (1..4),
    maxNumberSP-SRS-AssocCSI-RS-PerBWP              INTEGER (0..4),
    simultaneousSRS-AssocCSI-RS-PerCC               INTEGER (1..8)
}

CSI-ReportFramework ::=                         SEQUENCE {
    maxNumberPeriodicCSI-PerBWP-ForCSI-Report       INTEGER (1..4),
    maxNumberAperiodicCSI-PerBWP-ForCSI-Report      INTEGER (1..4),
    maxNumberSemiPersistentCSI-PerBWP-ForCSI-Report INTEGER (0..4),
    maxNumberPeriodicCSI-PerBWP-ForBeamReport       INTEGER (1..4),
    maxNumberAperiodicCSI-PerBWP-ForBeamReport      INTEGER (1..4),
    maxNumberAperiodicCSI-triggeringStatePerCC      ENUMERATED {n3, n7, n15, n31, n63, n128},
    maxNumberSemiPersistentCSI-PerBWP-ForBeamReport INTEGER (0..4),
    simultaneousCSI-ReportsPerCC                    INTEGER (1..8)
}

PTRS-DensityRecommendationDL ::=    SEQUENCE {
    frequencyDensity1                   INTEGER (1..276),
    frequencyDensity2                   INTEGER (1..276),
    timeDensity1                        INTEGER (0..29),
    timeDensity2                        INTEGER (0..29),
    timeDensity3                        INTEGER (0..29)
}

PTRS-DensityRecommendationUL ::=    SEQUENCE {
    frequencyDensity1                   INTEGER (1..276),
    frequencyDensity2                   INTEGER (1..276),
    timeDensity1                        INTEGER (0..29),
    timeDensity2                        INTEGER (0..29),
    timeDensity3                        INTEGER (0..29),
    sampleDensity1                      INTEGER (1..276),
    sampleDensity2                      INTEGER (1..276),
    sampleDensity3                      INTEGER (1..276),
    sampleDensity4                      INTEGER (1..276),
    sampleDensity5                      INTEGER (1..276)
}

SpatialRelations ::=                    SEQUENCE {
    maxNumberConfiguredSpatialRelations     ENUMERATED {n4, n8, n16, n32, n64, n96},
    maxNumberActiveSpatialRelations         ENUMERATED {n1, n2, n4, n8, n14},
    additionalActiveSpatialRelationPUCCH    ENUMERATED {supported}                              OPTIONAL,
    maxNumberDL-RS-QCL-TypeD                ENUMERATED {n1, n2, n4, n8, n14}
}

DummyI ::=               SEQUENCE {
    supportedSRS-TxPortSwitch           ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal},
    txSwitchImpactToRx                  ENUMERATED {true}                                       OPTIONAL
}

-- TAG-MIMO-PARAMETERSPERBAND-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MODULATIONORDER-START

ModulationOrder ::= ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256}

-- TAG-MODULATIONORDER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MRDC-PARAMETERS-START

MRDC-Parameters ::= SEQUENCE {
    singleUL-Transmission               ENUMERATED {supported}              OPTIONAL,
    dynamicPowerSharing                 ENUMERATED {supported}              OPTIONAL,
    tdm-Pattern                         ENUMERATED {supported}              OPTIONAL,
    ul-SharingEUTRA-NR                  ENUMERATED {tdm, fdm, both}         OPTIONAL,
    ul-SwitchingTimeEUTRA-NR            ENUMERATED {type1, type2}           OPTIONAL,
    simultaneousRxTxInterBandENDC       ENUMERATED {supported}              OPTIONAL,
    asyncIntraBandENDC                  ENUMERATED {supported}              OPTIONAL,
    ...,
    [[
    dualPA-Architecture                 ENUMERATED {supported}              OPTIONAL,
    intraBandENDC-Support-v1540         ENUMERATED {non-contiguous, both}   OPTIONAL,
    ul-TimingAlignmentEUTRA-NR          ENUMERATED {required}               OPTIONAL
    ]]
}

-- TAG-MRDC-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-NRDC-PARAMETERS-START

NRDC-Parameters ::=                 SEQUENCE {
    measAndMobParametersNRDC            MeasAndMobParametersMRDC                    OPTIONAL,
    generalParametersNRDC               GeneralParametersMRDC-XDD-Diff              OPTIONAL,
    fdd-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    tdd-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    fr1-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    fr2-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                 OPTIONAL
}

-- TAG-NRDC-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCP-PARAMETERS-START

PDCP-Parameters ::=         SEQUENCE {
    supportedROHC-Profiles      SEQUENCE {
        profile0x0000               BOOLEAN,
        profile0x0001               BOOLEAN,
        profile0x0002               BOOLEAN,
        profile0x0003               BOOLEAN,
        profile0x0004               BOOLEAN,
        profile0x0006               BOOLEAN,
        profile0x0101               BOOLEAN,
        profile0x0102               BOOLEAN,
        profile0x0103               BOOLEAN,
        profile0x0104               BOOLEAN
    },
    maxNumberROHC-ContextSessions       ENUMERATED {cs2, cs4, cs8, cs12, cs16, cs24, cs32, cs48, cs64,
                                                cs128, cs256, cs512, cs1024, cs16384, spare2, spare1},
    uplinkOnlyROHC-Profiles             ENUMERATED {supported}      OPTIONAL,
    continueROHC-Context                ENUMERATED {supported}      OPTIONAL,
    outOfOrderDelivery                  ENUMERATED {supported}      OPTIONAL,
    shortSN                             ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationSRB                 ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationMCG-OrSCG-DRB       ENUMERATED {supported}      OPTIONAL,
    ...
}

-- TAG-PDCP-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PDCP-PARAMETERSMRDC-START

PDCP-ParametersMRDC ::=                 SEQUENCE {
    pdcp-DuplicationSplitSRB                ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationSplitDRB                ENUMERATED {supported}      OPTIONAL
}

-- TAG-PDCP-PARAMETERSMRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PHY-PARAMETERS-START

Phy-Parameters ::=                  SEQUENCE {
    phy-ParametersCommon                Phy-ParametersCommon                        OPTIONAL,
    phy-ParametersXDD-Diff              Phy-ParametersXDD-Diff                      OPTIONAL,
    phy-ParametersFRX-Diff              Phy-ParametersFRX-Diff                      OPTIONAL,
    phy-ParametersFR1                   Phy-ParametersFR1                           OPTIONAL,
    phy-ParametersFR2                   Phy-ParametersFR2                           OPTIONAL
}

Phy-ParametersCommon ::=            SEQUENCE {
    csi-RS-CFRA-ForHO                   ENUMERATED {supported}                      OPTIONAL,
    dynamicPRB-BundlingDL               ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-ReportPUCCH                  ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-ReportPUSCH                  ENUMERATED {supported}                      OPTIONAL,
    nzp-CSI-RS-IntefMgmt                ENUMERATED {supported}                      OPTIONAL,
    type2-SP-CSI-Feedback-LongPUCCH     ENUMERATED {supported}                      OPTIONAL,
    precoderGranularityCORESET          ENUMERATED {supported}                      OPTIONAL,
    dynamicHARQ-ACK-Codebook            ENUMERATED {supported}                      OPTIONAL,
    semiStaticHARQ-ACK-Codebook         ENUMERATED {supported}                      OPTIONAL,
    spatialBundlingHARQ-ACK             ENUMERATED {supported}                      OPTIONAL,
    dynamicBetaOffsetInd-HARQ-ACK-CSI   ENUMERATED {supported}                      OPTIONAL,
    pucch-Repetition-F1-3-4             ENUMERATED {supported}                      OPTIONAL,
    ra-Type0-PUSCH                      ENUMERATED {supported}                      OPTIONAL,
    dynamicSwitchRA-Type0-1-PDSCH       ENUMERATED {supported}                      OPTIONAL,
    dynamicSwitchRA-Type0-1-PUSCH       ENUMERATED {supported}                      OPTIONAL,
    pdsch-MappingTypeA                  ENUMERATED {supported}                      OPTIONAL,
    pdsch-MappingTypeB                  ENUMERATED {supported}                      OPTIONAL,
    interleavingVRB-ToPRB-PDSCH         ENUMERATED {supported}                      OPTIONAL,
    interSlotFreqHopping-PUSCH          ENUMERATED {supported}                      OPTIONAL,
    type1-PUSCH-RepetitionMultiSlots    ENUMERATED {supported}                      OPTIONAL,
    type2-PUSCH-RepetitionMultiSlots    ENUMERATED {supported}                      OPTIONAL,
    pusch-RepetitionMultiSlots          ENUMERATED {supported}                      OPTIONAL,
    pdsch-RepetitionMultiSlots          ENUMERATED {supported}                      OPTIONAL,
    downlinkSPS                         ENUMERATED {supported}                      OPTIONAL,
    configuredUL-GrantType1             ENUMERATED {supported}                      OPTIONAL,
    configuredUL-GrantType2             ENUMERATED {supported}                      OPTIONAL,
    pre-EmptIndication-DL               ENUMERATED {supported}                      OPTIONAL,
    cbg-TransIndication-DL              ENUMERATED {supported}                      OPTIONAL,
    cbg-TransIndication-UL              ENUMERATED {supported}                      OPTIONAL,
    cbg-FlushIndication-DL              ENUMERATED {supported}                      OPTIONAL,
    dynamicHARQ-ACK-CodeB-CBG-Retx-DL   ENUMERATED {supported}                      OPTIONAL,
    rateMatchingResrcSetSemi-Static     ENUMERATED {supported}                      OPTIONAL,
    rateMatchingResrcSetDynamic         ENUMERATED {supported}                      OPTIONAL,
    bwp-SwitchingDelay                  ENUMERATED {type1, type2}                   OPTIONAL,
    ...,
    [[
    dummy                               ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    maxNumberSearchSpaces               ENUMERATED {n10}                            OPTIONAL,
    rateMatchingCtrlResrcSetDynamic     ENUMERATED {supported}                      OPTIONAL,
    maxLayersMIMO-Indication            ENUMERATED {supported}                      OPTIONAL
    ]]
}

Phy-ParametersXDD-Diff ::=          SEQUENCE {
    dynamicSFI                          ENUMERATED {supported}                      OPTIONAL,
    twoPUCCH-F0-2-ConsecSymbols         ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUSCH          ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUCCH          ENUMERATED {supported}                      OPTIONAL,
    ...,
    [[
    dl-SchedulingOffset-PDSCH-TypeA     ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeB     ENUMERATED {supported}                      OPTIONAL,
    ul-SchedulingOffset                 ENUMERATED {supported}                      OPTIONAL
    ]]
}

Phy-ParametersFRX-Diff ::=                  SEQUENCE {
    dynamicSFI                                  ENUMERATED {supported}                      OPTIONAL,
    dummy1                                      BIT STRING (SIZE (2))                       OPTIONAL,
    twoFL-DMRS                                  BIT STRING (SIZE (2))                       OPTIONAL,
    dummy2                                      BIT STRING (SIZE (2))                       OPTIONAL,
    dummy3                                      BIT STRING (SIZE (2))                       OPTIONAL,
    supportedDMRS-TypeDL                        ENUMERATED {type1, type1And2}               OPTIONAL,
    supportedDMRS-TypeUL                        ENUMERATED {type1, type1And2}               OPTIONAL,
    semiOpenLoopCSI                             ENUMERATED {supported}                      OPTIONAL,
    csi-ReportWithoutPMI                        ENUMERATED {supported}                      OPTIONAL,
    csi-ReportWithoutCQI                        ENUMERATED {supported}                      OPTIONAL,
    onePortsPTRS                                BIT STRING (SIZE (2))                       OPTIONAL,
    twoPUCCH-F0-2-ConsecSymbols                 ENUMERATED {supported}                      OPTIONAL,
    pucch-F2-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    pucch-F3-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    pucch-F4-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    freqHoppingPUCCH-F0-2                       ENUMERATED {notSupported}                   OPTIONAL,
    freqHoppingPUCCH-F1-3-4                     ENUMERATED {notSupported}                   OPTIONAL,
    mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot      ENUMERATED {supported}                      OPTIONAL,
    uci-CodeBlockSegmentation                   ENUMERATED {supported}                      OPTIONAL,
    onePUCCH-LongAndShortFormat                 ENUMERATED {supported}                      OPTIONAL,
    twoPUCCH-AnyOthersInSlot                    ENUMERATED {supported}                      OPTIONAL,
    intraSlotFreqHopping-PUSCH                  ENUMERATED {supported}                      OPTIONAL,
    pusch-LBRM                                  ENUMERATED {supported}                      OPTIONAL,
    pdcch-BlindDetectionCA                      INTEGER (4..16)                             OPTIONAL,
    tpc-PUSCH-RNTI                              ENUMERATED {supported}                      OPTIONAL,
    tpc-PUCCH-RNTI                              ENUMERATED {supported}                      OPTIONAL,
    tpc-SRS-RNTI                                ENUMERATED {supported}                      OPTIONAL,
    absoluteTPC-Command                         ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUSCH                  ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUCCH                  ENUMERATED {supported}                      OPTIONAL,
    pusch-HalfPi-BPSK                           ENUMERATED {supported}                      OPTIONAL,
    pucch-F3-4-HalfPi-BPSK                      ENUMERATED {supported}                      OPTIONAL,
    almostContiguousCP-OFDM-UL                  ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-RS                                   ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-IM                                   ENUMERATED {supported}                      OPTIONAL,
    tdd-MultiDL-UL-SwitchPerSlot                ENUMERATED {supported}                      OPTIONAL,
    multipleCORESET                             ENUMERATED {supported}                      OPTIONAL,
    ...,
    [[
    csi-RS-IM-ReceptionForFeedback              CSI-RS-IM-ReceptionForFeedback              OPTIONAL,
    csi-RS-ProcFrameworkForSRS                  CSI-RS-ProcFrameworkForSRS                  OPTIONAL,
    csi-ReportFramework                         CSI-ReportFramework                         OPTIONAL,
    mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot       SEQUENCE {
        sameSymbol                                  ENUMERATED {supported}                  OPTIONAL,
        diffSymbol                                  ENUMERATED {supported}                  OPTIONAL
    } OPTIONAL,
    mux-SR-HARQ-ACK-PUCCH                       ENUMERATED {supported}                      OPTIONAL,
    mux-MultipleGroupCtrlCH-Overlap             ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeA             ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeB             ENUMERATED {supported}                      OPTIONAL,
    ul-SchedulingOffset                         ENUMERATED {supported}                      OPTIONAL,
    dl-64QAM-MCS-TableAlt                       ENUMERATED {supported}                      OPTIONAL,
    ul-64QAM-MCS-TableAlt                       ENUMERATED {supported}                      OPTIONAL,
    cqi-TableAlt                                ENUMERATED {supported}                      OPTIONAL,
    oneFL-DMRS-TwoAdditionalDMRS-UL             ENUMERATED {supported}                      OPTIONAL,
    twoFL-DMRS-TwoAdditionalDMRS-UL             ENUMERATED {supported}                      OPTIONAL,
    oneFL-DMRS-ThreeAdditionalDMRS-UL           ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    pdcch-BlindDetectionNRDC                SEQUENCE {
        pdcch-BlindDetectionMCG-UE              INTEGER (1..15),
        pdcch-BlindDetectionSCG-UE              INTEGER (1..15)
    }                                                                                       OPTIONAL,
    mux-HARQ-ACK-PUSCH-DiffSymbol               ENUMERATED {supported}                      OPTIONAL
    ]]
}

Phy-ParametersFR1 ::=                       SEQUENCE {
    pdcch-MonitoringSingleOccasion              ENUMERATED {supported}                      OPTIONAL,
    scs-60kHz                                   ENUMERATED {supported}                      OPTIONAL,
    pdsch-256QAM-FR1                            ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR1-PerSymbol               ENUMERATED {n10, n20}                       OPTIONAL,
    ...,
    [[
    pdsch-RE-MappingFR1-PerSlot                 ENUMERATED {n16, n32, n48, n64, n80, n96, n112, n128,
                                                n144, n160, n176, n192, n208, n224, n240, n256}         OPTIONAL
    ]]
}

Phy-ParametersFR2 ::=                       SEQUENCE {
    dummy                                       ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR2-PerSymbol               ENUMERATED {n6, n20}                        OPTIONAL,
    ...,
    [[
    pCell-FR2                                   ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR2-PerSlot                 ENUMERATED {n16, n32, n48, n64, n80, n96, n112, n128,
                                                    n144, n160, n176, n192, n208, n224, n240, n256}     OPTIONAL
    ]]
}

-- TAG-PHY-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PHY-PARAMETERSMRDC-START

Phy-ParametersMRDC ::=              SEQUENCE {
    naics-Capability-List               SEQUENCE (SIZE (1..maxNrofNAICS-Entries)) OF NAICS-Capability-Entry         OPTIONAL,
    ...
}

NAICS-Capability-Entry ::=          SEQUENCE {
    numberOfNAICS-CapableCC             INTEGER(1..5),
    numberOfAggregatedPRB               ENUMERATED {n50, n75, n100, n125, n150, n175, n200, n225,
                                                    n250, n275, n300, n350, n400, n450, n500, spare},
    ...
}

-- TAG-PHY-PARAMETERSMRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-PROCESSINGPARAMETERS-START

ProcessingParameters ::=        SEQUENCE {
    fallback                        ENUMERATED {sc, cap1-only},
    differentTB-PerSlot              SEQUENCE {
        upto1                          NumberOfCarriers                    OPTIONAL,
        upto2                          NumberOfCarriers                    OPTIONAL,
        upto4                          NumberOfCarriers                    OPTIONAL,
        upto7                          NumberOfCarriers                    OPTIONAL
    } OPTIONAL
}

NumberOfCarriers ::=    INTEGER (1..16)

-- TAG-PROCESSINGPARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RAT-TYPE-START

RAT-Type ::= ENUMERATED {nr, eutra-nr, eutra, spare1, ...}

-- TAG-RAT-TYPE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RF-PARAMETERS-START

RF-Parameters ::=                   SEQUENCE {
    supportedBandListNR                 SEQUENCE (SIZE (1..maxBands)) OF BandNR,
    supportedBandCombinationList        BandCombinationList                         OPTIONAL,
    appliedFreqBandListFilter           FreqBandList                                OPTIONAL,
    ...,
    [[
    supportedBandCombinationList-v1540  BandCombinationList-v1540                   OPTIONAL,
    srs-SwitchingTimeRequested          ENUMERATED {true}                           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1550  BandCombinationList-v1550                   OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1560  BandCombinationList-v1560                   OPTIONAL
    ]]
}

BandNR ::=                          SEQUENCE {
    bandNR                              FreqBandIndicatorNR,
    modifiedMPR-Behaviour               BIT STRING (SIZE (8))                       OPTIONAL,
    mimo-ParametersPerBand              MIMO-ParametersPerBand                      OPTIONAL,
    extendedCP                          ENUMERATED {supported}                      OPTIONAL,
    multipleTCI                         ENUMERATED {supported}                      OPTIONAL,
    bwp-WithoutRestriction              ENUMERATED {supported}                      OPTIONAL,
    bwp-SameNumerology                  ENUMERATED {upto2, upto4}                   OPTIONAL,
    bwp-DiffNumerology                  ENUMERATED {upto4}                          OPTIONAL,
    crossCarrierScheduling-SameSCS      ENUMERATED {supported}                      OPTIONAL,
    pdsch-256QAM-FR2                    ENUMERATED {supported}                      OPTIONAL,
    pusch-256QAM                        ENUMERATED {supported}                      OPTIONAL,
    ue-PowerClass                       ENUMERATED {pc1, pc2, pc3, pc4}             OPTIONAL,
    rateMatchingLTE-CRS                 ENUMERATED {supported}                      OPTIONAL,
    channelBWs-DL-v1530                 CHOICE {
        fr1                                 SEQUENCE {
            scs-15kHz                           BIT STRING (SIZE (10))              OPTIONAL,
            scs-30kHz                           BIT STRING (SIZE (10))              OPTIONAL,
            scs-60kHz                           BIT STRING (SIZE (10))              OPTIONAL
        },
        fr2                                 SEQUENCE {
            scs-60kHz                           BIT STRING (SIZE (3))               OPTIONAL,
            scs-120kHz                          BIT STRING (SIZE (3))               OPTIONAL
        }
    }                                                                               OPTIONAL,
    channelBWs-UL-v1530                 CHOICE {
        fr1                                 SEQUENCE {
            scs-15kHz                           BIT STRING (SIZE (10))              OPTIONAL,
            scs-30kHz                           BIT STRING (SIZE (10))              OPTIONAL,
            scs-60kHz                           BIT STRING (SIZE (10))              OPTIONAL
        },
        fr2                                 SEQUENCE {
            scs-60kHz                           BIT STRING (SIZE (3))               OPTIONAL,
            scs-120kHz                          BIT STRING (SIZE (3))               OPTIONAL
        }
    }                                                                               OPTIONAL,
    ...,
    [[
    maxUplinkDutyCycle-PC2-FR1                  ENUMERATED {n60, n70, n80, n90, n100}           OPTIONAL
    ]],
    [[
    pucch-SpatialRelInfoMAC-CE          ENUMERATED {supported}                      OPTIONAL,
    powerBoosting-pi2BPSK               ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    maxUplinkDutyCycle-FR2          ENUMERATED {n15, n20, n25, n30, n40, n50, n60, n70, n80, n90, n100}     OPTIONAL
    ]]
}

-- TAG-RF-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RF-PARAMETERSMRDC-START

RF-ParametersMRDC ::=                   SEQUENCE {
    supportedBandCombinationList            BandCombinationList                 OPTIONAL,
    appliedFreqBandListFilter               FreqBandList                        OPTIONAL,
    ...,
    [[
    srs-SwitchingTimeRequested              ENUMERATED {true}                   OPTIONAL,
    supportedBandCombinationList-v1540      BandCombinationList-v1540           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1550      BandCombinationList-v1550           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1560      BandCombinationList-v1560           OPTIONAL,
    supportedBandCombinationListNEDC-Only   BandCombinationList                 OPTIONAL
    ]]
}

-- TAG-RF-PARAMETERSMRDC-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RLC-PARAMETERS-START

RLC-Parameters ::= SEQUENCE {
    am-WithShortSN                  ENUMERATED {supported}  OPTIONAL,
    um-WithShortSN                  ENUMERATED {supported}  OPTIONAL,
    um-WithLongSN                   ENUMERATED {supported}  OPTIONAL,
    ...
}

-- TAG-RLC-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SDAP-PARAMETERS-START

SDAP-Parameters ::= SEQUENCE {
    as-ReflectiveQoS                ENUMERATED {true}       OPTIONAL,
    ...
}

-- TAG-SDAP-PARAMETERS-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRS-SWITCHINGTIMENR-START

SRS-SwitchingTimeNR ::= SEQUENCE {
    switchingTimeDL         ENUMERATED {n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us}  OPTIONAL,
    switchingTimeUL         ENUMERATED {n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us}  OPTIONAL
}

-- TAG-SRS-SWITCHINGTIMENR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SRS-SWITCHINGTIMEEUTRA-START

SRS-SwitchingTimeEUTRA ::= SEQUENCE {
    switchingTimeDL            ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, n7}
                                                                                               OPTIONAL,
    switchingTimeUL            ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, n7}
                                                                                               OPTIONAL
}
-- TAG-SRS-SWITCHINGTIMEEUTRA-STOP
-- ASN1STOP
-- ASN1START
-- TAG-SUPPORTEDBANDWIDTH-START

SupportedBandwidth ::=      CHOICE {
    fr1                         ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100},
    fr2                         ENUMERATED {mhz50, mhz100, mhz200, mhz400}
}

-- TAG-SUPPORTEDBANDWIDTH-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-CAPABILITYRAT-CONTAINERLIST-START

UE-CapabilityRAT-ContainerList ::=    SEQUENCE (SIZE (0..maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container

UE-CapabilityRAT-Container ::=        SEQUENCE {
    rat-Type                              RAT-Type,
    ue-CapabilityRAT-Container            OCTET STRING
}

-- TAG-UE-CAPABILITYRAT-CONTAINERLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-CAPABILITYRAT-REQUESTLIST-START

UE-CapabilityRAT-RequestList ::=        SEQUENCE (SIZE (1..maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Request

UE-CapabilityRAT-Request ::=            SEQUENCE {
    rat-Type                                RAT-Type,
    capabilityRequestFilter                 OCTET STRING                    OPTIONAL,   -- Need N
    ...
}

-- TAG-UE-CAPABILITYRAT-REQUESTLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-CAPABILITYREQUESTFILTERCOMMON-START

UE-CapabilityRequestFilterCommon ::=            SEQUENCE {
    mrdc-Request                                SEQUENCE {
        omitEN-DC                                   ENUMERATED {true}                  OPTIONAL,    -- Need N
        includeNR-DC                                ENUMERATED {true}                  OPTIONAL,    -- Need N
        includeNE-DC                                ENUMERATED {true}                  OPTIONAL     -- Need N
    }                                                                                  OPTIONAL,    -- Need N
    ...
}

-- TAG-UE-CAPABILITYREQUESTFILTERCOMMON-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-CAPABILITYREQUESTFILTERNR-START

UE-CapabilityRequestFilterNR ::=            SEQUENCE {
    frequencyBandListFilter                     FreqBandList                          OPTIONAL,   -- Need N
    nonCriticalExtension                        UE-CapabilityRequestFilterNR-v1540    OPTIONAL
}

UE-CapabilityRequestFilterNR-v1540 ::=      SEQUENCE {
    srs-SwitchingTimeRequest                    ENUMERATED {true}                     OPTIONAL,  -- Need N
    nonCriticalExtension                        SEQUENCE {}                           OPTIONAL
}

-- TAG-UE-CAPABILITYREQUESTFILTERNR-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-MRDC-CAPABILITY-START

UE-MRDC-Capability ::=              SEQUENCE {
    measAndMobParametersMRDC            MeasAndMobParametersMRDC                    OPTIONAL,
    phy-ParametersMRDC-v1530            Phy-ParametersMRDC                          OPTIONAL,
    rf-ParametersMRDC                   RF-ParametersMRDC,
    generalParametersMRDC               GeneralParametersMRDC-XDD-Diff              OPTIONAL,
    fdd-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    tdd-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    fr1-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    fr2-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    featureSetCombinations              SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination         OPTIONAL,
    pdcp-ParametersMRDC-v1530           PDCP-ParametersMRDC                         OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    nonCriticalExtension                UE-MRDC-Capability-v1560                    OPTIONAL
}

UE-MRDC-Capability-v1560 ::=        SEQUENCE {
    receivedFilters                     OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)             OPTIONAL,
    measAndMobParametersMRDC-v1560      MeasAndMobParametersMRDC-v1560                                      OPTIONAL,
    fdd-Add-UE-MRDC-Capabilities-v1560  UE-MRDC-CapabilityAddXDD-Mode-v1560                                 OPTIONAL,
    tdd-Add-UE-MRDC-Capabilities-v1560  UE-MRDC-CapabilityAddXDD-Mode-v1560                                 OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                                         OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode ::=   SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff       MeasAndMobParametersMRDC-XDD-Diff       OPTIONAL,
    generalParametersMRDC-XDD-Diff          GeneralParametersMRDC-XDD-Diff          OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode-v1560 ::=    SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff-v1560    MeasAndMobParametersMRDC-XDD-Diff-v1560      OPTIONAL
}

UE-MRDC-CapabilityAddFRX-Mode ::=   SEQUENCE {
    measAndMobParametersMRDC-FRX-Diff       MeasAndMobParametersMRDC-FRX-Diff
}


GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {
    splitSRB-WithOneUL-Path             ENUMERATED {supported}              OPTIONAL,
    splitDRB-withUL-Both-MCG-SCG        ENUMERATED {supported}              OPTIONAL,
    srb3                                ENUMERATED {supported}              OPTIONAL,
    v2x-EUTRA                           ENUMERATED {supported}              OPTIONAL,
    ...
}

-- TAG-UE-MRDC-CAPABILITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-UE-NR-CAPABILITY-START

UE-NR-Capability ::=            SEQUENCE {
    accessStratumRelease            AccessStratumRelease,
    pdcp-Parameters                 PDCP-Parameters,
    rlc-Parameters                  RLC-Parameters                      OPTIONAL,
    mac-Parameters                  MAC-Parameters                      OPTIONAL,
    phy-Parameters                  Phy-Parameters,
    rf-Parameters                   RF-Parameters,
    measAndMobParameters            MeasAndMobParameters                OPTIONAL,
    fdd-Add-UE-NR-Capabilities      UE-NR-CapabilityAddXDD-Mode         OPTIONAL,
    tdd-Add-UE-NR-Capabilities      UE-NR-CapabilityAddXDD-Mode         OPTIONAL,
    fr1-Add-UE-NR-Capabilities      UE-NR-CapabilityAddFRX-Mode         OPTIONAL,
    fr2-Add-UE-NR-Capabilities      UE-NR-CapabilityAddFRX-Mode         OPTIONAL,
    featureSets                     FeatureSets                         OPTIONAL,
    featureSetCombinations          SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination         OPTIONAL,

    lateNonCriticalExtension        OCTET STRING                        OPTIONAL,
    nonCriticalExtension            UE-NR-Capability-v1530              OPTIONAL
}

UE-NR-Capability-v1530 ::=               SEQUENCE {
    fdd-Add-UE-NR-Capabilities-v1530         UE-NR-CapabilityAddXDD-Mode-v1530      OPTIONAL,
    tdd-Add-UE-NR-Capabilities-v1530         UE-NR-CapabilityAddXDD-Mode-v1530      OPTIONAL,
    dummy                                    ENUMERATED {supported}                 OPTIONAL,
    interRAT-Parameters                      InterRAT-Parameters                    OPTIONAL,
    inactiveState                            ENUMERATED {supported}                 OPTIONAL,
    delayBudgetReporting                     ENUMERATED {supported}                 OPTIONAL,
    nonCriticalExtension                     UE-NR-Capability-v1540                 OPTIONAL
}

UE-NR-Capability-v1540 ::=              SEQUENCE {
    sdap-Parameters                         SDAP-Parameters                         OPTIONAL,
    overheatingInd                          ENUMERATED {supported}                  OPTIONAL,
    ims-Parameters                          IMS-Parameters                          OPTIONAL,
    fr1-Add-UE-NR-Capabilities-v1540        UE-NR-CapabilityAddFRX-Mode-v1540       OPTIONAL,
    fr2-Add-UE-NR-Capabilities-v1540        UE-NR-CapabilityAddFRX-Mode-v1540       OPTIONAL,
    fr1-fr2-Add-UE-NR-Capabilities          UE-NR-CapabilityAddFRX-Mode             OPTIONAL,
    nonCriticalExtension                    UE-NR-Capability-v1550                  OPTIONAL
}

UE-NR-Capability-v1550 ::=               SEQUENCE {
    reducedCP-Latency                        ENUMERATED {supported}                 OPTIONAL,
    nonCriticalExtension                     UE-NR-Capability-v1560                 OPTIONAL
}

UE-NR-Capability-v1560 ::=               SEQUENCE {
    nrdc-Parameters                         NRDC-Parameters                         OPTIONAL,
    receivedFilters                         OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)       OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                             OPTIONAL
}

UE-NR-CapabilityAddXDD-Mode ::=         SEQUENCE {
    phy-ParametersXDD-Diff                  Phy-ParametersXDD-Diff                  OPTIONAL,
    mac-ParametersXDD-Diff                  MAC-ParametersXDD-Diff                  OPTIONAL,
    measAndMobParametersXDD-Diff            MeasAndMobParametersXDD-Diff            OPTIONAL
}

UE-NR-CapabilityAddXDD-Mode-v1530 ::=    SEQUENCE {
    eutra-ParametersXDD-Diff                 EUTRA-ParametersXDD-Diff
}

UE-NR-CapabilityAddFRX-Mode ::= SEQUENCE {
    phy-ParametersFRX-Diff              Phy-ParametersFRX-Diff                      OPTIONAL,
    measAndMobParametersFRX-Diff        MeasAndMobParametersFRX-Diff                OPTIONAL
}

UE-NR-CapabilityAddFRX-Mode-v1540 ::=    SEQUENCE {
    ims-ParametersFRX-Diff                   IMS-ParametersFRX-Diff                 OPTIONAL
}

-- TAG-UE-NR-CAPABILITY-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-ALLOWEDMEASBANDWIDTH-START

EUTRA-AllowedMeasBandwidth ::=              ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}

-- TAG-EUTRA-ALLOWEDMEASBANDWIDTH-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-START

EUTRA-MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig

EUTRA-MBSFN-SubframeConfig ::=      SEQUENCE {
    radioframeAllocationPeriod          ENUMERATED {n1, n2, n4, n8, n16, n32},
    radioframeAllocationOffset          INTEGER (0..7),
    subframeAllocation1                 CHOICE {
        oneFrame                            BIT STRING (SIZE(6)),
        fourFrames                          BIT STRING (SIZE(24))
    },
    subframeAllocation2                 CHOICE {
        oneFrame                            BIT STRING (SIZE(2)),
        fourFrames                          BIT STRING (SIZE(8))
    }                                                                                                       OPTIONAL,   -- Need R
    ...
}

-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-MULTIBANDINFOLIST-START

EUTRA-MultiBandInfoList ::=     SEQUENCE (SIZE (1..maxMultiBands)) OF EUTRA-MultiBandInfo

EUTRA-MultiBandInfo ::=         SEQUENCE {
    eutra-FreqBandIndicator         FreqBandIndicatorEUTRA,
    eutra-NS-PmaxList               EUTRA-NS-PmaxList                           OPTIONAL    -- Need R
}

-- TAG-EUTRA-MULTIBANDINFOLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-NS-PMAXLIST-START

EUTRA-NS-PmaxList ::=               SEQUENCE (SIZE (1..maxEUTRA-NS-Pmax)) OF EUTRA-NS-PmaxValue

EUTRA-NS-PmaxValue ::=              SEQUENCE {
    additionalPmax                      INTEGER (-30..33)                       OPTIONAL,   -- Need R
    additionalSpectrumEmission          INTEGER (1..288)                        OPTIONAL    -- Need R
}

-- TAG-EUTRA-NS-PMAXLIST-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-PHYSCELLID-START

EUTRA-PhysCellId ::=                        INTEGER (0..503)

-- TAG-EUTRA-PHYSCELLID-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-PHYSCELLIDRANGE-START

EUTRA-PhysCellIdRange ::=       SEQUENCE {
    start                           EUTRA-PhysCellId,
    range                           ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n84, n96,
                                                n128, n168, n252, n504, spare2, spare1}                         OPTIONAL    -- Need N
}

-- TAG-EUTRA-PHYSCELLIDRANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-PRESENCEANTENNAPORT1-START

EUTRA-PresenceAntennaPort1 ::=              BOOLEAN

-- TAG-EUTRA-PRESENCEANTENNAPORT1-STOP
-- ASN1STOP
-- ASN1START
-- TAG-EUTRA-Q-OFFSETRANGE-START

EUTRA-Q-OffsetRange ::=                     ENUMERATED {
                                                dB-24, dB-22, dB-20, dB-18, dB-16, dB-14,
                                                dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3,
                                                dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5,
                                                dB6, dB8, dB10, dB12, dB14, dB16, dB18,
                                                dB20, dB22, dB24}

-- TAG-EUTRA-Q-OFFSETRANGE-STOP
-- ASN1STOP
-- ASN1START
-- TAG-OTHERCONFIG-START

OtherConfig ::=                 SEQUENCE {
    delayBudgetReportingConfig  CHOICE{
        release                 NULL,
        setup                   SEQUENCE{
            delayBudgetReportingProhibitTimer   ENUMERATED {s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30}
        }
    }                                                                                                     OPTIONAL        -- Need M
}

OtherConfig-v1540 ::=           SEQUENCE {
    overheatingAssistanceConfig     SetupRelease {OverheatingAssistanceConfig}                            OPTIONAL, -- Need M
    ...
}

OverheatingAssistanceConfig ::= SEQUENCE {
    overheatingIndicationProhibitTimer    ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30,
                                          s60, s90, s120, s300, s600, spare3, spare2, spare1}
}

-- TAG-OTHERCONFIG-STOP
-- ASN1STOP
-- ASN1START
-- TAG-RRC-TRANSACTIONIDENTIFIER-START

RRC-TransactionIdentifier ::=       INTEGER (0..3)

-- TAG-RRC-TRANSACTIONIDENTIFIER-STOP
-- ASN1STOP
-- ASN1START
-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START

maxBandComb                             INTEGER ::= 65536   -- Maximum number of DL band combinations
maxCellBlack                            INTEGER ::= 16      -- Maximum number of NR blacklisted cell ranges in SIB3, SIB4
maxCellInter                            INTEGER ::= 16      -- Maximum number of inter-Freq cells listed in SIB4
maxCellIntra                            INTEGER ::= 16      -- Maximum number of intra-Freq cells listed in SIB3
maxCellMeasEUTRA                        INTEGER ::= 32      -- Maximum number of cells in E-UTRAN
maxEARFCN                               INTEGER ::= 262143  -- Maximum value of E-UTRA carrier frequency
maxEUTRA-CellBlack                      INTEGER ::= 16      -- Maximum number of E-UTRA blacklisted physical cell identity ranges
                                                            -- in SIB5
maxEUTRA-NS-Pmax                        INTEGER ::= 8       -- Maximum number of NS and P-Max values per band
maxMultiBands                           INTEGER ::= 8       -- Maximum number of additional frequency bands that a cell belongs to
maxNARFCN                               INTEGER ::= 3279165 -- Maximum value of NR carrier frequency
maxNR-NS-Pmax                           INTEGER ::= 8       -- Maximum number of NS and P-Max values per band
maxNrofServingCells                     INTEGER ::= 32      -- Max number of serving cells (SpCells + SCells)
maxNrofServingCells-1                   INTEGER ::= 31      -- Max number of serving cells (SpCell + SCells) per cell group
maxNrofAggregatedCellsPerCellGroup      INTEGER ::= 16
maxNrofSCells                           INTEGER ::= 31      -- Max number of secondary serving cells per cell group
maxNrofCellMeas                         INTEGER ::= 32      -- Maximum number of entries in each of the cell lists in a measurement
                                                            -- object
maxNrofSS-BlocksToAverage               INTEGER ::= 16      -- Max number for the (max) number of SS blocks to average to determine cell
                                                            -- measurement
maxNrofCSI-RS-ResourcesToAverage        INTEGER ::= 16      -- Max number for the (max) number of CSI-RS to average to determine cell
                                                            -- measurement
maxNrofDL-Allocations                   INTEGER ::= 16      -- Maximum number of PDSCH time domain resource allocations
maxNrofSR-ConfigPerCellGroup            INTEGER ::= 8       -- Maximum number of SR configurations per cell group
maxLCG-ID                               INTEGER ::= 7       -- Maximum value of LCG ID
maxLC-ID                                INTEGER ::= 32      -- Maximum value of Logical Channel ID
maxNrofTAGs                             INTEGER ::= 4       -- Maximum number of Timing Advance Groups
maxNrofTAGs-1                           INTEGER ::= 3       -- Maximum number of Timing Advance Groups minus 1
maxNrofBWPs                             INTEGER ::= 4       -- Maximum number of BWPs per serving cell
maxNrofCombIDC                          INTEGER ::= 128     -- Maximum number of reported MR-DC combinations for IDC
maxNrofSymbols-1                        INTEGER ::= 13      -- Maximum index identifying a symbol within a slot (14 symbols, indexed
                                                            -- from 0..13)
maxNrofSlots                            INTEGER ::= 320     -- Maximum number of slots in a 10 ms period
maxNrofSlots-1                          INTEGER ::= 319     -- Maximum number of slots in a 10 ms period minus 1
maxNrofPhysicalResourceBlocks           INTEGER ::= 275     -- Maximum number of PRBs
maxNrofPhysicalResourceBlocks-1         INTEGER ::= 274     -- Maximum number of PRBs minus 1
maxNrofPhysicalResourceBlocksPlus1      INTEGER ::= 276     -- Maximum number of PRBs plus 1
maxNrofControlResourceSets-1            INTEGER ::= 11      -- Max number of CoReSets configurable on a serving cell minus 1
maxCoReSetDuration                      INTEGER ::= 3       -- Max number of OFDM symbols in a control resource set
maxNrofSearchSpaces-1                   INTEGER ::= 39      -- Max number of Search Spaces minus 1
maxSFI-DCI-PayloadSize                  INTEGER ::= 128     -- Max number payload of a DCI scrambled with SFI-RNTI
maxSFI-DCI-PayloadSize-1                INTEGER ::= 127     -- Max number payload of a DCI scrambled with SFI-RNTI minus 1
maxINT-DCI-PayloadSize                  INTEGER ::= 126     -- Max number payload of a DCI scrambled with INT-RNTI
maxINT-DCI-PayloadSize-1                INTEGER ::= 125     -- Max number payload of a DCI scrambled with INT-RNTI minus 1
maxNrofRateMatchPatterns                INTEGER ::= 4       -- Max number of rate matching patterns that may be configured
maxNrofRateMatchPatterns-1              INTEGER ::= 3       -- Max number of rate matching patterns that may be configured minus 1
maxNrofRateMatchPatternsPerGroup        INTEGER ::= 8       -- Max number of rate matching patterns that may be configured in one group
maxNrofCSI-ReportConfigurations         INTEGER ::= 48      -- Maximum number of report configurations
maxNrofCSI-ReportConfigurations-1       INTEGER ::= 47      -- Maximum number of report configurations minus 1
maxNrofCSI-ResourceConfigurations       INTEGER ::= 112     -- Maximum number of resource configurations
maxNrofCSI-ResourceConfigurations-1     INTEGER ::= 111     -- Maximum number of resource configurations minus 1
maxNrofAP-CSI-RS-ResourcesPerSet        INTEGER ::= 16
maxNrOfCSI-AperiodicTriggers            INTEGER ::= 128     -- Maximum number of triggers for aperiodic CSI reporting
maxNrofReportConfigPerAperiodicTrigger  INTEGER ::= 16      -- Maximum number of report configurations per trigger state for aperiodic
                                                            -- reporting
maxNrofNZP-CSI-RS-Resources             INTEGER ::= 192     -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources
maxNrofNZP-CSI-RS-Resources-1           INTEGER ::= 191     -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1
maxNrofNZP-CSI-RS-ResourcesPerSet       INTEGER ::= 64      -- Maximum number of NZP CSI-RS resources per resource set
maxNrofNZP-CSI-RS-ResourceSets          INTEGER ::= 64      -- Maximum number of NZP CSI-RS resources per cell
maxNrofNZP-CSI-RS-ResourceSets-1        INTEGER ::= 63      -- Maximum number of NZP CSI-RS resources per cell minus 1
maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16      -- Maximum number of resource sets per resource configuration
maxNrofNZP-CSI-RS-ResourcesPerConfig    INTEGER ::= 128     -- Maximum number of resources per resource configuration
maxNrofZP-CSI-RS-Resources              INTEGER ::= 32      -- Maximum number of Zero-Power (ZP) CSI-RS resources
maxNrofZP-CSI-RS-Resources-1            INTEGER ::= 31      -- Maximum number of Zero-Power (ZP) CSI-RS resources minus 1
maxNrofZP-CSI-RS-ResourceSets-1         INTEGER ::= 15
maxNrofZP-CSI-RS-ResourcesPerSet        INTEGER ::= 16
maxNrofZP-CSI-RS-ResourceSets           INTEGER ::= 16
maxNrofCSI-IM-Resources                 INTEGER ::= 32      -- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214.
maxNrofCSI-IM-Resources-1               INTEGER ::= 31      -- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax
                                                            -- in 38.214.
maxNrofCSI-IM-ResourcesPerSet           INTEGER ::= 8       -- Maximum number of CSI-IM resources per set. See CSI-IM-ResourcePerSetMax
                                                            -- in 38.214
maxNrofCSI-IM-ResourceSets              INTEGER ::= 64      -- Maximum number of NZP CSI-IM resources per cell
maxNrofCSI-IM-ResourceSets-1            INTEGER ::= 63      -- Maximum number of NZP CSI-IM resources per cell minus 1
maxNrofCSI-IM-ResourceSetsPerConfig     INTEGER ::= 16      -- Maximum number of CSI IM resource sets per resource configuration
maxNrofCSI-SSB-ResourcePerSet           INTEGER ::= 64      -- Maximum number of SSB resources in a resource set
maxNrofCSI-SSB-ResourceSets             INTEGER ::= 64      -- Maximum number of CSI SSB resource sets per cell
maxNrofCSI-SSB-ResourceSets-1           INTEGER ::= 63      -- Maximum number of CSI SSB resource sets per cell minus 1
maxNrofCSI-SSB-ResourceSetsPerConfig    INTEGER ::= 1       -- Maximum number of CSI SSB resource sets per resource configuration
maxNrofFailureDetectionResources        INTEGER ::= 10      -- Maximum number of failure detection resources
maxNrofFailureDetectionResources-1      INTEGER ::= 9       -- Maximum number of failure detection resources minus 1
maxNrofObjectId                         INTEGER ::= 64      -- Maximum number of measurement objects
maxNrofPageRec                          INTEGER ::= 32      -- Maximum number of page records
maxNrofPCI-Ranges                       INTEGER ::= 8       -- Maximum number of PCI ranges
maxPLMN                                 INTEGER ::= 12      -- Maximum number of PLMNs broadcast and reported by UE at establisghment
maxNrofCSI-RS-ResourcesRRM              INTEGER ::= 96      -- Maximum number of CSI-RS resources for an RRM measurement object
maxNrofCSI-RS-ResourcesRRM-1            INTEGER ::= 95      -- Maximum number of CSI-RS resources for an RRM measurement object minus 1
maxNrofMeasId                           INTEGER ::= 64      -- Maximum number of configured measurements
maxNrofQuantityConfig                   INTEGER ::= 2       -- Maximum number of quantity configurations
maxNrofCSI-RS-CellsRRM                  INTEGER ::= 96      -- Maximum number of cells with CSI-RS resources for an RRM measurement
                                                            -- object
maxNrofSRS-ResourceSets                 INTEGER ::= 16      -- Maximum number of SRS resource sets in a BWP.
maxNrofSRS-ResourceSets-1               INTEGER ::= 15      -- Maximum number of SRS resource sets in a BWP minus 1.
maxNrofSRS-Resources                    INTEGER ::= 64      -- Maximum number of SRS resources.
maxNrofSRS-Resources-1                  INTEGER ::= 63      -- Maximum number of SRS resources in an SRS resource set minus 1.
maxNrofSRS-ResourcesPerSet              INTEGER ::= 16      -- Maximum number of SRS resources in an SRS resource set
maxNrofSRS-TriggerStates-1              INTEGER ::= 3       -- Maximum number of SRS trigger states minus 1, i.e., the largest code
                                                            -- point.
maxNrofSRS-TriggerStates-2              INTEGER ::= 2       -- Maximum number of SRS trigger states minus 2.
maxRAT-CapabilityContainers             INTEGER ::= 8       -- Maximum number of interworking RAT containers (incl NR and MRDC)
maxSimultaneousBands                    INTEGER ::= 32      -- Maximum number of simultaneously aggregated bands
maxNrofSlotFormatCombinationsPerSet     INTEGER ::= 512     -- Maximum number of Slot Format Combinations in a SF-Set.
maxNrofSlotFormatCombinationsPerSet-1   INTEGER ::= 511     -- Maximum number of Slot Format Combinations in a SF-Set minus 1.
maxNrofPUCCH-Resources                  INTEGER ::= 128
maxNrofPUCCH-Resources-1                INTEGER ::= 127
maxNrofPUCCH-ResourceSets               INTEGER ::= 4       -- Maximum number of PUCCH Resource Sets
maxNrofPUCCH-ResourceSets-1             INTEGER ::= 3       -- Maximum number of PUCCH Resource Sets minus 1.
maxNrofPUCCH-ResourcesPerSet            INTEGER ::= 32      -- Maximum number of PUCCH Resources per PUCCH-Resour?ceSet
maxNrofPUCCH-P0-PerSet                  INTEGER ::= 8       -- Maximum number of P0-pucch present in a p0-pucch set
maxNrofPUCCH-PathlossReferenceRSs       INTEGER ::= 4       -- Maximum number of RSs used as pathloss reference for PUCCH power control.
maxNrofPUCCH-PathlossReferenceRSs-1     INTEGER ::= 3       -- Maximum number of RSs used as pathloss reference for PUCCH power
                                                            -- control minus 1.
maxNrofP0-PUSCH-AlphaSets               INTEGER ::= 30      -- Maximum number of P0-pusch-alpha-sets (see 38,213, clause 7.1)
maxNrofP0-PUSCH-AlphaSets-1             INTEGER ::= 29      -- Maximum number of P0-pusch-alpha-sets minus 1 (see 38,213, clause 7.1)
maxNrofPUSCH-PathlossReferenceRSs       INTEGER ::= 4       -- Maximum number of RSs used as pathloss reference for PUSCH power control.
maxNrofPUSCH-PathlossReferenceRSs-1     INTEGER ::= 3       -- Maximum number of RSs used as pathloss reference for PUSCH power
                                                            -- control minus 1.
maxNrofNAICS-Entries                    INTEGER ::= 8       -- Maximum number of supported NAICS capability set
maxBands                                INTEGER ::= 1024    -- Maximum number of supported bands in UE capability.
maxBandsMRDC                            INTEGER ::= 1280
maxBandsEUTRA                           INTEGER ::= 256
maxCellReport                           INTEGER ::= 8
maxDRB                                  INTEGER ::= 29      -- Maximum number of DRBs (that can be added in DRB-ToAddModLIst).
maxFreq                                 INTEGER ::= 8       -- Max number of frequencies.
maxFreqIDC-MRDC                         INTEGER ::= 32      -- Maximum number of candidate NR frequencies for MR-DC IDC indication
maxNrofCandidateBeams                   INTEGER ::= 16      -- Max number of PRACH-ResourceDedicatedBFR that in BFR config.
maxNrofPCIsPerSMTC                      INTEGER ::= 64      -- Maximun number of PCIs per SMTC.
maxNrofQFIs                             INTEGER ::= 64
maxNrOfSemiPersistentPUSCH-Triggers     INTEGER ::= 64      -- Maximum number of triggers for semi persistent reporting on PUSCH
maxNrofSR-Resources                     INTEGER ::= 8       -- Maximum number of SR resources per BWP in a cell.
maxNrofSlotFormatsPerCombination        INTEGER ::= 256
maxNrofSpatialRelationInfos             INTEGER ::= 8
maxNrofIndexesToReport                  INTEGER ::= 32
maxNrofIndexesToReport2                 INTEGER ::= 64
maxNrofSSBs-1                           INTEGER ::= 63      -- Maximum number of SSB resources in a resource set minus 1.
maxNrofS-NSSAI                          INTEGER ::= 8       -- Maximum number of S-NSSAI.
maxNrofTCI-StatesPDCCH                  INTEGER ::= 64
maxNrofTCI-States                       INTEGER ::= 128     -- Maximum number of TCI states.
maxNrofTCI-States-1                     INTEGER ::= 127     -- Maximum number of TCI states minus 1.
maxNrofUL-Allocations                   INTEGER ::= 16      -- Maximum number of PUSCH time domain resource allocations.
maxQFI                                  INTEGER ::= 63
maxRA-CSIRS-Resources                   INTEGER ::= 96
maxRA-OccasionsPerCSIRS                 INTEGER ::= 64      -- Maximum number of RA occasions for one CSI-RS
maxRA-Occasions-1                       INTEGER ::= 511     -- Maximum number of RA occasions in the system
maxRA-SSB-Resources                     INTEGER ::= 64
maxSCSs                                 INTEGER ::= 5
maxSecondaryCellGroups                  INTEGER ::= 3
maxNrofServingCellsEUTRA                INTEGER ::= 32
maxMBSFN-Allocations                    INTEGER ::= 8
maxNrofMultiBands                       INTEGER ::= 8
maxCellSFTD                             INTEGER ::= 3       -- Maximum number of cells for SFTD reporting
maxReportConfigId                       INTEGER ::= 64
maxNrofCodebooks                        INTEGER ::= 16      -- Maximum number of codebooks suppoted by the UE
maxNrofCSI-RS-Resources                 INTEGER ::= 7       -- Maximum number of codebook resources supported by the UE
maxNrofSRI-PUSCH-Mappings               INTEGER ::= 16
maxNrofSRI-PUSCH-Mappings-1             INTEGER ::= 15
maxSIB                                  INTEGER::= 32       -- Maximum number of SIBs
maxSI-Message                           INTEGER::= 32       -- Maximum number of SI messages
maxPO-perPF                             INTEGER ::= 4       -- Maximum number of paging occasion per paging frame
maxAccessCat-1                          INTEGER ::= 63      -- Maximum number of Access Categories minus 1
maxBarringInfoSet                       INTEGER ::= 8       -- Maximum number of Access Categories
maxCellEUTRA                            INTEGER ::= 8       -- Maximum number of E-UTRA cells in SIB list
maxEUTRA-Carrier                        INTEGER ::= 8       -- Maximum number of E-UTRA carriers in SIB list
maxPLMNIdentities                       INTEGER ::= 8       -- Maximum number of PLMN identites in RAN area configurations
maxDownlinkFeatureSets                  INTEGER ::= 1024    -- (for NR DL) Total number of FeatureSets (size of the pool)
maxUplinkFeatureSets                    INTEGER ::= 1024    -- (for NR UL) Total number of FeatureSets (size of the pool)
maxEUTRA-DL-FeatureSets                 INTEGER ::= 256     -- (for E-UTRA) Total number of FeatureSets (size of the pool)
maxEUTRA-UL-FeatureSets                 INTEGER ::= 256     -- (for E-UTRA) Total number of FeatureSets (size of the pool)
maxFeatureSetsPerBand                   INTEGER ::= 128     -- (for NR) The number of feature sets associated with one band.
maxPerCC-FeatureSets                    INTEGER ::= 1024    -- (for NR) Total number of CC-specific FeatureSets (size of the pool)
maxFeatureSetCombinations               INTEGER ::= 1024    -- (for MR-DC/NR)Total number of Feature set combinations (size of the
                                                            -- pool)
maxInterRAT-RSTD-Freq                   INTEGER ::= 3

-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP
-- ASN1STOP