-- TAG-NR-RRC-DEFINITIONS-START

NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

-- TAG-NR-RRC-DEFINITIONS-STOP
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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,
        spare4 NULL, spare3 NULL,
        spare2 NULL, spare1 NULL
    },
    messageClassExtension           SEQUENCE {}
}

-- TAG-UL-DCCH-MESSAGE-STOP
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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,
    i-RNTI                              I-RNTI-Value,
    ...
}

-- TAG-PAGING-STOP
-- 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
-- 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
-- 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
-- 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 N
    nonCriticalExtension                    SEQUENCE {}                                                           OPTIONAL
}

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

-- TAG-RRCRECONFIGURATION-STOP
-- 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                        SEQUENCE {}                                                             OPTIONAL
}

-- TAG-RRCRECONFIGURATIONCOMPLETE-STOP
-- 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
}

RejectWaitTime ::=                  INTEGER (1..16)

-- TAG-RRCREJECT-STOP
-- 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                    SEQUENCE{}                                                          OPTIONAL

}

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

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

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
-- 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                SEQUENCE{}                                                              OPTIONAL

}

-- TAG-RRCRESUME-STOP
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
-- TAG-RRCSYETEMINFOREQUEST-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-RRCSYETEMINFOREQUEST-STOP
-- 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
-- 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
-- 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
-- TAG-SIB1-START

SIB1 ::=        SEQUENCE {
    cellSelectionInfo                   SEQUENCE {
        q-RxLevMin                          Q-RxLevMin,
        q-RxLevMinOffset                    INTEGER (1..8)                                                      OPTIONAL,   -- Need R
        q-RxLevMinSUL                       Q-RxLevMin                                                          OPTIONAL,   -- Need R
        q-QualMin                           Q-QualMin                                                           OPTIONAL,   -- Need R
        q-QualMinOffset                     INTEGER (1..8)                                                      OPTIONAL    -- Need R
    }                                                                                                           OPTIONAL,   -- Need S
    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
    }                                                                                                           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

SystemInformation ::=               SEQUENCE {
    criticalExtensions                  CHOICE {
        systemInformation-r15               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-UEASSISTANCEINFORMATION-START

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

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


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

-- TAG-UEASSISTANCEINFORMATION-STOP
-- 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,
    nonCriticalExtension                SEQUENCE{}                                                              OPTIONAL
}

-- TAG-UECAPABILITYENQUIRY-STOP
-- 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
-- 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
-- TAG-SETUP-RELEASE-START

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

-- TAG-SETUP-RELEASE-STOP
-- TAG-SIB2-START

SIB2 ::=        SEQUENCE {
    cellReselectionInfoCommon           SEQUENCE {
        nrofSS-BlocksToAverage                  INTEGER (2..maxNrofSS-BlocksToAverage)      OPTIONAL,       -- Need R
        absThreshSS-BlocksConsolidation         ThresholdNR                                 OPTIONAL,   -- Need R
        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 R
        s-NonIntraSearchQ                       ReselectionThresholdQ       OPTIONAL,       -- Need R
        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,               -- Need S
        s-IntraSearchQ                      ReselectionThresholdQ       OPTIONAL,   -- Cond RSRQ
        t-ReselectionNR                     T-Reselection,
        frequencyBandList                   MultiFrequencyBandListNR-SIB            OPTIONAL,   -- Need R
        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,
        ...
    },
    ...
}

RangeToBestCell	::= Q-OffsetRange

-- TAG-SIB2-STOP
-- 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
-- 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,   -- Need R
    frequencyBandListSUL                MultiFrequencyBandListNR-SIB            OPTIONAL,   -- Need R
    nrofSS-BlocksToAverage          INTEGER (2..maxNrofSS-BlocksToAverage)      OPTIONAL,
    absThreshSS-BlocksConsolidation ThresholdNR                                 OPTIONAL,
    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 R,
    p-Max                               P-Max                           OPTIONAL,       -- Need R
    t-ReselectionNR                 T-Reselection,
    t-ReselectionNR-SF                  SpeedStateScaleFactors OPTIONAL,        -- Need N
    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
-- TAG-SIB5-START

SIB5 ::=                            SEQUENCE {
    carrierFreqListEUTRA                CarrierFreqListEUTRA            OPTIONAL,       -- Need R
    t-ReselectionEUTRA                  T-Reselection,
    t-ReselectionEUTRA-SF               SpeedStateScaleFactors          OPTIONAL,       -- Need N
    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,
    q-OffsetCell                        EUTRA-Q-OffsetRange,
    q-RxLevMinOffsetCell                INTEGER (1..8)                  OPTIONAL,   -- Need R
    q-QualMinOffsetCell                 INTEGER (1..8)                  OPTIONAL    -- Need R
}

-- TAG-SIB5-STOP
-- 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
-- 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
-- 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
-- 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
-- TAG-ADDITIONALSPECTRUMEMISSION-START

AdditionalSpectrumEmission ::=              INTEGER (0..7)

-- TAG-ADDITIONALSPECTRUMEMISSION-STOP
-- TAG-ALPHA-START

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

-- TAG-ALPHA-STOP
-- TAG-AMF-IDENTIFIER-START

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

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

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

-- TAG-ARFCN-VALUEEUTRA-STOP
-- TAG-ARFCN-VALUE-NR-START

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

-- TAG-ARFCN-VALUE-NR-STOP
-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-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,   -- Cond CF-BFR
    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-BEAM-FAILURE-RECOVERY-CONFIG-STOP
-- 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
-- TAG-BANDWIDTH-PART-START

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


-- TAG-BANDWIDTH-PART-STOP
-- TAG-BWP-DOWNLINK-START

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

-- TAG-BWP-DOWNLINK-STOP
-- 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
-- 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
-- TAG-BWP-ID-START

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

-- TAG-BWP-ID-STOP
-- TAG-BWP-UPLINK-START

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

-- TAG-BWP-UPLINK-STOP
-- 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
-- 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
-- TAG-CELL-ACCESS-RELATED-INFO-START

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

-- TAG- CELL-ACCESS-RELATED-INFO-STOP
-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-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-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP
-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-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-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP
-- TAG-CELL-GROUP-CONFIG-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-CELL-GROUP-CONFIG-STOP
-- TAG-CELLGROUPID-START

CellGroupId ::=                             INTEGER (0.. maxSecondaryCellGroups)

-- TAG-CELLGROUPID-STOP

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

-- TAG-CELLRESELECTIONPRIORITY-START

CellReselectionPriority ::=             INTEGER (0..7)

-- TAG-CELLRESELECTIONPRIORITY-STOP

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

-- TAG-CGI-Info-START

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

-- TAG-CGI-Info -STOP
-- 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
-- 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
-- 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
-- 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,   -- Need N
    tci-StatesPDCCH-ToReleaseList           SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId               OPTIONAL,   -- Need N
tci-PresentInDCI                        ENUMERATED {enabled}                                                    OPTIONAL,   -- Need S
    pdcch-DMRS-ScramblingID                 INTEGER (0..65535)                                                  OPTIONAL,   -- Need S
    ...
}

-- TAG-CONTROLRESOURCESET-STOP
-- TAG-CONTROL-RESOURCE-SET-ID-START

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

-- TAG-CONTROL-RESOURCE-SET-ID-STOP
-- TAG-CONTROLRESOURCESETZERO-START

ControlResourceSetZero ::=                  INTEGER (0..15)

-- TAG-CONTROLRESOURCESETZERO-STOP

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

-- 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
-- TAG-CSI-FREQUENCYOCCUPATION-START

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

-- TAG-CSI-FREQUENCYOCCUPATION-STOP
-- 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
-- TAG-CSI-IM-RESOURCEID-START

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

-- TAG-CSI-IM-RESOURCEID-STOP
-- 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
-- TAG-CSI-IM-RESOURCESETID-START

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

-- TAG-CSI-IM-RESOURCESETID-STOP
-- TAG-CSI-MEAS-CONFIG-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-ResourceSetToAddReleaseList 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-MEAS-CONFIG-STOP
-- 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
    nrofCQIsPerReport                           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
-- TAG-CSI-REPORTCONFIGID-START

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

-- TAG-CSI-REPORTCONFIGID-STOP
-- 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-RESOURCECONFIGTOADDMOD-STOP
-- TAG-CSI-RESOURCECONFIGID-START

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

-- TAG-CSI-RESOURCECONFIGID-STOP
-- 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-RESIYRCEPERIODICITYANDOFFSET-STOP
-- 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
-- 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
-- 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
-- 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
-- TAG-CSI-SSB-RESOURCESETID-START

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

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

DedicatedNAS-Message ::=        OCTET STRING

-- TAG-DEDICATED-NAS-MESSAGE-STOP
-- 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
-- TAG-DMRS-UPLINKCONFIG-START

DMRS-UplinkConfig ::=               SEQUENCE {
    dmrs-Type                           ENUMERATED {type2}                                                  OPTIONAL,   -- Need S
    dmrs-AdditionalPosition             ENUMERATED {pos0, pos1, pos3}                                       OPTIONAL,   -- Need R
    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
-- TAG-DOWNLINK-CONFIG-COMMON-START

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

-- TAG-DOWNLINK-CONFIG-COMMON-STOP
-- TAG-DOWNLINK-CONFIG-COMMON-SIB-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..4)) OF INTEGER (0..139),
        sCS30KHZoneT-SCS15KHZhalfT                                                  SEQUENCE (SIZE (1..4)) OF INTEGER (0..279),
        sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT                                 SEQUENCE (SIZE (1..4)) OF INTEGER (0..559),
        sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT             SEQUENCE (SIZE (1..4)) OF INTEGER (0..1119),
        sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT    SEQUENCE (SIZE (1..4)) OF INTEGER (0..2239),
        sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT                  SEQUENCE (SIZE (1..4)) OF INTEGER (0..4479),
        sCS120KHZoneEighthT-SCS60KHZoneSixteenthT                                   SEQUENCE (SIZE (1..4)) OF INTEGER (0..8959),
        sCS120KHZoneSixteenthT                                                      SEQUENCE (SIZE (1..4)) OF INTEGER (0..17919)
    }   OPTIONAL,           -- Need R
    ...
}

-- TAG-DOWNLINK-CONFIG-COMMON-SIB-STOP
-- 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
-- TAG-DRB-IDENTITY-START

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

-- TAG-DRB-IDENTITY-STOP
-- 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
-- TAG-FILTERCOEFFICIENT-START

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

-- TAG-FILTERCOEFFICIENT-STOP
-- TAG-FREQBANDINDICATORNR-START

FreqBandIndicatorNR ::=             INTEGER (1..1024)

-- TAG-FREQBANDINDICATORNR-STOP
-- TAG-FREQUENCY-INFO-DL-START

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

-- TAG-FREQUENCY-INFO-UL-STOP
-- TAG-FREQUENCY-INFO-DL-SIB-START

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

-- TAG-FREQUENCY-INFO-DL-SIB-STOP
-- TAG-FREQUENCY-INFO-UL-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-OrSUL-Optional
    ...
}

-- TAG-FREQUENCY-INFO-UL-STOP
-- TAG-FREQUENCY-INFO-UL-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-OrSUL-Optional
    ...
}

-- TAG-FREQUENCY-INFO-UL-SIB-STOP

Hysteresis ::=                      INTEGER (0..30)

-- TAG-I-RNTI-VALUE-START

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

-- TAG-I-RNTI-VALUE-STOP
-- TAG-LOCATION-MEASUREMENT-INFO-START

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

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-LOCATION-MEASUREMENT-INFO-STOP
-- TAG-LOGICAL-CHANNEL-CONFIG-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-LOGICAL-CHANNEL-CONFIG-STOP
-- TAG-LOGICALCHANNELIDENTITY-START

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

-- TAG-LOGICALCHANNELIDENTITY-STOP
-- TAG-MAC-CELL-GROUP-CONFIG-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-v1530                          BOOLEAN                                                                 OPTIONAL    ,   -- Need M
    dataInactivityTimer-v1530               SetupRelease { DataInactivityTimer }                                    OPTIONAL        -- Need PCellOnly
    ]]
}

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

-- TAG-MAC-CELL-GROUP-CONFIG-STOP
-- TAG-MEAS-CONFIG-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-MEAS-CONFIG-STOP
--TAG-MEAS-GAP-CONFIG-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},
    ...
}

-- TAG-MEAS-GAP-CONFIG-STOP
--TAG-MEAS-GAP-SHARING-CONFIG-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-MEAS-GAP-SHARING-CONFIG-STOP
-- TAG-MEAS-ID-START

MeasId ::=                          INTEGER (1..maxNrofMeasId)

-- TAG-MEAS-ID-STOP
-- TAG-MEAS-ID-TO-ADD-MOD-LIST-START

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

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

-- TAG-MEAS-ID-TO-ADD-MOD-LIST-STOP
-- TAG-MEAS-OBJECT-EUTRA-NR-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-MEAS-OBJECT-EUTRA-NR-STOP
-- TAG-MEAS-OBJECT-ID-START

MeasObjectId ::=                    INTEGER (1..maxNrofObjectId)

-- TAG-MEAS-OBJECT-ID-STOP
-- TAG-MEAS-OBJECT-NR-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,
    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-MEAS-OBJECT-NR-STOP
-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-START

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

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

-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-STOP
-- TAG-MEASRESULT-CELL-LIST-SFTD-START

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

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

-- TAG-MEASRESULT-CELL-LIST-SFTD-STOP
-- TAG-MEAS-RESULTS-START

MeasResults ::=                         SEQUENCE {
    measId                                  MeasId,
    measResultServingMOList                 MeasResultServMOList,
    measResultNeighCells                    CHOICE {
        measResultListNR                        MeasResultListNR,
        ...,
        measResultListEUTRA                     MeasResultListEUTRA
    }                                                                                                                   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-Info                                                                    OPTIONAL
    ]]
}

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

MeasResultEUTRA ::=                     SEQUENCE {
    physCellId                              PhysCellId,
    measResult                              MeasQuantityResultsEUTRA,

    cgi-Info                                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
    }                                                                                                                   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
}

-- TAG-MEAS-RESULTS-STOP
-- TAG-MEAS-RESULT-SCG-FAILURE-START

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

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

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

-- TAG-MEAS-RESULT-SCG-FAILURE-STOP
-- TAG-MOBILITY-STATE-PARAMETERS-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-MOBILITY-STATE-PARAMETERS-STOP
-- TAG-MULTIFREQUENCYBANDLISTNR-START

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

-- TAG-MULTIFREQUENCYBANDLISTNR-STOP
-- TAG-NEXTHOPCHAININGCOUNT-START

NextHopChainingCount ::=                    INTEGER (0..7)

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

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

-- TAG-NG-5G-S-TMSI-STOP
-- 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
-- TAG-NZP-CSI-RS-RESOURCEID-START

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

-- TAG-NZP-CSI-RS-RESOURCEID-STOP
-- 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..4)                                                                   OPTIONAL,   -- Need S
    trs-Info                            ENUMERATED {true}                                                               OPTIONAL,   -- Need R
    ...
}

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

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

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

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

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

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

-- TAG-PCI-LIST-STOP
-- 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
-- TAG-PCI-RANGEELEMENT-START

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

-- TAG-PCI-RANGEELEMENT-STOP
-- TAG-PCI-RANGE-INDEX-START

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

-- TAG-PCI-RANGE-INDEX-STOP
-- TAG-PCI-RANGE-INDEX-LIST-START

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

-- TAG-PCI-Range-INDEX-LIST-STOP
-- 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,   -- Cond PUCCH-CellOnly
    tpc-SRS                             SetupRelease { SRS-TPC-CommandConfig}                               OPTIONAL,   -- Need M
    ...
}

-- TAG-PDCCH-CONFIG-STOP
-- 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
    ...
}

-- TAG-PDCCH-CONFIGCOMMON-STOP
-- TAG-PDCCH-CONFIGSIB1-START

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

-- TAG-PDCCH-CONFIGSIB1-STOP
-- TAG-PDCCH-SERVINGCELLCONFIG-START

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

-- TAG-PDCCH-SERVINGCELLCONFIG-STOP
-- 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 ConnectedTo5GC
        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
-- 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,
                                                                                                                                        -- NeedN
    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
-- TAG-PDSCH-CONFIGCOMMON-START

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

-- TAG-PDSCH-CONFIGCOMMON-STOP
-- 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
    ...
}

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

-- TAG-PDSCH-SERVINGCELLCONFIG-STOP
-- 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
-- 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
-- TAG-PHYS-CELL-ID-START

PhysCellId ::=                      INTEGER (0..1007)

-- TAG-PHYS-CELL-ID-STOP
-- 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,   -- Cond SP-CSI-Report
    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
    ]]
}

-- TAG-PHYSICALCELLGROUPCONFIG-STOP
-- TAG-PLMN-IDENTITY-INFORMATION-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-INFORMATION-STOP
-- TAG-PLMN-IDENTITY-LIST-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-IDENTITY-LIST-STOP
-- TAG-PRB-ID-START

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

-- TAG-PRB-ID-STOP
-- 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
-- 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
-- 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
-- TAG-PUCCH-CONFIGCOMMON-START

PUCCH-ConfigCommon ::=              SEQUENCE {
    pucch-ResourceCommon                INTEGER (0..15)                                                         OPTIONAL,   -- Need R
    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
-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START

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

-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-STOP
-- 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
-- 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
-- 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
-- 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
-- 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
-- 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
}

-- A set of p0-pusch and alpha used for PUSCH with grant. 'PUSCH beam indication' (if present) gives the index of the set to
-- be used for a particular PUSCH transmission. (see 38.213, section 7.1.1)
P0-PUSCH-AlphaSet ::=               SEQUENCE {
    p0-PUSCH-AlphaSetId                 P0-PUSCH-AlphaSetId,
    p0                                  INTEGER (-16..15)                                                           OPTIONAL,   -- Need S
    alpha                               Alpha                                                                       OPTIONAL    -- Need S
}

-- ID for a P0-PUSCH-AlphaSet. Corresponds to L1 parameter 'p0alphasetindex' (see 38.213, section 7.1)
P0-PUSCH-AlphaSetId ::=             INTEGER (0..maxNrofP0-PUSCH-AlphaSets-1)

-- A reference signal (RS) configured as pathloss reference signal for PUSCH power control
-- Corresponds to L1 parameter 'pusch-pathlossReference-rs' (see 38.213, section 7.1)
PUSCH-PathlossReferenceRS ::=       SEQUENCE {
    pusch-PathlossReferenceRS-Id        PUSCH-PathlossReferenceRS-Id,
    referenceSignal                     CHOICE {
        ssb-Index                           SSB-Index,
        csi-RS-Index                        NZP-CSI-RS-ResourceId
    }
}

-- ID for a referemce signal (RS) configured as PUSCH pathloss reference
-- Corresponds to L1 parameter 'pathlossreference-index' (see 38.213, section 7.1)
PUSCH-PathlossReferenceRS-Id ::=    INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1)


-- A set of PUSCH power control parameters associated with one SRS-ResourceIndex (SRI)
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)

-- A set of beta-offset values
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
-- 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
    ...
}

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

-- TAG-PUSCH-SERVINGCELLCONFIG-STOP
-- 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
-- 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
-- TAG-Q-OFFSET-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-OFFSET-STOP
-- TAG-Q-QUALMIN-START

Q-QualMin ::=                       INTEGER (-34..-3)       -- FFS range

-- TAG-Q-QUALMIN-STOP
-- TAG-Q-RXLEVMIN-START

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

-- TAG-Q-RXLEVMIN-STOP
-- TAG-QUANTITY-CONFIG-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,
    cs-RS-FilterConfig                  FilterConfig
}

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

-- TAG-QUANTITY-CONFIG-STOP
-- TAG-RACH-CONFIG-COMMON-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 L139Need S
    restrictedSetConfig                     ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB},
    msg3-transformPrecoder                  ENUMERATED {enabled}                                                            OPTIONAL,   -- Need R
    ...
}

-- TAG-RACH-CONFIG-COMMON-STOP
-- TAG-RACH-CONFIG-DEDICATED-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-CONFIG-DEDICATED-STOP
-- TAG-RACH-CONFIG-GENERIC-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-CONFIG-GENERIC-STOP
-- 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
-- TAG-RADIO-BEARER-CONFIG-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-RADIO-BEARER-CONFIG-STOP
-- 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
-- TAG-RADIOLINKMONITORINGRSID-START

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

-- TAG-RADIOLINKMONITORINGRSID-STOP
-- TAG-RAN-AREACODE-START

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

-- TAG-RAN-AREACODE-STOP
-- 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
-- TAG-RATEMATCHPATTERNID-START

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

-- TAG-RATEMATCHPATTERNID-STOP
-- 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
-- TAG-REPORT-CONFIG-ID-START

ReportConfigId ::=                          INTEGER (1..maxReportConfigId)

-- TAG-REPORT-CONFIG-ID-STOP
-- TAG-REPORT-CONFIG-INTER-RAT-START

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

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

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-REPORT-CONFIG-INTER-RAT-STOP
-- TAG-REPORT-CONFIG-START

ReportConfigNR ::=                          SEQUENCE {
    reportType                                  CHOICE {
        periodical                                  PeriodicalReportConfig,
        eventTriggered                              EventTriggerConfig,
        ...,
        reportCGI                                   ReportCGI
    }
}

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

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),

    reportQuantityRsIndexes                     MeasReportQuantity                                                OPTIONAL,   -- Need R
    maxNrofRSIndexesToReport                    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),

    reportQuantityRsIndexes                     MeasReportQuantity                                                OPTIONAL,   -- Need R
    maxNrofRsIndexesToReport                    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-REPORT-CONFIG-START
-- TAG-REPORT-CONFIG-TO-ADD-MOD-LIST-START

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

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

-- TAG- REPORT-CONFIG-TO-ADD-MOD-LIST-STOP

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

-- TAG-RESELECTION-THRESHOLD-START

ReselectionThreshold ::=                INTEGER (0..31)

-- TAG-RESELECTION-THRESHOLD-STOP
-- TAG-RESELECTION-THRESHOLDQ-START

ReselectionThresholdQ ::=           INTEGER (0..31)

-- TAG-RESELECTION-THRESHOLDQ-STOP
-- TAG-RESUME-CAUSE-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
-- 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
-- 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
-- TAG-RLF-TIMERS-AND-CONSTANTS-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-TIMERS-AND-CONSTANTS-STOP
-- TAG-RNTI-VALUE-START

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

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

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

-- TAG-RSRP-RANGE-STOP
-- TAG-RSRQ-RANGE-START

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

-- TAG-RSRQ-RANGE-STOP
-- TAG-SCELL-INDEX-START

SCellIndex ::=                      INTEGER (1..31)

-- TAG-SCELL-INDEX-STOP
-- TAG-SCHEDULING-REQUEST-CONFIG-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-SCHEDULING-REQUEST-CONFIG-STOP
-- TAG-SCHEDULINGREQUESTID-START

SchedulingRequestId ::=             INTEGER (0..7)

-- TAG-SCHEDULINGREQUESTID-STOP
-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-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-SCHEDULING-REQUEST-RESOURCE-CONFIG-STOP
-- TAG-SCHEDULINGREQUESTRESOURCEID-START

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

-- TAG-SCHEDULINGREQUESTRESOURCEID-STOP
-- TAG-SCRAMBLING-ID-START

ScramblingId ::=                    INTEGER(0..1023)

-- TAG-SCRAMBLING-ID-STOP
-- TAG-SCS-SPECIFIC-CARRIER-START

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

-- TAG-SCS-SPECIFIC-CARRIER-STOP
-- 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
-- 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
-- TAG-SEARCHSPACEID-START

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

-- TAG-SEARCHSPACEID-STOP
-- TAG-SEARCHSPACEZERO-START

SearchSpaceZero ::=                 INTEGER (0..15)

-- TAG-SEARCHSPACEZERO-STOP
-- TAG-SECURITY-ALGORITHM-CONFIG-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-SECURITY-ALGORITHM-CONFIG-STOP
-- TAG-SERV-CELL-INDEX-START

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

-- TAG-SERV-CELL-INDEX-STOP
-- TAG-SERVING-CELL-CONFIG-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,
    ue-BeamLockFunction                 ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    pathlossReferenceLinking            ENUMERATED {pCell, sCell}                                               OPTIONAL,   -- Cond SCellOnly
    servingCellMO                       MeasObjectId                                                            OPTIONAL,   -- Cond MeasObject
    ...
}

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
    ...
}

-- TAG-SERVING-CELL-CONFIG-STOP
-- TAG-SERVING-CELL-CONFIG-COMMON-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
    subcarrierSpacing                   SubcarrierSpacing                                                       OPTIONAL,   -- Cond HOAndServCellAdd
    tdd-UL-DL-ConfigurationCommon       TDD-UL-DL-ConfigCommon                                                  OPTIONAL,   -- Cond TDD
    ss-PBCH-BlockPower                  INTEGER (-60..50),
    ...
}


-- TAG-SERVING-CELL-CONFIG-COMMON-STOP
-- TAG-SERVINGCELLCONFIGCOMMONSIB-START

ServingCellConfigCommonSIB ::=      SEQUENCE {
    downlinkConfigCommon                    DownlinkConfigCommonSIB,
    uplinkConfigCommon                  UplinkConfigCommonSIB                                           OPTIONAL,   -- Need R
    supplementaryUplink                 UplinkConfigCommonSIB                                           OPTIONAL,   -- Need R
    n-TimingAdvanceOffset               ENUMERATED { n0, n25560, n39936 }                               OPTIONAL,   -- Need S
    ssb-PositionsInBurst                    SEQUENCE {
        inOneGroup                          BIT STRING (SIZE (8)),
        groupPresence                       BIT STRING (SIZE (8))                                       OPTIONAL -- Cond Above6GHzOnly
    },
    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
-- TAG-ShortI-RNTI-VALUE-START

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

-- TAG-ShortI-RNTI-VALUE-STOP
-- TAG-SHORTMAC-I-START

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

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

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

-- TAG-SINR-RANGE-STOP
-- TAG-OTHER-SI-INFO-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 -- Cond AREA-ID
}

-- 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-OTHER-SI-INFO-STOP
-- 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
-- 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
-- TAG-S-NSSAI-START

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

-- TAG-S-NSSAI-STOP
-- TAG-SPEEDSTATESCALEFACTORS-START

SpeedStateScaleFactors ::=          SEQUENCE {
    sf-Medium                           ENUMERATED {oDot25, oDot5, oDot75, lDot0},
    sf-High                             ENUMERATED {oDot25, oDot5, oDot75, lDot0}
}
-- TAG-SPEEDSTATESCALEFACTORS-STOP
-- TAG-SS-RSSI-MEASUREMENT-START

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

-- TAG-SS-RSSI-MEASUREMENT-STOP
-- 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
-- TAG-SRB-IDENTITY-START

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

-- TAG-SRB-IDENTITY-STOP
-- 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
    ...
}

-- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3)
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
-- 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
-- TAG-SRS-TPC-COMMANDCONFIG-START

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

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

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

-- TAG-SSB-INDEX-STOP
-- 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
-- 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
-- TAG-SUBCARRIER-SPACING-START

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

-- TAG-SUBCARRIER-SPACING-STOP
-- 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
-- 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
-- TAG-TCI-STATEID-START

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

-- TAG-TCI-STATEID-STOP
-- 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
-- TAG-TRACKINGAREACODE-START

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

-- TAG-TRACKINGAREACODE-STOP
-- TAG-TRESELECTION-START

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

-- TAG-TRESELECTION-STOP
-- TAG-TIMETOTRIGGER-START

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

-- TAG-TIMETOTRIGGER-STOP
-- TAG-UAC-BARRING-INFO-SET-INDEX-START

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

-- TAG-UAC-BARRING-INFO-SET-INDEX-STOP
-- TAG-UAC-BARRING-INFO-SET-LIST-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-BARRING-INFO-SET-LIST-STOP
-- TAG-UAC-BARRING-PER-CAT-LIST-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-BARRING-PER-CAT-LIST-STOP
-- TAG-UAC-BARRING-PER-PLMN-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
}

-- TAG-UAC-BARRING-PER-PLMN-LIST-STOP
-- TAG-UE-TIMERS-AND-CONSTANTS-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-TIMERS-AND-CONSTANTS-STOP
-- TAG-UPLINK-CONFIG-COMMON-START

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

-- TAG-UPLINK-CONFIG-COMMON-STOP
-- TAG-UPLINK-CONFIG-COMMON-START

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

-- TAG-UPLINK-CONFIG-COMMON-STOP
-- TAG-UPLINKTXDIRECTCURRENTLIST-START

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

UplinkTxDirectCurrentCell ::=           SEQUENCE {
    servCellIndex                           ServCellIndex,
    uplinkDirectCurrentBWP                  SEQUENCE (SIZE (1..maxNrofBWPs)) OF UplinkTxDirectCurrentBWP,
    ...
}

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

-- TAG-UPLINKTXDIRECTCURRENTLIST-STOP
-- 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
-- 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
-- TAG-ZP-CSI-RS-RESOURCESETID-START

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

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

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

-- TAG-ACCESSSTRATUMRELEASE-STOP
-- TAG-BANDCOMBINATIONLIST-START

BandCombinationList ::=             SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination

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
}

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
    }
}

-- TAG-BANDCOMBINATIONLIST-STOP
-- TAG-CA-BANDWIDTHCLASSEUTRA-START

CA-BandwidthClassEUTRA ::=          ENUMERATED {a, b, c, d, e, f, ...}

-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP
-- 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
-- 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,
    ...
}

-- TAG-CA-PARAMETERSEUTRA-STOP
-- TAG-CA-PARAMETERSNR-START

CA-ParametersNR ::=                 SEQUENCE {
    multipleTimingAdvances              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-Group     ENUMERATED {supported}      OPTIONAL,
    supportedNumberTAG                  ENUMERATED {n2, n3, n4}     OPTIONAL,
    ...
}

-- TAG-CA-PARAMETERSNR-STOP
-- 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-FEATURESET-COMBINATION-ID-START

FeatureSetCombinationId ::=         INTEGER (0.. maxFeatureSetCombinations)

-- TAG-FEATURESET-COMBINATION-ID-STOP
-- 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,
    srs-AssocCSI-RS                         ENUMERATED {supported}                                                  OPTIONAL,
    type1-3-CSS                             ENUMERATED {supported}                                                  OPTIONAL,
    pdcch-MonitoringAnyOccasions            ENUMERATED {withoutDCI-Gap, withDCI-Gap}                                OPTIONAL,
    pdcch-MonitoringAnyOccasionsWithSpanGap ENUMERATED {supported}                                                  OPTIONAL,
    ue-SpecificUL-DL-Assignment             ENUMERATED {supported}                                                  OPTIONAL,
    searchSpaceSharingCA-DL                 ENUMERATED {supported}                                                  OPTIONAL,
    timeDurationForQCL                      SEQUENCE {
        scs-60kHz                           ENUMERATED {s7, s14, s28}                                           OPTIONAL,
        sch-120kHz                          ENUMERATED {s14, s28}                                               OPTIONAL
    }                                                                                                               OPTIONAL,
    pdsch-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,
    csi-RS-IM-ReceptionForFeedback          CSI-RS-IM-ReceptionForFeedback                                          OPTIONAL,
    typeI-SinglePanelCodebookList           SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-SinglePanelCodebook OPTIONAL,
    typeI-MultiPanelCodebookList            SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-MultiPanelCodebook      OPTIONAL,
    typeII-CodebookList                     SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-Codebook               OPTIONAL,
    typeII-CodebookPortSelectionList        SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-CodebookPortSelection  OPTIONAL

}

CSI-RS-IM-ReceptionForFeedback ::=      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}
}

TypeI-SinglePanelCodebook ::=       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)
}

TypeI-MultiPanelCodebook ::=        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)
}

TypeII-Codebook ::=                 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)
}

TypeII-CodebookPortSelection ::=    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
-- TAG-FEATURESET-DOWNLINK-ID-START

FeatureSetDownlinkId ::=            INTEGER (0..maxDownlinkFeatureSets)

-- TAG-FEATURESET-DOWNLINK-ID-STOP
-- 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
-- TAG-FEATURESET-DOWNLINK-PER-CC-ID-START

FeatureSetDownlinkPerCC-Id ::=      INTEGER (1..maxPerCC-FeatureSets)

-- TAG-FEATURESET-DOWNLINK-PER-CC-ID-STOP
-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-START

FeatureSetEUTRA-DownlinkId ::=      INTEGER (0..maxEUTRA-DL-FeatureSets)

-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-STOP
-- TAG-FEATURESET-EUTRA-UPLINK-ID-START

FeatureSetEUTRA-UplinkId ::=                    INTEGER (0..maxEUTRA-UL-FeatureSets)

-- TAG-FEATURESET-EUTRA-UPLINK-ID-STOP
-- 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,
    ...
}

-- 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,
    srs-TxSwitch                        SRS-TxSwitch                                OPTIONAL,
    supportedSRS-Resources              SRS-Resources                               OPTIONAL,
    twoPUCCH-Group                      ENUMERATED {supported}                      OPTIONAL,
    dynamicSwitchSUL                    ENUMERATED {supported}                      OPTIONAL,
    simultaneousTxSUL-NonSUL-v1530      ENUMERATED {supported}                      OPTIONAL,
    pusch-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,
    csi-ReportFramework                 CSI-ReportFramework                         OPTIONAL
}

CSI-ReportFramework ::=                     SEQUENCE {
    maxNumberPeriodicCSI-ReportPerBWP           INTEGER (1..4),
    maxNumberAperiodicCSI-ReportPerBWP          INTEGER (1..4),
    maxNumberSemiPersistentCSI-ReportPerBWP     INTEGER (0..4),
    simultaneousCSI-ReportsAllCC                INTEGER (5..32)
}

-- TAG- FEATURESETUPLINK-STOP
-- TAG-FEATURESET-UPLINK-ID-START

FeatureSetUplinkId ::=                  INTEGER (0..maxUplinkFeatureSets)

-- TAG-FEATURESET-UPLINK-ID-STOP
-- 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

}

-- TAG-FEATURESETUPLINKPERCC-STOP
-- TAG-FEATURESET-UPLINK-PER-CC-ID-START

FeatureSetUplinkPerCC-Id ::=            INTEGER (1..maxPerCC-FeatureSets)

-- TAG-FEATURESET-UPLINK-PER-CC-ID-STOP
-- TAG-FREQ-BAND-INDICATOR-EUTRA-START

FreqBandIndicatorEUTRA ::=  INTEGER (1..maxBandsEUTRA)

-- TAG-FREQ-BAND-INDICATOR-EUTRA-STOP
-- 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
-- TAG-FREQSEPARATIONCLASS-START

FreqSeparationClass ::=	ENUMERATED {c1, c2, c3, ...}

-- TAG-FREQSEPARATIONCLASS-STOP
-- 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,
    modifiedMRP-BehaviorEUTRA           BIT STRING (SIZE (32))          OPTIONAL,
    multiNS-Pmax-EUTRA                  ENUMERATED {supported}          OPTIONAL,
    rs-SINR-MeasEUTRA                   ENUMERATED {supported}          OPTIONAL,
    ...
}

EUTRA-ParametersXDD-Diff ::=        SEQUENCE {
    rsrqMeasWidebandEUTRA               ENUMERATED {supported}          OPTIONAL,
    ...
}

-- TAG-INTERRAT-PARAMETERS-STOP
-- 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,
    pucch-SpatialRelInfoMAC-CE      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
-- 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
    ]]
}

MeasAndMobParametersXDD-Diff ::=            SEQUENCE {
    intraAndInterF-MeasAndReport        ENUMERATED {supported}  OPTIONAL,
    eventA-MeasAndReport                ENUMERATED {supported}  OPTIONAL,
    ...,
    [[
    handoverInterF              ENUMERATED {supported}  OPTIONAL,
    handoverLTE             ENUMERATED {supported}  OPTIONAL,
    handover-eLTE               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             ENUMERATED {supported}  OPTIONAL,
    handover-eLTE               ENUMERATED {supported}  OPTIONAL
    ]]
}

-- TAG-MEASANDMOBPARAMETERS-STOP
-- 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-Common ::=     SEQUENCE {
    independentGapConfig                    ENUMERATED {supported}              OPTIONAL
}

MeasAndMobParametersMRDC-XDD-Diff ::=   SEQUENCE {
    sftd-MeasPSCell                         ENUMERATED {supported}              OPTIONAL,
    sftd-MeasNR-Cell                        ENUMERATED {supported}              OPTIONAL
}

MeasAndMobParametersMRDC-FRX-Diff ::=   SEQUENCE {
    simultaneousRxDataSSB-DiffNumerology    ENUMERATED {supported}      OPTIONAL
}

-- TAG-MEASANDMOBPARAMETERSMRDC-STOP
-- TAG-MIMO-LAYERS-START

MIMO-LayersDL ::=   ENUMERATED {twoLayers, fourLayers, eightLayers}

MIMO-LayersUL ::=   ENUMERATED {oneLayer, twoLayers, fourLayers}

-- TAG-MIMO-LAYERS-STOP
-- 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, partialNonCoherent, fullCoherent}      OPTIONAL,
    beamCorrespondence                  ENUMERATED {supported}                                          OPTIONAL,
    periodicBeamReport                  ENUMERATED {supported}                                          OPTIONAL,
    aperiodicBeamReport                 ENUMERATED {supported}                                          OPTIONAL,
    sp-BeamReportPUCCH                  ENUMERATED {supported}                                          OPTIONAL,
    sp-BeamReportPUSCH                  ENUMERATED {supported}                                          OPTIONAL,
    beamManagementSSB-CSI-RS            BeamManagementSSB-CSI-RS                                        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-BFR                 INTEGER (1..64)                                                 OPTIONAL,
    maxNumberSSB-BFR                    INTEGER (1..64)                                                 OPTIONAL,
    maxNumberCSI-RS-SSB-BFR             INTEGER (1..256)                                                OPTIONAL,
    twoPortsPTRS-DL                     ENUMERATED {supported}                                          OPTIONAL,
    twoPortsPTRS-UL                     ENUMERATED {supported}                                          OPTIONAL,
    supportedSRS-Resources              SRS-Resources                                                   OPTIONAL,
    maxNumberSimultaneousSRS-PerCC      INTEGER (1..4)                                                  OPTIONAL,
    beamReportTiming                    SEQUENCE {
        scs-15kHz                           ENUMERATED {sym2, sym4, sym8}                               OPTIONAL,
        scs-30kHz                           ENUMERATED {sym4, sym8, sym14}                              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,
    csi-RS-ForTracking                  CSI-RS-ForTracking                                              OPTIONAL,
    aperiodicTRS                        ENUMERATED {supported}                                          OPTIONAL,
    ...
}

BeamManagementSSB-CSI-RS ::=        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}
}

CSI-RS-ForTracking ::=              SEQUENCE {
    burstLength                         INTEGER (1..2),
    maxSimultaneousResourceSetsPerCC    INTEGER (1..8),
    maxConfiguredResourceSetsPerCC      INTEGER (1..64),
    maxConfiguredResourceSetsAllCC      INTEGER (1..128)
}

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)
}

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),
    maxNumberSemiPersitentSRS-PerBWP        ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberSP-SRS-PerBWP-PerSlot          INTEGER (1..6),
    maxNumberSRS-Ports-PerResource          ENUMERATED {n1, n2, n4}
}

SRS-TxSwitch ::=                    SEQUENCE {
    supportedSRS-TxPortSwitch           ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal},
    txSwitchImpactToRx                  ENUMERATED {true}                                       OPTIONAL
}

-- TAG-MODULATION-ORDER-START

ModulationOrder ::=	ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256}

-- TAG-MODULATION-ORDER-STOP
-- 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,
    ...
}

-- TAG-MRDC-PARAMETERS-STOP
-- 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-DuplicationSRB3                ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationMCG-OrSCG           ENUMERATED {supported}      OPTIONAL,
    ...
}

-- TAG-PDCP-PARAMETERS-STOP
-- TAG-PDCP-PARAMETERSMRDC-START

PDCP-ParametersMRDC ::=                 SEQUENCE {
    pdcp-DuplicationSplitSRB                ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationSplitDRB                ENUMERATED {supported}      OPTIONAL
}

-- TAG-PDCP-PARAMETERSMRDC-STOP
-- 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,
    ... ,
    [[
    eutra-RS-SINR-measurement           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,
    ...
}

Phy-ParametersFRX-Diff ::=          SEQUENCE {
    dynamicSFI                          ENUMERATED {supported}                      OPTIONAL,
    oneFL-DMRS-TwoAdditionalDMRS        BIT STRING (SIZE (2))                       OPTIONAL,
    twoFL-DMRS                          BIT STRING (SIZE (2))                       OPTIONAL,
    twoFL-DMRS-TwoAdditionalDMRS        BIT STRING (SIZE (2))                       OPTIONAL,
    oneFL-DMRS-ThreeAdditionalDMRS      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           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,
    ...
}

Phy-ParametersFR1 ::=               SEQUENCE {
    pdcchMonitoringSingleOccasion       ENUMERATED {supported}                      OPTIONAL,
    scs-60kHz                           ENUMERATED {supported}                      OPTIONAL,
    pdsch-256QAM-FR1                    ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR1                 ENUMERATED {n10, n20}                       OPTIONAL,
    ...
}

Phy-ParametersFR2 ::=               SEQUENCE {
    calibrationGapPA                    ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR2                 ENUMERATED {n6, n20}                        OPTIONAL,
    ...
}

-- TAG-PHY-PARAMETERS-STOP
-- 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
-- TAG-RAT-TYPE-START

RAT-Type ::= ENUMERATED {nr, eutra-nr, eutra, spare1, ...}

-- TAG-RAT-TYPE-STOP
-- TAG-RF-PARAMETERS-START

RF-Parameters ::=                   SEQUENCE {
    supportedBandListNR                 SEQUENCE (SIZE (1..maxBands)) OF BandNR,
    supportedBandCombinationList        BandCombinationList                         OPTIONAL,
    appliedFreqBandListFilter           FreqBandList                                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              ENUMERATED {n60, n70, n80, n90, n100}           OPTIONAL
    ]]

}

-- TAG-RF-PARAMETERS-STOP
-- TAG-RF-PARAMETERSMRDC-START

RF-ParametersMRDC ::=               SEQUENCE {
    supportedBandCombinationList        BandCombinationList                 OPTIONAL,
    appliedFreqBandListFilter           FreqBandList                        OPTIONAL,
    ...
}

-- TAG-RF-PARAMETERSMRDC-STOP
-- 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
-- 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
-- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-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-CAPABILITY-RAT-CONTAINER-LIST-STOP
-- 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
-- TAG-UE-CAPABILITYREQUESTFILTERNR-START

UE-CapabilityRequestFilterNR ::=            SEQUENCE {
    frequencyBandList                           FreqBandList                OPTIONAL,   -- Need N
    nonCriticalExtension                        SEQUENCE {}                 OPTIONAL
}

-- TAG-UE-CAPABILITYREQUESTFILTERNR-STOP
-- 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                SEQUENCE {}                         OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode ::=   SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff       MeasAndMobParametersMRDC-XDD-Diff   OPTIONAL,
    generalParametersMRDC-XDD-Diff          GeneralParametersMRDC-XDD-Diff      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-v1530                     ENUMERATED {supported}              OPTIONAL,
    ...
}

-- TAG-UE-MRDC-CAPABILITY-STOP
-- 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-1530               OPTIONAL
}

UE-NR-Capability-1530 ::=               SEQUENCE {
    fdd-Add-UE-NR-Capabilities-1530         UE-NR-CapabilityAddXDD-Mode-1530        OPTIONAL,
    tdd-Add-UE-NR-Capabilities-1530         UE-NR-CapabilityAddXDD-Mode-1530        OPTIONAL,
    voiceOverMCG-Bearer                     ENUMERATED {supported}                  OPTIONAL,
    interRAT-Parameters                     InterRAT-Parameters                     OPTIONAL,
    inactiveState                           ENUMERATED {supported}                  OPTIONAL,
    delayBudgetReporting                    ENUMERATED {supported}                  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-1530 ::=    SEQUENCE {
    eutra-ParametersXDD-Diff                EUTRA-ParametersXDD-Diff
}

UE-NR-CapabilityAddFRX-Mode ::=	SEQUENCE {
    phy-ParametersFRX-Diff              Phy-ParametersFRX-Diff                      OPTIONAL,
    measAndMobParametersFRX-Diff        MeasAndMobParametersFRX-Diff                OPTIONAL
}

-- TAG-UE-NR-CAPABILITY-STOP
-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-START

EUTRA-AllowedMeasBandwidth ::=              ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}

-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-STOP
-- 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
-- TAG-EUTRA-MULTI-BAND-INFO-LIST-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-MULTI-BAND-INFO-LIST-STOP
-- TAG-EUTRA-NS-PMAX-LIST-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-PMAX-LIST-STOP
-- TAG-EUTRA-PHYS-CELL-ID-START

EUTRA-PhysCellId ::=                        INTEGER (0..503)

-- TAG-EUTRA-PHYS-CELL-ID-STOP
-- TAG-EUTRA-PHYS-CELL-ID-RANGE-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-PHYS-CELL-ID-RANGE-STOP
-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-START

EUTRA-PresenceAntennaPort1 ::=              BOOLEAN

-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-STOP

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-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
-- 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
-- TAG-OTHERCONFIG-START

OtherConfig ::=                 SEQUENCE    {
    delayBudgetReportingConfig  CHOICE{
            release                 NULL,
            setup                   SEQUENCE{
                delayBudgetReportingProhibitTimer   ENUMERATED {s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30}
            }
    }                                                               OPTIONAL        -- Need N
}

-- TAG-OTHERCONFIG-STOP
-- TAG-RRC-TRANSACTIONIDENTIFIER-START

RRC-TransactionIdentifier ::=       INTEGER (0..3)

-- TAG-RRC-TRANSACTIONIDENTIFIER-STOP
-- 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 EUTRAN
maxEARFCN                               INTEGER ::= 262143  -- Maximum value of EUTRA carrier frequency
maxEUTRA-CellBlack                      INTEGER ::= 16      -- Maximum number of EUTRA-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 (SpCell + SCells) per cell group
maxNrofServingCells-1                   INTEGER ::= 31      -- Max number of serving cells (SpCell + SCells) per cell group minus 1
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 (NZP) CSI-RS resources
maxNrofZP-CSI-RS-Resources-1            INTEGER ::= 31      -- Maximum number of Zero-Power (NZP) 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 FFS

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-ResourceSet
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, section 7.1)
maxNrofP0-PUSCH-AlphaSets-1             INTEGER ::= 29      -- Maximum number of P0-pusch-alpha-sets minus 1 (see 38,213, section 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
maxNrofCSI-RS                           INTEGER ::= 64
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                             INTEGER ::= 64      -- Maximum number of SSB resources in a resource set.
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

maxNrofSRI-PUSCH-Mappings               INTEGER ::= 16
maxNrofSRI-PUSCH-Mappings-1             INTEGER ::= 15
maxSIB                                  INTEGER::= 32       -- Maximum number of SIBs
maxSIB-1                                INTEGER::= 31
maxSI-Message                           INTEGER::= 32       -- Maximum number of SI messages

maxAccessCat-1                          INTEGER ::= 63      -- Maximum number of Acccess Categories minus 1
maxBarringInfoSet                       INTEGER ::= 8       -- Maximum number of Acccess Categories
maxCellEUTRA                            INTEGER ::= 8       -- Maximum number of EUTRA cells in SIB list
maxEUTRA-Carrier                        INTEGER ::= 8       -- Maximum number of EUTRA 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 EUTRA) Total number of FeatureSets (size of the pool)
maxEUTRA-UL-FeatureSets                 INTEGER ::= 256     -- (for EUTRA) 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

END


NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
    CellIdentity,
    MeasId,
    MeasIdToAddModList,
    MeasObjectToAddModList,
    PhysCellId,
    RNTI-Value,
    ReportConfigToAddModList,
    RSRP-Range,
    QuantityConfig,
    maxNrofCellMeas,
    maxNrofMeasId
FROM NR-RRC-Definitions;

-- TAG-VAR-PENDING-RNA-UPDATE-START

VarPendingRNA-Update ::=                    SEQUENCE {
    pendingRNA-Update                   BOOLEAN                             OPTIONAL
}

-- TAG-VAR-PENDING-RNA-UPDATE-STOP
-- TAG-VAR-MEAS-CONFIG-START

VarMeasConfig ::=                   SEQUENCE {
    -- Measurement identities
    measIdList                          MeasIdToAddModList                  OPTIONAL,
    -- Measurement objects
    measObjectList                      MeasObjectToAddModList              OPTIONAL,
    -- Reporting configurations
    reportConfigList                    ReportConfigToAddModList            OPTIONAL,
    -- Other parameters
    quantityConfig                      QuantityConfig                      OPTIONAL,

    s-MeasureConfig                         CHOICE {
        ssb-RSRP                                RSRP-Range,
        csi-RSRP                                RSRP-Range
    }                                                                       OPTIONAL

}

-- TAG-VAR-MEAS-CONFIG-STOP
-- TAG-VAR-MEAS-REPORT-START

VarMeasReportList ::=               SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMeasReport

VarMeasReport ::=                   SEQUENCE {
    -- List of measurement that have been triggered
    measId                              MeasId,
    cellsTriggeredList                  CellsTriggeredList              OPTIONAL,
    numberOfReportsSent                 INTEGER
}

CellsTriggeredList ::=              SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE {
    physCellId                          PhysCellId,
--  Not needed for EN-DC.
    physCellIdEUTRA                     ENUMERATED {ffsTypeAndValue}
    }


-- TAG-VAR-MEAS-REPORT-STOP
-- TAG-VAR-RESUMEMACINPUT-START

VarResumeMAC-Input  ::=     SEQUENCE {
    sourcePhysCellId                        PhysCellId,
    targetCellIdentity                      CellIdentity,
    source-c-RNTI                           RNTI-Value

}

-- TAG-VAR-RESUMEMACINPUT-STOP
-- TAG-VAR-SHORTMACINPUT-START

VarShortMAC-Input   ::=                 SEQUENCE {
    sourcePhysCellId                        PhysCellId,
    targetCellIdentity                      CellIdentity,
    source-c-RNTI                           RNTI-Value
}

-- TAG-VAR- SHORTMACINPUT-STOP

END

-- TAG_NR-INTER-NODE-DEFINITIONS-START

NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
    ARFCN-ValueNR,
    ARFCN-ValueEUTRA,
    CellIdentity,
    CSI-RS-Index,
    FreqBandIndicatorNR,
    GapConfig,
    maxBandComb,
    maxBands,
    maxFeatureSetsPerBand,
    maxFreqIDC-MRDC,
    maxNrofCombIDC,
    maxNrofSCells,
    maxNrofServingCells,
    maxNrofServingCells-1,
    maxNrofServingCellsEUTRA,
    maxNrofIndexesToReport,
    MeasQuantityResults,
    MeasResultSCG-Failure,
    MeasResultCellListSFTD,
    MeasResultList2NR,
    P-Max,
    PhysCellId,
    RadioBearerConfig,
    RAN-NotificationAreaInfo,
    RRCReconfiguration,
    ServCellIndex,
    SetupRelease,
    SSB-Index,
    SSB-MTC,
    SS-RSSI-Measurement,
    ShortMAC-I,
    SubcarrierSpacing,
    UE-CapabilityRAT-ContainerList
FROM NR-RRC-Definitions;

-- TAG_NR-INTER-NODE-DEFINITIONS-STOP
-- TAG-HANDOVER-COMMAND-START

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

HandoverCommand-IEs ::=             SEQUENCE {
    handoverCommandMessage              OCTET STRING (CONTAINING RRCReconfiguration),
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-HANDOVER-COMMAND-STOP
-- TAG-HANDOVER-PREPARATION-INFORMATION-START

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

HandoverPreparationInformation-IEs ::= SEQUENCE {
    ue-CapabilityRAT-List               UE-CapabilityRAT-ContainerList,
    sourceConfig                        AS-Config       OPTIONAL, -- Cond HO
    rrm-Config                          RRM-Config              OPTIONAL,
    as-Context                          AS-Context              OPTIONAL,
    nonCriticalExtension                SEQUENCE {}             OPTIONAL
}

AS-Config ::=             SEQUENCE {
    rrcReconfiguration                  OCTET STRING (CONTAINING RRCReconfiguration),
    ...
}

AS-Context ::=                          SEQUENCE {
    reestablishmentInfo             ReestablishmentInfo                     OPTIONAL,
    configRestrictInfo                  ConfigRestrictInfoSCG                       OPTIONAL,
    ...,
    [[  ran-NotificationAreaInfo            RAN-NotificationAreaInfo    OPTIONAL
    ]]
}

ReestablishmentInfo ::=             SEQUENCE {
    sourcePhysCellId                        PhysCellId,
    targetCellShortMAC-I                    ShortMAC-I,
    additionalReestabInfoList               ReestabNCellInfoList                    OPTIONAL
}

ReestabNCellInfoList ::=        SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo

ReestabNCellInfo::=	SEQUENCE{
    cellIdentity                            CellIdentity,
    key-gNodeB-Star                         BIT STRING (SIZE (256)),
    shortMAC-I                              ShortMAC-I
}

RRM-Config ::=              SEQUENCE {
    ue-InactiveTime             ENUMERATED {
                                    s1, s2, s3, s5, s7, s10, s15, s20,
                                    s25, s30, s40, s50, min1, min1s20c, min1s40,
                                    min2, min2s30, min3, min3s30, min4, min5, min6,
                                    min7, min8, min9, min10, min12, min14, min17, min20,
                                    min24, min28, min33, min38, min44, min50, hr1,
                                    hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
                                    hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
                                    day2hr12, day3, day4, day5, day7, day10, day14, day19,
                                    day24, day30, dayMoreThan30}        OPTIONAL,
    candidateCellInfoList       MeasResultList2NR       OPTIONAL,
    ...
}

-- TAG-HANDOVER-PREPARATION-INFORMATION-STOP
-- TAG-CG-CONFIG-START

CG-Config ::=                   SEQUENCE {
    criticalExtensions                  CHOICE {
        c1                                  CHOICE{
            cg-Config                   CG-Config-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture            SEQUENCE {}
    }
}

CG-Config-IEs ::=           SEQUENCE {
    scg-CellGroupConfig                 OCTET STRING (CONTAINING RRCReconfiguration)    OPTIONAL,
    scg-RB-Config                       OCTET STRING (CONTAINING RadioBearerConfig)     OPTIONAL,
    configRestrictModReq                ConfigRestrictModReqSCG                         OPTIONAL,
    drx-InfoSCG                         DRX-Info                                        OPTIONAL,
    candidateCellInfoListSN             OCTET STRING (CONTAINING MeasResultList2NR) OPTIONAL,
    measConfigSN                        MeasConfigSN                                    OPTIONAL,
    selectedBandCombinationNR           BandCombinationInfoSN                           OPTIONAL,
    fr-InfoListSCG                      FR-InfoList                                     OPTIONAL,
    candidateServingFreqListNR      CandidateServingFreqListNR                  OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                     OPTIONAL
}

MeasConfigSN ::= SEQUENCE {
    measuredFrequenciesSN               SEQUENCE (SIZE (1..maxMeasFreqsSN)) OF NR-FreqInfo  OPTIONAL,
    ...
}

NR-FreqInfo ::= SEQUENCE {
    measuredFrequency                   ARFCN-ValueNR                                   OPTIONAL,
    ...
}

ConfigRestrictModReqSCG ::=         SEQUENCE {
    requestedBC-MRDC                    BandCombinationInfoSN                           OPTIONAL,
    requestedP-MaxFR1               P-Max                                               OPTIONAL,
    ...
}

BandCombinationIndex ::= INTEGER (1..maxBandComb)

BandCombinationInfoSN ::=   SEQUENCE {
    bandCombinationIndex                BandCombinationIndex,
    requestedFeatureSets                FeatureSetEntryIndex
}

FR-InfoList ::=	SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF FR-Info

FR-Info ::=	SEQUENCE {
    servCellIndex       ServCellIndex,
    fr-Type             ENUMERATED {fr1, fr2}
}

CandidateServingFreqListNR ::= SEQUENCE (SIZE (1.. maxFreqIDC-MRDC)) OF ARFCN-ValueNR


-- TAG-CG-CONFIG-STOP
-- TAG-CG-CONFIG-INFO-START

CG-ConfigInfo ::=               SEQUENCE {
    criticalExtensions              CHOICE {
        c1                              CHOICE{
            cg-ConfigInfo               CG-ConfigInfo-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture        SEQUENCE {}
    }
}

CG-ConfigInfo-IEs ::=       SEQUENCE {
    ue-CapabilityInfo           OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList)        OPTIONAL,-- Cond SN-Addition
    candidateCellInfoListMN         MeasResultList2NR                                   OPTIONAL,
    candidateCellInfoListSN         OCTET STRING (CONTAINING MeasResultList2NR)         OPTIONAL,
    measResultCellListSFTD          MeasResultCellListSFTD                                  OPTIONAL,
    scgFailureInfo                  SEQUENCE {
        failureType                     ENUMERATED { t310-Expiry, randomAccessProblem,
                                                        rlc-MaxNumRetx, scg-ChangeFailure,
                                                        scg-reconfigFailure,
                                                        srb3-IntegrityFailure},
        measResultSCG                   OCTET STRING (CONTAINING MeasResultSCG-Failure)
    }                                                                                       OPTIONAL,
    configRestrictInfo          ConfigRestrictInfoSCG                                       OPTIONAL,
    drx-InfoMCG                 DRX-Info                                                    OPTIONAL,
    measConfigMN                MeasConfigMN                                                OPTIONAL,
    sourceConfigSCG             OCTET STRING (CONTAINING RRCReconfiguration)                OPTIONAL,
    scg-RB-Config               OCTET STRING (CONTAINING RadioBearerConfig)                 OPTIONAL,
    mcg-RB-Config               OCTET STRING (CONTAINING RadioBearerConfig)                 OPTIONAL,
    mrdc-AssistanceInfo         MRDC-AssistanceInfo                                         OPTIONAL,
    nonCriticalExtension        SEQUENCE {}                                                 OPTIONAL
}

ConfigRestrictInfoSCG ::=       SEQUENCE {
    allowedBC-ListMRDC              BandCombinationInfoList                             OPTIONAL,
    powerCoordination-FR1               SEQUENCE {
        p-maxNR-FR1                     P-Max                                               OPTIONAL,
        p-maxEUTRA                      P-Max                                               OPTIONAL,
        p-maxUE-FR1                     P-Max                                               OPTIONAL
    }                                                                                       OPTIONAL,
    servCellIndexRangeSCG           SEQUENCE {
        lowBound                        ServCellIndex,
        upBound                         ServCellIndex
    }                                                                                       OPTIONAL,   -- Cond SN-Addition
    maxMeasFreqsSCG-NR                  INTEGER(1..maxMeasFreqsMN)                          OPTIONAL,
    maxMeasIdentitiesSCG-NR             INTEGER(1..maxMeasIdentitiesMN)                     OPTIONAL,
    ...
}

BandCombinationInfoList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationInfo

BandCombinationInfo ::=     SEQUENCE {
    bandCombinationIndex        BandCombinationIndex,
    allowedFeatureSetsList      SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSetEntryIndex
}

FeatureSetEntryIndex ::=    INTEGER (1.. maxFeatureSetsPerBand)

DRX-Info ::=                    SEQUENCE {
    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
}

MeasConfigMN ::= SEQUENCE {
    measuredFrequenciesMN               SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo  OPTIONAL,
    measGapConfig                   SetupRelease { GapConfig }                          OPTIONAL,
    gapPurpose                          ENUMERATED {perUE, perFR1}                          OPTIONAL,
    ...
}

MRDC-AssistanceInfo ::= SEQUENCE {
    affectedCarrierFreqCombInfoListMRDC     SEQUENCE (SIZE (1..maxNrofCombIDC)) OF AffectedCarrierFreqCombInfoMRDC,
    ...
}

AffectedCarrierFreqCombInfoMRDC ::= SEQUENCE {
    victimSystemType                    VictimSystemType,
    interferenceDirectionMRDC       ENUMERATED {eutra-nr, nr, other, utra-nr-other, nr-other, spare3, spare2, spare1},
    affectedCarrierFreqCombMRDC         SEQUENCE    {
        affectedCarrierFreqCombEUTRA            AffectedCarrierFreqCombEUTRA    OPTIONAL,
        affectedCarrierFreqCombNR           AffectedCarrierFreqCombNR
    }       OPTIONAL
}

VictimSystemType ::= SEQUENCE {
    gps                         ENUMERATED {true}               OPTIONAL,
    glonass                 ENUMERATED {true}               OPTIONAL,
    bds                     ENUMERATED {true}               OPTIONAL,
    galileo                     ENUMERATED {true}               OPTIONAL,
    wlan                        ENUMERATED {true}               OPTIONAL,
    bluetooth               ENUMERATED {true}               OPTIONAL
}

AffectedCarrierFreqCombEUTRA ::= SEQUENCE (SIZE (1..maxNrofServingCellsEUTRA)) OF ARFCN-ValueEUTRA

AffectedCarrierFreqCombNR ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF ARFCN-ValueNR

-- TAG-CG-CONFIG-INFO-STOP
-- TAG-MEASUREMENT-TIMING-CONFIGURATION-START

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

MeasurementTimingConfiguration-IEs ::=  SEQUENCE {
    measTiming                              MeasTimingList                          OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                             OPTIONAL
}

MeasTimingList ::= SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF MeasTiming

MeasTiming ::= SEQUENCE {
    frequencyAndTiming                      SEQUENCE {
        carrierFreq                             ARFCN-ValueNR,
        ssbSubcarrierSpacing                        SubcarrierSpacing,
        ssb-MeasurementTimingConfiguration      SSB-MTC,
        ss-RSSI-Measurement                     SS-RSSI-Measurement                 OPTIONAL
    }                                                                               OPTIONAL,
    ...
}

-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP

UERadioPagingInformation ::= SEQUENCE {
    criticalExtensions                  CHOICE {
        c1                                  CHOICE{
            ueRadioPagingInformation            UERadioPagingInformation-IEs,
            spare7 NULL,
            spare6 NULL, spare5 NULL, spare4 NULL,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture            SEQUENCE {}
    }
}

UERadioPagingInformation-IEs ::= SEQUENCE {
    supportedBandListNRForPaging        SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR    OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                             OPTIONAL
}



UERadioAccessCapabilityInformation ::= SEQUENCE {
    criticalExtensions                  CHOICE {
        c1                                  CHOICE{
            ueRadioAccessCapabilityInformation
                                                UERadioAccessCapabilityInformation-IEs,
            spare7 NULL,
            spare6 NULL, spare5 NULL, spare4 NULL,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture            SEQUENCE {}
    }
}

UERadioAccessCapabilityInformation-IEs ::= SEQUENCE {
    ue-RadioAccessCapabilityInfo        OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList),
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START

maxMeasFreqsMN              INTEGER ::= 32  -- Maximum number of MN-configured measurement frequencies
maxMeasFreqsSN              INTEGER ::= 32  -- Maximum number of SN-configured measurement frequencies
maxMeasIdentitiesMN         INTEGER ::= 62  -- Maximum number of measurement identities that a UE can be configured with
maxCellPrep                 INTEGER ::= 32  -- Maximum number of cells prepared for handover

-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-STOP
-- TAG_NR-INTER-NODE-DEFINITIONS-END-START

END

-- TAG_NR-INTER-NODE-DEFINITIONS-END-STOP
-- TAG-NAME-START

-- TAG-NAME-STOP
