NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
 
BEGIN

-- 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,
        dlDedicatedMessageSegment-r16       DLDedicatedMessageSegment-r16,
        ueInformationRequest-r16            UEInformationRequest-r16,
        dlInformationTransferMRDC-r16       DLInformationTransferMRDC-r16,
        loggedMeasurementConfiguration-r16  LoggedMeasurementConfiguration-r16,
                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,
        failureInformation              FailureInformation, 
        ulInformationTransferMRDC       ULInformationTransferMRDC,
        scgFailureInformation           SCGFailureInformation,
        scgFailureInformationEUTRA      SCGFailureInformationEUTRA
    },
    messageClassExtension           CHOICE {
        c2                              CHOICE {
            ulDedicatedMessageSegment-r16    ULDedicatedMessageSegment-r16,
            dedicatedSIBRequest-r16         DedicatedSIBRequest-r16,
            mcgFailureInformation-r16       MCGFailureInformation-r16,
            ueInformationResponse-r16       UEInformationResponse-r16,
            sidelinkUEInformationNR-r16     SidelinkUEInformationNR-r16,
            ulInformationTransferIRAT-r16   ULInformationTransferIRAT-r16,
            iabOtherInformation-r16         IABOtherInformation-r16,
            spare9 NULL, spare8 NULL, spare7 NULL, spare6 NULL,
            spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
        },
        messageClassExtensionFuture-r16    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-DEDICATEDSIBREQUEST-START

DedicatedSIBRequest-r16 ::=      SEQUENCE {
    criticalExtensions               CHOICE {
        dedicatedSIBRequest-r16          DedicatedSIBRequest-r16-IEs,
        criticalExtensionsFuture         SEQUENCE {}
    }
}

DedicatedSIBRequest-r16-IEs ::=  SEQUENCE {
    onDemandSIB-RequestList-r16       SEQUENCE {

        requestedSIB-List-r16            SEQUENCE (SIZE (1..maxOnDemandSIB-r16)) OF SIB-ReqInfo-r16                OPTIONAL,
        requestedPosSIB-List-r16         SEQUENCE (SIZE (1..maxOnDemandPosSIB-r16)) OF PosSIB-ReqInfo-r16          OPTIONAL
    } OPTIONAL,
    lateNonCriticalExtension         OCTET STRING             OPTIONAL,
    nonCriticalExtension             SEQUENCE {}              OPTIONAL
}

SIB-ReqInfo-r16 ::=                   ENUMERATED { sib12, sib13, sib14, spare5, spare4, spare3, spare2, spare1 }

PosSIB-ReqInfo-r16 ::=       SEQUENCE {
    gnss-id-r16                  GNSS-ID-r16                  OPTIONAL,
    sbas-id-r16                  SBAS-ID-r16                  OPTIONAL,
    posSibType-r16               ENUMERATED { posSibType1-1, posSibType1-2, posSibType1-3, posSibType1-4, posSibType1-5, posSibType1-6,
                                              posSibType1-7, posSibType1-8, posSibType2-1, posSibType2-2, posSibType2-3, posSibType2-4,
                                              posSibType2-5, posSibType2-6, posSibType2-7, posSibType2-8, posSibType2-9, posSibType2-10,
                                              posSibType2-11, posSibType2-12, posSibType2-13, posSibType2-14, posSibType2-15,
                                              posSibType2-16, posSibType2-17, posSibType2-18, posSibType2-19, posSibType2-20,
                                              posSibType2-21, posSibType2-22, posSibType2-23, posSibType3-1, posSibType4-1,
                                              posSibType5-1, posSibType6-1, posSibType6-2, posSibType6-3,... }
}

-- TAG-DEDICATEDSIBREQUEST-STOP
-- TAG-DLDEDICATEDMESSAGESEGMENT-START


DLDedicatedMessageSegment-r16 ::=       SEQUENCE {
    criticalExtensions                      CHOICE {
        dlDedicatedMessageSegment-r16           DLDedicatedMessageSegment-r16-IEs,
        criticalExtensionsFuture                SEQUENCE {}
    }
}

DLDedicatedMessageSegment-r16-IEs ::=   SEQUENCE {
    segmentNumber-r16                       INTEGER(0..4),
    rrc-MessageSegmentContainer-r16         OCTET STRING,
    rrc-MessageSegmentType-r16              ENUMERATED {notLastSegment, lastSegment},
    lateNonCriticalExtension                OCTET STRING                                  OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                                   OPTIONAL
}

-- TAG-DLDEDICATEDMESSAGESEGMENT-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                DLInformationTransfer-v1610-IEs     OPTIONAL
}

DLInformationTransfer-v1610-IEs ::= SEQUENCE {
    referenceTimeInfo-r16               ReferenceTimeInfo-r16               OPTIONAL,   -- Need R
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-DLINFORMATIONTRANSFER-STOP
-- TAG-DLINFORMATIONTRANSFERMRDC-START

DLInformationTransferMRDC-r16 ::=       SEQUENCE {
    criticalExtensions                      CHOICE {
        c1                                      CHOICE {
            dlInformationTransferMRDC-r16           DLInformationTransferMRDC-r16-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture                SEQUENCE {}
    }
}

DLInformationTransferMRDC-r16-IEs::=    SEQUENCE {
    dl-DCCH-MessageNR-r16                   OCTET STRING             OPTIONAL, -- Need N
    dl-DCCH-MessageEUTRA-r16                OCTET STRING             OPTIONAL, -- Need N
    lateNonCriticalExtension                OCTET STRING             OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}              OPTIONAL
}

-- TAG-DLINFORMATIONTRANSFERMRDC-STOP
-- TAG-FAILUREINFORMATION-START

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

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

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

FailureInformation-v1610-IEs ::= SEQUENCE {
    failureInfoDAPS-r16              FailureInfoDAPS-r16        OPTIONAL,
    nonCriticalExtension             SEQUENCE {}                OPTIONAL
}

FailureInfoDAPS-r16 ::=          SEQUENCE {
    failureType-r16                  ENUMERATED {daps-failure, spare3, spare2, spare1}
}

-- TAG-FAILUREINFORMATION-STOP
-- TAG-IABOTHERINFORMATION-START

IABOtherInformation-r16 ::=     SEQUENCE {
    rrc-TransactionIdentifier       RRC-TransactionIdentifier,
    criticalExtensions              CHOICE {
        iabOtherInformation-r16         IABOtherInformation-r16-IEs,
        criticalExtensionsFuture        SEQUENCE {}
    }
}

IABOtherInformation-r16-IEs ::=         SEQUENCE {
    ip-InfoType                             CHOICE {
        iab-IP-Request-r16                      SEQUENCE {
            iab-IPv4-AddressNumReq-r16              IAB-IPAddressNumReq-r16                 OPTIONAL,
            iab-IPv6-AddressReq-r16                 CHOICE {
                iab-IPv6-AddressNumReq-r16              IAB-IPAddressNumReq-r16,
                iab-IPv6-AddressPrefixReq-r16           IAB-IPAddressPrefixReq-r16,
            ...
            }                                                                               OPTIONAL
        },
        iab-IP-Report-r16               SEQUENCE {
            iab-IPv4-AddressReport-r16      IAB-IP-AddressAndTraffic-r16                    OPTIONAL,
            iab-IPv6-Report-r16             CHOICE {
                iab-IPv6-AddressReport-r16      IAB-IP-AddressAndTraffic-r16,
                iab-IPv6-PrefixReport-r16       IAB-IP-PrefixAndTraffic-r16,
            ...
            }                                                                               OPTIONAL
        },
        ...
    },
    lateNonCriticalExtension        OCTET STRING                                            OPTIONAL,
    nonCriticalExtension            SEQUENCE {}                                             OPTIONAL
}

IAB-IPAddressNumReq-r16 ::=     SEQUENCE {
    all-Traffic-NumReq-r16          INTEGER (1..8)                                  OPTIONAL,
    f1-C-Traffic-NumReq-r16         INTEGER (1..8)                                  OPTIONAL,
    f1-U-Traffic-NumReq-r16         INTEGER (1..8)                                  OPTIONAL,
    non-F1-Traffic-NumReq-r16       INTEGER (1..8)                                  OPTIONAL,
    ...
}

IAB-IPAddressPrefixReq-r16 ::=  SEQUENCE {
    all-Traffic-PrefixReq-r16       ENUMERATED {true}                               OPTIONAL,
    f1-C-Traffic-PrefixReq-r16      ENUMERATED {true}                               OPTIONAL,
    f1-U-Traffic-PrefixReq-r16      ENUMERATED {true}                               OPTIONAL,
    non-F1-Traffic-PrefixReq-r16    ENUMERATED {true}                               OPTIONAL,
    ...
}

IAB-IP-AddressAndTraffic-r16 ::= SEQUENCE {
    all-Traffic-IAB-IP-Address-r16  SEQUENCE (SIZE(1..8)) OF IAB-IP-Address-r16     OPTIONAL,
    f1-C-Traffic-IP-Address-r16     SEQUENCE (SIZE(1..8)) OF IAB-IP-Address-r16     OPTIONAL,
    f1-U-Traffic-IP-Address-r16     SEQUENCE (SIZE(1..8)) OF IAB-IP-Address-r16     OPTIONAL,
    non-F1-Traffic-IP-Address-r16   SEQUENCE (SIZE(1..8)) OF IAB-IP-Address-r16     OPTIONAL
}

IAB-IP-PrefixAndTraffic-r16 ::= SEQUENCE {
    all-Traffic-IAB-IP-Address-r16  IAB-IP-Address-r16                              OPTIONAL,
    f1-C-Traffic-IP-Address-r16     IAB-IP-Address-r16                              OPTIONAL,
    f1-U-Traffic-IP-Address-r16     IAB-IP-Address-r16                              OPTIONAL,
    non-F1-Traffic-IP-Address-r16   IAB-IP-Address-r16                              OPTIONAL
}

-- TAG-IABOTHERINFORMATION-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-LOGGEDMEASUREMENTCONFIGURATION-START

LoggedMeasurementConfiguration-r16 ::=  SEQUENCE {
    criticalExtensions                      CHOICE {
        loggedMeasurementConfiguration-r16      LoggedMeasurementConfiguration-r16-IEs,
        criticalExtensionsFuture                SEQUENCE {}
    }
}

LoggedMeasurementConfiguration-r16-IEs ::=  SEQUENCE {
    traceReference-r16                          TraceReference-r16,
    traceRecordingSessionRef-r16                OCTET STRING (SIZE (2)),
    tce-Id-r16                                  OCTET STRING (SIZE (1)),
    absoluteTimeInfo-r16                        AbsoluteTimeInfo-r16,
    areaConfiguration-r16                       AreaConfiguration-r16                    OPTIONAL,  --Need R
    plmn-IdentityList-r16                       PLMN-IdentityList2-r16                   OPTIONAL,  --Need R
    bt-NameList-r16                             SetupRelease {BT-NameList-r16}           OPTIONAL,  --Need M
    wlan-NameList-r16                           SetupRelease {WLAN-NameList-r16}         OPTIONAL,  --Need M
    sensor-NameList-r16                         SetupRelease {Sensor-NameList-r16}       OPTIONAL,  --Need M
    loggingDuration-r16                         LoggingDuration-r16,
    reportType                                  CHOICE {
        periodical                                  LoggedPeriodicalReportConfig-r16,
        eventTriggered                              LoggedEventTriggerConfig-r16,
        ...
    },
    lateNonCriticalExtension                    OCTET STRING                             OPTIONAL,
    nonCriticalExtension                        SEQUENCE {}                              OPTIONAL
}

LoggedPeriodicalReportConfig-r16 ::=            SEQUENCE {
    loggingInterval-r16                             LoggingInterval-r16,
    ...
 }

LoggedEventTriggerConfig-r16 ::=                SEQUENCE {
    eventType-r16                                   EventType-r16,
    loggingInterval-r16                             LoggingInterval-r16,
    ...
}

EventType-r16 ::= CHOICE {
    outOfCoverage     NULL,
    eventL1           SEQUENCE {
        l1-Threshold      MeasTriggerQuantity,
        hysteresis        Hysteresis,
        timeToTrigger     TimeToTrigger
    },
    ...
}

-- TAG-LOGGEDMEASUREMENTCONFIGURATION-STOP
-- TAG-MCGFAILUREINFORMATION-START

MCGFailureInformation-r16 ::=    SEQUENCE {
    criticalExtensions               CHOICE {
        mcgFailureInformation-r16        MCGFailureInformation-r16-IEs,
        criticalExtensionsFuture         SEQUENCE {}
    }
}

MCGFailureInformation-r16-IEs ::= SEQUENCE {
    failureReportMCG-r16              FailureReportMCG-r16                             OPTIONAL,
    lateNonCriticalExtension          OCTET STRING                                     OPTIONAL,
    nonCriticalExtension              SEQUENCE {}                                      OPTIONAL
}

FailureReportMCG-r16 ::=          SEQUENCE {
    failureType-r16                   ENUMERATED {t310-Expiry, randomAccessProblem, rlc-MaxNumRetx,
                                                         t312-Expiry-r16, lbt-Failure-r16, beamFailureRecoveryFailure-r16,
                                                  bh-RLF-r16, spare1}                                                          OPTIONAL,
    measResultFreqList-r16            MeasResultList2NR                                                                     OPTIONAL,
    measResultFreqListEUTRA-r16       MeasResultList2EUTRA                                                                  OPTIONAL,
    measResultSCG-r16                 OCTET STRING (CONTAINING MeasResultSCG-Failure)                                       OPTIONAL,
    measResultSCG-EUTRA-r16           OCTET STRING                                                                          OPTIONAL,
    measResultFreqListUTRA-FDD-r16    MeasResultList2UTRA                                                                   OPTIONAL,
    ...
}

MeasResultList2UTRA ::=    SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-FDD-r16

MeasResult2UTRA-FDD-r16 ::=       SEQUENCE {
    carrierFreq-r16                   ARFCN-ValueUTRA-FDD-r16,
    measResultNeighCellList-r16       MeasResultListUTRA-FDD-r16
}

MeasResultList2EUTRA ::=          SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r16

-- TAG-MCGFAILUREINFORMATION-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-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-MOBILITYFROMNRCOMMAND-START

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

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

MobilityFromNRCommand-v1610-IEs ::=     SEQUENCE {
    voiceFallbackIndication-r16             ENUMERATED {true}                                       OPTIONAL,   -- Need N
    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,
    fullI-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                        RRCReestablishmentComplete-v1610-IEs    OPTIONAL
}

RRCReestablishmentComplete-v1610-IEs ::=    SEQUENCE {
    ueMeasurementsAvailable-r16                 UEMeasurementsAvailable-r16     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, -- Cond SCG
    measConfig                              MeasConfig                                                             OPTIONAL, -- Need M
    lateNonCriticalExtension                OCTET STRING                                                           OPTIONAL,
    nonCriticalExtension                    RRCReconfiguration-v1530-IEs                                           OPTIONAL
}

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

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

RRCReconfiguration-v1560-IEs ::=         SEQUENCE {
    mrdc-SecondaryCellGroupConfig            SetupRelease { MRDC-SecondaryCellGroupConfig }                        OPTIONAL,   -- Need M
    radioBearerConfig2                       OCTET STRING (CONTAINING RadioBearerConfig)                           OPTIONAL,   -- Need M
    sk-Counter                               SK-Counter                                                            OPTIONAL,   -- Need N
    nonCriticalExtension                     RRCReconfiguration-v1610-IEs                                          OPTIONAL
}
RRCReconfiguration-v1610-IEs ::=        SEQUENCE {
    otherConfig-v1610                       OtherConfig-v1610                                                    OPTIONAL, -- Need M
    bap-Config-r16                          SetupRelease { BAP-Config-r16 }                                      OPTIONAL, -- Need M
    iab-IP-AddressConfigurationList-r16     IAB-IP-AddressConfigurationList-r16                                  OPTIONAL, -- Need M
    conditionalReconfiguration-r16          ConditionalReconfiguration-r16                                       OPTIONAL, -- Need M
    daps-SourceRelease-r16                  ENUMERATED{true}                                                     OPTIONAL, -- Need N
    t316-r16                                SetupRelease {T316-r16}                                              OPTIONAL, -- Need M
    needForGapsConfigNR-r16                 SetupRelease {NeedForGapsConfigNR-r16}                               OPTIONAL, -- Need M
    onDemandSIB-Request-r16                 SetupRelease { OnDemandSIB-Request-r16 }                             OPTIONAL, -- Need M
    dedicatedPosSysInfoDelivery-r16         OCTET STRING (CONTAINING PosSystemInformation-r16-IEs)               OPTIONAL, -- Need N
    sl-ConfigDedicatedNR-r16                SetupRelease {SL-ConfigDedicatedNR-r16}                              OPTIONAL, -- Need M
    sl-ConfigDedicatedEUTRA-Info-r16        SetupRelease {SL-ConfigDedicatedEUTRA-Info-r16}                      OPTIONAL, -- Need M
    nonCriticalExtension                    SEQUENCE {}                                                          OPTIONAL
}

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

BAP-Config-r16 ::=                      SEQUENCE {
    bap-Address-r16                         BIT STRING (SIZE (10))                                    OPTIONAL, -- Need M
    defaultUL-BAProutingID-r16              BAP-Routing-ID-r16                                        OPTIONAL, -- Need M
    defaultUL-BH-RLC-Channel-r16            BH-RLC-ChannelID-r16                                      OPTIONAL, -- Need M
    flowControlFeedbackType-r16             ENUMERATED {perBH-RLC-Channel, perRoutingID, both}        OPTIONAL, -- Need R
    ...
}

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

OnDemandSIB-Request-r16 ::=                  SEQUENCE {
    onDemandSIB-RequestProhibitTimer-r16         ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30}
}

T316-r16 ::=         ENUMERATED {ms50, ms100, ms200, ms300, ms400, ms500, ms600, ms1000, ms1500, ms2000}

IAB-IP-AddressConfigurationList-r16 ::= SEQUENCE {
    iab-IP-AddressToAddModList-r16      SEQUENCE (SIZE(1..maxIAB-IP-Address-r16)) OF IAB-IP-AddressConfiguration-r16 OPTIONAL, -- Need N
    iab-IP-AddressToReleaseList-r16     SEQUENCE (SIZE(1..maxIAB-IP-Address-r16)) OF IAB-IP-AddressIndex-r16         OPTIONAL, -- Need N
    ...
}

IAB-IP-AddressConfiguration-r16 ::=     SEQUENCE {
    iab-IP-AddressIndex-r16                 IAB-IP-AddressIndex-r16,
    iab-IP-Address-r16                      IAB-IP-Address-r16                                                OPTIONAL,  -- Need M
    iab-IP-Usage-r16                        IAB-IP-Usage-r16                                                  OPTIONAL,  -- Need M
    iab-donor-DU-BAP-Address-r16            BIT STRING (SIZE(10))                                             OPTIONAL,  -- Need M
...
}

SL-ConfigDedicatedEUTRA-Info-r16 ::=            SEQUENCE {
    sl-ConfigDedicatedEUTRA-r16                    OCTET STRING                                              OPTIONAL,  -- Need M
    sl-TimeOffsetEUTRA-List-r16                    SEQUENCE (SIZE (8)) OF SL-TimeOffsetEUTRA-r16             OPTIONAL    -- Need M
}

SL-TimeOffsetEUTRA-r16 ::=        ENUMERATED {ms0, ms0dot25, ms0dot5, ms0dot625, ms0dot75, ms1, ms1dot25, ms1dot5, ms1dot75,
                                              ms2, ms2dot5, ms3, ms4, ms5, ms6, ms8, ms10, ms20}

-- 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                        RRCReconfigurationComplete-v1560-IEs                                    OPTIONAL
}

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

RRCReconfigurationComplete-v1610-IEs ::=    SEQUENCE {
    ueMeasurementsAvailable-r16                 UEMeasurementsAvailable-r16                                             OPTIONAL,
    needForGapsInfoNR-r16                       NeedForGapsInfoNR-r16                                                   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
}

-- 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                    RRCRelease-v1540-IEs                                                OPTIONAL
}

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

RRCRelease-v1610-IEs ::=            SEQUENCE {
    voiceFallbackIndication-r16        ENUMERATED {true}                             OPTIONAL, -- Need N
    measIdleConfig-r16                 SetupRelease {MeasIdleConfigDedicated-r16}    OPTIONAL, -- Need M
    nonCriticalExtension               SEQUENCE {}                                   OPTIONAL
}

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

-- TAG-RRCRELEASE-STOP
-- TAG-RRCRESUME-START

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

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

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

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

RRCResume-v1610-IEs ::=             SEQUENCE {
    idleModeMeasurementReq-r16          ENUMERATED {true}                                                       OPTIONAL, -- Need N
    restoreMCG-SCells-r16               ENUMERATED {true}                                                       OPTIONAL, -- Need N
    restoreSCG-r16                      ENUMERATED {true}                                                       OPTIONAL, -- Need N
    mrdc-SecondaryCellGroup-r16         CHOICE {
        nr-SCG-r16                          OCTET STRING (CONTAINING RRCReconfiguration),
        eutra-SCG-r16                       OCTET STRING
    }                                                                                                           OPTIONAL, -- Cond RestoreSCG
    needForGapsConfigNR-r16             SetupRelease {NeedForGapsConfigNR-r16}                                  OPTIONAL, -- Need M
    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                    RRCResumeComplete-v1610-IEs                                             OPTIONAL
}

RRCResumeComplete-v1610-IEs ::=         SEQUENCE {
    idleMeasAvailable-r16                   ENUMERATED {true}                                                       OPTIONAL,
    measResultIdleEUTRA-r16                 MeasResultIdleEUTRA-r16                                                 OPTIONAL,
    measResultIdleNR-r16                    MeasResultIdleNR-r16                                                    OPTIONAL,
    scg-Response-r16                         CHOICE {
        nr-SCG-Response                         OCTET STRING (CONTAINING RRCReconfigurationComplete),
        eutra-SCG-Response                      OCTET STRING
    }                                                                                                               OPTIONAL,
    ueMeasurementsAvailable-r16             UEMeasurementsAvailable-r16                                             OPTIONAL,
    mobilityHistoryAvail-r16                ENUMERATED {true}                                                       OPTIONAL,
    mobilityState-r16                       ENUMERATED {normal, medium, high, spare}                                OPTIONAL,
    needForGapsInfoNR-r16                   NeedForGapsInfoNR-r16                                                   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                RRCSetupComplete-v1610-IEs                      OPTIONAL
}

RRCSetupComplete-v1610-IEs ::=      SEQUENCE {
    iab-NodeIndication-r16              ENUMERATED {true}                               OPTIONAL,
    idleMeasAvailable-r16               ENUMERATED {true}                               OPTIONAL,
    ueMeasurementsAvailable-r16         UEMeasurementsAvailable-r16                     OPTIONAL,
    mobilityHistoryAvail-r16            ENUMERATED {true}                               OPTIONAL,
    mobilityState-r16                   ENUMERATED {normal, medium, high, spare}        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-RRCSYSTEMINFOREQUEST-START

RRCSystemInfoRequest ::=            SEQUENCE {
    criticalExtensions                  CHOICE {
        rrcSystemInfoRequest                RRCSystemInfoRequest-IEs,
        criticalExtensionsFuture-r16        CHOICE {
            rrcPosSystemInfoRequest-r16         RRC-PosSystemInfoRequest-r16-IEs,
            criticalExtensionsFuture            SEQUENCE {}
        }
    }
}

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

RRC-PosSystemInfoRequest-r16-IEs ::=  SEQUENCE {
    requestedPosSI-List                   BIT STRING (SIZE (maxSI-Message)),  --32bits
    spare                                 BIT STRING (SIZE (11))
}

-- TAG-RRCSYSTEMINFOREQUEST-STOP
-- TAG-SCGFAILUREINFORMATION-START

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

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

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

FailureReportSCG ::=                       SEQUENCE {
    failureType                                    ENUMERATED {
                                                           t310-Expiry, randomAccessProblem,
                                                           rlc-MaxNumRetx,
                                                           synchReconfigFailureSCG, scg-ReconfigFailure,
                                                           srb3-IntegrityFailure, other-r16, spare1},
    measResultFreqList                           MeasResultFreqList                                               OPTIONAL,
    measResultSCG-Failure                       OCTET STRING (CONTAINING MeasResultSCG-Failure)                OPTIONAL,
    ...,
    [[
    locationInfo-r16                            LocationInfo-r16            OPTIONAL,
   failureType-v1610                        ENUMERATED {scg-lbtFailure-r16, beamFailureRecoveryFailure-r16, t312-Expiry-r16, bh-RLF-r16,
                                                        spare4, spare3, spare2, spare1}                     OPTIONAL
    ]]
}

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


-- TAG-SCGFAILUREINFORMATION-STOP
-- TAG-SCGFAILUREINFORMATIONEUTRA-START

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

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

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

FailureReportSCG-EUTRA ::=                       SEQUENCE {
    failureType                                        ENUMERATED {
                                                             t313-Expiry, randomAccessProblem,
                                                             rlc-MaxNumRetx, scg-ChangeFailure, 
                                                             scg-lbtFailure-r16, beamFailureRecoveryFailure-r16, 
                                                     t312-Expiry-r16, spare},
    measResultFreqListMRDC                            MeasResultFreqListFailMRDC                                          OPTIONAL,
    measResultSCG-FailureMRDC                        OCTET STRING                                                      OPTIONAL,
    ...,
    [[
    locationInfo-r16                                  LocationInfo-r16                                                    OPTIONAL
    ]]
}

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

-- TAG-SCGFAILUREINFORMATIONEUTRA-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 S
        q-RxLevMinSUL                       Q-RxLevMin                                                  OPTIONAL,   -- Need R
        q-QualMin                           Q-QualMin                                                   OPTIONAL,   -- Need S
        q-QualMinOffset                     INTEGER (1..8)                                              OPTIONAL    -- Need S
    }                                                                                                   OPTIONAL,   -- Cond Standalone
    cellAccessRelatedInfo               CellAccessRelatedInfo,
    connEstFailureControl               ConnEstFailureControl                                           OPTIONAL,   -- Need R
    si-SchedulingInfo                   SI-SchedulingInfo                                               OPTIONAL,   -- Need R
    servingCellConfigCommon             ServingCellConfigCommonSIB                                      OPTIONAL,   -- Need R
    ims-EmergencySupport                ENUMERATED {true}                                               OPTIONAL,   -- Need R
    eCallOverIMS-Support                ENUMERATED {true}                                               OPTIONAL,   -- Need R
    ue-TimersAndConstants               UE-TimersAndConstants                                           OPTIONAL,   -- Need R
    uac-BarringInfo                     SEQUENCE {
        uac-BarringForCommon                UAC-BarringPerCatList                                           OPTIONAL,   -- Need S
        uac-BarringPerPLMN-List             UAC-BarringPerPLMN-List                                         OPTIONAL,   -- Need S
        uac-BarringInfoSetList              UAC-BarringInfoSetList,
        uac-AccessCategory1-SelectionAssistanceInfo CHOICE {
            plmnCommon                           UAC-AccessCategory1-SelectionAssistanceInfo,
            individualPLMNList                   SEQUENCE (SIZE (2..maxPLMN)) OF UAC-AccessCategory1-SelectionAssistanceInfo
        }                                                                                                   OPTIONAL    -- Need S
    }                                                                                                   OPTIONAL,   -- Need R
    useFullResumeID                     ENUMERATED {true}                                               OPTIONAL,   -- Need R
    lateNonCriticalExtension            OCTET STRING                                                    OPTIONAL,
    nonCriticalExtension                SIB1-v1610-IEs                                                  OPTIONAL
}

SIB1-v1610-IEs ::=               SEQUENCE {
    idleModeMeasurementsEUTRA-r16    ENUMERATED{true}                                                   OPTIONAL,  -- Need R
    idleModeMeasurementsNR-r16       ENUMERATED{true}                                                   OPTIONAL,  -- Need R
    posSI-SchedulingInfo-r16         PosSI-SchedulingInfo-r16                                           OPTIONAL,  -- Need R
    nonCriticalExtension             SEQUENCE {}                                                        OPTIONAL
}

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

-- TAG-SIB1-STOP
-- TAG-SIDELINKUEINFORMATIONNR-START

SidelinkUEInformationNR-r16::=         SEQUENCE {
    criticalExtensions                  CHOICE {
        sidelinkUEInformationNR-r16         SidelinkUEInformationNR-r16-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

SidelinkUEInformationNR-r16-IEs ::=    SEQUENCE {
    sl-RxInterestedFreqList-r16            SL-InterestedFreqList-r16           OPTIONAL,
    sl-TxResourceReqList-r16               SL-TxResourceReqList-r16            OPTIONAL,
    sl-FailureList-r16                     SL-FailureList-r16                  OPTIONAL,
    lateNonCriticalExtension               OCTET STRING                        OPTIONAL,
    nonCriticalExtension                   SEQUENCE {}                         OPTIONAL
}

SL-InterestedFreqList-r16 ::=          SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16)

SL-TxResourceReqList-r16 ::=           SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-TxResourceReq-r16

SL-TxResourceReq-r16 ::=               SEQUENCE {
    sl-DestinationIdentity-r16             SL-DestinationIdentity-r16,
    sl-CastType-r16                        ENUMERATED {broadcast, groupcast, unicast, spare1},
    sl-RLC-ModeIndicationList-r16          SEQUENCE (SIZE (1.. maxNrofSLRB-r16)) OF SL-RLC-ModeIndication-r16         OPTIONAL,
    sl-QoS-InfoList-r16                    SEQUENCE (SIZE (1..maxNrofSL-QFIsPerDest-r16)) OF SL-QoS-Info-r16          OPTIONAL,
    sl-TypeTxSyncList-r16                  SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-TypeTxSync-r16                OPTIONAL,
    sl-TxInterestedFreqList-r16            SL-TxInterestedFreqList-r16                                                OPTIONAL,
    sl-CapabilityInformationSidelink-r16   OCTET STRING                                                               OPTIONAL
}

SL-TxInterestedFreqList-r16 ::=        SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF INTEGER (1..maxNrofFreqSL-r16)

SL-QoS-Info-r16 ::=                    SEQUENCE {
    sl-QoS-FlowIdentity-r16               SL-QoS-FlowIdentity-r16,
    sl-QoS-Profile-r16                    SL-QoS-Profile-r16                                                          OPTIONAL
}

SL-RLC-ModeIndication-r16 ::=          SEQUENCE {
    sl-Mode-r16                            CHOICE  {
        sl-AM-Mode-r16                         NULL,
        sl-UM-Mode-r16                         NULL
    },
    sl-QoS-InfoList-r16                SEQUENCE (SIZE (1..maxNrofSL-QFIsPerDest-r16)) OF SL-QoS-Info-r16
}

SL-FailureList-r16 ::=                 SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-Failure-r16

SL-Failure-r16 ::=                     SEQUENCE {
    sl-DestinationIdentity-r16             SL-DestinationIdentity-r16,
    sl-Failure-r16                         ENUMERATED {rlf,configFailure, spare6, spare5, spare4, spare3, spare2, spare1}
}

-- TAG-SIDELINKUEINFORMATIONNR-STOP
-- TAG-SYSTEMINFORMATION-START

SystemInformation ::=               SEQUENCE {
    criticalExtensions                  CHOICE {
        systemInformation                   SystemInformation-IEs,
        criticalExtensionsFuture-r16    CHOICE {
            posSystemInformation-r16        PosSystemInformation-r16-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,
        ...,
        sib10-v1610                         SIB10-r16,
        sib11-v1610                         SIB11-r16,
        sib12-v1610                         SIB12-r16,
        sib13-v1610                         SIB13-r16,
        sib14-v1610                         SIB14-r16
    },

    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

-- TAG-SYSTEMINFORMATION-STOP
-- TAG-UEASSISTANCEINFORMATION-START

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

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

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

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

OverheatingAssistance ::=           SEQUENCE {
    reducedMaxCCs                       ReducedMaxCCs-r16                   OPTIONAL,
    reducedMaxBW-FR1                    ReducedMaxBW-FRx-r16                OPTIONAL,
    reducedMaxBW-FR2                    ReducedMaxBW-FRx-r16                OPTIONAL,
    reducedMaxMIMO-LayersFR1            SEQUENCE {
        reducedMIMO-LayersFR1-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR1-UL            MIMO-LayersUL
    } OPTIONAL,
    reducedMaxMIMO-LayersFR2            SEQUENCE {
        reducedMIMO-LayersFR2-DL            MIMO-LayersDL,
        reducedMIMO-LayersFR2-UL            MIMO-LayersUL
    } OPTIONAL
}

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

UEAssistanceInformation-v1610-IEs ::= SEQUENCE {
    idc-Assistance-r16                  IDC-Assistance-r16                  OPTIONAL,
    drx-Preference-r16                  DRX-Preference-r16                  OPTIONAL,
    maxBW-Preference-r16                MaxBW-Preference-r16                OPTIONAL,
    maxCC-Preference-r16                MaxCC-Preference-r16                OPTIONAL,
    maxMIMO-LayerPreference-r16         MaxMIMO-LayerPreference-r16         OPTIONAL,
    minSchedulingOffsetPreference-r16   MinSchedulingOffsetPreference-r16   OPTIONAL,
    releasePreference-r16               ReleasePreference-r16               OPTIONAL,
    sl-UE-AssistanceInformationNR-r16   SL-UE-AssistanceInformationNR-r16   OPTIONAL,
    referenceTimeInfoPreference-r16     BOOLEAN                             OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                         OPTIONAL
}

IDC-Assistance-r16 ::=                  SEQUENCE {
    affectedCarrierFreqList-r16             AffectedCarrierFreqList-r16               OPTIONAL,
    affectedCarrierFreqCombList-r16         AffectedCarrierFreqCombList-r16           OPTIONAL,
    ...
}

AffectedCarrierFreqList-r16 ::= SEQUENCE (SIZE (1.. maxFreqIDC-r16)) OF AffectedCarrierFreq-r16

AffectedCarrierFreq-r16 ::=     SEQUENCE {
    carrierFreq-r16                 ARFCN-ValueNR,
    interferenceDirection-r16       ENUMERATED {nr, other, both, spare}
}

AffectedCarrierFreqCombList-r16 ::= SEQUENCE (SIZE (1..maxCombIDC-r16)) OF AffectedCarrierFreqComb-r16

AffectedCarrierFreqComb-r16 ::=     SEQUENCE {
    affectedCarrierFreqComb-r16         SEQUENCE (SIZE (2..maxNrofServingCells)) OF  ARFCN-ValueNR    OPTIONAL,
    victimSystemType-r16                VictimSystemType-r16
}

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

DRX-Preference-r16 ::=              SEQUENCE {
    preferredDRX-InactivityTimer-r16    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} OPTIONAL,
    preferredDRX-LongCycle-r16          ENUMERATED {
                                            ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512,
                                            ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, spare12, spare11, spare10,
                                            spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
    preferredDRX-ShortCycle-r16         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 } OPTIONAL,
    preferredDRX-ShortCycleTimer-r16    INTEGER (1..16)    OPTIONAL
}

MaxBW-Preference-r16 ::=            SEQUENCE {
    reducedMaxBW-FR1-r16                ReducedMaxBW-FRx-r16                     OPTIONAL,
    reducedMaxBW-FR2-r16                ReducedMaxBW-FRx-r16                     OPTIONAL
}

MaxCC-Preference-r16 ::=            SEQUENCE {
    reducedMaxCCs-r16                   ReducedMaxCCs-r16                        OPTIONAL
}

MaxMIMO-LayerPreference-r16 ::=     SEQUENCE {
    reducedMaxMIMO-LayersFR1-r16        SEQUENCE {
        reducedMIMO-LayersFR1-DL-r16        INTEGER (1..8),
        reducedMIMO-LayersFR1-UL-r16        INTEGER (1..4)
    } OPTIONAL,
    reducedMaxMIMO-LayersFR2-r16        SEQUENCE {
        reducedMIMO-LayersFR2-DL-r16        INTEGER (1..8),
        reducedMIMO-LayersFR2-UL-r16        INTEGER (1..4)
    } OPTIONAL
}

MinSchedulingOffsetPreference-r16 ::= SEQUENCE {
    preferredK0-r16                       SEQUENCE {
        preferredK0-SCS-15kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}              OPTIONAL,
        preferredK0-SCS-30kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}              OPTIONAL,
        preferredK0-SCS-60kHz-r16             ENUMERATED {sl2, sl4, sl8, sl12}             OPTIONAL,
        preferredK0-SCS-120kHz-r16            ENUMERATED {sl2, sl4, sl8, sl12}             OPTIONAL
    }                                                                                  OPTIONAL,
    preferredK2-r16                       SEQUENCE {
        preferredK2-SCS-15kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}             OPTIONAL,
        preferredK2-SCS-30kHz-r16             ENUMERATED {sl1, sl2, sl4, sl6}             OPTIONAL,
        preferredK2-SCS-60kHz-r16             ENUMERATED {sl2, sl4, sl8, sl12}            OPTIONAL,
        preferredK2-SCS-120kHz-r16            ENUMERATED {sl2, sl4, sl8, sl12}            OPTIONAL
    }                                                                                 OPTIONAL
}

ReleasePreference-r16 ::=           SEQUENCE {
    preferredRRC-State-r16              ENUMERATED {idle, inactive, connected, outOfConnected}
}

ReducedMaxBW-FRx-r16 ::=            SEQUENCE {
    reducedBW-DL-r16                    ReducedAggregatedBandwidth,
    reducedBW-UL-r16                    ReducedAggregatedBandwidth
}

ReducedMaxCCs-r16 ::=               SEQUENCE {
    reducedCCsDL-r16                    INTEGER (0..31),
    reducedCCsUL-r16                    INTEGER (0..31)
}

SL-UE-AssistanceInformationNR-r16 ::= SEQUENCE (SIZE (1..maxNrofTrafficPattern-r16)) OF SL-TrafficPatternInfo-r16

SL-TrafficPatternInfo-r16::=          SEQUENCE {
    trafficPeriodicity-r16                ENUMERATED {ms20,ms50, ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000},
    timingOffset-r16                      INTEGER (0..10239),
    messageSize-r16                       BIT STRING (SIZE (8)),
    sl-QoS-FlowIdentity-r16               SL-QoS-FlowIdentity-r16
}

-- 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,
    ue-CapabilityEnquiryExt             OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)                 OPTIONAL
}

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

UECapabilityEnquiry-v1610-IEs ::=   SEQUENCE {
    rrc-SegAllowed-r16                    ENUMERATED {enabled}           OPTIONAL, -- Need N
    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-UEINFORMATIONREQUEST-START

UEInformationRequest-r16 ::=     SEQUENCE {
    rrc-TransactionIdentifier        RRC-TransactionIdentifier,
    criticalExtensions               CHOICE {
        ueInformationRequest-r16         UEInformationRequest-r16-IEs,
        criticalExtensionsFuture         SEQUENCE {}
    }
}

UEInformationRequest-r16-IEs ::= SEQUENCE {
    idleModeMeasurementReq-r16       ENUMERATED{true}                         OPTIONAL, -- Need N
    logMeasReportReq-r16             ENUMERATED {true}                        OPTIONAL, -- Need N
    connEstFailReportReq-r16         ENUMERATED {true}                        OPTIONAL, -- Need N
    ra-ReportReq-r16                 ENUMERATED {true}                        OPTIONAL, -- Need N
    rlf-ReportReq-r16                ENUMERATED {true}                        OPTIONAL, -- Need N
    mobilityHistoryReportReq-r16       ENUMERATED {true}                       OPTIONAL, -- Need N
    lateNonCriticalExtension         OCTET STRING                             OPTIONAL,
    nonCriticalExtension             SEQUENCE {}                              OPTIONAL
}

-- TAG-UEINFORMATIONREQUEST-STOP
-- TAG-UEINFORMATIONRESPONSE-START

UEInformationResponse-r16 ::=        SEQUENCE {
    rrc-TransactionIdentifier            RRC-TransactionIdentifier,
    criticalExtensions                   CHOICE {
        ueInformationResponse-r16            UEInformationResponse-r16-IEs,
        criticalExtensionsFuture             SEQUENCE {}
    }
}

UEInformationResponse-r16-IEs ::=    SEQUENCE {
    measResultIdleEUTRA-r16              MeasResultIdleEUTRA-r16             OPTIONAL,
    measResultIdleNR-r16                 MeasResultIdleNR-r16                OPTIONAL,
    logMeasReport-r16                    LogMeasReport-r16                   OPTIONAL,
    connEstFailReport-r16                ConnEstFailReport-r16               OPTIONAL,
    ra-ReportList-r16                    RA-ReportList-r16                   OPTIONAL,
    rlf-Report-r16                       RLF-Report-r16                      OPTIONAL,
    mobilityHistoryReport-r16            MobilityHistoryReport-r16           OPTIONAL,
    lateNonCriticalExtension             OCTET STRING                        OPTIONAL,
    nonCriticalExtension                 SEQUENCE {}                         OPTIONAL
}

LogMeasReport-r16 ::=                SEQUENCE {
    absoluteTimeStamp-r16                AbsoluteTimeInfo-r16,
    traceReference-r16                   TraceReference-r16,
    traceRecordingSessionRef-r16         OCTET STRING (SIZE (2)),
    tce-Id-r16                           OCTET STRING (SIZE (1)),
    logMeasInfoList-r16                  LogMeasInfoList-r16,
    logMeasAvailable-r16                 ENUMERATED {true}                   OPTIONAL,
    logMeasAvailableBT-r16               ENUMERATED {true}                   OPTIONAL,
    logMeasAvailableWLAN-r16             ENUMERATED {true}                   OPTIONAL,
    ...
}

LogMeasInfoList-r16 ::=              SEQUENCE (SIZE (1..maxLogMeasReport-r16)) OF LogMeasInfo-r16

LogMeasInfo-r16 ::=                  SEQUENCE {
    locationInfo-r16                     LocationInfo-r16                    OPTIONAL,
    relativeTimeStamp-r16                INTEGER (0..7200),
    servCellIdentity-r16                 CGI-Info-Logging-r16                OPTIONAL,
    measResultServingCell-r16            MeasResultServingCell-r16           OPTIONAL,
    measResultNeighCells-r16             SEQUENCE {
        measResultNeighCellListNR            MeasResultListLogging2NR-r16        OPTIONAL,
        measResultNeighCellListEUTRA         MeasResultList2EUTRA-r16            OPTIONAL
    },
    anyCellSelectionDetected-r16         ENUMERATED {true}                   OPTIONAL
}

ConnEstFailReport-r16 ::=            SEQUENCE {
    measResultFailedCell-r16             MeasResultFailedCell-r16,
    locationInfo-r16                     LocationInfo-r16                    OPTIONAL,
    measResultNeighCells-r16             SEQUENCE {
        measResultNeighCellListNR            MeasResultList2NR-r16               OPTIONAL,
        measResultNeighCellListEUTRA         MeasResultList2EUTRA-r16            OPTIONAL
    },
    numberOfConnFail-r16                 INTEGER (1..8),
    perRAInfoList-r16                       PerRAInfoList-r16,
    timeSinceFailure-r16                 TimeSinceFailure-r16,
    ...
}

MeasResultServingCell-r16 ::=        SEQUENCE {
    resultsSSB-Cell                      MeasQuantityResults,
    resultsSSB                           SEQUENCE{
        best-ssb-Index                       SSB-Index,
        best-ssb-Results                     MeasQuantityResults,
        numberOfGoodSSB                      INTEGER (1..maxNrofSSBs-r16)
    }                                                                        OPTIONAL
}

MeasResultFailedCell-r16 ::=         SEQUENCE {
    cgi-Info                             CGI-Info-Logging-r16,
    measResult-r16                       SEQUENCE {
        cellResults-r16                      SEQUENCE{
            resultsSSB-Cell-r16                  MeasQuantityResults
        },
        rsIndexResults-r16                   SEQUENCE{
            resultsSSB-Indexes-r16               ResultsPerSSB-IndexList
        }
    }
}

RA-ReportList-r16 ::= SEQUENCE (SIZE (1..maxRAReport-r16)) OF RA-Report-r16

RA-Report-r16 ::=                    SEQUENCE {
    cellId-r16                           CGI-Info-Logging-r16,
    ra-InformationCommon-r16             RA-InformationCommon-r16,
    raPurpose-r16                        ENUMERATED {accessRelated, beamFailureRecovery, reconfigurationWithSync, ulUnSynchronized,
                                                    schedulingRequestFailure, noPUCCHResourceAvailable, requestForOtherSI,
                                                    spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}
}

RA-InformationCommon-r16 ::=         SEQUENCE {
    absoluteFrequencyPointA-r16          ARFCN-ValueNR,
    locationAndBandwidth-r16             INTEGER (0..37949),
    subcarrierSpacing-r16                SubcarrierSpacing,
    msg1-FrequencyStart-r16              INTEGER (0..maxNrofPhysicalResourceBlocks-1)     OPTIONAL,
    msg1-FrequencyStartCFRA-r16          INTEGER (0..maxNrofPhysicalResourceBlocks-1)     OPTIONAL,
    msg1-SubcarrierSpacing-r16           SubcarrierSpacing                                OPTIONAL,
    msg1-SubcarrierSpacingCFRA-r16       SubcarrierSpacing                                OPTIONAL,
    msg1-FDM-r16                         ENUMERATED {one, two, four, eight}               OPTIONAL,
    msg1-FDMCFRA-r16                     ENUMERATED {one, two, four, eight}               OPTIONAL,
    perRAInfoList-r16                    PerRAInfoList-r16
}

PerRAInfoList-r16 ::= SEQUENCE (SIZE (1..200)) OF PerRAInfo-r16

PerRAInfo-r16 ::=                    CHOICE {
    perRASSBInfoList-r16                 PerRASSBInfo-r16,
    perRACSI-RSInfoList-r16              PerRACSI-RSInfo-r16
}

PerRASSBInfo-r16 ::=                 SEQUENCE {
    ssb-Index-r16                        SSB-Index,
    numberOfPreamblesSentOnSSB-r16       INTEGER (1..200),
    perRAAttemptInfoList-r16             PerRAAttemptInfoList-r16
}

PerRACSI-RSInfo-r16 ::=              SEQUENCE {
    csi-RS-Index-r16                     CSI-RS-Index,
    numberOfPreamblesSentOnCSI-RS-r16    INTEGER (1..200)
}

PerRAAttemptInfoList-r16 ::=         SEQUENCE (SIZE (1..200)) OF PerRAAttemptInfo-r16

PerRAAttemptInfo-r16 ::=             SEQUENCE {
    contentionDetected-r16               BOOLEAN                OPTIONAL,
    dlRSRPAboveThreshold-r16             BOOLEAN                OPTIONAL,
    ...
}

RLF-Report-r16 ::=                   CHOICE {
    nr-RLF-Report-r16                    SEQUENCE {
        measResultLastServCell-r16           MeasResultRLFNR-r16,
        measResultNeighCells-r16             SEQUENCE {
            measResultListNR-r16                 MeasResultList2NR-r16       OPTIONAL,
            measResultListEUTRA-r16              MeasResultList2EUTRA-r16    OPTIONAL
        }                                                OPTIONAL,
        c-RNTI-r16                           RNTI-Value,
        previousPCellId-r16                  CHOICE {
            nrPreviousCell-r16                   CGI-Info-Logging-r16,
            eutraPreviousCell-r16                CGI-InfoEUTRALogging
        }                                                                    OPTIONAL,
        failedPCellId-r16                    CHOICE {
            nrFailedPCellId-r16                  CHOICE {
                cellGlobalId-r16                     CGI-Info-Logging-r16,
                pci-arfcn-r16                        SEQUENCE {
                    physCellId-r16                       PhysCellId,
                    carrierFreq-r16                      ARFCN-ValueNR
                }
            },
            eutraFailedPCellId-r16           CHOICE {
                cellGlobalId-r16                 CGI-InfoEUTRALogging,
                pci-arfcn-r16                    SEQUENCE {
                    physCellId-r16                   EUTRA-PhysCellId,
                    carrierFreq-r16                  ARFCN-ValueEUTRA
                }
            }
        },
        reconnectCellId-r16                  CHOICE {
            nrReconnectCellId-r16                CGI-Info-Logging-r16,
            eutraReconnectCellId-r16             CGI-InfoEUTRALogging
        }                                                                                        OPTIONAL,
        timeUntilReconnection-16             TimeUntilReconnection-16                            OPTIONAL,
        reestablishmentCellId-r16            CGI-Info-Logging-r16                                OPTIONAL,
        timeConnFailure-r16                  INTEGER (0..1023)                                   OPTIONAL,
        timeSinceFailure-r16                 TimeSinceFailure-r16,
        connectionFailureType-r16            ENUMERATED {rlf, hof},
        rlf-Cause-r16                        ENUMERATED {t310-Expiry, randomAccessProblem, rlc-MaxNumRetx,
                                                         beamFailureRecoveryFailure, lbtFailure-r16,
                                                         bh-rlfRecoveryFailure, spare2, spare1},
        locationInfo-r16                     LocationInfo-r16                                    OPTIONAL,
        noSuitableCellFound-r16              ENUMERATED {true}                                   OPTIONAL,
        ra-InformationCommon-r16             RA-InformationCommon-r16                            OPTIONAL
    },
    eutra-RLF-Report-r16                 SEQUENCE {
        failedPCellId-EUTRA                  CGI-InfoEUTRALogging,
        measResult-RLF-Report-EUTRA-r16      OCTET STRING
    }
}

MeasResultList2NR-r16 ::=            SEQUENCE(SIZE (1..maxFreq)) OF MeasResult2NR-r16
MeasResultList2EUTRA-r16 ::=         SEQUENCE(SIZE (1..maxFreq)) OF MeasResult2EUTRA-r16

MeasResult2NR-r16 ::=                SEQUENCE {
    ssbFrequency-r16                     ARFCN-ValueNR                                           OPTIONAL,
    refFreqCSI-RS-r16                    ARFCN-ValueNR                                           OPTIONAL,
    measResultList-r16                   MeasResultListNR
}

MeasResultListLogging2NR-r16 ::=     SEQUENCE(SIZE (1..maxFreq)) OF MeasResultListLoggingNR-r16

MeasResultLogging2NR-r16 ::=         SEQUENCE {
    carrierFreq-r16                      ARFCN-ValueNR,
    measResultListLoggingNR-r16          MeasResultListLoggingNR-r16
}

MeasResultListLoggingNR-r16 ::=      SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultLoggingNR-r16

MeasResultLoggingNR-r16 ::=          SEQUENCE {
    physCellId-r16                       PhysCellId,
    resultsSSB-Cell-r16                  MeasQuantityResults,
    numberOfGoodSSB-r16                  INTEGER (1..maxNrofSSBs-r16) OPTIONAL
}

MeasResult2EUTRA-r16 ::=             SEQUENCE {
    carrierFreq-r16                      ARFCN-ValueEUTRA,
    measResultList-r16                   MeasResultListEUTRA
}

MeasResultRLFNR-r16 ::=              SEQUENCE {
    measResult-r16                       SEQUENCE {
        cellResults-r16                      SEQUENCE{
            resultsSSB-Cell-r16                  MeasQuantityResults                             OPTIONAL,
            resultsCSI-RS-Cell-r16               MeasQuantityResults                             OPTIONAL
        },
        rsIndexResults-r16                   SEQUENCE{
            resultsSSB-Indexes-r16               ResultsPerSSB-IndexList                         OPTIONAL,
            ssbRLMConfigBitmap-r16               BIT STRING (SIZE (64))                          OPTIONAL,
            resultsCSI-RS-Indexes-r16            ResultsPerCSI-RS-IndexList                      OPTIONAL,
            csi-rsRLMConfigBitmap-r16            BIT STRING (SIZE (96))                          OPTIONAL
        }                                                                                    OPTIONAL
    }
}

TimeSinceFailure-r16 ::= INTEGER (0..172800)

MobilityHistoryReport-r16 ::= VisitedCellInfoList-r16

TimeUntilReconnection-16 ::= INTEGER (0..172800)

-- TAG-UEINFORMATIONRESPONSE-STOP
-- TAG-ULDEDICATEDMESSAGESEGMENT-START

ULDedicatedMessageSegment-r16 ::=       SEQUENCE {
    criticalExtensions                      CHOICE {
        ulDedicatedMessageSegment-r16           ULDedicatedMessageSegment-r16-IEs,
        criticalExtensionsFuture                SEQUENCE {}
    }
}

ULDedicatedMessageSegment-r16-IEs ::=     SEQUENCE {
    segmentNumber-r16                         INTEGER (0..15),
    rrc-MessageSegmentContainer-r16           OCTET STRING,
    rrc-MessageSegmentType-r16                ENUMERATED {notLastSegment, lastSegment},
    lateNonCriticalExtension                  OCTET STRING                                OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                                   OPTIONAL
}

-- TAG-ULDEDICATEDMESSAGESEGMENT-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-ULINFORMATIONTRANSFERIRAT-START

ULInformationTransferIRAT-r16 ::=              SEQUENCE {
    criticalExtensions                                CHOICE {
        c1                                                   CHOICE {
            ulInformationTransferIRAT-r16                    ULInformationTransferIRAT-r16-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture                     SEQUENCE {}
    }
}

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

-- TAG-ULINFORMATIONTRANSFERIRAT-STOP
-- TAG-ULINFORMATIONTRANSFERMRDC-START

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

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

-- TAG-ULINFORMATIONTRANSFERMRDC-STOP
-- TAG-SETUPRELEASE-START

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

-- TAG-SETUPRELEASE-STOP
-- TAG-SIB2-START

SIB2 ::=                            SEQUENCE {
    cellReselectionInfoCommon           SEQUENCE {
        nrofSS-BlocksToAverage              INTEGER (2..maxNrofSS-BlocksToAverage)          OPTIONAL,       -- Need S
        absThreshSS-BlocksConsolidation     ThresholdNR                                     OPTIONAL,       -- Need S
        rangeToBestCell                     RangeToBestCell                                 OPTIONAL,       -- Need R
        q-Hyst                              ENUMERATED {
                                                dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
                                                dB12, dB14, dB16, dB18, dB20, dB22, dB24},
        speedStateReselectionPars           SEQUENCE {
            mobilityStateParameters             MobilityStateParameters,
            q-HystSF                        SEQUENCE {
                sf-Medium                       ENUMERATED {dB-6, dB-4, dB-2, dB0},
                sf-High                         ENUMERATED {dB-6, dB-4, dB-2, dB0}
            }
        }                                                                                   OPTIONAL,       -- Need R
    ...
    },
    cellReselectionServingFreqInfo      SEQUENCE {
        s-NonIntraSearchP                   ReselectionThreshold                            OPTIONAL,       -- Need S
        s-NonIntraSearchQ                   ReselectionThresholdQ                           OPTIONAL,       -- Need S
        threshServingLowP                   ReselectionThreshold,
        threshServingLowQ                   ReselectionThresholdQ                           OPTIONAL,       -- Need R
        cellReselectionPriority             CellReselectionPriority,
        cellReselectionSubPriority          CellReselectionSubPriority                      OPTIONAL,       -- Need R
        ...
    },
    intraFreqCellReselectionInfo        SEQUENCE {
        q-RxLevMin                          Q-RxLevMin,
        q-RxLevMinSUL                       Q-RxLevMin                                      OPTIONAL,       -- Need R
        q-QualMin                           Q-QualMin                                       OPTIONAL,       -- Need S
        s-IntraSearchP                      ReselectionThreshold,
        s-IntraSearchQ                      ReselectionThresholdQ                           OPTIONAL,       -- Need S
        t-ReselectionNR                     T-Reselection,
        frequencyBandList                   MultiFrequencyBandListNR-SIB                    OPTIONAL,       -- Need S
        frequencyBandListSUL                MultiFrequencyBandListNR-SIB                    OPTIONAL,       -- Need R
        p-Max                               P-Max                                           OPTIONAL,       -- Need S
        smtc                                SSB-MTC                                         OPTIONAL,       -- Need S
        ss-RSSI-Measurement                 SS-RSSI-Measurement                             OPTIONAL,       -- Need R
        ssb-ToMeasure                       SSB-ToMeasure                                   OPTIONAL,       -- Need S
        deriveSSB-IndexFromCell             BOOLEAN,
        ...,
        [[
        t-ReselectionNR-SF                  SpeedStateScaleFactors                          OPTIONAL        -- Need N
        ]],
        [[
        smtc2-LP-r16                        SSB-MTC2-LP-r16                                 OPTIONAL,        -- Need R
        ssb-PositionQCL-Common-r16          SSB-PositionQCL-Relation-r16                    OPTIONAL         -- Cond SharedSpectrum
        ]]
    },
    ...,
    [[
    relaxedMeasurement-r16              SEQUENCE {
        lowMobilityEvaluation-r16           SEQUENCE {
            s-SearchDeltaP-r16                  ENUMERATED {
                                                    dB3, dB6, dB9, dB12, dB15, 
                                                    spare3, spare2, spare1},
            t-SearchDeltaP-r16                  ENUMERATED {
                                                    s5, s10, s20, s30, s60, s120, s180,
                                                    s240, s300, spare7, spare6, spare5,
                                                    spare4, spare3, spare2, spare1}
        }                                                                                   OPTIONAL,       -- Need R
        cellEdgeEvaluation-r16              SEQUENCE {
            s-SearchThresholdP-r16              ReselectionThreshold,
            s-SearchThresholdQ-r16              ReselectionThresholdQ                       OPTIONAL        -- Need R
        }                                                                                   OPTIONAL,       -- Need R
        combineRelaxedMeasCondition-r16     ENUMERATED {true}                               OPTIONAL,       -- Need R
        highPriorityMeasRelax-r16           ENUMERATED {true}                               OPTIONAL        -- Need R
    }                                                                                       OPTIONAL        -- Need R
    ]]
}

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-v1610        IntraFreqNeighCellList-v1610                                    OPTIONAL,   -- Need R
    intraFreqWhiteCellList-r16          IntraFreqWhiteCellList-r16                                      OPTIONAL,   -- Cond SharedSpectrum2
    intraFreqCAG-CellList-r16           SEQUENCE (SIZE (1..maxPLMN)) OF IntraFreqCAG-CellPerPLMN-r16    OPTIONAL    -- Need R
    ]]
}


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

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

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

IntraFreqNeighCellInfo-v1610 ::=     SEQUENCE {
    ssb-PositionQCL-r16                 SSB-PositionQCL-Relation-r16                    OPTIONAL   -- Cond SharedSpectrum2
}

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

IntraFreqWhiteCellList-r16 ::=      SEQUENCE (SIZE (1..maxCellWhite)) OF PCI-Range

IntraFreqCAG-CellPerPLMN-r16 ::=    SEQUENCE {
    plmn-IdentityIndex-r16              INTEGER (1..maxPLMN),
    cag-CellList-r16                    SEQUENCE (SIZE (1..maxCAG-Cell-r16)) OF PCI-Range
}

-- TAG-SIB3-STOP
-- TAG-SIB4-START

SIB4 ::=                            SEQUENCE {
    interFreqCarrierFreqList            InterFreqCarrierFreqList,
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...,
    interFreqCarrierFreqList-v1610      InterFreqCarrierFreqList-v1610              OPTIONAL   -- Need R
}

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

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

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

InterFreqCarrierFreqInfo-v1610 ::=  SEQUENCE {
    interFreqNeighCellList-v1610        InterFreqNeighCellList-v1610                                OPTIONAL,    -- Need R
    smtc2-LP-r16                        SSB-MTC2-LP-r16                                             OPTIONAL,    -- Need R
    interFreqWhiteCellList-r16          InterFreqWhiteCellList-r16                                  OPTIONAL,    -- Cond SharedSpectrum2
    ssb-PositionQCL-Common-r16          SSB-PositionQCL-Relation-r16                                OPTIONAL,    -- Cond SharedSpectrum
    interFreqCAG-CellList-r16           SEQUENCE (SIZE (1..maxPLMN)) OF InterFreqCAG-CellList-r16   OPTIONAL     -- Need R
}

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

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

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

InterFreqNeighCellInfo-v1610 ::=    SEQUENCE {
    ssb-PositionQCL-r16                 SSB-PositionQCL-Relation-r16                                OPTIONAL    -- Cond SharedSpectrum2
}

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

InterFreqWhiteCellList-r16 ::=      SEQUENCE (SIZE (1..maxCellWhite)) OF PCI-Range

InterFreqCAG-CellList-r16 ::=       SEQUENCE {
    plmn-IdentityIndex-r16              INTEGER (1..maxPLMN),
    cag-CellList-r16                    SEQUENCE (SIZE (1..maxCAG-Cell-r16)) 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 S
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    ...,
    [[
    carrierFreqListEUTRA-v1610      CarrierFreqListEUTRA-v1610                      OPTIONAL        -- Need R
    ]]
}

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

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

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
}

CarrierFreqEUTRA-v1610 ::= SEQUENCE {
    highSpeedEUTRACarrier-r16       ENUMERATED {true}                               OPTIONAL        -- Need R
}

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

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

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

-- TAG-SIB5-STOP
-- 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,
    ...,
     [[
    referenceTimeInfo-r16           ReferenceTimeInfo-r16                           OPTIONAL    -- Need R
    ]]
}

-- TAG-SIB9-STOP
-- TAG-SIB10-START

SIB10-r16 ::=               SEQUENCE {
    hrnn-List-r16               HRNN-List-r16                                   OPTIONAL,   -- Need R
    lateNonCriticalExtension    OCTET STRING                                    OPTIONAL,
    ...
}

HRNN-List-r16 ::=           SEQUENCE (SIZE (1..maxNPN-r16)) OF HRNN-r16

HRNN-r16 ::=                SEQUENCE {
    hrnn-r16                    OCTET STRING (SIZE(1.. maxHRNN-Len-r16))        OPTIONAL   -- Need R
}

-- TAG-SIB10-STOP
-- TAG-SIB11-START

SIB11-r16 ::=                    SEQUENCE {
    measIdleConfigSIB-r16            MeasIdleConfigSIB-r16                       OPTIONAL, -- Need S
    lateNonCriticalExtension         OCTET STRING                                OPTIONAL,
    ...
}

-- TAG-SIB11-STOP
-- TAG-SIB12-START

SIB12-r16 ::=                 SEQUENCE {
    segmentNumber-r16             INTEGER (0..63),
    segmentType-r16               ENUMERATED {notLastSegment, lastSegment},
    segmentContainer-r16          OCTET STRING
}

SIB12-IEs-r16 ::=             SEQUENCE {
    sl-ConfigCommonNR-r16         SL-ConfigCommonNR-r16,
    lateNonCriticalExtension      OCTET STRING                   OPTIONAL,
    ...
}

SL-ConfigCommonNR-r16 ::=        SEQUENCE {
    sl-FreqInfoList-r16              SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-FreqConfigCommon-r16          OPTIONAL,    -- Need R
    sl-UE-SelectedConfig-r16             SL-UE-SelectedConfig-r16                                               OPTIONAL,    -- Need R
    sl-NR-AnchorCarrierFreqList-r16      SL-NR-AnchorCarrierFreqList-r16                                        OPTIONAL,    -- Need R
    sl-EUTRA-AnchorCarrierFreqList-r16   SL-EUTRA-AnchorCarrierFreqList-r16                                     OPTIONAL,    -- Need R
    sl-RadioBearerConfigList-r16         SEQUENCE (SIZE (1..maxNrofSLRB-r16)) OF SL-RadioBearerConfig-r16       OPTIONAL,    -- Need R
    sl-RLC-BearerConfigList-r16          SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfig-r16         OPTIONAL,    -- Need R
    sl-MeasConfigCommon-r16              SL-MeasConfigCommon-r16                                                OPTIONAL,    -- Need R
    sl-CSI-Acquisition-r16               ENUMERATED {enabled}                                                   OPTIONAL,    -- Need R
    sl-OffsetDFN-r16                     INTEGER (1..1000)                                                      OPTIONAL,    -- Need R
    t400-r16                             ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000} OPTIONAL,    -- Need R
    sl-MaxNumConsecutiveDTX-r16          ENUMERATED {n1, n2, n3, n4, n6, n8, n16, n32}                          OPTIONAL,    -- Need R
    sl-SSB-PriorityNR-r16                INTEGER (1..8)                                                         OPTIONAL     -- Need R
}

SL-NR-AnchorCarrierFreqList-r16 ::=  SEQUENCE (SIZE (1..maxFreqSL-NR-r16)) OF ARFCN-ValueNR

SL-EUTRA-AnchorCarrierFreqList-r16 ::= SEQUENCE (SIZE (1..maxFreqSL-EUTRA-r16)) OF ARFCN-ValueEUTRA

-- TAG-SIB12-STOP
-- TAG-SIB13-START

SIB13-r16 ::=                       SEQUENCE {
    sl-V2X-ConfigCommon-r16             OCTET STRING,
    sl-Bandwidth-r16                    OCTET STRING,
    tdd-Config-r16                      OCTET STRING,
    lateNonCriticalExtension            OCTET STRING                          OPTIONAL,
    ...
}

-- TAG-SIB13-STOP
-- TAG-SIB14-START

SIB14-r16 ::=                      SEQUENCE {
    sl-V2X-ConfigCommonExt-r16         OCTET STRING,
    lateNonCriticalExtension           OCTET STRING                          OPTIONAL,
    ...
}

-- TAG-SIB14-STOP
-- TAG-POSSYSTEMINFORMATION-R16-IES-START

PosSystemInformation-r16-IEs ::= SEQUENCE {
    posSIB-TypeAndInfo-r16           SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
        posSib1-1-r16                    SIBpos-r16,
        posSib1-2-r16                    SIBpos-r16,
        posSib1-3-r16                    SIBpos-r16,
        posSib1-4-r16                    SIBpos-r16,
        posSib1-5-r16                    SIBpos-r16,
        posSib1-6-r16                    SIBpos-r16,
        posSib1-7-r16                    SIBpos-r16,
        posSib1-8-r16                    SIBpos-r16,
        posSib2-1-r16                    SIBpos-r16,
        posSib2-2-r16                    SIBpos-r16,
        posSib2-3-r16                    SIBpos-r16,
        posSib2-4-r16                    SIBpos-r16,
        posSib2-5-r16                    SIBpos-r16,
        posSib2-6-r16                    SIBpos-r16,
        posSib2-7-r16                    SIBpos-r16,
        posSib2-8-r16                    SIBpos-r16,
        posSib2-9-r16                    SIBpos-r16,
        posSib2-10-r16                   SIBpos-r16,
        posSib2-11-r16                   SIBpos-r16,
        posSib2-12-r16                   SIBpos-r16,
        posSib2-13-r16                   SIBpos-r16,
        posSib2-14-r16                   SIBpos-r16,
        posSib2-15-r16                   SIBpos-r16,
        posSib2-16-r16                   SIBpos-r16,
        posSib2-17-r16                   SIBpos-r16,
        posSib2-18-r16                   SIBpos-r16,
        posSib2-19-r16                   SIBpos-r16,
        posSib2-20-r16                   SIBpos-r16,
        posSib2-21-r16                   SIBpos-r16,
        posSib2-22-r16                   SIBpos-r16,
        posSib2-23-r16                   SIBpos-r16,
        posSib3-1-r16                    SIBpos-r16,
        posSib4-1-r16                    SIBpos-r16,
        posSib5-1-r16                    SIBpos-r16,
        posSib6-1-r16                    SIBpos-r16,
        posSib6-2-r16                    SIBpos-r16,
        posSib6-3-r16                    SIBpos-r16,
        ...
    },
    lateNonCriticalExtension             OCTET STRING                        OPTIONAL,
    nonCriticalExtension                 SEQUENCE {}                         OPTIONAL
}

-- TAG-POSSYSTEMINFORMATION-R16-IES-STOP
-- TAG-POSSI-SCHEDULINGINFO-START

PosSI-SchedulingInfo-r16 ::=               SEQUENCE {
    posSchedulingInfoList-r16                  SEQUENCE (SIZE (1..maxSI-Message)) OF PosSchedulingInfo-r16,
    posSI-RequestConfig-r16                        SI-RequestConfig                                 OPTIONAL,  -- Cond MSG-1
    posSI-RequestConfigSUL-r16                     SI-RequestConfig                                 OPTIONAL,  -- Cond SUL-MSG-1
	...
}

PosSchedulingInfo-r16 ::= SEQUENCE {
    offsetToSI-Used-r16          ENUMERATED {true}                                              OPTIONAL,  -- Need R
    posSI-Periodicity-r16        ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
    posSI-BroadcastStatus-r16    ENUMERATED {broadcasting, notBroadcasting},
    posSIB-MappingInfo-r16       PosSIB-MappingInfo-r16,
    ...
}

PosSIB-MappingInfo-r16 ::=   SEQUENCE (SIZE (1..maxSIB)) OF PosSIB-Type-r16

PosSIB-Type-r16 ::=          SEQUENCE {
    encrypted-r16                ENUMERATED { true }                                            OPTIONAL,  -- Need R
    gnss-id-r16                  GNSS-ID-r16                                                    OPTIONAL,  -- Need R
    sbas-id-r16                  SBAS-ID-r16                                                    OPTIONAL,  -- Need R
    posSibType-r16               ENUMERATED { posSibType1-1, posSibType1-2, posSibType1-3, posSibType1-4, posSibType1-5, posSibType1-6,
                                              posSibType1-7, posSibType1-8, posSibType2-1, posSibType2-2, posSibType2-3, posSibType2-4,
                                              posSibType2-5, posSibType2-6, posSibType2-7, posSibType2-8, posSibType2-9, posSibType2-10,
                                              posSibType2-11, posSibType2-12, posSibType2-13, posSibType2-14, posSibType2-15,
                                              posSibType2-16, posSibType2-17, posSibType2-18, posSibType2-19, posSibType2-20,
                                              posSibType2-21, posSibType2-22, posSibType2-23, posSibType3-1, posSibType4-1,
                                              posSibType5-1,posSibType6-1, posSibType6-2, posSibType6-3,... },
    areaScope-r16                ENUMERATED {true}                                              OPTIONAL -- Need S
}

GNSS-ID-r16 ::= SEQUENCE {
    gnss-id-r16              ENUMERATED{gps, sbas, qzss, galileo, glonass, bds, ...},
    ...
}

SBAS-ID-r16 ::= SEQUENCE {
    sbas-id-r16              ENUMERATED { waas, egnos, msas, gagan, ...},
    ...
}

-- TAG-POSSI-SCHEDULINGINFO-STOP
-- TAG-SIPOS-START

SIBpos-r16 ::= SEQUENCE {
    assistanceDataSIB-Element-r16        OCTET STRING,
    lateNonCriticalExtension             OCTET STRING                        OPTIONAL,
    ...
}

-- TAG-SIPOS-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-VALUENR-START

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

-- TAG-ARFCN-VALUENR-STOP
-- TAG-ARFCN-ValueUTRA-FDD-START

ARFCN-ValueUTRA-FDD-r16 ::=                INTEGER (0..16383)

-- TAG-ARFCN-ValueUTRA-FDD-STOP
-- TAG-AVAILABILITYCOMBINATIONSPERCELL-START

AvailabilityCombinationsPerCell-r16 ::= SEQUENCE {
    availabilityCombinationsPerCellIndex-r16   AvailabilityCombinationsPerCellIndex-r16,
    iab-DU-CellIdentity-r16                    CellIdentity,
    positionInDCI-AI-r16                       INTEGER(0..maxAI-DCI-PayloadSize-r16-1)                                            OPTIONAL, -- Need M
    availabilityCombinations-r16               SEQUENCE (SIZE (1..maxNrofAvailabilityCombinationsPerSet-r16)) OF AvailabilityCombination-r16,
    ...
}

AvailabilityCombinationsPerCellIndex-r16 ::= INTEGER(0..maxNrofDUCells-r16)

AvailabilityCombination-r16 ::=         SEQUENCE {
    availabilityCombinationId-r16           AvailabilityCombinationId-r16,
    resourceAvailability-r16                SEQUENCE (SIZE (1..maxNrofResourceAvailabilityPerCombination-r16)) OF INTEGER (0..7)
}

AvailabilityCombinationId-r16 ::=       INTEGER (0..maxNrofAvailabilityCombinationsPerSet-r16-1)

-- TAG-AVAILABILITYCOMBINATIONSPERCELL-STOP
-- TAG-AVAILABILITYINDICATOR-START

AvailabilityIndicator-r16 ::=    SEQUENCE {
    ai-RNTI-r16                      AI-RNTI-r16,
    dci-PayloadSizeAI-r16            INTEGER (1..maxAI-DCI-PayloadSize-r16),
    availableCombToAddModList-r16    SEQUENCE (SIZE(1..maxNrofDUCells-r16)) OF AvailabilityCombinationsPerCell-r16          OPTIONAL, -- Need N
    availableCombToReleaseList-r16   SEQUENCE (SIZE(1..maxNrofDUCells-r16)) OF AvailabilityCombinationsPerCellIndex-r16     OPTIONAL, -- Need N
    ...
}

AI-RNTI-r16 ::=                      RNTI-Value

-- TAG-AVAILABILITYINDICATOR-STOP
-- TAG-BAPROUTINGID-START

BAP-Routing-ID-r16::=        SEQUENCE{
    bap-Address-r16              BIT STRING (SIZE (10)),
    bap-PathId-r16               BIT STRING (SIZE (10))
}

-- TAG-BAPROUTINGID-STOP
-- TAG-BEAMFAILURERECOVERYCONFIG-START

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

CandidateBeamRSListExt-r16::=       SEQUENCE (SIZE(1.. maxNrofCandidateBeamsExt-r16)) OF PRACH-ResourceDedicatedBFR

-- TAG-BEAMFAILURERECOVERYCONFIG-STOP
-- TAG-BEAMFAILURERECOVERYSCELLCONFIG-START

BeamFailureRecoverySCellConfig-r16 ::= SEQUENCE {
    rsrp-ThresholdBFR-r16                  RSRP-Range                                                               OPTIONAL, -- Need M
    candidateBeamRSSCellList-r16           SEQUENCE (SIZE(1..maxNrofCandidateBeams-r16)) OF CandidateBeamRS-r16     OPTIONAL, -- Need M
    ...
}

CandidateBeamRS-r16 ::=                SEQUENCE {
    candidateBeamConfig-r16                CHOICE {
        ssb-r16                                SSB-Index,
        csi-RS-r16                             NZP-CSI-RS-ResourceId
    },
    servingCellId                          ServCellIndex                                                            OPTIONAL  -- Need R
}

-- TAG-BEAMFAILURERECOVERYSCELLCONFIG-STOP
-- TAG-BETAOFFSETS-START

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-BETAOFFSETS-STOP
-- TAG-BH-RLCCHANNELCONFIG-START

BH-RLC-ChannelConfig-r16::=      SEQUENCE {
    bh-LogicalChannelIdentity-r16    BH-LogicalChannelIdentity-r16 OPTIONAL,   -- Cond LCH-SetupOnly
    bh-RLC-ChannelID-r16             BH-RLC-ChannelID-r16,
    reestablishRLC-r16               ENUMERATED {true}            OPTIONAL,   -- Need N
    rlc-Config-r16                   RLC-Config                   OPTIONAL,   -- Cond LCH-Setup
    mac-LogicalChannelConfig-r16     LogicalChannelConfig         OPTIONAL,   -- Cond LCH-Setup
    ...
}

-- TAG-BH-RLCCHANNELCONFIG-STOP
-- TAG-BH-LOGICALCHANNELIDENTITY-START

BH-LogicalChannelIdentity-r16 ::=    CHOICE {
    bh-LogicalChannelIdentity-r16        LogicalChannelIdentity,
    bh-LogicalChannelIdentityExt-r16     BH-LogicalChannelIdentity-Ext-r16
}

-- TAG-BH-LOGICALCHANNELIDENTITY-STOP
-- TAG-BH-LOGICALCHANNELIDENTITY-Ext-START

BH-LogicalChannelIdentity-Ext-r16 ::=   INTEGER (33.. maxLC-ID-Iab-r16)

-- TAG-BH-LOGICALCHANNELIDENTITY-Ext-STOP
-- TAG-BHRLCCHANNELID-START

BH-RLC-ChannelID-r16 ::=    BIT STRING (SIZE (16))

-- TAG-BHRLCCHANNELID-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-BWP-START

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


-- TAG-BWP-STOP
-- TAG-BWP-DOWNLINK-START

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

-- TAG-BWP-DOWNLINK-STOP
-- 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
    ...,
    [[
    sps-ConfigToAddModList-r16          SPS-ConfigToAddModList-r16                                        OPTIONAL,   -- Need N
    sps-ConfigToReleaseList-r16         SPS-ConfigToReleaseList-r16                                       OPTIONAL,   -- Need N
    sps-ConfigDeactivationStateList-r16 SPS-ConfigDeactivationStateList-r16                               OPTIONAL,   -- Need R
    beamFailureRecoverySCellConfig-r16  SetupRelease {BeamFailureRecoverySCellConfig-r16}                 OPTIONAL,   -- Cond SCellOnly
    sl-PDCCH-Config-r16                 SetupRelease { PDCCH-Config }                                     OPTIONAL,   -- Need M
    sl-V2X-PDCCH-Config-r16             SetupRelease { PDCCH-Config }                                     OPTIONAL    -- Need M
    ]]
}

SPS-ConfigToAddModList-r16 ::=          SEQUENCE (SIZE (1..maxNrofSPS-Config-r16)) OF SPS-Config

SPS-ConfigToReleaseList-r16 ::=         SEQUENCE (SIZE (1..maxNrofSPS-Config-r16)) OF SPS-ConfigIndex-r16

SPS-ConfigDeactivationState-r16 ::=     SEQUENCE (SIZE (1..maxNrofSPS-Config-r16)) OF SPS-ConfigIndex-r16

SPS-ConfigDeactivationStateList-r16 ::= SEQUENCE (SIZE (1..maxNrofSPS-DeactivationState)) OF SPS-ConfigDeactivationState-r16

-- 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,   -- Cond SetupOtherBWP
    ...
}

-- 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
    ...,
    [[
    rach-ConfigCommonIAB-r16            SetupRelease { RACH-ConfigCommon }                                      OPTIONAL,   -- Need M
    useInterlacePUCCH-PUSCH-r16         ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    msgA-ConfigCommon-r16               SetupRelease { MsgA-ConfigCommon-r16 }                                  OPTIONAL    -- Cond SpCellOnly2
    ]]
}

-- 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
    ...,
    [[
    sl-PUCCH-Config-r16                 SetupRelease { PUCCH-Config }                                           OPTIONAL,   -- Need M
    cp-ExtensionC2-r16                  INTEGER (1..28)                                                         OPTIONAL,   -- Need R
    cp-ExtensionC3-r16                  INTEGER (1..28)                                                         OPTIONAL,   -- Need R
    useInterlacePUCCH-PUSCH-r16         ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    pucch-ConfigurationList-r16         SetupRelease { PUCCH-ConfigurationList-r16 }                            OPTIONAL,   -- Need M
    lbt-FailureRecoveryConfig-r16       SetupRelease { LBT-FailureRecoveryConfig-r16 }                          OPTIONAL,   -- Need M
    configuredGrantConfigToAddModList-r16                 ConfiguredGrantConfigToAddModList-r16                 OPTIONAL,   -- Need N
    configuredGrantConfigToReleaseList-r16                ConfiguredGrantConfigToReleaseList-r16                OPTIONAL,   -- Need N
    configuredGrantConfigType2DeactivationStateList-r16   ConfiguredGrantConfigType2DeactivationStateList-r16   OPTIONAL    -- Need R
    ]]

}

ConfiguredGrantConfigToAddModList-r16    ::= SEQUENCE (SIZE (1..maxNrofConfiguredGrantConfig-r16)) OF ConfiguredGrantConfig

ConfiguredGrantConfigToReleaseList-r16   ::= SEQUENCE (SIZE (1..maxNrofConfiguredGrantConfig-r16)) OF ConfiguredGrantConfigIndex-r16

ConfiguredGrantConfigType2DeactivationState-r16 ::= SEQUENCE (SIZE (1..maxNrofConfiguredGrantConfig-r16)) OF ConfiguredGrantConfigIndex-r16

ConfiguredGrantConfigType2DeactivationStateList-r16  ::= 
                             SEQUENCE (SIZE (1..maxNrofCG-Type2DeactivationState)) OF ConfiguredGrantConfigType2DeactivationState-r16

-- TAG-BWP-UPLINKDEDICATED-STOP
-- TAG-CELLACCESSRELATEDINFO-START

CellAccessRelatedInfo   ::=         SEQUENCE {
    plmn-IdentityList                   PLMN-IdentityInfoList,
    cellReservedForOtherUse             ENUMERATED {true}         OPTIONAL,   -- Need R
    ...,
    [[
    cellReservedForFutureUse-r16        ENUMERATED {true}         OPTIONAL,   -- Need R
    npn-IdentityInfoList-r16            NPN-IdentityInfoList-r16  OPTIONAL    -- Need R
    ]]
}

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

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

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

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

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

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

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

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

-- TAG-CELLACCESSRELATEDINFOEUTRA-EPC-STOP
-- TAG-CELLGROUPCONFIG-START

-- Configuration of one Cell-Group:
CellGroupConfig ::=                        SEQUENCE {
    cellGroupId                                CellGroupId,
    rlc-BearerToAddModList                     SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-BearerConfig                        OPTIONAL,   -- Need N
    rlc-BearerToReleaseList                    SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity                  OPTIONAL,   -- Need N
    mac-CellGroupConfig                        MAC-CellGroupConfig                                                     OPTIONAL,   -- Need M
    physicalCellGroupConfig                    PhysicalCellGroupConfig                                                 OPTIONAL,   -- Need M
    spCellConfig                               SpCellConfig                                                            OPTIONAL,   -- Need M
    sCellToAddModList                          SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig                       OPTIONAL,   -- Need N
    sCellToReleaseList                         SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex                        OPTIONAL,   -- Need N
    ...,
    [[
    reportUplinkTxDirectCurrent                ENUMERATED {true}                                                       OPTIONAL    -- Cond BWP-Reconfig
    ]],
    [[
    bap-Address-r16                            BIT STRING (SIZE (10))                                                  OPTIONAL,   -- Need M
    bh-RLC-ChannelToAddModList-r16             SEQUENCE (SIZE(1..maxBH-RLC-ChannelID-r16)) OF BH-RLC-ChannelConfig-r16 OPTIONAL,   -- Need N
    bh-RLC-ChannelToReleaseList-r16            SEQUENCE (SIZE(1..maxBH-RLC-ChannelID-r16)) OF BH-RLC-ChannelID-r16     OPTIONAL,   -- Need N
    f1c-TransferPath-r16                       ENUMERATED {lte, nr, both}                                              OPTIONAL,   -- Need M
    simultaneousTCI-UpdateList1-r16            SEQUENCE (SIZE (1..maxNrofServingCellsTCI-r16)) OF ServCellIndex        OPTIONAL,   -- Need R
    simultaneousTCI-UpdateList2-r16            SEQUENCE (SIZE (1..maxNrofServingCellsTCI-r16)) OF ServCellIndex        OPTIONAL,   -- Need R
    simultaneousSpatial-UpdatedList1-r16       SEQUENCE (SIZE (1..maxNrofServingCellsTCI-r16)) OF ServCellIndex        OPTIONAL,   -- Need R
    simultaneousSpatial-UpdatedList2-r16       SEQUENCE (SIZE (1..maxNrofServingCellsTCI-r16)) OF ServCellIndex        OPTIONAL,   -- Need R
    uplinkTxSwitchingOption-r16                 ENUMERATED {switchedUL, dualUL}                                        OPTIONAL    -- Need R
    ]]
}

-- 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
    ]],
    [[
    daps-UplinkPowerConfig-r16      DAPS-UplinkPowerConfig-r16                                      OPTIONAL    -- Need N
    ]]
}

DAPS-UplinkPowerConfig-r16 ::=      SEQUENCE {
    p-DAPS-Source-r16                   P-Max,
    p-DAPS-Target-r16                   P-Max,
    uplinkPowerSharingDAPS-Mode-r16     ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic }
}

SCellConfig ::=                     SEQUENCE {
    sCellIndex                          SCellIndex,
    sCellConfigCommon                   ServingCellConfigCommon                                     OPTIONAL,   -- Cond SCellAdd
    sCellConfigDedicated                ServingCellConfig                                           OPTIONAL,   -- Cond SCellAddMod
    ...,
    [[
    smtc                                SSB-MTC                                                     OPTIONAL    -- Need S
    ]],
    [[
    sCellState-r16                  ENUMERATED {activated}                                          OPTIONAL,   -- Cond SCellAddSync
    secondaryDRX-GroupConfig-r16    ENUMERATED {true}                                               OPTIONAL    -- Cond DRX-Config2
    ]]}

-- TAG-CELLGROUPCONFIG-STOP
-- TAG-CELLGROUPID-START

CellGroupId ::=                             INTEGER (0.. maxSecondaryCellGroups)

-- TAG-CELLGROUPID-STOP
-- TAG-CELLIDENTITY-START

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

-- TAG-CELLIDENTITY-STOP
-- TAG-CELLRESELECTIONPRIORITY-START

CellReselectionPriority ::=             INTEGER (0..7)

-- TAG-CELLRESELECTIONPRIORITY-STOP
-- TAG-CELLRESELECTIONSUBPRIORITY-START

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

-- TAG-CELLRESELECTIONSUBPRIORITY-STOP
-- TAG-CGI-INFOEUTRA-START

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

-- TAG-CGI-INFOEUTRA-STOP
-- TAG-CGI-INFOEUTRALOGGING-START

CGI-InfoEUTRALogging ::=         SEQUENCE {
    plmn-Identity-eutra-5gc          PLMN-Identity                                          OPTIONAL,
    trackingAreaCode-eutra-5gc       TrackingAreaCode                                       OPTIONAL,
    cellIdentity-eutra-5gc           BIT STRING (SIZE (28))                                 OPTIONAL,
    plmn-Identity-eutra-epc          PLMN-Identity                                          OPTIONAL,
    trackingAreaCode-eutra-epc       BIT STRING (SIZE (16))                                 OPTIONAL,
    cellIdentity-eutra-epc           BIT STRING (SIZE (28))                                 OPTIONAL
}

-- TAG-CGI-INFOEUTRALOGGING-STOP
-- TAG-CGI-INFO-NR-START

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

-- TAG-CGI-INFO-NR-STOP
-- TAG-CGI-INFO-LOGGING-START

CGI-Info-Logging-r16 ::=     SEQUENCE {
    plmn-Identity-r16                    PLMN-Identity,
    cellIdentity-r16                     CellIdentity,
    trackingAreaCode-r16                 TrackingAreaCode               OPTIONAL
}

-- TAG-CGI-INFO-LOGGING-STOP
-- TAG-CLI-RSSI-RANGE-START

CLI-RSSI-Range-r16 ::=                      INTEGER(0..76)

-- TAG-CLI-RSSI-RANGE-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}
        }
    }
}

CodebookConfig-r16  ::=                SEQUENCE  {
    codebookType                           CHOICE {
        type2                                  SEQUENCE {
            subType                                CHOICE {
                typeII-r16                             SEQUENCE  {
                    n1-n2-codebookSubsetRestriction-r16    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-r16              BIT STRING (SIZE(4))
                },
                typeII-PortSelection-r16  SEQUENCE {
                    portSelectionSamplingSize-r16          ENUMERATED {n1, n2, n3, n4},
                    typeII-PortSelectionRI-Restriction-r16 BIT STRING (SIZE (4))
                }
            },
        numberOfPMI-SubbandsPerCQI-Subband-r16 INTEGER (1..2),
        paramCombination-r16                   INTEGER (1..8)
        }
    }
}

-- TAG-CODEBOOKCONFIG-STOP
-- TAG-COMMONLOCATIONINFO-START

CommonLocationInfo-r16 ::= SEQUENCE {
    gnss-TOD-msec-r16          OCTET STRING     OPTIONAL,
    locationTimestamp-r16      OCTET STRING     OPTIONAL,
    locationCoordinate-r16     OCTET STRING     OPTIONAL,
    locationError-r16          OCTET STRING     OPTIONAL,
    locationSource-r16         OCTET STRING     OPTIONAL,
    velocityEstimate-r16       OCTET STRING     OPTIONAL
}

-- TAG-COMMONLOCATIONINFO-STOP
-- TAG-CONDRECONFIGID-START

CondReconfigId-r16 ::=                    INTEGER (1.. maxNrofCondCells-r16) 

-- TAG-CONDRECONFIGID-STOP
-- TAG-CONDRECONFIGTOADDMODLIST-START

CondReconfigToAddModList-r16 ::= SEQUENCE (SIZE (1.. maxNrofCondCells-r16)) OF CondReconfigToAddMod-r16

CondReconfigToAddMod-r16 ::=     SEQUENCE {
    condReconfigId-r16               CondReconfigId-r16,
    condExecutionCond-r16            SEQUENCE (SIZE (1..2)) OF MeasId                      OPTIONAL,    -- Cond condReconfigAdd
    condRRCReconfig-r16              OCTET STRING (CONTAINING RRCReconfiguration)          OPTIONAL,    -- Cond condReconfigAdd
    ...
}

-- TAG-CONDRECONFIGTOADDMODLIST-STOP
-- TAG-CONDITIONALRECONFIGURATION-START

ConditionalReconfiguration-r16 ::=   SEQUENCE {
    attemptCondReconfig-r16              ENUMERATED {true}              OPTIONAL,   -- Cond PCell
    condReconfigToRemoveList-r16         CondReconfigToRemoveList-r16   OPTIONAL,   -- Need N
    condReconfigToAddModList-r16         CondReconfigToAddModList-r16   OPTIONAL,   -- Need N
    ...
}

CondReconfigToRemoveList-r16 ::=     SEQUENCE (SIZE (1.. maxNrofCondCells-r16)) OF CondReconfigId-r16

-- TAG-CONDITIONALRECONFIGURATION-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),
        ...,
        [[
        pusch-RepTypeIndicator-r16          ENUMERATED {pusch-RepTypeA,pusch-RepTypeB}                              OPTIONAL,   -- Need M
        frequencyHoppingPUSCH-RepTypeB-r16  ENUMERATED {interRepetition, interSlot}                                 OPTIONAL,   -- Cond RepTypeB
        timeReferenceSFN-r16                ENUMERATED {sfn512}                                                     OPTIONAL    -- Need S
        ]]
    }                                                                                                           OPTIONAL,   -- Need R
    ...,
    [[
    cg-RetransmissionTimer-r16              INTEGER (1..64)                                                     OPTIONAL,   -- Need R
    cg-minDFI-Delay-r16                     ENUMERATED 
                                                    {sym7, sym1x14, sym2x14, sym3x14, sym4x14, sym5x14, sym6x14, sym7x14, sym8x14,
                                                     sym9x14, sym10x14, sym11x14, sym12x14, sym13x14, sym14x14,sym15x14, sym16x14
                                                    }                                                       OPTIONAL,   -- Need R
    cg-nrofPUSCH-InSlot-r16                 INTEGER (1..7)                                                  OPTIONAL,   -- Need R
    cg-nrofSlots-r16                        INTEGER (1..40)                                                 OPTIONAL,   -- Need R
    cg-StartingOffsets-r16                  CG-StartingOffsets-r16                                          OPTIONAL,   -- Need R
    cg-UCI-Multiplexing                     ENUMERATED {enabled}                                            OPTIONAL,   -- Need R
    cg-COT-SharingOffset-r16                INTEGER (1..39)                                                 OPTIONAL,   -- Need R
    betaOffsetCG-UCI-r16                    INTEGER (0.. 31)                                                OPTIONAL,   -- Need R
    cg-COT-SharingList-r16                  SEQUENCE (SIZE (1..1709)) OF CG-COT-Sharing-r16                 OPTIONAL,   -- Need R
    harq-ProcID-Offset-r16                  INTEGER (0..15)                                                 OPTIONAL,   -- Need M
    harq-ProcID-Offset2-r16                 INTEGER (0..15)                                                 OPTIONAL,   -- Need M
    configuredGrantConfigIndex-r16          ConfiguredGrantConfigIndex-r16                                  OPTIONAL,   -- Cond CG-List
    configuredGrantConfigIndexMAC-r16       ConfiguredGrantConfigIndexMAC-r16                               OPTIONAL,   -- Cond CG-List
    periodicityExt-r16                      INTEGER (1..5120)                                               OPTIONAL,   -- Need R
    startingFromRV0-r16                     ENUMERATED {on, off}                                            OPTIONAL,   -- Need R
    phy-PriorityIndex-r16                   ENUMERATED {p0, p1}                                             OPTIONAL,   -- Need R
    autonomousTx-r16                        ENUMERATED {enabled}                                            OPTIONAL    -- Cond LCH-BasedPrioritization
    ]]

}

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

CG-COT-Sharing-r16 ::= CHOICE {
    noCOT-Sharing-r16                   NULL,
    cot-Sharing-r16                     SEQUENCE {
         duration-r16                       INTEGER (1.. 39),
         offset-r16                         INTEGER (1.. 39),
         channelAccessPriority-r16          INTEGER (1..4)
    }
}

CG-StartingOffsets-r16 ::= SEQUENCE {
    cg-StartingFullBW-InsideCOT-r16         SEQUENCE (SIZE (1..7)) OF INTEGER (0..6)             OPTIONAL,   -- Need R
    cg-StartingFullBW-OutsideCOT-r16        SEQUENCE (SIZE (1..7)) OF INTEGER (0..6)             OPTIONAL,   -- Need R
    cg-StartingPartialBW-InsideCOT-r16      INTEGER (0..6)                                       OPTIONAL,   -- Need R
    cg-StartingPartialBW-OutsideCOT-r16     INTEGER (0..6)                                       OPTIONAL    -- Need R
}

-- TAG-CONFIGUREDGRANTCONFIG-STOP
-- TAG-CONFIGUREDGRANTCONFIGINDEX-START

ConfiguredGrantConfigIndex-r16 ::= INTEGER (0.. maxNrofConfiguredGrantConfig-r16-1)

-- TAG-CONFIGUREDGRANTCONFIGINDEX-STOP
-- TAG-CONFIGUREDGRANTCONFIGINDEXMAC-START

ConfiguredGrantConfigIndexMAC-r16 ::= INTEGER (0.. maxNrofConfiguredGrantConfigMAC-r16-1)

-- TAG-CONFIGUREDGRANTCONFIGINDEXMAC-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, -- Cond NotSIB1-initialBWP
    tci-StatesPDCCH-ToReleaseList       SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Cond NotSIB1-initialBWP
    tci-PresentInDCI                        ENUMERATED {enabled}                                  OPTIONAL, -- Need S
    pdcch-DMRS-ScramblingID                 INTEGER (0..65535)                                    OPTIONAL, -- Need S
    ...,
    [[
    rb-Offset-r16                       INTEGER (0..5)                                            OPTIONAL, -- Need S
    tci-PresentForDCI-Format1-2-r16     INTEGER (1..3)                                            OPTIONAL, -- Need S
    coresetPoolIndex-r16                INTEGER (0..1)                                            OPTIONAL, -- Need S
    controlResourceSetId-v1610          ControlResourceSetId-v1610                                OPTIONAL  -- Need S
    ]]
}

-- TAG-CONTROLRESOURCESET-STOP
-- TAG-CONTROLRESOURCESETID-START

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

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

ControlResourceSetId-v1610 ::=          INTEGER (maxNrofControlResourceSets..maxNrofControlResourceSets-1-r16)

-- TAG-CONTROLRESOURCESETID-STOP
-- TAG-CONTROLRESOURCESETZERO-START

ControlResourceSetZero ::=                  INTEGER (0..15)

-- TAG-CONTROLRESOURCESETZERO-STOP
-- TAG-CrossCarrierSchedulingConfig-START

CrossCarrierSchedulingConfig ::=        SEQUENCE {
    schedulingCellInfo                      CHOICE {
        own                                     SEQUENCE {                  -- Cross carrier scheduling: scheduling cell
            cif-Presence                            BOOLEAN
        },
        other                                   SEQUENCE {                  -- Cross carrier scheduling: scheduled cell
            schedulingCellId                        ServCellIndex,
            cif-InSchedulingCell                    INTEGER (1..7)
        }
    },
    ...,
    [[
    carrierIndicatorSize                SEQUENCE {
        carrierIndicatorSizeForDCI-Format1-2-r16        INTEGER (0..3), 
        carrierIndicatorSizeForDCI-Format0-2-r16        INTEGER (0..3)
    }                                                                                       OPTIONAL  -- Cond CIF-PRESENCE
    ]]
}

-- TAG-CrossCarrierSchedulingConfig-STOP
-- 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-MEASCONFIG-START

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

-- TAG-CSI-MEASCONFIG-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
    dummy                                           ENUMERATED {n1, n2}                                         OPTIONAL,   -- Need R
    groupBasedBeamReporting                     CHOICE {
        enabled                                     NULL,
        disabled                                    SEQUENCE {
            nrofReportedRS                          ENUMERATED {n1, n2, n3, n4}                                 OPTIONAL    -- Need S
        }
    },
    cqi-Table                   ENUMERATED {table1, table2, table3, spare1}                                     OPTIONAL,   -- Need R
    subbandSize                 ENUMERATED {value1, value2},
    non-PMI-PortIndication      SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL,   -- Need R
    ...,
    [[
    semiPersistentOnPUSCH-v1530         SEQUENCE {
        reportSlotConfig-v1530              ENUMERATED {sl4, sl8, sl16}
    }                                                                                                           OPTIONAL    -- Need R
    ]],
    [[
    semiPersistentOnPUSCH-v1610                 SEQUENCE {
        reportSlotOffsetListForDCI-Format0-2-r16    SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER(0..32)
                                                                                                                OPTIONAL,    -- Need R
        reportSlotOffsetListForDCI-Format0-1-r16    SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER(0..32)
                                                                                                                OPTIONAL     -- Need R
    }                                                                                                           OPTIONAL,    -- Need R
    aperiodic-v1610                 SEQUENCE {
        reportSlotOffsetListForDCI-Format0-2-r16  SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER(0..32)
                                                                                                                OPTIONAL,    -- Need R
        reportSlotOffsetListForDCI-Format0-1-r16  SEQUENCE (SIZE (1.. maxNrofUL-Allocations-r16)) OF INTEGER(0..32)
                                                                                                                OPTIONAL     -- Need R
    }                                                                                                           OPTIONAL,    -- Need R
    reportQuantity-r16                          CHOICE {
       cri-SINR-r16                                 NULL,
       ssb-Index-SINR-r16                           NULL
    }                                                                                                           OPTIONAL,   -- Need R
    codebookConfig-r16                          CodebookConfig-r16                                              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-RESOURCECONFIG-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-RESOURCEPERIODICITYANDOFFSET-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                    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
    ...,
    [[
    dmrs-Downlink-r16               ENUMERATED {enabled}                                                        OPTIONAL    -- Need R
    ]]

}

-- 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 S
    phaseTrackingRS                     SetupRelease { PTRS-UplinkConfig }                                  OPTIONAL,   -- Need M
    maxLength                           ENUMERATED {len2}                                                   OPTIONAL,   -- Need S
    transformPrecodingDisabled          SEQUENCE {
        scramblingID0                       INTEGER (0..65535)                                              OPTIONAL,   -- Need S
        scramblingID1                       INTEGER (0..65535)                                              OPTIONAL,   -- Need S
        ...,
        [[
        dmrs-Uplink-r16                     ENUMERATED {enabled}                                            OPTIONAL    -- Need R
        ]]
    }                                                                                                       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
        ...,
        [[
        dmrs-UplinkTransformPrecoding-r16   SetupRelease {DMRS-UplinkTransformPrecoding-r16}                OPTIONAL    -- Need M
        ]]  
    }                                                                                                       OPTIONAL,   -- Need R
    ...
}

DMRS-UplinkTransformPrecoding-r16  ::=  SEQUENCE {
    pi2BPSK-ScramblingID0                   INTEGER(0..65535)                                               OPTIONAL,   -- Need S
    pi2BPSK-ScramblingID1                   INTEGER(0..65535)                                               OPTIONAL    -- Need S
}

-- TAG-DMRS-UPLINKCONFIG-STOP
-- TAG-DOWNLINKCONFIGCOMMON-START

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

-- TAG-DOWNLINKCONFIGCOMMON-STOP
-- TAG-DOWNLINKCONFIGCOMMONSIB-START

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


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


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

-- TAG-DOWNLINKCONFIGCOMMONSIB-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-DRX-CONFIGSECONDARYGROUP-START

DRX-ConfigSecondaryGroup ::=       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}
}

-- TAG-DRX-CONFIGSECONDARYGROUP-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-FREQUENCYINFODL-START

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

-- TAG-FREQUENCYINFODL-STOP
-- TAG-FREQUENCYINFODL-SIB-START

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

-- TAG-FREQUENCYINFODL-SIB-STOP
-- TAG-FREQUENCYINFOUL-START

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

-- TAG-FREQUENCYINFOUL-STOP
-- TAG-FREQUENCYINFOUL-SIB-START

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

-- TAG-FREQUENCYINFOUL-SIB-STOP
-- TAG-HIGHSPEEDCONFIG-START

HighSpeedConfig-r16 ::=  SEQUENCE {
    highSpeedMeasFlag-r16    ENUMERATED {true}        OPTIONAL,   -- Need R
    highSpeedDemodFlag-r16   ENUMERATED {true}        OPTIONAL,   -- Need R
    ...
}

-- TAG-HIGHSPEEDCONFIG-STOP
-- TAG-HYSTERESIS-START

Hysteresis ::=                      INTEGER (0..30)

-- TAG-HYSTERESIS-STOP
-- TAG-INVALIDSYMBOLPATTERN-START

InvalidSymbolPattern-r16 ::=     SEQUENCE {
    symbols-r16                      CHOICE {
        oneSlot                          BIT STRING (SIZE (14)),
        twoSlots                         BIT STRING (SIZE (28))
    },
    periodicityAndPattern-r16        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 M
    ...
}

-- TAG-INVALIDSYMBOLPATTERN-STOP
-- TAG-I-RNTI-VALUE-START

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

-- TAG-I-RNTI-VALUE-STOP
-- TAG-LBT-FAILURERECOVERYCONFIG-START

LBT-FailureRecoveryConfig-r16 ::=    SEQUENCE {
    lbt-FailureInstanceMaxCount-r16      ENUMERATED {n4, n8, n16, n32, n64, n128},
    lbt-FailureDetectionTimer-r16        ENUMERATED {ms10, ms20, ms40, ms80, ms160, ms320},
    ...
}

-- TAG-LBT-FAILURERECOVERYCONFIG-STOP
-- TAG-LOCATIONINFO-START

LocationInfo-r16 ::=      SEQUENCE {
    commonLocationInfo-r16    CommonLocationInfo-r16          OPTIONAL,
    bt-LocationInfo-r16       LogMeasResultListBT-r16         OPTIONAL,
    wlan-LocationInfo-r16     LogMeasResultListWLAN-r16       OPTIONAL,
    sensor-LocationInfo-r16   Sensor-LocationInfo-r16         OPTIONAL,
    ...
}

-- TAG-LOCATIONINFO-STOP
-- TAG-LOCATIONMEASUREMENTINFO-START

LocationMeasurementInfo ::=     CHOICE {
    eutra-RSTD                  EUTRA-RSTD-InfoList,
    ...,
    eutra-FineTimingDetection   NULL,
    nr-PRS-Measurement-r16      NR-PRS-MeasurementInfoList-r16
}

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

NR-PRS-MeasurementInfoList-r16 ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF NR-PRS-MeasurementInfo-r16

NR-PRS-MeasurementInfo-r16 ::=      SEQUENCE {
    dl-PRS-ARFCN-PointA-r16             ARFCN-ValueNR,
    nr-MeasPRS-RepetitionAndOffset-r16  CHOICE {
        ms20-r16                            INTEGER (0..19),
        ms40-r16                            INTEGER (0..39),
        ms80-r16                            INTEGER (0..79),
        ms160-r16                           INTEGER (0..159),
        ...
    },
    nr-MeasPRS-length-r16               ENUMERATED {ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6, spare2, spare1},
    ...
}

-- TAG-LOCATIONMEASUREMENTINFO-STOP
-- TAG-LOGICALCHANNELCONFIG-START

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

-- TAG-LOGICALCHANNELCONFIG-STOP
-- TAG-LOGICALCHANNELIDENTITY-START

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

-- TAG-LOGICALCHANNELIDENTITY-STOP
-- TAG-MAC-CELLGROUPCONFIG-START

MAC-CellGroupConfig ::=             SEQUENCE {
    drx-Config                          SetupRelease { DRX-Config }                                     OPTIONAL,   -- Need M
    schedulingRequestConfig             SchedulingRequestConfig                                         OPTIONAL,   -- Need M
    bsr-Config                          BSR-Config                                                      OPTIONAL,   -- Need M
    tag-Config                          TAG-Config                                                      OPTIONAL,   -- Need M
    phr-Config                          SetupRelease { PHR-Config }                                     OPTIONAL,   -- Need M
    skipUplinkTxDynamic                 BOOLEAN,
    ...,
    [[
    csi-Mask                                BOOLEAN                                                     OPTIONAL,   -- Need M
    dataInactivityTimer                     SetupRelease { DataInactivityTimer }                        OPTIONAL    -- Cond MCG-Only
    ]],
    [[
    usePreBSR-r16                       ENUMERATED {true}                                               OPTIONAL,    -- Need R
    schedulingRequestID-LBT-SCell-r16   SchedulingRequestId                                             OPTIONAL,    -- Need M
    lch-BasedPrioritization-r16         ENUMERATED {enabled}                                            OPTIONAL,    -- Need R
    schedulingRequestID-BFR-SCell-r16   SchedulingRequestId                                             OPTIONAL,    -- Need R
    drx-ConfigSecondaryGroup-r16        SetupRelease { DRX-ConfigSecondaryGroup }                       OPTIONAL     -- Need M
    ]]
}

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

-- TAG-MAC-CELLGROUPCONFIG-STOP
-- TAG-MEASCONFIG-START

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

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

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

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

-- TAG-MEASCONFIG-STOP
-- TAG-MEASGAPCONFIG-START

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

}

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

}

-- TAG-MEASGAPCONFIG-STOP
-- TAG-MEASGAPSHARINGCONFIG-START

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

}

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

-- TAG-MEASGAPSHARINGCONFIG-STOP
-- TAG-MEASID-START

MeasId ::=                          INTEGER (1..maxNrofMeasId)

-- TAG-MEASID-STOP
-- TAG-MEASIDLECONFIG-START

MeasIdleConfigSIB-r16 ::= SEQUENCE {
    measIdleCarrierListNR-r16       SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierNR-r16          OPTIONAL,     -- Need S
    measIdleCarrierListEUTRA-r16    SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierEUTRA-r16       OPTIONAL,     -- Need S
    ...
}

MeasIdleConfigDedicated-r16 ::= SEQUENCE {
    measIdleCarrierListNR-r16       SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierNR-r16          OPTIONAL,     -- Need N
    measIdleCarrierListEUTRA-r16    SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierEUTRA-r16       OPTIONAL,     -- Need N
    measIdleDuration-r16            ENUMERATED{sec10, sec30, sec60, sec120, sec180, sec240, sec300, spare},
    validityAreaList-r16            ValidityAreaList-r16                                                   OPTIONAL,     -- Need N
    ...
}

ValidityAreaList-r16 ::= SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF ValidityArea-r16

ValidityArea-r16 ::=             SEQUENCE {
    carrierFreq-r16                  ARFCN-ValueNR,
    validityCellList-r16             ValidityCellList                                                     OPTIONAL   -- Need N
}

ValidityCellList ::= SEQUENCE (SIZE (1.. maxCellMeasIdle-r16)) OF PCI-Range

MeasIdleCarrierNR-r16 ::=        SEQUENCE {
    carrierFreq-r16                  ARFCN-ValueNR,
    ssbSubcarrierSpacing-r16         SubcarrierSpacing,
    frequencyBandList                MultiFrequencyBandListNR                                             OPTIONAL,  -- Need R
    measCellListNR-r16               CellListNR-r16                                                       OPTIONAL,  -- Need R
    reportQuantities-r16             ENUMERATED {rsrp, rsrq, both},
    qualityThreshold-r16             SEQUENCE {
        idleRSRP-Threshold-NR-r16        RSRP-Range                                                           OPTIONAL,  -- Need R
        idleRSRQ-Threshold-NR-r16        RSRQ-Range                                                           OPTIONAL   -- Need R
    }                                                                                                     OPTIONAL,  -- Need R
    ssb-MeasConfig-r16               SEQUENCE {
        nrofSS-BlocksToAverage-r16          INTEGER (2..maxNrofSS-BlocksToAverage)                            OPTIONAL,   -- Need S
        absThreshSS-BlocksConsolidation-r16 ThresholdNR                                                       OPTIONAL,   -- Need S
        smtc-r16                            SSB-MTC                                                           OPTIONAL,   -- Need S
        ssb-ToMeasure-r16                   SSB-ToMeasure                                                     OPTIONAL,   -- Need S
        deriveSSB-IndexFromCell-r16         BOOLEAN,
        ss-RSSI-Measurement-r16             SS-RSSI-Measurement                                               OPTIONAL    -- Need S
    }                                                                                                     OPTIONAL,  -- Need S
    beamMeasConfigIdle-r16           BeamMeasConfigIdle-NR-r16                                            OPTIONAL,  -- Need R
    ...
}

MeasIdleCarrierEUTRA-r16 ::=     SEQUENCE {
    carrierFreqEUTRA-r16             ARFCN-ValueEUTRA,
    allowedMeasBandwidth-r16         EUTRA-AllowedMeasBandwidth,
    measCellListEUTRA-r16            CellListEUTRA-r16                                                    OPTIONAL,  -- Need R
    reportQuantitiesEUTRA-r16        ENUMERATED {rsrp, rsrq, both},
    qualityThresholdEUTRA-r16        SEQUENCE {
        idleRSRP-Threshold-EUTRA-r16     RSRP-RangeEUTRA                                                      OPTIONAL,  -- Need R
        idleRSRQ-Threshold-EUTRA-r16     RSRQ-RangeEUTRA-r16                                                  OPTIONAL   -- Need R
    }                                                                                                     OPTIONAL,  -- Need S
    ...
}

CellListNR-r16  ::=       SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF PCI-Range

CellListEUTRA-r16  ::=    SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF EUTRA-PhysCellIdRange

BeamMeasConfigIdle-NR-r16  ::=   SEQUENCE {
    reportQuantityRS-Indexes-r16     ENUMERATED {rsrp, rsrq, both},
    maxNrofRS-IndexesToReport-r16    INTEGER (1.. maxNrofIndexesToReport),
    includeBeamMeasurements-r16      BOOLEAN
}

RSRQ-RangeEUTRA-r16 ::=   INTEGER (-30..46)

-- TAG-MEASIDLECONFIG-STOP
-- TAG-MEASIDTOADDMODLIST-START

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

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

-- TAG-MEASIDTOADDMODLIST-STOP
-- TAG-MEASOBJECTCLI-START

MeasObjectCLI-r16 ::=                  SEQUENCE {
     cli-ResourceConfig-r16               CLI-ResourceConfig-r16,
    ...
}

CLI-ResourceConfig-r16 ::=          SEQUENCE {
    srs-ResourceConfig-r16              SetupRelease { SRS-ResourceListConfigCLI-r16 }                 OPTIONAL,   -- Need M
    rssi-ResourceConfig-r16             SetupRelease { RSSI-ResourceListConfigCLI-r16 }                OPTIONAL    -- Need M
}

SRS-ResourceListConfigCLI-r16 ::=   SEQUENCE (SIZE (1.. maxNrofCLI-SRS-Resources-r16)) OF SRS-ResourceConfigCLI-r16

RSSI-ResourceListConfigCLI-r16 ::=  SEQUENCE (SIZE (1.. maxNrofCLI-RSSI-Resources-r16)) OF RSSI-ResourceConfigCLI-r16

SRS-ResourceConfigCLI-r16 ::=       SEQUENCE {
    srs-Resource-r16                    SRS-Resource,
    srs-SCS-r16                         SubcarrierSpacing,
    ...
}

RSSI-ResourceConfigCLI-r16 ::=      SEQUENCE {
    rssi-ResourceId-r16                 RSSI-ResourceId-r16,
    rssi-SCS-r16                        SubcarrierSpacing,
    startPRB-r16                        INTEGER (0..2169),
    nrofPRBs-r16                        INTEGER (4..maxNrofPhysicalResourceBlocksPlus1),
    startPosition-r16                   INTEGER (0..13),
    nrofSymbols-r16                     INTEGER (1..14),
    rssi-PeriodicityAndOffset-r16       RSSI-PeriodicityAndOffset-r16,
    ...
}

RSSI-ResourceId-r16 ::=             INTEGER (0.. maxNrofCLI-RSSI-Resources-r16-1)

RSSI-PeriodicityAndOffset-r16 ::=   CHOICE {
    sl10                                INTEGER(0..9),
    sl20                                INTEGER(0..19),
    sl40                                INTEGER(0..39),
    sl80                                INTEGER(0..79),
    sl160                               INTEGER(0..159),
    sl320                               INTEGER(0..319),
    s1640                               INTEGER(0..639),
    ...
}

-- TAG-MEASOBJECTCLI-STOP
-- TAG-MEASOBJECTEUTRA-START

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

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

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


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


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

-- TAG-MEASOBJECTEUTRA-STOP
-- TAG-MEASOBJECTID-START

MeasObjectId ::=                    INTEGER (1..maxNrofObjectId)

-- TAG-MEASOBJECTID-STOP
-- TAG-MEASOBJECTNR-START

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

SSB-MTC3List-r16::=               SEQUENCE (SIZE(1..4)) OF SSB-MTC3-r16

T312-r16 ::=                        ENUMERATED { ms0, ms50, ms100, ms200, ms300, ms400, ms500, ms1000}

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
    ...,
    [[
    ssb-PositionQCL-Common-r16              SSB-PositionQCL-Relation-r16                                OPTIONAL,   -- Cond SharedSpectrum
    ssb-PositionQCL-CellsToAddModList-r16   SSB-PositionQCL-CellsToAddModList-r16                       OPTIONAL,   -- Need N
    ssb-PositionQCL-CellsToRemoveList-r16   PCI-List                                                    OPTIONAL    -- Need N
    ]]

}


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
}

RMTC-Config-r16 ::=                 SEQUENCE {
    rmtc-Periodicity-r16                ENUMERATED {ms40, ms80, ms160, ms320, ms640},
    rmtc-SubframeOffset-r16             INTEGER(0..639)                                                 OPTIONAL,   -- Need M
    measDurationSymbols-r16             ENUMERATED {sym1, sym14or12, sym28or24, sym42or36, sym70or60},
    rmtc-Frequency-r16                  ARFCN-ValueNR,
    ref-SCS-CP-r16                      ENUMERATED {kHz15, kHz30, kHz60-NCP, kHz60-ECP},
    ...
}

SSB-PositionQCL-CellsToAddModList-r16 ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF SSB-PositionQCL-CellsToAddMod-r16

SSB-PositionQCL-CellsToAddMod-r16 ::= SEQUENCE {
    physCellId-r16                      PhysCellId,
    ssb-PositionQCL-r16                 SSB-PositionQCL-Relation-r16
}

-- TAG-MEASOBJECTNR-STOP
-- TAG-MEASOBJECTNR-SL-START

MeasObjectNR-SL-r16 ::=      SEQUENCE {
    tx-PoolMeasToRemoveList-r16  Tx-PoolMeasList-r16                           OPTIONAL,       -- Need N
    tx-PoolMeasToAddModList-r16  Tx-PoolMeasList-r16                           OPTIONAL        -- Need N
}

Tx-PoolMeasList-r16 ::= SEQUENCE (SIZE (1..maxNrofSL-PoolToMeasureNR-r16)) OF SL-ResourcePoolID-r16

-- TAG-MEASOBJECTNR-SL-STOP
-- TAG-MEASOBJECTTOADDMODLIST-START

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

MeasObjectToAddMod ::=                      SEQUENCE {
    measObjectId                                MeasObjectId,
    measObject                                  CHOICE {
        measObjectNR                                MeasObjectNR,
        ...,
        measObjectEUTRA                             MeasObjectEUTRA,
        measObjectUTRA-FDD-r16                      MeasObjectUTRA-FDD-r16,
        measObjectNR-SL-r16                         MeasObjectNR-SL-r16,
        measObjectCLI-r16                           MeasObjectCLI-r16
    }
}

-- TAG-MEASOBJECTTOADDMODLIST-STOP
-- TAG-MEASOBJECTUTRA-FDD-START

MeasObjectUTRA-FDD-r16 ::=                  SEQUENCE {
    carrierFreq-r16                             ARFCN-ValueUTRA-FDD-r16,
    utra-FDD-Q-OffsetRange-r16                  UTRA-FDD-Q-OffsetRange-r16              OPTIONAL,         -- Need R
    cellsToRemoveList-r16                       UTRA-FDD-CellIndexList-r16              OPTIONAL,         -- Need N
    cellsToAddModList-r16                       CellsToAddModListUTRA-FDD-r16           OPTIONAL,         -- Need N
    ...
}

CellsToAddModListUTRA-FDD-r16 ::=           SEQUENCE (SIZE (1..maxCellMeasUTRA-FDD-r16)) OF CellsToAddModUTRA-FDD-r16

CellsToAddModUTRA-FDD-r16 ::=               SEQUENCE {
    cellIndexUTRA-FDD-r16                       UTRA-FDD-CellIndex-r16,
    physCellId-r16                              PhysCellIdUTRA-FDD-r16
}

UTRA-FDD-CellIndexList-r16 ::=              SEQUENCE (SIZE (1..maxCellMeasUTRA-FDD-r16)) OF UTRA-FDD-CellIndex-r16

UTRA-FDD-CellIndex-r16 ::=                  INTEGER (1..maxCellMeasUTRA-FDD-r16)

-- TAG-MEASOBJECTUTRA-FDD-STOP
-- TAG-MEASRESULTCELLLISTSFTD-NR-START

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

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

-- TAG-MEASRESULTCELLLISTSFTD-NR-STOP
-- TAG-MEASRESULTCELLLISTSFTD-EUTRA-START

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

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

-- TAG-MEASRESULTCELLLISTSFTD-EUTRA-STOP
-- TAG-MEASRESULTS-START

MeasResults ::=                         SEQUENCE {
    measId                                  MeasId,
    measResultServingMOList                 MeasResultServMOList,
    measResultNeighCells                    CHOICE {
        measResultListNR                        MeasResultListNR,
        ...,
        measResultListEUTRA                     MeasResultListEUTRA,
        measResultListUTRA-FDD-r16              MeasResultListUTRA-FDD-r16
    }                                                                                                                   OPTIONAL,
    ...,
    [[
    measResultServFreqListEUTRA-SCG         MeasResultServFreqListEUTRA-SCG                                             OPTIONAL,
    measResultServFreqListNR-SCG            MeasResultServFreqListNR-SCG                                                OPTIONAL,
    measResultSFTD-EUTRA                    MeasResultSFTD-EUTRA                                                        OPTIONAL,
    measResultSFTD-NR                       MeasResultCellSFTD-NR                                                       OPTIONAL
     ]],
     [[
    measResultCellListSFTD-NR               MeasResultCellListSFTD-NR                                                   OPTIONAL
    ]],
    [[
    measResultForRSSI-r16                   MeasResultForRSSI-r16                                                       OPTIONAL,
    locationInfo-r16                        LocationInfo-r16                                                            OPTIONAL,
    ul-PDCP-DelayValueResultList-r16        UL-PDCP-DelayValueResultList-r16                                            OPTIONAL,
    measResultsSL-r16                       MeasResultsSL-r16                                                           OPTIONAL,
    measResultCLI-r16                       MeasResultCLI-r16                                                           OPTIONAL
    ]]


}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MeasResultListUTRA-FDD-r16 ::=          SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA-FDD-r16

MeasResultUTRA-FDD-r16 ::=              SEQUENCE {
    physCellId-r16                          PhysCellIdUTRA-FDD-r16,
    measResult-r16                          SEQUENCE {
        utra-FDD-RSCP-r16                       INTEGER (-5..91)          OPTIONAL,
        utra-FDD-EcN0-r16                       INTEGER (0..49)           OPTIONAL
    }
}

MeasResultForRSSI-r16 ::=        SEQUENCE {
    rssi-Result-r16                  ENUMERATED{ffs},
    channelOccupancy-r16             INTEGER (0..100)
}

MeasResultCLI-r16 ::=            SEQUENCE {
    measResultListSRS-RSRP-r16       MeasResultListSRS-RSRP-r16                                                         OPTIONAL,
    measResultListCLI-RSSI-r16       MeasResultListCLI-RSSI-r16                                                         OPTIONAL
}

MeasResultListSRS-RSRP-r16 ::=   SEQUENCE (SIZE (1.. maxCLI-Report-r16)) OF MeasResultSRS-RSRP-r16

MeasResultSRS-RSRP-r16 ::=       SEQUENCE {
    srs-ResourceId-r16               SRS-ResourceId,
    srs-RSRP-Result-r16              SRS-RSRP-Range-r16
}

MeasResultListCLI-RSSI-r16 ::=   SEQUENCE (SIZE (1.. maxCLI-Report-r16)) OF MeasResultCLI-RSSI-r16

MeasResultCLI-RSSI-r16 ::=       SEQUENCE {
    rssi-ResourceId-r16              RSSI-ResourceId-r16,
    cli-RSSI-Result-r16              CLI-RSSI-Range-r16
}

UL-PDCP-DelayValueResultList-r16 ::= SEQUENCE (SIZE (1..maxDRB)) OF UL-PDCP-DelayValueResult-r16

UL-PDCP-DelayValueResult-r16 ::= SEQUENCE {
    drb-Id-r16                       DRB-Identity,
    averageDelay-r16                 INTEGER (0..10000),
    ...
}

-- TAG-MEASRESULTS-STOP
-- TAG-MEASRESULT2EUTRA-START

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

-- TAG-MEASRESULT2EUTRA-STOP
-- TAG-MEASRESULT2NR-START

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

-- TAG-MEASRESULT2NR-STOP
-- TAG-MEASRESULTIDLEEUTRA-START

MeasResultIdleEUTRA-r16 ::= SEQUENCE {
    measResultsPerCarrierListIdleEUTRA-r16   SEQUENCE (SIZE (1.. maxFreqIdle-r16)) OF MeasResultsPerCarrierIdleEUTRA-r16,
    ...
}

MeasResultsPerCarrierIdleEUTRA-r16 ::=  SEQUENCE {
    carrierFreqEUTRA-r16                    ARFCN-ValueEUTRA,
    measResultsPerCellListIdleEUTRA-r16     SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF MeasResultsPerCellIdleEUTRA-r16,
    ...
}

MeasResultsPerCellIdleEUTRA-r16 ::=     SEQUENCE {
    eutra-PhysCellId-r16                    EUTRA-PhysCellId,
    measIdleResultEUTRA-r16                 SEQUENCE {
       rsrp-ResultEUTRA-r16                     RSRP-RangeEUTRA                                                     OPTIONAL,
       rsrq-ResultEUTRA-r16                     RSRQ-RangeEUTRA-r16                                                 OPTIONAL
    },
    ...
}

-- TAG-MEASRESULTIDLEEUTRA-STOP
-- TAG-MEASRESULTIDLENR-START

MeasResultIdleNR-r16 ::=  SEQUENCE {
    measResultServingCell-r16 SEQUENCE {
        rsrp-Result-r16           RSRP-Range                                                                        OPTIONAL,
        rsrq-Result-r16           RSRQ-Range                                                                        OPTIONAL,
        resultsSSB-Indexes-r16    ResultsPerSSB-IndexList-r16                                                       OPTIONAL
    },
    measResultsPerCarrierListIdleNR-r16 SEQUENCE (SIZE (1.. maxFreqIdle-r16)) OF MeasResultsPerCarrierIdleNR-r16    OPTIONAL,
    ...
}

MeasResultsPerCarrierIdleNR-r16 ::=   SEQUENCE {
    carrierFreq-r16                       ARFCN-ValueNR,
    measResultsPerCellListIdleNR-r16      SEQUENCE (SIZE (1..maxCellMeasIdle-r16)) OF MeasResultsPerCellIdleNR-r16,
    ...
}

MeasResultsPerCellIdleNR-r16 ::=  SEQUENCE {
    physCellId-r16                    PhysCellId,
    measIdleResultNR-r16              SEQUENCE {
        rsrp-Result-r16                   RSRP-Range                                                              OPTIONAL,
        rsrq-Result-r16                   RSRQ-Range                                                              OPTIONAL,
        resultsSSB-Indexes-r16            ResultsPerSSB-IndexList-r16                                             OPTIONAL
    },
    ...
}

ResultsPerSSB-IndexList-r16 ::=   SEQUENCE (SIZE (1.. maxNrofIndexesToReport)) OF ResultsPerSSB-IndexIdle-r16

ResultsPerSSB-IndexIdle-r16 ::=   SEQUENCE {
    ssb-Index-r16                     SSB-Index,
    ssb-Results-r16                   SEQUENCE {
        ssb-RSRP-Result-r16               RSRP-Range                                                              OPTIONAL,
        ssb-RSRQ-Result-r16               RSRQ-Range                                                              OPTIONAL
    }                                                                                                     OPTIONAL
}

-- TAG-MEASRESULTIDLENR-STOP
-- TAG-MEASRESULTSCG-FAILURE-START

MeasResultSCG-Failure ::=           SEQUENCE {
    measResultPerMOList                 MeasResultList2NR,
    ...,
    [[
    locationInfo-r16                    LocationInfo-r16            OPTIONAL
    ]]
}

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

-- TAG-MEASRESULTSCG-FAILURE-STOP
-- TAG-MEASRESULTSSL-START

MeasResultsSL-r16 ::=         SEQUENCE {
    measResultsListSL-r16         CHOICE {
        measResultNR-SL-r16           MeasResultNR-SL-r16,
        ...
    },
    ...
}

MeasResultNR-SL-r16 ::=       SEQUENCE {
    measResultListCBR-NR-r16      SEQUENCE (SIZE (1.. maxNrofSL-PoolToMeasureNR-r16)) OF MeasResultCBR-NR-r16,
    ... 
}

MeasResultCBR-NR-r16 ::=      SEQUENCE {
    sl-poolReportIdentity-r16     SL-ResourcePoolID-r16,
    sl-CBR-ResultsNR-r16          SL-CBR-r16,
    ...
}

-- TAG-MEASRESULTSSL-STOP
-- TAG-MEASTRIGGERQUANTITYEUTRA-START

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-MEASTRIGGERQUANTITYEUTRA-STOP
-- TAG-MOBILITYSTATEPARAMETERS-START

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

-- TAG-MOBILITYSTATEPARAMETERS-STOP
-- TAG-MSGACONFIGCOMMON-START

MsgA-ConfigCommon-r16 ::=           SEQUENCE {
    rach-ConfigCommonTwoStepRA-r16      RACH-ConfigCommonTwoStepRA-r16,
    msgA-PUSCH-Config-r16               MsgA-PUSCH-Config-r16                                      OPTIONAL --Cond InitialBWPConfig
}
-- TAG-MSGACONFIGCOMMON-STOP
-- TAG-MSGA-PUSCH-CONFIG-START

MsgA-PUSCH-Config-r16 ::=                      SEQUENCE {
    msgA-PUSCH-ResourceGroupA-r16                  MsgA-PUSCH-Resource-r16                                       OPTIONAL, -- Cond InitialBWPConfig
    msgA-PUSCH-ResourceGroupB-r16                  MsgA-PUSCH-Resource-r16                                       OPTIONAL, -- Cond GroupBConfigured
    msgA-TransformPrecoder-r16                    ENUMERATED {enabled, disabled}                                 OPTIONAL, -- Need R
    msgA-DataScramblingIndex-r16                   INTEGER (0..1023)                                             OPTIONAL, -- Need S
    msgA-DeltaPreamble-r16                         INTEGER (-1..6)                                               OPTIONAL  -- Need R
}

MsgA-PUSCH-Resource-r16 ::=                    SEQUENCE {
    msgA-MCS-r16                                   INTEGER (0..15),
    nrofSlotsMsgA-PUSCH-r16                        INTEGER (1..4),
    nrofMsgA-PO-PerSlot-r16                        ENUMERATED {one, two, three, six},
    msgA-PUSCH-TimeDomainOffset-r16                INTEGER (1..32),
    msgA-PUSCH-TimeDomainAllocation-r16            INTEGER (1..maxNrofUL-Allocations)                            OPTIONAL, -- Need S
    startSymbolAndLengthMsgA-PO-r16                INTEGER (0..127)                                              OPTIONAL, -- Need S
    mappingTypeMsgA-PUSCH-r16                      ENUMERATED {typeA, typeB}                                     OPTIONAL, -- Need S
    guardPeriodMsgA-PUSCH-r16                      INTEGER (0..3)                                                OPTIONAL, -- Need R
    guardBandMsgA-PUSCH-r16                        INTEGER (0..1),
    frequencyStartMsgA-PUSCH-r16                   INTEGER (0..maxNrofPhysicalResourceBlocks-1),
    nrofPRBs-PerMsgA-PO-r16                        INTEGER (1..32),
    nrofMsgA-PO-FDM-r16                            ENUMERATED {one, two, four, eight},
    msgA-IntraSlotFrequencyHopping-r16             ENUMERATED {enabled}                                          OPTIONAL, -- Need R
    msgA-HoppingBits-r16                           BIT STRING (SIZE(2))                                          OPTIONAL, -- Need R
    msgA-DMRS-Config-r16                           MsgA-DMRS-Config-r16,
    nrofDMRS-Sequences-r16                         INTEGER (1..2),
    msgA-Alpha-r16                                 ENUMERATED {alpha0, alpha04, alpha05, alpha06,
                                                               alpha07, alpha08, alpha09, alpha1}                OPTIONAL, -- Need S
    interlaceIndexFirstPO-MsgA-PUSCH-r16           INTEGER (1..10)                                               OPTIONAL, -- Need R
    nrofInterlacesPerMsgA-PO-r16                   INTEGER (1..10)                                               OPTIONAL, -- Need R
    ...
}

MsgA-DMRS-Config-r16 ::=                       SEQUENCE {
    msgA-DMRS-AdditionalPosition-r16               ENUMERATED {pos0, pos1, pos3}                                 OPTIONAL, -- Need S
    msgA-MaxLength-r16                             ENUMERATED {len2}                                             OPTIONAL, -- Need S
    msgA-PUSCH-DMRS-CDM-Group-r16                  INTEGER (0..1)                                                OPTIONAL, -- Need S
    msgA-PUSCH-NrofPorts-r16                       INTEGER (0..1)                                                OPTIONAL, -- Need S
    msgA-ScramblingID0-r16                         INTEGER (0..65536)                                            OPTIONAL, -- Need S
    msgA-ScramblingID1-r16                         INTEGER (0..65536)                                            OPTIONAL  -- Need S
}

-- TAG-MSGA-PUSCH-CONFIG-STOP
-- TAG-MULTIFREQUENCYBANDLISTNR-START

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

-- TAG-MULTIFREQUENCYBANDLISTNR-STOP
-- 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-NeedForGapsConfigNR-START

NeedForGapsConfigNR-r16 ::=        SEQUENCE {
    requestedTargetBandFilterNR-r16       SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR               OPTIONAL          -- Need R
}

-- TAG-NeedForGapsConfigNR-STOP
-- TAG-NeedForGapsInfoNR-START

NeedForGapsInfoNR-r16 ::=        SEQUENCE {
    intraFreq-needForGap-r16      NeedForGapsIntraFreqlist-r16,  
    interFreq-needForGap-r16      NeedForGapsBandlistNR-r16
}

NeedForGapsIntraFreqlist-r16 ::=          SEQUENCE (SIZE (1.. maxNrofServingCells)) OF NeedForGapsIntraFreq-r16

NeedForGapsBandlistNR-r16 ::=             SEQUENCE (SIZE (1..maxBands)) OF NeedForGapsNR-r16

NeedForGapsIntraFreq-r16  ::=                 SEQUENCE {
    servCellId-r16                               ServCellIndex,
    gapIndicationIntra-r16                       ENUMERATED {gap, no-gap}
}

NeedForGapsNR-r16  ::=                        SEQUENCE {
    bandNR-r16                                   FreqBandIndicatorNR,
    gapIndication-r16                            ENUMERATED {gap, no-gap}
}

-- TAG-NeedForGapsInfoNR-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-NPN-IDENTITY-START

NPN-Identity-r16 ::=             CHOICE {
    pni-npn-r16                      SEQUENCE {
        plmn-Identity-r16                PLMN-Identity,
        cag-IdentityList-r16             SEQUENCE (SIZE (1..maxNPN-r16)) OF CAG-IdentityInfo-r16
    },
    snpn-r16                         SEQUENCE {
        plmn-Identity                    PLMN-Identity,
        nid-List-r16                     SEQUENCE (SIZE (1..maxNPN-r16)) OF NID-r16
    }
}

CAG-IdentityInfo-r16 ::=         SEQUENCE {
    cag-Identity-r16                 BIT STRING (SIZE (32)),
    manualCAGselectionAllowed-r16    ENUMERATED {true}                         OPTIONAL   -- Need R
}

NID-r16 ::=                      BIT STRING (SIZE (44))

-- TAG-NPN-IDENTITY-STOP
-- TAG-NPN-IDENTITYINFOLIST-START

NPN-IdentityInfoList-r16 ::=     SEQUENCE (SIZE (1..maxNPN-r16)) OF NPN-IdentityInfo-r16


NPN-IdentityInfo-r16 ::=         SEQUENCE {
    npn-IdentityList-r16             SEQUENCE (SIZE (1..maxNPN-r16)) OF NPN-Identity-r16,
    trackingAreaCode-r16             TrackingAreaCode,
    ranac-r16                        RAN-AreaCode                                                OPTIONAL,       -- Need R
    cellIdentity-r16                 CellIdentity,
    cellReservedForOperatorUse-r16   ENUMERATED {reserved, notReserved},
    iab-Support-r16                  ENUMERATED {true}                                           OPTIONAL,       -- Need R
    ...
}

-- TAG-NPN-IDENTITYINFOLIST-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-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..6)                                                           OPTIONAL,   -- Need S
    trs-Info                            ENUMERATED {true}                                                       OPTIONAL,   -- Need R
    ...,
    [[
    aperiodicTriggeringOffset-r16       INTEGER(0..31)                                                          OPTIONAL   -- Need S
    ]]
}

-- 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-RANGEINDEX-START

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

-- TAG-PCI-RANGEINDEX-STOP
-- TAG-PCI-RANGEINDEXLIST-START

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

-- TAG-PCI-RANGEINDEXLIST-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,   -- Need M
    tpc-SRS                             SetupRelease { SRS-TPC-CommandConfig}                            OPTIONAL,   -- Need M
    ...,
    [[
    controlResourceSetToAddModList2-r16 SEQUENCE (SIZE (1..2)) OF ControlResourceSet                     OPTIONAL,   -- Need N
    controlResourceSetToReleaseList-r16 SEQUENCE (SIZE (1..5)) OF ControlResourceSetId-r16               OPTIONAL,   -- Need N
    searchSpacesToAddModListExt-r16     SEQUENCE(SIZE (1..10)) OF SearchSpaceExt-r16                     OPTIONAL,   -- Need N
    searchSpaceSwitchingTimer-r16       INTEGER (1..80)                                                  OPTIONAL,    -- Need R
    cellGroupsForSwitchingList-r16      SEQUENCE(SIZE (1..4)) OF CellGroupForSwitching-r16               OPTIONAL,   -- Need R
    uplinkCancellation-r16              SetupRelease { UplinkCancellation-r16 }                          OPTIONAL,   -- Need M
    monitoringCapabilityConfig-r16      ENUMERATED { r15monitoringcapability,r16monitoringcapability }   OPTIONAL,  -- Need M
    searchSpaceSwitchingDelay-r16       INTEGER (10..52)                                                 OPTIONAL    -- Need R
    ]]
}

CellGroupForSwitching-r16 ::=       SEQUENCE(SIZE (1..16)) OF ServCellIndex

-- 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
    ...,
    [[
    firstPDCCH-MonitoringOccasionOfPO   CHOICE {
        sCS15KHZoneT                                                             SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..139),
        sCS30KHZoneT-SCS15KHZhalfT                                               SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..279),
        sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT                              SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..559),
        sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT          SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..1119),
        sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..2239),
        sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT               SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..4479),
        sCS120KHZoneEighthT-SCS60KHZoneSixteenthT                                SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..8959),
        sCS120KHZoneSixteenthT                                                   SEQUENCE (SIZE (1..maxPO-perPF)) OF INTEGER (0..17919)
    }                                                                                                                      OPTIONAL,    -- Cond OtherBWP
    commonSearchSpaceListExt-r16                                                 SEQUENCE (SIZE(1..4)) OF SearchSpaceExt-r16     OPTIONAL   -- Need R
    ]]
}

-- 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
    ...,
    [[
    availabilityIndicator-r16           SetupRelease {AvailabilityIndicator-r16}                            OPTIONAL,   -- Need M 
    searchSpaceSwitchingTimer-r16       INTEGER (1..80)                                                     OPTIONAL    -- Need R
    ]]
}

-- 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 ConnectedTo5GC1
        statusReportRequired    ENUMERATED { true }                                             OPTIONAL,   -- Cond Rlc-AM-UM
        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
    ]],
    [[
    discardTimerExt-r16     SetupRelease { DiscardTimerExt-r16 }                                OPTIONAL,    -- Cond DRB2
    moreThanTwoRLC-DRB-r16  SEQUENCE {
        splitSecondaryPath      LogicalChannelIdentity                                          OPTIONAL,   -- Cond SplitBearer2
        duplicationState        SEQUENCE (SIZE (3)) OF BOOLEAN                                  OPTIONAL    -- Need S
    }                                                                                           OPTIONAL,   -- Cond MoreThanTwoRLC-DRB
    ethernetHeaderCompression-r16  SetupRelease { EthernetHeaderCompression-r16 }               OPTIONAL    -- Need M
    ]]
}

EthernetHeaderCompression-r16 ::=  SEQUENCE {
    ehc-Common                         SEQUENCE {
        ehc-CID-Length                     ENUMERATED { bits7, bits15 },
         ...
    },
    ehc-Downlink                   SEQUENCE {
        drb-ContinueEHC-DL             ENUMERATED { true }                                      OPTIONAL,   -- Need R
        ...
    }                                                                                           OPTIONAL,   -- Need M
    ehc-Uplink                     SEQUENCE {
        maxCID-EHC-UL                  INTEGER (1..32767),
        drb-ContinueEHC-UL             ENUMERATED { true }                                      OPTIONAL,   -- Need R
        ...
    }                                                                                           OPTIONAL    -- Need M
}

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}

DiscardTimerExt-r16 ::= ENUMERATED {ms0dot5, ms1, ms2, ms4, ms6, ms8, 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,   -- Need N
    sp-ZP-CSI-RS-ResourceSetsToAddModList   SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet
                                                                                                                OPTIONAL,   -- Need N
    sp-ZP-CSI-RS-ResourceSetsToReleaseList  SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId
                                                                                                                OPTIONAL,   -- Need N
    p-ZP-CSI-RS-ResourceSet                 SetupRelease { ZP-CSI-RS-ResourceSet }
                                                                                                                OPTIONAL,   -- Need M
    ...,
    [[
    maxMIMO-Layers-r16                      SetupRelease { MaxMIMO-LayersDL-r16 }                               OPTIONAL,   -- Need M
    minimumSchedulingOffsetK0-r16           SetupRelease { MinSchedulingOffsetK0-Values-r16 }                   OPTIONAL,   -- Need M

    -- Start of the parameters for DCI format 1_2 introduced in V16.1.0
    antennaPortsFieldPresenceForDCI-Format1-2-r16   ENUMERATED {enabled}                                    OPTIONAL,   -- Need S
    aperiodicZP-CSI-RS-ResourceSetsToAddModListForDCI-Format1-2-r16  SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet                                                                                               
                                                                                                            OPTIONAL,   -- Need N
    aperiodicZP-CSI-RS-ResourceSetsToReleaseListForDCI-Format1-2-r16 SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId                                                                                                   
                                                                                                            OPTIONAL,   -- Need N
    dmrs-DownlinkForPDSCH-MappingTypeA-ForDCI-Format1-2-r16     SetupRelease { DMRS-DownlinkConfig }        OPTIONAL,   -- Need M
    dmrs-DownlinkForPDSCH-MappingTypeB-ForDCI-Format1-2-r16     SetupRelease { DMRS-DownlinkConfig }        OPTIONAL,   -- Need M
    dmrs-SequenceInitializationForDCI-Format1-2-r16 ENUMERATED {enabled}                                    OPTIONAL,   -- Need S
    harq-ProcessNumberSizeForDCI-Format1-2-r16      INTEGER (0..4)                                          OPTIONAL,   -- Need R
    mcs-TableForDCI-Format1-2-r16                   ENUMERATED {qam256, qam64LowSE}                         OPTIONAL,   -- Need S
    numberOfBitsForRV-ForDCI-Format1-2-r16          INTEGER (0..2)                                          OPTIONAL,   -- Need R
    pdsch-TimeDomainAllocationListForDCI-Format1-2-r16         SetupRelease { PDSCH-TimeDomainResourceAllocationList-r16 }
                                                                                                                OPTIONAL,   -- Need M
    prb-BundlingTypeForDCI-Format1-2-r16    CHOICE {
        staticBundling-r16                      SEQUENCE {
            bundleSize-r16                          ENUMERATED { n4, wideband }                             OPTIONAL    -- Need S
        },
        dynamicBundling-r16                     SEQUENCE {
            bundleSizeSet1-r16                      ENUMERATED { n4, wideband, n2-wideband, n4-wideband }   OPTIONAL,   -- Need S
            bundleSizeSet2-r16                      ENUMERATED { n4, wideband }                             OPTIONAL    -- Need S
        }
    }                                                                                                       OPTIONAL,   -- Need R
    priorityIndicatorForDCI-Format1-2-r16           ENUMERATED {enabled}                                    OPTIONAL,   -- Need S
    rateMatchPatternGroup1ForDCI-Format1-2-r16  RateMatchPatternGroup                                       OPTIONAL,   -- Need R
    rateMatchPatternGroup2ForDCI-Format1-2-r16  RateMatchPatternGroup                                       OPTIONAL,   -- Need R
    resourceAllocationType1GranularityForDCI-Format1-2-r16  ENUMERATED {n2,n4,n8,n16}                       OPTIONAL,   -- Need S
    vrb-ToPRB-InterleaverForDCI-Format1-2-r16       ENUMERATED {n2, n4}                                     OPTIONAL,   -- Need S
    referenceOfSLIVForDCI-Format1-2-r16             ENUMERATED {enabled}                                    OPTIONAL,   -- Need S
    resourceAllocationForDCI-Format1-2-r16          ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}
                                                                                                            OPTIONAL,   -- Need M
    -- End of the parameters for DCI format 1_2 introduced in V16.1.0

    priorityIndicatorForDCI-Format1-1-r16           ENUMERATED {enabled}                                    OPTIONAL,   -- Need S
    dataScramblingIdentityPDSCH2-r16         INTEGER (0..1023)                                              OPTIONAL,   -- Need R
    pdsch-TimeDomainAllocationList-r16     SetupRelease { PDSCH-TimeDomainResourceAllocationList-r16 }      OPTIONAL,   -- Need M
    repetitionSchemeConfig-r16               SetupRelease { RepetitionSchemeConfig-r16}                     OPTIONAL    -- Need M
    ]]
}

RateMatchPatternGroup ::=               SEQUENCE (SIZE (1..maxNrofRateMatchPatternsPerGroup)) OF CHOICE {
    cellLevel                               RateMatchPatternId,
    bwpLevel                                RateMatchPatternId
}

MinSchedulingOffsetK0-Values-r16 ::=    SEQUENCE (SIZE (1..maxNrOfMinSchedulingOffsetValues-r16)) OF INTEGER (0..maxK0-SchedulingOffset-r16)

MaxMIMO-LayersDL-r16 ::=                INTEGER (1..8)

-- 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
    ...,
    [[
    maxMIMO-Layers                          INTEGER (1..8)                                                 OPTIONAL,  -- Need M
    processingType2Enabled                  BOOLEAN                                                        OPTIONAL   -- Need M
    ]],
    [[
    pdsch-CodeBlockGroupTransmissionList-r16 SetupRelease { PDSCH-CodeBlockGroupTransmissionList-r16 }     OPTIONAL   -- Need M
    ]]
}

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

PDSCH-CodeBlockGroupTransmissionList-r16 ::=    SEQUENCE (SIZE (1..2)) OF PDSCH-CodeBlockGroupTransmission

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

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

PDSCH-TimeDomainResourceAllocation-r16 ::=  SEQUENCE {
    k0-r16                                     INTEGER(0..32)                                                  OPTIONAL,   -- Need S
    mappingType-r16                            ENUMERATED {typeA, typeB},
    startSymbolAndLength-r16                   INTEGER (0..127),
    repetitionNumber-r16                       ENUMERATED {n2, n3, n4, n5, n6, n7, n8, n16}                    OPTIONAL,   -- Cond Formats1-0and1-1
    ...
}

-- 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-PHYSCELLID-START

PhysCellId ::=                      INTEGER (0..1007)

-- TAG-PHYSCELLID-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,   -- Need R
    cs-RNTI                             SetupRelease { RNTI-Value }                                     OPTIONAL,   -- Need M
    ...,
    [[
    mcs-C-RNTI                          RNTI-Value                                                      OPTIONAL,   -- Need R
    p-UE-FR1                            P-Max                                                           OPTIONAL    -- Cond MCG-Only
    ]],
    [[
    xScale                              ENUMERATED {dB0, dB6, spare2, spare1}                           OPTIONAL    -- Cond SCG-Only
    ]],
    [[
    pdcch-BlindDetection                SetupRelease { PDCCH-BlindDetection }                           OPTIONAL    -- Need M
    ]],
    [[
    dcp-Config-r16                      SetupRelease { DCP-Config-r16 }                                 OPTIONAL,   -- Need M
    harq-ACK-SpatialBundlingPUCCH-secondaryPUCCH-group-r16    ENUMERATED {true}                         OPTIONAL,   -- Cond twoPUCCHgroup
    harq-ACK-SpatialBundlingPUSCH-secondaryPUCCH-group-r16    ENUMERATED {true}                         OPTIONAL,   -- Cond twoPUCCHgroup
    pdsch-HARQ-ACK-Codebook-secondaryPUCCH-group-r16          ENUMERATED {semiStatic, dynamic}          OPTIONAL,   -- Cond twoPUCCHgroup
    p-NR-FR2-r16                                              P-Max                                     OPTIONAL,   -- Need R
    p-UE-FR2-r16                                              P-Max                                     OPTIONAL,   -- Cond MCG-Only
    nrdc-PCmode-FR1-r16                ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic}       OPTIONAL,   -- Cond MCG-Only
    nrdc-PCmode-FR2-r16                ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic}       OPTIONAL,   -- Cond MCG-Only
    pdsch-HARQ-ACK-Codebook-r16            ENUMERATED {enhancedDynamic}                                 OPTIONAL,   -- Need R
    nfi-TotalDAI-Included-r16              ENUMERATED {true}                                            OPTIONAL,   -- Need M
    ul-TotalDAI-Included-r16               ENUMERATED {true}                                            OPTIONAL,   -- Need R
    pdsch-HARQ-ACK-OneShotFeedback-r16     ENUMERATED {true}                                            OPTIONAL,   -- Need R
    pdsch-HARQ-ACK-OneShotFeedbackNDI-r16  ENUMERATED {true}                                            OPTIONAL,   -- Need R
    pdsch-HARQ-ACK-OneShotFeedbackCBG-r16  ENUMERATED {true}                                            OPTIONAL,   -- Need R
    downlinkAssignmentIndexForDCI-Format0-2-r16    ENUMERATED { enabled }                               OPTIONAL,   -- Need S
    downlinkAssignmentIndexForDCI-Format1-2-r16    ENUMERATED {n1, n2, n4}                              OPTIONAL,   -- Need S
    pdsch-HARQ-ACK-CodebookList-r16        SetupRelease {PDSCH-HARQ-ACK-CodebookList-r16}               OPTIONAL,   -- Need M
    ackNackFeedbackMode-r16                ENUMERATED {joint, separate}                                 OPTIONAL,   -- Need R
    pdcch-BlindDetectionCA-CombIndicator-r16 SetupRelease { PDCCH-BlindDetectionCA-CombIndicator-r16 }  OPTIONAL,   -- Need M
    pdcch-BlindDetection2-r16                SetupRelease { PDCCH-BlindDetection2-r16 }                 OPTIONAL,   -- Need M
    pdcch-BlindDetection3-r16                SetupRelease { PDCCH-BlindDetection3-r16 }                 OPTIONAL,   -- Need M
    bdFactorR-r16                          ENUMERATED {n1}                                              OPTIONAL    -- Need R
    ]]
}

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

DCP-Config-r16 ::=                  SEQUENCE {
    ps-RNTI-r16                         RNTI-Value,
    ps-Offset-r16                       INTEGER (1..120),
    sizeDCI-2-6-r16                     INTEGER (1..maxDCI-2-6-Size-r16),
    ps-PositionDCI-2-6-r16              INTEGER (0..maxDCI-2-6-Size-1-r16),
    ps-WakeUp-r16                       ENUMERATED {true}                                               OPTIONAL,   -- Need S
    ps-TransmitPeriodicL1-RSRP-r16      ENUMERATED {true}                                               OPTIONAL,   -- Need S
    ps-TransmitOtherPeriodicCSI-r16     ENUMERATED {true}                                               OPTIONAL    -- Need S
}

PDSCH-HARQ-ACK-CodebookList-r16 ::=     SEQUENCE (SIZE (1..2)) OF ENUMERATED {semiStatic, dynamic}

PDCCH-BlindDetectionCA-CombIndicator-r16 ::= SEQUENCE {
    pdcch-BlindDetectionCA1-r16                  INTEGER (1..15),
    pdcch-BlindDetectionCA2-r16                  INTEGER (1..15)
}

PDCCH-BlindDetection2-r16 ::=                INTEGER (1..15)

PDCCH-BlindDetection3-r16 ::=                INTEGER (1..15)

-- TAG-PHYSICALCELLGROUPCONFIG-STOP
-- TAG-PLMN-IDENTITY-START

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

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

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

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


-- TAG-PLMN-IDENTITY-STOP
-- TAG-PLMN-IDENTITYINFOLIST-START

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

PLMN-IdentityInfo ::=                   SEQUENCE {
    plmn-IdentityList                       SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity,
    trackingAreaCode                        TrackingAreaCode                                            OPTIONAL,       -- Need R
    ranac                                   RAN-AreaCode                                                OPTIONAL,       -- Need R
    cellIdentity                            CellIdentity,
    cellReservedForOperatorUse              ENUMERATED {reserved, notReserved},
    ...,
    [[
    iab-Support-r16                     ENUMERATED {true}                                               OPTIONAL       -- Need S
    ]]
}
-- TAG-PLMN-IDENTITYINFOLIST-STOP
-- TAG-PLMNIDENTITYLIST2-START

PLMN-IdentityList2-r16 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity

-- TAG-PLMNIDENTITYLIST2-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
    ...,
    [[
    maxNrofPorts-r16                    ENUMERATED {n1, n2}                                                     OPTIONAL    -- Need R
    ]]

}

-- 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
    ...,
    [[
    resourceToAddModListExt-r16             SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceExt-r16  OPTIONAL, -- Need N
    dl-DataToUL-ACK-r16                     SetupRelease { DL-DataToUL-ACK-r16 }                                  OPTIONAL, -- Need M
    ul-AccessConfigListForDCI-Format-1-1-r16 SetupRelease { UL-AccessConfigListForDCI-Format1-1-r16 }             OPTIONAL, -- Need M
    subslotLengthForPUCCH-r16               CHOICE {
            normalCP-r16                        ENUMERATED {n2,n7},
            extendedCP-r16                      ENUMERATED {n2,n6}
    }                                                                                                             OPTIONAL, -- Need R
    dl-DataToUL-ACK-ForDCI-Format1-2-r16    SetupRelease { DL-DataToUL-ACK-ForDCI-Format1-2-r16}                  OPTIONAL, -- Need M
    numberOfBitsForPUCCH-ResourceIndicatorForDCI-Format1-2-r16  INTEGER (0..3)                                    OPTIONAL, -- Need R
    dmrs-UplinkTransformPrecodingPUCCH-r16  ENUMERATED {enabled}                                                  OPTIONAL,  -- Cond PI2-BPSK
    spatialRelationInfoToAddModList2-r16    SEQUENCE (SIZE (1..maxNrofSpatialRelationInfosDiff-r16)) OF PUCCH-SpatialRelationInfo
                                                                                                                  OPTIONAL, -- Need N 
    spatialRelationInfoToReleaseList2-r16   SEQUENCE (SIZE (1..maxNrofSpatialRelationInfosDiff-r16)) OF PUCCH-SpatialRelationInfoId
                                                                                                                  OPTIONAL, -- Need N 
    spatialRelationInfoToAddModListExt-r16  SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos-r16)) OF PUCCH-SpatialRelationInfoExt-r16
                                                                                                                  OPTIONAL, -- Need N
    spatialRelationInfoToReleaseList-r16    SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos-r16)) OF PUCCH-SpatialRelationInfoId-r16                                   OPTIONAL, -- Need N
    resourceGroupToAddModList-r16           SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceGroups-r16)) OF PUCCH-ResourceGroup-r16
                                                                                                                  OPTIONAL, -- Need N
    resourceGroupToReleaseList-r16          SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceGroups-r16)) OF PUCCH-ResourceGroupId-r16
                                                                                                                  OPTIONAL, -- Need N
    sps-PUCCH-AN-List-r16                   SetupRelease { SPS-PUCCH-AN-List-r16 }                                OPTIONAL,  -- Need M
    schedulingRequestResourceToAddModList-v1610   SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig-v1610
                                                                                                                  OPTIONAL -- Need N
    ]]
}

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,
    maxPayloadSize                          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-ResourceExt-r16 ::=               SEQUENCE {
    interlaceAllocation-r16                 SEQUENCE {
        rb-SetIndex                             INTEGER (0..4),
        interlace0                              CHOICE {
            scs15                                   INTEGER (0..9),
            scs30                                   INTEGER (0..4)
        }
    }                                                                                                             OPTIONAL,  --Need R
    formatExt-v1610                         CHOICE {
        interlace1-v1610                            INTEGER (0..9),
        occ-v1610                                   SEQUENCE {
            occ-Length-v1610                                ENUMERATED {n2,n4}                                       OPTIONAL, -- Need M
            occ-Index-v1610                                 ENUMERATED {n0,n1,n2,n3}                                 OPTIONAL  -- Need M
        }
    }                                                                                                            OPTIONAL,  -- Need R
    ...
}

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

PUCCH-ResourceGroup-r16 ::=                SEQUENCE {
    pucch-ResourceGroupId-r16                  PUCCH-ResourceGroupId-r16,
    resourcePerGroupList-r16                   SEQUENCE (SIZE (1..maxNrofPUCCH-ResourcesPerGroup-r16)) OF PUCCH-ResourceId
}

PUCCH-ResourceGroupId-r16 ::=              INTEGER (0..maxNrofPUCCH-ResourceGroups-1-r16)

DL-DataToUL-ACK-r16 ::=                    SEQUENCE (SIZE (1..8)) OF INTEGER (-1..15)

DL-DataToUL-ACK-ForDCI-Format1-2-r16 ::=   SEQUENCE (SIZE (1..8)) OF INTEGER (0..15)

UL-AccessConfigListForDCI-Format1-1-r16 ::=  SEQUENCE (SIZE (1..16)) OF INTEGER (0..15)

-- TAG-PUCCH-CONFIG-STOP
-- TAG-PUCCH-CONFIGCOMMON-START

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

-- TAG-PUCCH-CONFIGCOMMON-STOP
-- TAG-PUCCH-CONFIGURATIONLIST-START

PUCCH-ConfigurationList-r16  ::=     SEQUENCE (SIZE (1..2)) OF PUCCH-Config

-- TAG-PUCCH-CONFIGURATIONLIST-STOP
-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START

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

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

-- 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
    ...,
    [[
    pathlossReferenceRSs-v1610          SetupRelease { PathlossReferenceRSs-v1610 }                             OPTIONAL -- Need M
    ]]
}

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

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

PathlossReferenceRSs-v1610 ::=          SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSsDiff-r16)) OF PUCCH-PathlossReferenceRS-r16

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

PUCCH-PathlossReferenceRS-r16 ::=                   SEQUENCE {
    pucch-PathlossReferenceRS-Id-r16                    PUCCH-PathlossReferenceRS-Id-v1610,
    referenceSignal-r16                                 CHOICE {
        ssb-Index-r16                                       SSB-Index,
        csi-RS-Index-r16                                    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                                     PUCCH-SRS
    },
    pucch-PathlossReferenceRS-Id            PUCCH-PathlossReferenceRS-Id,
    p0-PUCCH-Id                             P0-PUCCH-Id,
    closedLoopIndex                         ENUMERATED { i0, i1 }
}

PUCCH-SpatialRelationInfoExt-r16 ::=       SEQUENCE {
    pucch-SpatialRelationInfoId-v1610         PUCCH-SpatialRelationInfoId-v1610                              OPTIONAL,   -- Cond SetupOnly
    pucch-PathlossReferenceRS-Id-v1610        PUCCH-PathlossReferenceRS-Id-v1610                             OPTIONAL,    --Need R
    ...
}

PUCCH-SRS ::= 	SEQUENCE {
    resource                            SRS-ResourceId,
    uplinkBWP                           BWP-Id
}
-- TAG-PUCCH-SPATIALRELATIONINFO-STOP
-- TAG-PUCCH-SPATIALRELATIONINFO-START

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

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

PUCCH-SpatialRelationInfoId-v1610::=    INTEGER (maxNrofSpatialRelationInfos-plus-1..maxNrofSpatialRelationInfos-r16)

-- 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
    ...,
    [[
    minimumSchedulingOffsetK2-r16           SetupRelease { MinSchedulingOffsetK2-Values-r16 }         OPTIONAL,  -- Need M
    ul-AccessConfigListForDCI-Format0-1-r16 SetupRelease { UL-AccessConfigListForDCI-Format0-1-r16 }  OPTIONAL,  -- Need M
    -- Start of the parameters for DCI format 0_2 introduced in V16.1.0
    harq-ProcessNumberSizeForDCI-Format0-2-r16              INTEGER (0..4)                            OPTIONAL,   -- Need R
    dmrs-SequenceInitializationForDCI-Format0-2-r16         ENUMERATED {enabled}                      OPTIONAL,   -- Need S
    numberOfBitsForRV-ForDCI-Format0-2-r16                  INTEGER (0..2)                            OPTIONAL,   -- Need R
    antennaPortsFieldPresenceForDCI-Format0-2-r16           ENUMERATED {enabled}                      OPTIONAL,   -- Need S
    dmrs-UplinkForPUSCH-MappingTypeA-ForDCI-Format0-2-r16   SetupRelease { DMRS-UplinkConfig }        OPTIONAL,   -- Need M
    dmrs-UplinkForPUSCH-MappingTypeB-ForDCI-Format0-2-r16   SetupRelease { DMRS-UplinkConfig }        OPTIONAL,   -- Need M
    frequencyHoppingForDCI-Format0-2-r16                    CHOICE {
        pusch-RepTypeA                                          ENUMERATED {intraSlot, interSlot},
        pusch-RepTypeB                                          ENUMERATED {interRepetition, interSlot}
    }                                                                                                 OPTIONAL,   -- Need S
    frequencyHoppingOffsetListsForDCI-Format0-2-r16 SetupRelease { FrequencyHoppingOffsetListsForDCI-Format0-2-r16} OPTIONAL,  -- Need M
    codebookSubsetForDCI-Format0-2-r16                ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent,nonCoherent}
                                                                                                      OPTIONAL,   -- Cond codebookBased
    invalidSymbolPatternIndicatorForDCI-Format0-2-r16       ENUMERATED {enabled}                      OPTIONAL,   -- Need S
    maxRankForDCI-Format0-2-r16                             INTEGER (1..4)                            OPTIONAL,   -- Cond codebookBased
    mcs-TableForDCI-Format0-2-r16                           ENUMERATED {qam256, qam64LowSE}           OPTIONAL,   -- Need S
    mcs-TableTransformPrecoderForDCI-Format0-2-r16          ENUMERATED {qam256, qam64LowSE}           OPTIONAL,   -- Need S
    priorityIndicatorForDCI-Format0-2-r16                   ENUMERATED {enabled}                      OPTIONAL,   -- Need S
    pusch-RepTypeIndicatorForDCI-Format0-2-r16              ENUMERATED { pusch-RepTypeA, pusch-RepTypeB} OPTIONAL,  -- Need R
    resourceAllocationForDCI-Format0-2-r16                ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}
                                                                                                      OPTIONAL,   -- Need M
    resourceAllocationType1GranularityForDCI-Format0-2-r16  ENUMERATED { n2,n4,n8,n16 }               OPTIONAL,   -- Need S
    uci-OnPUSCH-ListForDCI-Format0-2-r16        SetupRelease { UCI-OnPUSCH-ListForDCI-Format0-2-r16}  OPTIONAL,   -- Need M
    pusch-TimeDomainAllocationListForDCI-Format0-2-r16  SetupRelease { PUSCH-TimeDomainResourceAllocationList-r16 }
                                                                                                      OPTIONAL,   -- Need M
    -- End of the parameters for DCI format 0_2 introduced in V16.1.0
    -- Start of the parameters for DCI format 0_1 introduced in V16.1.0
    pusch-TimeDomainAllocationListForDCI-Format0-1-r16  SetupRelease { PUSCH-TimeDomainResourceAllocationList-r16 }
                                                                                                      OPTIONAL,   -- Need M
    invalidSymbolPatternIndicatorForDCI-Format0-1-r16 ENUMERATED {enabled}                            OPTIONAL,   -- Need S
    priorityIndicatorForDCI-Format0-1-r16             ENUMERATED {enabled}                            OPTIONAL,   -- Need S
    pusch-RepTypeIndicatorForDCI-Format0-1-r16        ENUMERATED { pusch-RepTypeA, pusch-RepTypeB}    OPTIONAL,   -- Need R
    frequencyHoppingForDCI-Format0-1-r16        ENUMERATED {interRepetition, interSlot}               OPTIONAL,   -- Cond RepTypeB
    uci-OnPUSCH-ListForDCI-Format0-1-r16        SetupRelease { UCI-OnPUSCH-ListForDCI-Format0-1-r16  } OPTIONAL,  -- Need M
    -- End of the parameters for DCI format 0_1 introduced in V16.1.0
    invalidSymbolPattern-r16                    InvalidSymbolPattern-r16                              OPTIONAL,   -- Need S
    pusch-PowerControl-v1610                SetupRelease {PUSCH-PowerControl-v1610}                   OPTIONAL,   -- Need M
    ul-FullPowerTransmission-r16            ENUMERATED {fullpower, fullpowerMode1, fullpoweMode2}     OPTIONAL,   -- Need R
    pusch-TimeDomainAllocationListForMultiPUSCH-r16  SetupRelease { PUSCH-TimeDomainResourceAllocationList-r16 }
                                                                                                      OPTIONAL,  --  Need M
    numberOfInvalidSymbolsForDL-UL-Switching-r16        INTEGER (1..4)                                OPTIONAL    -- Cond RepTypeB2
    ]]
}

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

MinSchedulingOffsetK2-Values-r16 ::=    SEQUENCE (SIZE (1..maxNrOfMinSchedulingOffsetValues-r16)) OF INTEGER (0..maxK2-SchedulingOffset-r16)

UCI-OnPUSCH-ForDCI-Format0-2-r16 ::=    SEQUENCE {
    betaOffsetsForDCI-Format0-2-r16         CHOICE {
        dynamicForDCI-Format0-2-r16             CHOICE {
            oneBit-r16                              SEQUENCE (SIZE (2)) OF BetaOffsets,
            twoBits-r16                             SEQUENCE (SIZE (4)) OF BetaOffsets
        },
        semiStaticForDCI-Format0-2-r16          BetaOffsets
    }                                                                                                 OPTIONAL,   -- Need M
    scalingForDCI-Format0-2-r16                 ENUMERATED { f0p5, f0p65, f0p8, f1 }
}

FrequencyHoppingOffsetListsForDCI-Format0-2-r16 ::=  SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1)

UCI-OnPUSCH-ListForDCI-Format0-2-r16 ::=  SEQUENCE (SIZE (1..2)) OF UCI-OnPUSCH-ForDCI-Format0-2-r16

UCI-OnPUSCH-ListForDCI-Format0-1-r16 ::=  SEQUENCE (SIZE (1..2)) OF UCI-OnPUSCH

UL-AccessConfigListForDCI-Format0-1-r16 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (0..63)

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

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

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

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

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

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

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

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)

PUSCH-PowerControl-v1610 ::=        SEQUENCE {
    pathlossReferenceRSToAddModList2-r16   SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSsDiff-r16)) OF PUSCH-PathlossReferenceRS-r16
                                                                                                                OPTIONAL, -- Need N
    pathlossReferenceRSToReleaseList2-r16  SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSsDiff-r16)) OF PUSCH-PathlossReferenceRS-Id-v1610
                                                                                                                OPTIONAL, -- Need N
    p0-PUSCH-SetList-r16                SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF P0-PUSCH-Set-r16      OPTIONAL, -- Need R
    olpc-ParameterSet                   SEQUENCE {
        olpc-ParameterSetForDCI-Format0-1-r16   INTEGER (1..2)                                                  OPTIONAL, -- Need R
        olpc-ParameterSetForDCI-Format0-2-r16   INTEGER (1..2)                                                  OPTIONAL  -- Need R
    }                                                                                                           OPTIONAL, -- Need M
    ...
}

P0-PUSCH-Set-r16 ::=                SEQUENCE {
    p0-PUSCH-SetId-r16                  P0-PUSCH-SetId-r16,
    p0-List-r16                         SEQUENCE (SIZE (1..maxNrofP0-PUSCH-Set-r16)) OF P0-PUSCH-r16            OPTIONAL, -- Need R
    ...
}

P0-PUSCH-SetId-r16 ::=              INTEGER (0..maxNrofSRI-PUSCH-Mappings-1)

P0-PUSCH-r16 ::=                    INTEGER (-16..15)

-- 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
    ...,
    [[
    maxMIMO-Layers                          INTEGER (1..4)                                          OPTIONAL,   -- Need M
    processingType2Enabled                  BOOLEAN                                                 OPTIONAL    -- Need M
    ]],
    [[
    maxMIMO-LayersForDCI-Format0-2-r16      SetupRelease { MaxMIMO-LayersForDCI-Format0-2-r16}      OPTIONAL    -- Need M
    ]]
}

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

MaxMIMO-LayersForDCI-Format0-2-r16 ::=  INTEGER (1..4)

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

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

PUSCH-TimeDomainResourceAllocation-r16 ::=  SEQUENCE {
    k2-r16                                     INTEGER(0..32)          OPTIONAL,   -- Need S
    puschAllocationList-r16                    SEQUENCE (SIZE(1..maxNrofMultiplePUSCHs-r16)) OF PUSCH-Allocation-r16,
	...
}

PUSCH-Allocation-r16 ::=  SEQUENCE {
    mappingType-r16                           ENUMERATED {typeA, typeB}                     OPTIONAL,   -- Cond NotFormat01-02-Or-TypeA
    startSymbolAndLength-r16                  INTEGER (0..127)                              OPTIONAL,   -- Cond NotFormat01-02-Or-TypeA
    startSymbol-r16                           INTEGER (0..13)                               OPTIONAL,   -- Cond RepTypeB
    length-r16                                INTEGER (1..14)                               OPTIONAL,   -- Cond RepTypeB
    numberOfRepetitions-r16                   ENUMERATED {n1, n2, n3, n4, n7, n8, n12, n16} OPTIONAL,   -- Cond Format01-02
    ...
}

-- 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-OFFSETRANGE-START

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

-- TAG-Q-OFFSETRANGE-STOP
-- TAG-Q-QUALMIN-START

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

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

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

-- TAG-Q-RXLEVMIN-STOP
-- TAG-QUANTITYCONFIG-START


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

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

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

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

FilterConfigCLI-r16 ::=             SEQUENCE {
    filterCoefficientSRS-RSRP-r16       FilterCoefficient                                       DEFAULT fc4,
    filterCoefficientCLI-RSSI-r16       FilterCoefficient                                       DEFAULT fc4
}

QuantityConfigUTRA-FDD-r16 ::=      SEQUENCE {
    filterCoefficientRSCP-r16           FilterCoefficient                                       DEFAULT fc4,
    filterCoefficientEcNO-r16           FilterCoefficient                                       DEFAULT fc4
}

-- TAG-QUANTITYCONFIG-STOP
-- TAG-RACH-CONFIGCOMMON-START

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

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

-- TAG-RACH-CONFIGCOMMON-STOP
-- TAG-RACH-CONFIGCOMMONTWOSTEPRA-START

RACH-ConfigCommonTwoStepRA-r16 ::=                   SEQUENCE {
    rach-ConfigGenericTwoStepRA-r16                      RACH-ConfigGenericTwoStepRA-r16,
    msgA-TotalNumberOfRA-Preambles-r16                   INTEGER (1..63)                                    OPTIONAL, -- Need S
    msgA-SSB-PerRACH-OccasionAndCB-PreamblesPerSSB-r16   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, -- Cond 2StepOnly
    msgA-CB-PreamblesPerSSB-PerSharedRO-r16              INTEGER (1..60)                                                OPTIONAL, -- Cond SharedRO
    msgA-SSB-SharedRO-MaskIndex-r16                      INTEGER (1..15)                                                OPTIONAL, -- Need S
    groupB-ConfiguredTwoStepRA-r16                       GroupB-ConfiguredTwoStepRA-r16                                 OPTIONAL, -- Need S
    msgA-PRACH-RootSequenceIndex-r16                     CHOICE {
        l839                                                 INTEGER (0..837),
        l139                                                 INTEGER (0..137),
        l571                                                 INTEGER (0..569),
        l1151                                                INTEGER (0..1149)
    }                                                                                                                   OPTIONAL, -- Cond 2StepOnly
    msgA-TransMax-r16                                    ENUMERATED {n1, n2, n4, n6, n8, n10, n20, n50, n100, n200}     OPTIONAL, -- Need R
    msgA-RSRP-Threshold-r16                              RSRP-Range                                                     OPTIONAL, -- Cond 2Step4Step
    msgA-RSRP-ThresholdSSB-r16                           RSRP-Range                                                     OPTIONAL, -- Need R
    msgA-SubcarrierSpacing-r16                           SubcarrierSpacing                                              OPTIONAL, -- Cond 2StepOnlyL139
    msgA-RestrictedSetConfig-r16                         ENUMERATED {unrestrictedSet, restrictedSetTypeA, 
                                                                     restrictedSetTypeB}                                OPTIONAL, -- Cond 2StepOnly
    ra-PrioritizationForAccessIdentityTwoStep-r16        SEQUENCE {
        ra-Prioritization-r16                                RA-Prioritization,
        ra-PrioritizationForAI-r16                           BIT STRING (SIZE (2))
    }                                                                                                                   OPTIONAL, -- Cond InitialBWP-Only
    ra-ContentionResolutionTimer-r16                     ENUMERATED {sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}     OPTIONAL, -- Cond 2StepOnly
    ...
}

GroupB-ConfiguredTwoStepRA-r16 ::=                       SEQUENCE {
    ra-MsgA-SizeGroupA                                   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)
}

-- TAG-RACH-CONFIGCOMMONTWOSTEPRA-STOP
-- TAG-RACH-CONFIGDEDICATED-START


RACH-ConfigDedicated ::=        SEQUENCE {
    cfra                            CFRA                                                                    OPTIONAL, -- Need S
    ra-Prioritization               RA-Prioritization                                                       OPTIONAL, -- Need N
    ...,
    [[
    ra-PrioritizationTwoStep-r16    RA-Prioritization                                                       OPTIONAL, -- Need N
    cfra-TwoStep-r16                CFRA-TwoStep-r16                                                        OPTIONAL  -- Need S
    ]]
}

CFRA ::=                    SEQUENCE {
    occasions                       SEQUENCE {
        rach-ConfigGeneric              RACH-ConfigGeneric,
        ssb-perRACH-Occasion            ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen}
                                                                                                            OPTIONAL  -- Cond Mandatory
    }                                                                                                       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 INTEGER (1..63)                                                         OPTIONAL -- Cond Occasions
    ]]
}

CFRA-TwoStep-r16 ::=                    SEQUENCE {
    occasionsTwoStepRA-r16                  SEQUENCE {
        rach-ConfigGenericTwoStepRA-r16         RACH-ConfigGenericTwoStepRA-r16,
        ssb-PerRACH-OccasionTwoStepRA-r16       ENUMERATED {oneEighth, oneFourth, oneHalf, one, 
                                                            two, four, eight, sixteen}
    }                                                                                                     OPTIONAL, -- Need S
    msgA-CFRA-PUSCH-r16                     MsgA-PUSCH-Resource-r16,
    msgA-TransMax-r16                       ENUMERATED {n1, n2, n4, n6, n8, n10, n20, n50, n100, n200}    OPTIONAL, -- Need S
    resourcesTwoStep-r16                    SEQUENCE {
        ssb-ResourceList                        SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource,
        ra-ssb-OccasionMaskIndex                INTEGER (0..15)
    },
    ...
}

CFRA-SSB-Resource ::=           SEQUENCE {
    ssb                             SSB-Index,
    ra-PreambleIndex                INTEGER (0..63),
    ...,
    [[
    msgA-PUSCH-resource-Index-r16   INTEGER (0..3071)     OPTIONAL  -- Cond 2StepCFRA
    ]]

}

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

-- TAG-RACH-CONFIGDEDICATED-STOP
-- TAG-RACH-CONFIGGENERIC-START

RACH-ConfigGeneric ::=              SEQUENCE {
    prach-ConfigurationIndex            INTEGER (0..255),
    msg1-FDM                            ENUMERATED {one, two, four, eight},
    msg1-FrequencyStart                 INTEGER (0..maxNrofPhysicalResourceBlocks-1),
    zeroCorrelationZoneConfig           INTEGER(0..15),
    preambleReceivedTargetPower         INTEGER (-202..-60),
    preambleTransMax                    ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200},
    powerRampingStep                    ENUMERATED {dB0, dB2, dB4, dB6},
    ra-ResponseWindow                   ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80},
    ...,
    [[
    prach-ConfigurationPeriodScaling-IAB-r16    ENUMERATED {scf1,scf2,scf4,scf8,scf16,scf32,scf64}                    OPTIONAL,   -- Need R
    prach-ConfigurationFrameOffset-IAB-r16      INTEGER (0..63)                                                       OPTIONAL,   -- Need R
    prach-ConfigurationSOffset-IAB-r16          INTEGER (0..39)                                                       OPTIONAL,   -- Need R
    ra-ResponseWindow-v1610                     ENUMERATED { sl60, sl160}                                             OPTIONAL, -- Need R
    prach-ConfigurationIndex-v1610              INTEGER (256..262)                                                    OPTIONAL  -- Need R
    ]]
}

-- TAG-RACH-CONFIGGENERIC-STOP
-- TAG-RACH-CONFIGGENERICTWOSTEPRA-START

RACH-ConfigGenericTwoStepRA-r16 ::=     SEQUENCE {
    msgA-PRACH-ConfigurationIndex-r16       INTEGER (0..262)                                                OPTIONAL, -- Cond 2StepOnly
    msgA-RO-FDM-r16                         ENUMERATED {one, two, four, eight}                              OPTIONAL, -- Cond 2StepOnly
    msgA-RO-FrequencyStart-r16              INTEGER (0..maxNrofPhysicalResourceBlocks-1)                    OPTIONAL, -- Cond 2StepOnly
    msgA-ZeroCorrelationZoneConfig-r16      INTEGER (0..15)                                                 OPTIONAL, -- Cond 2StepOnly
    msgA-PreamblePowerRampingStep-r16       ENUMERATED {dB0, dB2, dB4, dB6}                                 OPTIONAL, -- Cond 2StepOnlyNoCFRA
    msgA-PreambleReceivedTargetPower-r16    INTEGER (-202..-60)                                             OPTIONAL, -- Cond 2StepOnlyNoCFRA
    msgB-ResponseWindow-r16                 ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80, sl160, sl320}                                                                         
                                                                                                            OPTIONAL, -- Cond NoCFRA
    preambleTransMax-r16                    ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}  OPTIONAL, -- Cond 2StepOnlyNoCFRA
    ...
}

-- TAG-RACH-CONFIGGENERICTWOSTEPRA-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-RADIOBEARERCONFIG-START

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

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

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

DRB-ToAddMod ::=                        SEQUENCE {
    cnAssociation                           CHOICE {
        eps-BearerIdentity                      INTEGER (0..15),
        sdap-Config                             SDAP-Config
    }                                                                                               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
    ...,
    [[
    daps-Config-r16                         ENUMERATED{true}                                        OPTIONAL     --Need N
    ]]
}
DRB-ToReleaseList ::=                   SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity

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

-- TAG-RADIOBEARERCONFIG-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-RADIOLINKMONITORINGRS-ID-START

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

-- TAG-RADIOLINKMONITORINGRS-ID-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 },
    ...,
    [[
    controlResourceSet-r16              ControlResourceSetId-r16                                        OPTIONAL    -- Need R
    ]]

}

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

LTE-CRS-PatternList-r16 ::=         SEQUENCE (SIZE (1..maxLTE-CRS-Patterns-r16)) OF RateMatchPatternLTE-CRS

-- TAG-RATEMATCHPATTERNLTE-CRS-STOP
-- TAG-REFERENCETIMEINFO-START

ReferenceTimeInfo-r16 ::= SEQUENCE {
    time-r16                            ReferenceTime-r16,
    uncertainty-r16                     INTEGER (0..32767)          OPTIONAL,   -- Need S
    timeInfoType-r16                    ENUMERATED {localClock}     OPTIONAL,   -- Need S
    referenceSFN-r16                    INTEGER (0..1023)           OPTIONAL    -- Cond RefTime
}

ReferenceTime-r16 ::=           SEQUENCE {
    refDays-r16                         INTEGER (0..72999),
    refSeconds-r16                      INTEGER (0..86399),
    refMilliSeconds-r16                 INTEGER (0..999),
    refTenNanoSeconds-r16               INTEGER (0..99999)
}

-- TAG-REFERENCETIMEINFO-STOP
-- TAG-REJECTWAITTIME-START

RejectWaitTime ::=                  INTEGER (1..16)

-- TAG-REJECTWAITTIME-STOP
-- TAG-REPETITIONSCHEMECONFIG-START

RepetitionSchemeConfig-r16 ::= CHOICE {
    fdm-TDM-r16                        SetupRelease { FDM-TDM-r16 },
    slotBased-r16                      SetupRelease { SlotBased-r16 }
}

FDM-TDM-r16 ::=                    SEQUENCE {
    repetitionScheme-r16           ENUMERATED {fdmSchemeA, fdmSchemeB,tdmSchemeA },
    startingSymbolOffsetK-r16      INTEGER (0..7)                                    OPTIONAL  -- Need R
}

SlotBased-r16 ::=                  SEQUENCE {
    tciMapping-r16                 ENUMERATED {cyclicMapping, sequenticalMapping},
    sequenceOffsetforRV-r16        INTEGER (1..3)
}

-- TAG-REPETITIONSCHEMECONFIG-STOP
-- TAG-REPORTCONFIGID-START

ReportConfigId ::=                          INTEGER (1..maxReportConfigId)

-- TAG-REPORTCONFIGID-STOP
-- TAG-REPORTCONFIGINTERRAT-START

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

ReportCGI-EUTRA ::=                         SEQUENCE {
    cellForWhichToReportCGI         EUTRA-PhysCellId,
    ...,
    [[
    useAutonomousGaps-r16           ENUMERATED {setup}                OPTIONAL     -- Need R
    ]]
}

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

EventTriggerConfigInterRAT ::=              SEQUENCE {
    eventId                                     CHOICE {
        eventB1                                     SEQUENCE {
            b1-ThresholdEUTRA                           MeasTriggerQuantityEUTRA,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            ...
        },
        eventB2                                     SEQUENCE {
            b2-Threshold1                               MeasTriggerQuantity,
            b2-Threshold2EUTRA                          MeasTriggerQuantityEUTRA,
            reportOnLeave                               BOOLEAN,
            hysteresis                                  Hysteresis,
            timeToTrigger                               TimeToTrigger,
            ...
        },
        ...,
        [[
        eventB1-UTRA-FDD-r16                         SEQUENCE {
            b1-ThresholdUTRA-FDD-r16                    MeasTriggerQuantityUTRA-FDD-r16,
            reportOnLeave-r16                           BOOLEAN,
            hysteresis-r16                              Hysteresis,
            timeToTrigger-r16                           TimeToTrigger,
            ...
        },
        eventB2-UTRA-FDD-r16                         SEQUENCE {
            b2-Threshold1-r16                           MeasTriggerQuantity,
            b2-Threshold2UTRA-FDD-r16                   MeasTriggerQuantityUTRA-FDD-r16,
            reportOnLeave-r16                           BOOLEAN,
            hysteresis-r16                              Hysteresis,
            timeToTrigger-r16                           TimeToTrigger,
            ...
        }
        ]]
    },
    rsType                              NR-RS-Type,

    reportInterval                      ReportInterval,
    reportAmount                        ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity                      MeasReportQuantity,
    maxReportCells                      INTEGER (1..maxCellReport),
    ...,
    [[
    reportQuantityUTRA-FDD-r16          MeasReportQuantityUTRA-FDD-r16         OPTIONAL   -- Need R
    ]]


}

PeriodicalReportConfigInterRAT ::=              SEQUENCE {
    reportInterval                                  ReportInterval,
    reportAmount                                    ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity                                  MeasReportQuantity,
    maxReportCells                                  INTEGER (1..maxCellReport),
    ...,
    [[
    reportQuantityUTRA-FDD-r16                      MeasReportQuantityUTRA-FDD-r16         OPTIONAL   -- Need R
    ]]
}

MeasTriggerQuantityUTRA-FDD-r16 ::=          CHOICE{
    utra-FDD-RSCP-r16                            INTEGER (-5..91),
    utra-FDD-EcN0-r16                            INTEGER (0..49)
}

MeasReportQuantityUTRA-FDD-r16 ::=        SEQUENCE {
    cpich-RSCP                                BOOLEAN,
    cpich-EcN0                                BOOLEAN
}

-- TAG-REPORTCONFIGINTERRAT-STOP
-- TAG-REPORTCONFIGNR-START

ReportConfigNR ::=                          SEQUENCE {
    reportType                                  CHOICE {
        periodical                                  PeriodicalReportConfig,
        eventTriggered                              EventTriggerConfig,
        ...,
        reportCGI                                   ReportCGI,
        reportSFTD                                  ReportSFTD-NR,
        condTriggerConfig-r16                       CondTriggerConfig-r16,
        cli-Periodical-r16                          CLI-PeriodicalReportConfig-r16,
        cli-EventTriggered-r16                      CLI-EventTriggerConfig-r16
    }
}

ReportCGI ::=                     SEQUENCE {
    cellForWhichToReportCGI          PhysCellId,
        ...,
    [[
    useAutonomousGaps-r16            ENUMERATED {setup}                OPTIONAL   -- Need R
    ]]

}

ReportSFTD-NR ::=                 SEQUENCE {
    reportSFTD-Meas                  BOOLEAN,
    reportRSRP                       BOOLEAN,
    ...,
    [[
    reportSFTD-NeighMeas             ENUMERATED {true}                                OPTIONAL,   -- Need R
    drx-SFTD-NeighMeas               ENUMERATED {true}                                OPTIONAL,   -- Need R
    cellsForWhichToReportSFTD        SEQUENCE (SIZE (1..maxCellSFTD)) OF PhysCellId   OPTIONAL    -- Need R
    ]]
}

CondTriggerConfig-r16 ::=        SEQUENCE {
    condEventId                      CHOICE {
        condEventA3                      SEQUENCE {
            a3-Offset                        MeasTriggerQuantityOffset,
            hysteresis                       Hysteresis,
            timeToTrigger                    TimeToTrigger
        },
        condEventA5                      SEQUENCE {
            a5-Threshold1                    MeasTriggerQuantity,
            a5-Threshold2                    MeasTriggerQuantity,
            hysteresis                       Hysteresis,
            timeToTrigger                    TimeToTrigger
        },
        ...
    },
    rsType-r16                       NR-RS-Type,
    ...
}

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

    rsType                                      NR-RS-Type,

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

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

    reportQuantityRS-Indexes                     MeasReportQuantity                                            OPTIONAL,   -- Need R
    maxNrofRS-IndexesToReport                   INTEGER (1..maxNrofIndexesToReport)                            OPTIONAL,   -- Need R
    includeBeamMeasurements                     BOOLEAN,
    reportAddNeighMeas                          ENUMERATED {setup}                                             OPTIONAL,   -- Need R
    ...,
    [[
    measRSSI-ReportConfig-r16                   MeasRSSI-ReportConfig-r16                                      OPTIONAL,   -- Need R
    useT312-r16                                 BOOLEAN                                                        OPTIONAL,   -- Need M
    includeCommonLocationInfo-r16               ENUMERATED {true}                                              OPTIONAL,   -- Need R
    includeBT-Meas-r16                          SetupRelease {BT-NameList-r16}                                 OPTIONAL,   -- Need M
    includeWLAN-Meas-r16                        SetupRelease {WLAN-NameList-r16}                               OPTIONAL,   -- Need M
    includeSensor-Meas-r16                      SetupRelease {Sensor-NameList-r16}                             OPTIONAL    -- Need M
    ]]
}

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

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

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

    reportQuantityRS-Indexes                    MeasReportQuantity                                             OPTIONAL,   -- Need R
    maxNrofRS-IndexesToReport                   INTEGER (1..maxNrofIndexesToReport)                            OPTIONAL,   -- Need R
    includeBeamMeasurements                     BOOLEAN,
    useWhiteCellList                            BOOLEAN,
    ...,
    [[
    measRSSI-ReportConfig-r16                   MeasRSSI-ReportConfig-r16                                      OPTIONAL,   -- Need R
    includeCommonLocationInfo-r16               ENUMERATED {true}                                              OPTIONAL,   -- Need R
    includeBT-Meas-r16                          SetupRelease {BT-NameList-r16}                                 OPTIONAL,   -- Need M
    includeWLAN-Meas-r16                        SetupRelease {WLAN-NameList-r16}                               OPTIONAL,   -- Need M
    includeSensor-Meas-r16                      SetupRelease {Sensor-NameList-r16}                             OPTIONAL,   -- Need M
    ul-DelayValueConfig-r16                     SetupRelease { UL-DelayValueConfig-r16 }                       OPTIONAL,   -- Need M
    reportAddNeighMeas-r16                      ENUMERATED {setup}                                             OPTIONAL    -- Need R
    ]]

}

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
}

MeasRSSI-ReportConfig-r16 ::=               SEQUENCE {
    channelOccupancyThreshold-r16               RSSI-Range-r16         OPTIONAL   -- Need R 
}

CLI-EventTriggerConfig-r16 ::=              SEQUENCE {
    eventId-r16                                 CHOICE {
        eventI1-r16                                 SEQUENCE {
            i1-Threshold-r16                            MeasTriggerQuantityCLI-r16,
            reportOnLeave-r16                           BOOLEAN,
            hysteresis-r16                              Hysteresis,
            timeToTrigger-r16                           TimeToTrigger
        },
    ...
    },
    reportInterval-r16                          ReportInterval,
    reportAmount-r16                            ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    maxReportCLI-r16                            INTEGER (1..maxCLI-Report-r16),
    ...
}

CLI-PeriodicalReportConfig-r16 ::=          SEQUENCE {
    reportInterval-r16                          ReportInterval,
    reportAmount-r16                            ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantityCLI-r16                       MeasReportQuantityCLI-r16,
    maxReportCLI-r16                            INTEGER (1..maxCLI-Report-r16),
    ...
}

MeasTriggerQuantityCLI-r16 ::=              CHOICE {
    srs-RSRP-r16                                SRS-RSRP-Range-r16,
    cli-RSSI-r16                                CLI-RSSI-Range-r16
}

MeasReportQuantityCLI-r16 ::=               ENUMERATED {srs-rsrp, cli-rssi}

-- TAG-REPORTCONFIGNR-STOP
-- TAG-REPORTCONFIGNR-SL-START

ReportConfigNR-SL-r16 ::=            SEQUENCE {
    reportType-r16                       CHOICE {
        periodical-r16                       PeriodicalReportConfigNR-SL-r16,
        eventTriggered-r16                   EventTriggerConfigNR-SL-r16
    }
}

EventTriggerConfigNR-SL-r16::=       SEQUENCE {
    eventId-r16                          CHOICE {
        eventC1                              SEQUENCE {
            c1-Threshold-r16                     SL-CBR-r16,
            hysteresis-r16                       Hysteresis,
            timeToTrigger-r16                    TimeToTrigger
        },
        eventC2-r16                  SEQUENCE {
            c2-Threshold-r16             SL-CBR-r16,
            hysteresis-r16               Hysteresis,
            timeToTrigger-r16            TimeToTrigger
        },
        ...
    },
    reportInterval-r16               ReportInterval,
    reportAmount-r16                 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity-r16               MeasReportQuantity-r16,
    ...
}

PeriodicalReportConfigNR-SL-r16 ::=  SEQUENCE {
    reportInterval-r16                   ReportInterval,
    reportAmount-r16                     ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    reportQuantity-r16                   MeasReportQuantity-r16,
    ...
}

MeasReportQuantity-r16 ::=           SEQUENCE {
    cbr-r16                              BOOLEAN,
    ...
}

-- TAG-REPORTCONFIGNR-SL-STOP
-- TAG-REPORTCONFIGTOADDMODLIST-START

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

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

-- TAG-REPORTCONFIGTOADDMODLIST-STOP
-- TAG-REPORTINTERVAL-START

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

-- TAG-REPORTINTERVAL-STOP
-- TAG-RESELECTIONTHRESHOLD-START

ReselectionThreshold ::=                INTEGER (0..31)

-- TAG-RESELECTIONTHRESHOLD-STOP
-- TAG-RESELECTIONTHRESHOLDQ-START

ReselectionThresholdQ ::=           INTEGER (0..31)

-- TAG-RESELECTIONTHRESHOLDQ-STOP
-- TAG-RESUMECAUSE-START

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

-- TAG-RESUMECAUSE-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
    ...,
    [[
    rlc-Config-v1610                            RLC-Config-v1610                                    OPTIONAL    -- Need R
    ]]
}

-- 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, ms1-v1610, ms2-v1610, ms3-v1610,
                                        ms4-v1610, 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}

RLC-Config-v1610 ::=                SEQUENCE {
    dl-AM-RLC-v1610                     DL-AM-RLC-v1610
}

DL-AM-RLC-v1610 ::=                 SEQUENCE {
    t-StatusProhibit-v1610              T-StatusProhibit-v1610                               OPTIONAL,   -- Need N
    ...
}

T-StatusProhibit-v1610 ::=          ENUMERATED { ms1, ms2, ms3, ms4, spare4, spare3, spare2, spare1}

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

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

-- TAG-RLF-TIMERSANDCONSTANTS-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-RSSI-RANGE-START

RSSI-Range-r16 ::=                  INTEGER(0..76)

-- TAG-RSSI-RANGE-STOP
-- TAG-SCELLINDEX-START

SCellIndex ::=                      INTEGER (1..31)

-- TAG-SCELLINDEX-STOP
-- TAG-SCHEDULINGREQUESTCONFIG-START

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

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



-- TAG-SCHEDULINGREQUESTCONFIG-STOP
-- TAG-SCHEDULINGREQUESTID-START

SchedulingRequestId ::=             INTEGER (0..7)

-- TAG-SCHEDULINGREQUESTID-STOP
-- TAG-SCHEDULINGREQUESTRESOURCECONFIG-START

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

SchedulingRequestResourceConfig-v1610 ::=   SEQUENCE {
    phy-PriorityIndex-r16                       ENUMERATED {p0, p1}                                         OPTIONAL,   -- Need M
    ...
}

-- TAG-SCHEDULINGREQUESTRESOURCECONFIG-STOP
-- TAG-SCHEDULINGREQUESTRESOURCEID-START

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

-- TAG-SCHEDULINGREQUESTRESOURCEID-STOP
-- TAG-SCRAMBLINGID-START

ScramblingId ::=                    INTEGER(0..1023)

-- TAG-SCRAMBLINGID-STOP
-- TAG-SCS-SPECIFICCARRIER-START

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

-- TAG-SCS-SPECIFICCARRIER-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},
            ...,
            [[
            dci-Formats-MT-r16                   ENUMERATED {formats2-5}                                OPTIONAL,    -- Need R
            dci-FormatsSL-r16                    ENUMERATED {formats0-0-And-1-0, formats0-1-And-1-1, formats3-0, formats3-1,
                                                             formats3-0-And-3-1}                        OPTIONAL,    -- Need R
            dci-FormatsExt-r16                   ENUMERATED {formats0-2-And-1-2, formats0-1-And-1-1And-0-2-And-1-2}
                                                                                                        OPTIONAL     -- Need R
            ]]
        }
    }                                                                                                   OPTIONAL    -- Cond Setup2
}

SearchSpaceExt-r16 ::=                   SEQUENCE {
    controlResourceSetId-r16                ControlResourceSetId-r16                                    OPTIONAL,   -- Cond SetupOnly2
    searchSpaceType-r16                     SEQUENCE {
        common-r16                              SEQUENCE {
            dci-Format2-4-r16                       SEQUENCE {
                nrofCandidates-CI-r16                   SEQUENCE {
                    aggregationLevel1-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel2-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel4-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel8-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel16-r16                  ENUMERATED {n1, n2}                         OPTIONAL    -- Need R
                },
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-5-r16                      SEQUENCE {
                nrofCandidates-IAB-r16                  SEQUENCE {
                    aggregationLevel1-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel2-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel4-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel8-r16                   ENUMERATED {n1, n2}                         OPTIONAL,   -- Need R
                    aggregationLevel16-r16                  ENUMERATED {n1, n2}                         OPTIONAL    -- Need R
                },
                ...
            }                                                                                           OPTIONAL,   -- Need R
            dci-Format2-6-r16                       SEQUENCE {
                ...
            }                                                                                           OPTIONAL,   -- Need R
            ...
        }
    }                                                                                                   OPTIONAL,    -- Cond Setup3
    searchSpaceGroupIdList-r16                      SEQUENCE (SIZE (1.. 2)) OF INTEGER (0..1)           OPTIONAL,    -- Need R
    freqMonitorLocations-r16                        BIT STRING (SIZE (5))                               OPTIONAL     -- Need R
}

-- 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-SECURITYALGORITHMCONFIG-START

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

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

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

-- TAG-SECURITYALGORITHMCONFIG-STOP
-- TAG-SEMISTATICCHANNELACCESSCONFIG-START

SemiStaticChannelAccessConfig ::=    SEQUENCE {
    period                               ENUMERATED {ms1, ms2, ms2dot5, ms4, ms5, ms10}
}

-- TAG-SEMISTATICCHANNELACCESSCONFIG-STOP
-- TAG-SENSORLOCATIONINFO-START

Sensor-LocationInfo-r16 ::= SEQUENCE {
    sensor-MeasurementInformation-r16    OCTET STRING    OPTIONAL,
    sensor-MotionInformation-r16         OCTET STRING    OPTIONAL,
    ...
}

-- TAG-SENSORLOCATIONINFO-STOP
-- TAG-SERVCELLINDEX-START

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

-- TAG-SERVCELLINDEX-STOP
-- TAG-SERVINGCELLCONFIG-START

ServingCellConfig ::=               SEQUENCE {
    tdd-UL-DL-ConfigurationDedicated    TDD-UL-DL-ConfigDedicated                                                OPTIONAL,   -- Cond TDD
    initialDownlinkBWP                  BWP-DownlinkDedicated                                                    OPTIONAL,   -- Need M
    downlinkBWP-ToReleaseList           SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id                               OPTIONAL,   -- Need N
    downlinkBWP-ToAddModList            SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink                         OPTIONAL,   -- Need N
    firstActiveDownlinkBWP-Id           BWP-Id                                                                   OPTIONAL,   -- Cond SyncAndCellAdd
    bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
                                                    ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
                                                    ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
                                                    spare7, spare6, spare5, spare4, spare3, spare2, spare1 }    OPTIONAL,   --Need R
    defaultDownlinkBWP-Id               BWP-Id                                                                  OPTIONAL,   -- Need S
    uplinkConfig                        UplinkConfig                                                            OPTIONAL,   -- Need M
    supplementaryUplink                 UplinkConfig                                                            OPTIONAL,   -- Need M
    pdcch-ServingCellConfig             SetupRelease { PDCCH-ServingCellConfig }                                OPTIONAL,   -- Need M
    pdsch-ServingCellConfig             SetupRelease { PDSCH-ServingCellConfig }                                OPTIONAL,   -- Need M
    csi-MeasConfig                      SetupRelease { CSI-MeasConfig }                                         OPTIONAL,   -- Need M
    sCellDeactivationTimer              ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240,
                                                    ms320, ms400, ms480, ms520, ms640, ms720,
                                                    ms840, ms1280, spare2,spare1}       OPTIONAL,   -- Cond ServingCellWithoutPUCCH
    crossCarrierSchedulingConfig        CrossCarrierSchedulingConfig                                            OPTIONAL,   -- Need M
    tag-Id                              TAG-Id,
    dummy                               ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    pathlossReferenceLinking            ENUMERATED {spCell, sCell}                                              OPTIONAL,   -- Cond SCellOnly
    servingCellMO                       MeasObjectId                                                            OPTIONAL,   -- Cond MeasObject
    ...,
    [[
    lte-CRS-ToMatchAround               SetupRelease { RateMatchPatternLTE-CRS }                                OPTIONAL,   -- Need M
    rateMatchPatternToAddModList        SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern       OPTIONAL,   -- Need N
    rateMatchPatternToReleaseList       SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId     OPTIONAL,   -- Need N
    downlinkChannelBW-PerSCS-List       SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier                     OPTIONAL    -- Need S
    ]],
    [[
    supplementaryUplinkRelease          ENUMERATED {true}                                                       OPTIONAL,   -- Need N
    tdd-UL-DL-ConfigurationDedicated-iab-mt-r16    TDD-UL-DL-ConfigDedicated-IAB-MT-r16                         OPTIONAL,   -- Cond TDD_IAB
    dormantBWP-Config-r16               SetupRelease { DormantBWP-Config-r16 }                                  OPTIONAL,   -- Need M
    ca-SlotOffset-r16                   CHOICE {
        refSCS15kHz                         INTEGER (-2..2),
        refSCS30KHz                         INTEGER (-5..5),
        refSCS60KHz                         INTEGER (-10..10),
        refSCS120KHz                        INTEGER (-20..20)
    }                                                                                                           OPTIONAL,   -- Cond AsyncCA
    channelAccessConfig-r16             SetupRelease { ChannelAccessConfig-r16 }                                OPTIONAL,   -- Need M
    intraCellGuardBandsUL-r16           IntraCellGuardBands-r16                                                 OPTIONAL,   -- Need S
    intraCellGuardBandsDL-r16           IntraCellGuardBands-r16                                                 OPTIONAL,   -- Need S
    csi-RS-ValidationWith-DCI-r16       ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    lte-CRS-PatternList1-r16            SetupRelease { LTE-CRS-PatternList-r16 }                                OPTIONAL,   -- Need M
    lte-CRS-PatternList2-r16            SetupRelease { LTE-CRS-PatternList-r16 }                                OPTIONAL,   -- Need M
    crs-RateMatch-PerCORESETPoolIndex-r16  ENUMERATED {enabled}                                                 OPTIONAL,   -- Need R
    enableTwoDefaultTCIStates-r16       ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    enableDefaultTCIStatePerCoresetPoolIndex-r16  ENUMERATED {enabled}                                          OPTIONAL,   -- Need R
    enableBeamSwitchTiming-r16          ENUMERATED {true}                                                       OPTIONAL,   -- Need R
    cbg-TxDiffTBsProcessingType1-r16    ENUMERATED {enabled}                                                    OPTIONAL,   -- Need R
    cbg-TxDiffTBsProcessingType2-r16    ENUMERATED {enabled}                                                    OPTIONAL    -- Need R
    ]]
}

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

ChannelAccessConfig-r16 ::=            SEQUENCE {
    maxEnergyDetectionThreshold-r16         INTEGER(-85..-52),
    energyDetectionThresholdOffset-r16      INTEGER (-20..-13),
    ul-toDL-COT-SharingED-Threshold-r16     INTEGER (-85..-52)    OPTIONAL,   -- Need R
    absenceOfAnyOtherTechnology-r16         ENUMERATED {true}     OPTIONAL    -- Need R
}

IntraCellGuardBands-r16 ::=            SEQUENCE (SIZE (1..4)) OF GuardBand-r16

GuardBand-r16 ::=                      SEQUENCE {
     startCRB-r16                          INTEGER (0..274),
     nrofCRBs-r16                          INTEGER (0..15)
}

DormancyGroupID-r16 ::=         INTEGER (0..4)

DormantBWP-Config-r16::=               SEQUENCE { 
    dormantBWP-Id-r16                      BWP-Id                                                           OPTIONAL,   -- Need M
    withinActiveTimeConfig-r16             SetupRelease { WithinActiveTimeConfig-r16 }                      OPTIONAL,   -- Need M
    outsideActiveTimeConfig-r16            SetupRelease { OutsideActiveTimeConfig-r16 }                     OPTIONAL    -- Need M
}

WithinActiveTimeConfig-r16 ::=         SEQUENCE {
   firstWithinActiveTimeBWP-Id-r16         BWP-Id                                                           OPTIONAL,   -- Need M
   dormancyGroupWithinActiveTime-r16       DormancyGroupID-r16                                              OPTIONAL    -- Need R
}

OutsideActiveTimeConfig-r16 ::=        SEQUENCE {
   firstOutsideActiveTimeBWP-Id-r16        BWP-Id                                                           OPTIONAL,   -- Need M
   dormancyGroupOutsideActiveTime-r16      DormancyGroupID-r16                                              OPTIONAL    -- Need R
}

UplinkTxSwitching-r16 ::=              SEQUENCE {
    uplinkTxSwitchingPeriodLocation-r16    BOOLEAN,
    uplinkTxSwitchingCarrier-r16           ENUMERATED {carrier1, carrier2}
}

-- TAG-SERVINGCELLCONFIG-STOP
-- TAG-SERVINGCELLCONFIGCOMMON-START

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

-- TAG-SERVINGCELLCONFIGCOMMON-STOP
-- TAG-SERVINGCELLCONFIGCOMMONSIB-START

ServingCellConfigCommonSIB ::=      SEQUENCE {
    downlinkConfigCommon                DownlinkConfigCommonSIB,
    uplinkConfigCommon                  UplinkConfigCommonSIB                                       OPTIONAL, -- Need R
    supplementaryUplink                 UplinkConfigCommonSIB                                       OPTIONAL, -- Need R
    n-TimingAdvanceOffset               ENUMERATED { n0, n25600, n39936 }                           OPTIONAL, -- Need S
    ssb-PositionsInBurst                SEQUENCE {
        inOneGroup                          BIT STRING (SIZE (8)),
        groupPresence                       BIT STRING (SIZE (8))                                   OPTIONAL  -- Cond FR2-Only
    },
    ssb-PeriodicityServingCell          ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160},
    tdd-UL-DL-ConfigurationCommon       TDD-UL-DL-ConfigCommon                                      OPTIONAL, -- Cond TDD
    ss-PBCH-BlockPower                  INTEGER (-60..50),
    ...,
    [[
    channelAccessMode-r16               CHOICE {
        dynamic                             NULL,
        semiStatic                          SemiStaticChannelAccessConfig
    }                                                                                               OPTIONAL, -- Cond SharedSpectrum
    discoveryBurstWindowLength-r16      ENUMERATED {ms0dot5, ms1, ms2, ms3, ms4, ms5}               OPTIONAL, -- Need R
    highSpeedConfig-r16                 HighSpeedConfig-r16                                         OPTIONAL  -- Need R
    ]]
}

-- 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-SI-REQUESTCONFIG-START

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

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

-- TAG-SI-SCHEDULINGINFO-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,
                                                     sibType10-v1610, sibType11-v1610, sibType12-v1610, sibType13-v1610, sibType14-v1610,
                                                    spare3, spare2, spare1,... },
    valueTag                            INTEGER (0..31)                                                  OPTIONAL, -- Cond SIB-TYPE
    areaScope                           ENUMERATED {true}                                                OPTIONAL -- Need S
}

-- TAG-SI-SCHEDULINGINFO-STOP
-- TAG-SKCOUNTER-START

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

-- TAG-SKCOUNTER-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
    ...,
    [[
    enableConfiguredUL-r16              ENUMERATED {enabled}                                                      OPTIONAL  -- Need R
    ]]

}

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
    ...,
    [[
    availableRB-SetsToAddModList-r16  SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF AvailableRB-SetsPerCell-r16   OPTIONAL, -- Need N
    availableRB-SetsToRelease-r16     SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex                 OPTIONAL, -- Need N
    searchSpaceSwitchTriggerToAddModList-r16     SEQUENCE (SIZE(1..4)) OF SearchSpaceSwitchTrigger-r16                        OPTIONAL, -- Need N
    searchSpaceSwitchTriggerToReleaseList-r16 SEQUENCE (SIZE(1..4)) OF ServCellIndex                                          OPTIONAL, -- Need N
    co-DurationsPerCellToAddModList-r16 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF CO-DurationsPerCell-r16     OPTIONAL, -- Need N
    co-DurationsPerCellToReleaseList-r16 SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex              OPTIONAL  -- Need N
    ]]
}

CO-DurationsPerCell-r16 ::=   SEQUENCE {
    servingCellId-r16            ServCellIndex,
    positionInDCI-r16            INTEGER(0..maxSFI-DCI-PayloadSize-1),
    subcarrierSpacing-r16        SubcarrierSpacing,
    co-DurationList-r16          SEQUENCE (SIZE(1..64)) OF CO-Duration-r16
}

CO-Duration-r16 ::=    INTEGER (0..1120)

AvailableRB-SetsPerCell-r16 ::=   SEQUENCE {
    servingCellId-r16                 ServCellIndex,
    positionInDCI-r16                 INTEGER(0..maxSFI-DCI-PayloadSize-1)
}

SearchSpaceSwitchTrigger-r16 ::=   SEQUENCE {
    servingCellId-r16                  ServCellIndex,
    positionInDCI-r16                  INTEGER(0..maxSFI-DCI-PayloadSize-1)
}

-- 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-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
    ...,
    [[
    sps-ConfigIndex-r16             SPS-ConfigIndex-r16                                                             OPTIONAL,   -- Cond SPS-List
    harq-ProcID-Offset-r16          INTEGER (0..15)                                                                 OPTIONAL,   -- Need R
    periodicityExt-r16              INTEGER (1..5120)                                                               OPTIONAL,   -- Need R
    harq-CodebookID-r16             INTEGER (1..2)                                                                  OPTIONAL,   -- Need R
    pdsch-AggregationFactor-r16     ENUMERATED {n1, n2, n4, n8 }                                                    OPTIONAL    -- Need S
    ]]
}

-- TAG-SPS-CONFIG-STOP
-- TAG-SPS-CONFIGINDEX-START

SPS-ConfigIndex-r16             ::= INTEGER (0.. maxNrofSPS-Config-r16-1)

-- TAG-SPS-CONFIGINDEX-STOP
-- TAG-SPS-PUCCH-AN-START

SPS-PUCCH-AN-r16  ::=           SEQUENCE {
    sps-PUCCH-AN-ResourceID-r16     PUCCH-ResourceId,
    maxPayloadSize-r16              INTEGER (4..256)                     OPTIONAL    -- Need R
}

-- TAG-SPS-PUCCH-AN-STOP
-- TAG-SPS-PUCCH-AN-LIST-START

SPS-PUCCH-AN-List-r16 ::=      SEQUENCE (SIZE(1..4)) OF SPS-PUCCH-AN-r16

-- TAG-SPS-PUCCH-AN-LIST-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
    ...
}

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-RequestForDCI-Format1-2-r16         INTEGER (1..2)                                                                      OPTIONAL,   -- Need S
    srs-RequestForDCI-Format0-2-r16         INTEGER (1..2)                                                                      OPTIONAL,   -- Need S
    srs-ResourceSetToAddModListForDCI-Format0-2-r16 SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet              OPTIONAL, -- Need N
    srs-ResourceSetToReleaseListForDCI-Format0-2-r16 SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId           OPTIONAL,-- Need N
    srs-PosResourceSetToReleaseList-r16     SEQUENCE (SIZE(1..maxNrofSRS-PosResourceSets-r16)) OF SRS-PosResourceSetId-r16
                                                                                                                                OPTIONAL,   -- Need N
    srs-PosResourceSetToAddModList-r16      SEQUENCE (SIZE(1..maxNrofSRS-PosResourceSets-r16)) OF SRS-PosResourceSet-r16        OPTIONAL,-- Need N
    srs-PosResourceToReleaseList-r16        SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResourceId-r16            OPTIONAL,-- Need N
    srs-PosResourceToAddModList-r16         SEQUENCE (SIZE(1..maxNrofSRS-PosResources-r16)) OF SRS-PosResource-r16              OPTIONAL    -- Need N
    ]]
}

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            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                     PathlossReferenceRS-Config                                                      OPTIONAL, -- Need M
    srs-PowerControlAdjustmentStates        ENUMERATED { sameAsFci2, separateClosedLoop}                                    OPTIONAL, -- Need S
    ...,
    [[
    pathlossReferenceRSList-r16             SetupRelease { PathlossReferenceRSList-r16}                                     OPTIONAL  -- Need M
    ]]
}

PathlossReferenceRS-Config ::=              CHOICE {
    ssb-Index                                   SSB-Index,
    csi-RS-Index                                NZP-CSI-RS-ResourceId
}

PathlossReferenceRSList-r16 ::=             SEQUENCE (SIZE (1..maxNrofSRS-PathlossReferenceRS-r16)) OF PathlossReferenceRS-r16

PathlossReferenceRS-r16 ::=                 SEQUENCE {
    srs-PathlossReferenceRS-Id-r16              SRS-PathlossReferenceRS-Id-r16,
    pathlossReferenceRS-r16                     PathlossReferenceRS-Config 
}

SRS-PathlossReferenceRS-Id-r16 ::=          INTEGER (0..maxNrofSRS-PathlossReferenceRS-1-r16)

SRS-PosResourceSet-r16 ::=                  SEQUENCE {
    srs-PosResourceSetId-r16                    SRS-PosResourceSetId-r16,
    srs-PosResourceIdList-r16                   SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-PosResourceId-r16
                                                                                                                            OPTIONAL, -- Cond Setup
    resourceType-r16                            CHOICE {
        aperiodic-r16                               SEQUENCE {
            aperiodicSRS-ResourceTriggerList-r16        SEQUENCE (SIZE(1..maxNrofSRS-TriggerStates-1))
                                                            OF INTEGER (1..maxNrofSRS-TriggerStates-1)                      OPTIONAL, -- Need M
            ...
        },
        semi-persistent-r16                         SEQUENCE {
            ...
        },
        periodic-r16                                SEQUENCE {
            ...
        }
    },
    alpha-r16                                   Alpha                                                   OPTIONAL, -- Need S
    p0-r16                                      INTEGER (-202..24)                                      OPTIONAL, -- Cond Setup
    pathlossReferenceRS-Pos-r16                 CHOICE {
        ssb-IndexServing-r16                        SSB-Index,
        ssb-Ncell-r16                               SSB-InfoNcell-r16,
        dl-PRS-r16                                  DL-PRS-Info-r16
    }                                                                                                   OPTIONAL, -- Need M
    ...
}

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

SRS-PosResourceSetId-r16 ::=            INTEGER (0..maxNrofSRS-PosResourceSets-1-r16)

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
    ...,
    [[
    resourceMapping-r16                     SEQUENCE {
        startPosition-r16                       INTEGER (0..13),
        nrofSymbols-r16                         ENUMERATED {n1, n2, n4},
        repetitionFactor-r16                    ENUMERATED {n1, n2, n4}
    }                                                                                               OPTIONAL    -- Need R
    ]]

}

SRS-PosResource-r16::=                  SEQUENCE {
    srs-PosResourceId-r16                   SRS-PosResourceId-r16,
    transmissionComb-r16                    CHOICE {
        n2-r16                                  SEQUENCE {
            combOffset-n2-r16                       INTEGER (0..1),
            cyclicShift-n2-r16                      INTEGER (0..7)
        },
        n4-r16                                  SEQUENCE {
            combOffset-n4-16                        INTEGER (0..3),
            cyclicShift-n4-r16                      INTEGER (0..11)
        },
        n8-r16                                  SEQUENCE {
            combOffset-n8-r16                       INTEGER (0..7),
            cyclicShift-n8-r16                      INTEGER (0..5)
        },
    ...
    },
    resourceMapping-r16                       SEQUENCE {
        startPosition-r16                           INTEGER (0..13),
        nrofSymbols-r16                             ENUMERATED {n1, n2, n4, n8, n12}
    },
    freqDomainShift-r16                       INTEGER (0..268),
    freqHopping-r16                           SEQUENCE {
        c-SRS-r16                                 INTEGER (0..63),
        ...
    },
    groupOrSequenceHopping-r16                ENUMERATED { neither, groupHopping, sequenceHopping },
    resourceType-r16                          CHOICE {
        aperiodic-r16                             SEQUENCE {
            slotOffset-r16                            INTEGER (1..32)                               OPTIONAL,   -- Need S
            ...
        },
        semi-persistent-r16                       SEQUENCE {
            periodicityAndOffset-sp-r16               SRS-PeriodicityAndOffset-r16,
            ...
        },
        periodic-r16                              SEQUENCE {
            periodicityAndOffset-p-r16                SRS-PeriodicityAndOffset-r16,
            ...
        }
    },
    sequenceId-r16                            INTEGER (0..65535),
    spatialRelationInfoPos-r16                SRS-SpatialRelationInfoPos-r16                        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-SpatialRelationInfoPos-r16 ::=      CHOICE {
    servingRS-r16                           SEQUENCE {
        servingCellId                           ServCellIndex                                       OPTIONAL,   -- Need S
        referenceSignal-r16                     CHOICE {
            ssb-IndexServing-r16                    SSB-Index,
            csi-RS-IndexServing-r16                 NZP-CSI-RS-ResourceId,
            srs-SpatialRelation-r16                 SEQUENCE {
                resourceSelection-r16                   CHOICE {
                    srs-ResourceId-r16                      SRS-ResourceId,
                    srs-PosResourceId-r16                   SRS-PosResourceId-r16
                },
                uplinkBWP-r16                           BWP-Id
            }
        }
    },
    ssb-Ncell-r16                           SSB-InfoNcell-r16,
    dl-PRS-r16                              DL-PRS-Info-r16
}

SSB-Configuration-r16  ::=          SEQUENCE {
    ssb-Freq-r16                     ARFCN-ValueNR,
    halfFrameIndex-r16                  ENUMERATED {zero, one},
    ssbSubcarrierSpacing-r16            SubcarrierSpacing,
    ssb-Periodicity-r16                 ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2,spare1 }   OPTIONAL, -- Need S
    sfn0-Offset-r16                     SEQUENCE {
        sfn-Offset-r16                      INTEGER (0..1023),
        integerSubframeOffset-r16           INTEGER (0..9)                                                 OPTIONAL  -- Need R
    }                                                                                                      OPTIONAL, -- Need R
    sfn-SSB-Offset-r16                  INTEGER (0..15),
    ss-PBCH-BlockPower-r16              INTEGER (-60..50)                                                  OPTIONAL  -- Cond Pathloss
}

SSB-InfoNcell-r16  ::=              SEQUENCE {
    physicalCellId-r16                  PhysCellId,
    ssb-IndexNcell-r16                  SSB-Index                                                          OPTIONAL, -- Need S
    ssb-Configuration-r16               SSB-Configuration-r16                                              OPTIONAL  -- Need S
}

DL-PRS-Info-r16  ::=                SEQUENCE {
    dl-PRS-ID-r16                      INTEGER (0..255),
    dl-PRS-ResourceSetId-r16           INTEGER (0..7),
    dl-PRS-ResourceId-r16              INTEGER (0..63)                                                     OPTIONAL  -- Need S
}

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

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

SRS-PeriodicityAndOffset-r16 ::=        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),
    sl5120                                  INTEGER(0..5119),
    sl10240                                 INTEGER(0..10239),
    sl40960                                 INTEGER(0..40959),
    sl81920                                 INTEGER(0..81919),
    ...
}

-- TAG-SRS-CONFIG-STOP
-- TAG-SRS-RSRP-RANGE-START

SRS-RSRP-Range-r16 ::=                      INTEGER(0..98)

-- TAG-SRS-RSRP-RANGE-STOP
-- TAG-SRS-TPC-COMMANDCONFIG-START

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

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

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

SSB-MTC3-r16 ::=                    SEQUENCE {
    periodicityAndOffset-r16            CHOICE {
        sf5-r16                                     INTEGER (0..4),
        sf10-r16                                    INTEGER (0..9),
        sf20-r16                                    INTEGER (0..19),
        sf40-r16                                    INTEGER (0..39),
        sf80-r16                                    INTEGER (0..79),
        sf160-r16                                   INTEGER (0..159),
        sf320-r16                                   INTEGER (0..319),
        sf640-r16                                   INTEGER (0..639),
        sf1280-r16                                  INTEGER (0..1279)
    },
    duration-r16                        ENUMERATED {sf1, sf2, sf3, sf4, sf5},
    pci-List-r16                        SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId                   OPTIONAL,  -- Need M
    ssb-ToMeasure-r16                   SetupRelease { SSB-ToMeasure }                                          OPTIONAL   -- Need M
}


-- TAG-SSB-MTC-STOP
-- TAG-SSB-POSITIONQCL-RELATION-START

SSB-PositionQCL-Relation-r16 ::=  ENUMERATED {n1,n2,n4,n8}

-- TAG-SSB-POSITIONQCL-RELATION-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-SS-RSSI-MEASUREMENT-START

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

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

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

-- TAG-SUBCARRIERSPACING-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-CONFIGCOMMON-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
    ]]
}

-- TAG-TDD-UL-DL-CONFIGCOMMON-STOP
-- TAG-TDD-UL-DL-CONFIGDEDICATED-START

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-ConfigDedicated-IAB-MT-r16::=         SEQUENCE {
    slotSpecificConfigurationsToAddModList-IAB-MT-r16  SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotConfig-IAB-MT-r16      OPTIONAL, -- Need N
    slotSpecificConfigurationsToReleaseList-IAB-MT-r16 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-SlotConfig-IAB-MT-r16::=    SEQUENCE {
    slotIndex-r16                           TDD-UL-DL-SlotIndex,
    symbols-IAB-MT-r16                      CHOICE {
        allDownlink-r16                         NULL,
        allUplink-r16                           NULL,
        explicit-r16                            SEQUENCE {
            nrofDownlinkSymbols-r16                 INTEGER (1..maxNrofSymbols-1)                               OPTIONAL, -- Need FFS
            nrofUplinkSymbols-r16                   INTEGER (1..maxNrofSymbols-1)                               OPTIONAL  -- Need FFS
        },
        explicit-IAB-MT-r16                     SEQUENCE {
            nrofDownlinkSymbols-r16                 INTEGER (1..maxNrofSymbols-1)                               OPTIONAL, -- Need FFS
            nrofUplinkSymbols-r16                   INTEGER (1..maxNrofSymbols-1)                               OPTIONAL  -- Need FFS
        }
    }
}

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

-- TAG-TDD-UL-DL-CONFIGDEDICATED-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-BARRINGINFOSETINDEX-START

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

-- TAG-UAC-BARRINGINFOSETINDEX-STOP
-- TAG-UAC-BARRINGINFOSETLIST-START

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

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

-- TAG-UAC-BARRINGINFOSETLIST-STOP
-- TAG-UAC-BARRINGPERCATLIST-START

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

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

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

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

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

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

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

-- TAG-UE-TIMERSANDCONSTANTS-STOP
-- TAG-ULDELAYVALUECONFIG-START

UL-DelayValueConfig-r16 ::=  SEQUENCE {
    delay-DRBlist                SEQUENCE (SIZE(1..maxDRB)) OF DRB-Identity
}

-- TAG-ULDELAYVALUECONFIG-STOP
-- TAG-UPLINKCANCELLATION-START

UplinkCancellation-r16 ::=           SEQUENCE {
    ci-RNTI-r16                          RNTI-Value,
    dci-PayloadSizeForCI-r16             INTEGER (0..maxCI-DCI-PayloadSize-r16),
    ci-ConfigurationPerServingCell-r16   SEQUENCE (SIZE (1..maxNrofServingCells)) OF CI-ConfigurationPerServingCell-r16,
    ...
}

CI-ConfigurationPerServingCell-r16 ::=   SEQUENCE {
    servingCellId                            ServCellIndex,
    positionInDCI-r16                        INTEGER (0..maxCI-DCI-PayloadSize-r16-1),
    positionInDCI-ForSUL-r16                 INTEGER (0..maxCI-DCI-PayloadSize-r16-1)                             OPTIONAL,   -- Cond SUL-Only
    ci-PayloadSize-r16                       ENUMERATED {n1, n2, n4, n5, n7, n8, n10, n14, n16, n20, n28, n32, n35, n42, n56, n112},
    timeFrequencyRegion-r16                  SEQUENCE {
        timeDurationForCI-r16                    ENUMERATED {n2, n4, n7, n14}                                      OPTIONAL,   -- Cond SymbolPeriodicity
        timeGranularityForCI-r16                 ENUMERATED {n1, n2, n4, n7, n14, n28},
        frequencyRegionForCI-r16                 INTEGER (0..37949),
        deltaOffset-r16                          INTEGER (0..2),
        ...
    },
    uplinkCancellationPriority-v1610         ENUMERATED {enabled}                                                  OPTIONAL    -- Need S
}

-- TAG-UPLINKCANCELLATION-STOP
-- TAG-UPLINKCONFIGCOMMON-START

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

-- TAG-UPLINKCONFIGCOMMON-STOP
-- TAG-UPLINKCONFIGCOMMONSIB-START

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

-- TAG-UPLINKCONFIGCOMMONSIB-STOP
-- TAG-UPLINKTXDIRECTCURRENTLIST-START

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

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

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

-- TAG-UPLINKTXDIRECTCURRENTLIST-STOP
-- 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, rel16, spare6, spare5, spare4, spare3, spare2, spare1, ... }

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

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

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

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

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

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

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

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

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

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

BandCombination ::=                 SEQUENCE {
    bandList                            SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters,
    featureSetCombination               FeatureSetCombinationId,
    ca-ParametersEUTRA                  CA-ParametersEUTRA                          OPTIONAL,
    ca-ParametersNR                     CA-ParametersNR                             OPTIONAL,
    mrdc-Parameters                     MRDC-Parameters                             OPTIONAL,
    supportedBandwidthCombinationSet    BIT STRING (SIZE (1..32))                   OPTIONAL,
    powerClass-v1530                    ENUMERATED {pc2}                            OPTIONAL
}

BandCombination-v1540::=            SEQUENCE {
    bandList-v1540                      SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1540,
    ca-ParametersNR-v1540               CA-ParametersNR-v1540                       OPTIONAL
}

BandCombination-v1550 ::=           SEQUENCE {
    ca-ParametersNR-v1550               CA-ParametersNR-v1550
}

BandCombination-v1610 ::=          SEQUENCE {
    bandList-v1610                      SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters-v1610  OPTIONAL,
        ca-ParametersNR-v1610               CA-ParametersNR-v1610                  OPTIONAL,
        ca-ParametersNRDC-v1610             CA-ParametersNRDC-v1610                OPTIONAL,
        powerClass-v1610                    ENUMERATED {pc1dot5}                   OPTIONAL
}

BandCombination-v1560::=            SEQUENCE {
    ne-DC-BC                                ENUMERATED {supported}                 OPTIONAL,
    ca-ParametersNRDC                       CA-ParametersNRDC                      OPTIONAL,
    ca-ParametersEUTRA-v1560                CA-ParametersEUTRA-v1560               OPTIONAL,
    ca-ParametersNR-v1560                   CA-ParametersNR-v1560                  OPTIONAL
}

BandCombination-v1570 ::=           SEQUENCE {
    ca-ParametersEUTRA-v1570            CA-ParametersEUTRA-v1570
}

BandCombination-v1580 ::=           SEQUENCE {
    mrdc-Parameters-v1580               MRDC-Parameters-v1580
}

BandCombination-v1590::=            SEQUENCE {
    supportedBandwidthCombinationSetIntraENDC  BIT STRING (SIZE (1..32))           OPTIONAL,
    mrdc-Parameters-v1590                      MRDC-Parameters-v1590
}

BandCombination-UplinkTxSwitch-r16 ::= SEQUENCE {
    bandCombination-r16                 BandCombination,
    bandCombination-v1540               BandCombination-v1540                      OPTIONAL,
    bandCombination-v1560               BandCombination-v1560                      OPTIONAL,
    bandCombination-v1570               BandCombination-v1570                      OPTIONAL,
    bandCombination-v1580               BandCombination-v1580                      OPTIONAL,
    bandCombination-v1590               BandCombination-v1590                      OPTIONAL,
    bandCombination-v1610               BandCombination-v1610                      OPTIONAL,
    supportedBandPairListNR-r16         SEQUENCE (SIZE (1..maxULTxSwitchingBandPairs)) OF ULTxSwitchingBandPair-r16,
    uplinkTxSwitching-OptionSupport-r16 ENUMERATED {switchedUL, dualUL, both}      OPTIONAL,
    ...
}

ULTxSwitchingBandPair-r16 ::=       SEQUENCE {
    bandIndexUL1-r16                    INTEGER(1..maxSimultaneousBands),
    bandIndexUL2-r16                    INTEGER(1..maxSimultaneousBands),
    uplinkTxSwitchingPeriod-r16         ENUMERATED {n35us, n140us, n210us},
    uplinkTxSwitching-DL-Interruption-r16 BIT STRING (SIZE(1..maxSimultaneousBands)) OPTIONAL
}

BandParameters ::=                      CHOICE {
    eutra                               SEQUENCE {
        bandEUTRA                           FreqBandIndicatorEUTRA,
        ca-BandwidthClassDL-EUTRA           CA-BandwidthClassEUTRA                 OPTIONAL,
        ca-BandwidthClassUL-EUTRA           CA-BandwidthClassEUTRA                 OPTIONAL
    },
    nr                                  SEQUENCE {
        bandNR                              FreqBandIndicatorNR,
        ca-BandwidthClassDL-NR              CA-BandwidthClassNR                    OPTIONAL,
        ca-BandwidthClassUL-NR              CA-BandwidthClassNR                    OPTIONAL
    }
}

BandParameters-v1540 ::=            SEQUENCE {
    srs-CarrierSwitch                   CHOICE {
        nr                                  SEQUENCE {
            srs-SwitchingTimesListNR            SEQUENCE (SIZE (1..maxSimultaneousBands)) OF SRS-SwitchingTimeNR
        },
        eutra                               SEQUENCE {
            srs-SwitchingTimesListEUTRA         SEQUENCE (SIZE (1..maxSimultaneousBands)) OF SRS-SwitchingTimeEUTRA
        }
    }                                                                              OPTIONAL,
    srs-TxSwitch                    SEQUENCE {
        supportedSRS-TxPortSwitch       ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, t1r1, t2r2, t4r4, notSupported},
        txSwitchImpactToRx              INTEGER (1..32)                            OPTIONAL,
        txSwitchWithAnotherBand         INTEGER (1..32)                            OPTIONAL
    }                                                                              OPTIONAL
}

BandParameters-v1610 ::=         SEQUENCE {
    srs-TxSwitch-v1610               SEQUENCE {
        supportedSRS-TxPortSwitch-v1610  ENUMERATED {t1r1-t1r2, t1r1-t1r2-t1r4, t1r1-t1r2-t2r2-t2r4, t1r1-t1r2-t2r2-t1r4-t2r4,
                                                         t1r1-t2r2, t1r1-t2r2-t4r4}
    }                                                                              OPTIONAL,
    intraFreqDAPS-Parameters-r16      SEQUENCE {
        intraFreqDiffSCS-DAPS-r16                        ENUMERATED {supported}    OPTIONAL,
        intraFreqDAPS-r16                                ENUMERATED {supported}    OPTIONAL,
        intraFreqAsyncDAPS-r16                           ENUMERATED {supported}    OPTIONAL,
        intraFreqMultiUL-TransmissionDAPS-r16            ENUMERATED {supported}    OPTIONAL,
        intraFreqTwoTAGs-DAPS-r16                        ENUMERATED {supported}    OPTIONAL,
        intraFreqSemiStaticPowerSharingDAPS-Mode1-r16    ENUMERATED {supported}    OPTIONAL,
        intraFreqSemiStaticPowerSharingDAPS-Mode2-r16    ENUMERATED {supported}    OPTIONAL,
        intraFreqDynamicPowersharingDAPS-r16             ENUMERATED {short, long}  OPTIONAL
    }                                                                              OPTIONAL
}

-- TAG-BANDCOMBINATIONLIST-STOP
-- TAG-BANDCOMBINATIONLISTSIDELINK-START

BandCombinationListSidelink-r16 ::=  SEQUENCE {
    supportedBandCombinationListSidelink-r16               SupportedBandCombinationListSidelink-r16            OPTIONAL,
    supportedBandCombinationListSidelinkEUTRA-r16          SupportedBandCombinationListSidelinkEUTRA-r16       OPTIONAL,
    supportedBandCombinationListSidelinkEUTRA-NR-r16       SupportedBandCombinationListSidelinkEUTRA-NR-r16    OPTIONAL,
    ...
}

SupportedBandCombinationListSidelink-r16 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParametersSidelink-r16

BandCombinationParametersSidelink-r16 ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParametersSidelink-r16

BandParametersSidelink-r16 ::= SEQUENCE {
    freqBandSidelink-r16            FreqBandIndicatorNR
}

SupportedBandCombinationListSidelinkEUTRA-r16 ::= SEQUENCE {
    bandCombinationListEUTRA1-r16               OCTET STRING                        OPTIONAL,
    bandCombinationListEUTRA2-r16               OCTET STRING                        OPTIONAL
}

SupportedBandCombinationListSidelinkEUTRA-NR-r16 ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParametersSidelinkEUTRA-NR-r16

BandCombinationParametersSidelinkEUTRA-NR-r16 ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParametersSidelinkEUTRA-NR-r16

BandParametersSidelinkEUTRA-NR-r16 ::= CHOICE {
    eutra                                  SEQUENCE {
        bandParametersSidelinkEUTRA1-r16       OCTET STRING                         OPTIONAL,
        bandParametersSidelinkEUTRA2-r16       OCTET STRING                         OPTIONAL
    },
    nr                                     SEQUENCE {
        bandParametersSidelinkNR-r16           BandParametersSidelink-r16 }
    }

-- TAG-BANDCOMBINATIONLISTSIDELINK-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,
    ...
}

CA-ParametersEUTRA-v1560 ::=                    SEQUENCE {
    fd-MIMO-TotalWeightedLayers                     INTEGER (2..128)                                OPTIONAL
}

CA-ParametersEUTRA-v1570 ::=                    SEQUENCE {
    dl-1024QAM-TotalWeightedLayers                  INTEGER (0..10)                                 OPTIONAL
}

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

CA-ParametersNR ::=                 SEQUENCE {
    dummy                                         ENUMERATED {supported}      OPTIONAL,
    parallelTxSRS-PUCCH-PUSCH                     ENUMERATED {supported}      OPTIONAL,
    parallelTxPRACH-SRS-PUCCH-PUSCH               ENUMERATED {supported}      OPTIONAL,
    simultaneousRxTxInterBandCA                   ENUMERATED {supported}      OPTIONAL,
    simultaneousRxTxSUL                           ENUMERATED {supported}      OPTIONAL,
    diffNumerologyAcrossPUCCH-Group               ENUMERATED {supported}      OPTIONAL,
    diffNumerologyWithinPUCCH-GroupSmallerSCS     ENUMERATED {supported}      OPTIONAL,
    supportedNumberTAG                            ENUMERATED {n2, n3, n4}     OPTIONAL,
    ...
}

CA-ParametersNR-v1540 ::=           SEQUENCE {
    simultaneousSRS-AssocCSI-RS-AllCC                       INTEGER (5..32)         OPTIONAL,
    csi-RS-IM-ReceptionForFeedbackPerBandComb               SEQUENCE {
        maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC            INTEGER (1..64)         OPTIONAL,
        totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC     INTEGER (2..256)        OPTIONAL
    }                                                                               OPTIONAL,
    simultaneousCSI-ReportsAllCC                            INTEGER (5..32)         OPTIONAL,
    dualPA-Architecture                                     ENUMERATED {supported}  OPTIONAL
}

CA-ParametersNR-v1550 ::=           SEQUENCE {
    dummy                               ENUMERATED {supported}      OPTIONAL
}

CA-ParametersNR-v1560 ::=           SEQUENCE {
    diffNumerologyWithinPUCCH-GroupLargerSCS      ENUMERATED {supported}                OPTIONAL
}

CA-ParametersNR-v1610 ::=           SEQUENCE {
     -- R1 9-3: Parallel MsgA and SRS/PUCCH/PUSCH transmissions across CCs in inter-band CA
    parallelTxMsgA-SRS-PUCCH-PUSCH-r16                ENUMERATED {supported}            OPTIONAL,
     -- R1 9-4: MsgA operation in a band combination including SUL
    msgA-SUL-r16                                      ENUMERATED {supported}            OPTIONAL,
    -- R1 10-9c: Joint search space group switching across multiple cells
    jointSearchSpaceGroupSwitchingAcrossCells-r16     ENUMERATED {supported}            OPTIONAL,
    -- R1 14-5: Half-duplex UE behaviour in TDD CA for same SCS
    half-DuplexTDD-CA-SameSCS-r16                     ENUMERATED {supported}            OPTIONAL,
    -- R1 18-4: SCell dormancy within active time
    scellDormancyWithinActiveTime-r16                 ENUMERATED {supported}            OPTIONAL,
    -- R1 18-4a: SCell dormancy outside active time
    scellDormancyOutsideActiveTime-r16                ENUMERATED {supported}            OPTIONAL,
    -- R1 18-6: Cross-carrier A-CSI RS triggering with different SCS
    crossCarrierA-CSI-trigDiffSCS-r16                 ENUMERATED {higherA-CSI-SCS,lowerA-CSI-SCS,both}    OPTIONAL,
    -- R1 18-6a: Default QCL assumption for cross-carrier A-CSI-RS triggering
    defaultQCL-CrossCarrierA-CSI-Trig-r16             ENUMERATED {supported}            OPTIONAL,
    -- R1 18-7: CA with non-aligned frame boundaries for inter-band CA
    interCA-NonAlignedFrame-r16                       ENUMERATED {supported}            OPTIONAL,
    simul-SRS-Trans-InterBandCA-r16                   INTEGER (1..2)                    OPTIONAL,
    daps-Parameters-r16                   SEQUENCE {
        asyncDAPS-r16                           ENUMERATED {supported}                  OPTIONAL,
        interFreqDAPS-r16                       ENUMERATED {supported}                  OPTIONAL,
        interFreqDiffSCS-DAPS-r16               ENUMERATED {supported}                  OPTIONAL,
        multiUL-TransmissionDAPS-r16            ENUMERATED {supported}                  OPTIONAL,
        semiStaticPowerSharingDAPS-Mode1-r16    ENUMERATED {supported}                  OPTIONAL,
        semiStaticPowerSharingDAPS-Mode2-r16    ENUMERATED {supported}                  OPTIONAL,
        dynamicPowersharingDAPS-r16             ENUMERATED {short, long}                OPTIONAL,
        ul-TransCancellationDAPS-r16            ENUMERATED {supported}                  OPTIONAL
    }                                                                                   OPTIONAL,
    codebookParametersPerBC-r16           CodebookParameters-v1610                      OPTIONAL
}

-- TAG-CA-PARAMETERSNR-STOP
-- TAG-CA-PARAMETERS-NRDC-START

CA-ParametersNRDC ::=                         SEQUENCE {
     ca-ParametersNR-ForDC                       CA-ParametersNR                              OPTIONAL,
     ca-ParametersNR-ForDC-v1540                 CA-ParametersNR-v1540                        OPTIONAL,
     ca-ParametersNR-ForDC-v1550                 CA-ParametersNR-v1550                        OPTIONAL,
     ca-ParametersNR-ForDC-v1560                 CA-ParametersNR-v1560                        OPTIONAL,
     featureSetCombinationDC                     FeatureSetCombinationId                      OPTIONAL
}

CA-ParametersNRDC-v1610 ::= SEQUENCE {
    -- R1 18-1: Semi-static power sharing mode1 between MCG and SCG cells of same FR for NR dual connectivity
    intraFR-NR-DC-PwrSharingMode1-r16        ENUMERATED {supported}         OPTIONAL,
    -- R1 18-1a: Semi-static power sharing mode 2 between MCG and SCG cells of same FR for NR dual connectivity
    intraFR-NR-DC-PwrSharingMode2-r16        ENUMERATED {supported}         OPTIONAL,
    -- R1 18-1b: Dynamic power sharing between MCG and SCG cells of same FR for NR dual connectivity
    intraFR-NR-DC-DynamicPwrSharing-r16      ENUMERATED {short, long}       OPTIONAL
}

-- TAG-CA-PARAMETERS-NRDC-STOP
-- TAG-CARRIERAGGREGATIONVARIANT-START

CarrierAggregationVariant ::=          SEQUENCE {
    fr1fdd-FR1TDD-CA-SpCellOnFR1FDD         ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR1TDD-CA-SpCellOnFR1TDD         ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR2TDD-CA-SpCellOnFR1FDD         ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR2TDD-CA-SpCellOnFR2TDD         ENUMERATED {supported}                      OPTIONAL,
    fr1tdd-FR2TDD-CA-SpCellOnFR1TDD         ENUMERATED {supported}                      OPTIONAL,
    fr1tdd-FR2TDD-CA-SpCellOnFR2TDD         ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR1TDD-FR2TDD-CA-SpCellOnFR1FDD  ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR1TDD-FR2TDD-CA-SpCellOnFR1TDD  ENUMERATED {supported}                      OPTIONAL,
    fr1fdd-FR1TDD-FR2TDD-CA-SpCellOnFR2TDD  ENUMERATED {supported}                      OPTIONAL
}

-- TAG-CARRIERAGGREGATIONVARIANT-STOP
-- TAG-CODEBOOKPARAMETERS-START

CodebookParameters ::=             SEQUENCE {
    type1                                  SEQUENCE {
        singlePanel                           SEQUENCE {
            supportedCSI-RS-ResourceList      SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
            modes                                  ENUMERATED {mode1, mode1andMode2},
            maxNumberCSI-RS-PerResourceSet    INTEGER (1..8)
        },
        multiPanel                            SEQUENCE {
            supportedCSI-RS-ResourceList      SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
            modes                                  ENUMERATED {mode1, mode2, both},
            nrofPanels                            ENUMERATED {n2, n4},
            maxNumberCSI-RS-PerResourceSet    INTEGER (1..8)
        }                                                                                                               OPTIONAL
    },
    type2                                  SEQUENCE {
        supportedCSI-RS-ResourceList        SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
        parameterLx                           INTEGER (2..4),
        amplitudeScalingType                 ENUMERATED {wideband, widebandAndSubband},
        amplitudeSubsetRestriction          ENUMERATED {supported}              OPTIONAL
    }                                                                                                                   OPTIONAL,
    type2-PortSelection                  SEQUENCE {
        supportedCSI-RS-ResourceList        SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource,
        parameterLx                           INTEGER (2..4),
        amplitudeScalingType                 ENUMERATED {wideband, widebandAndSubband}
    }                                                                                                                   OPTIONAL
}

CodebookParameters-v1610 ::=        SEQUENCE {
    supportedCSI-RS-ResourceListAlt-r16  SEQUENCE {
        type1-SinglePanel-r16                SEQUENCE (SIZE (1..maxNrofCSI-RS-Resources)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)  OPTIONAL,
        type1-MultiPanel-r16                 SEQUENCE (SIZE (1..maxNrofCSI-RS-Resources)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)  OPTIONAL,
        type2-r16                            SEQUENCE (SIZE (1..maxNrofCSI-RS-Resources)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)  OPTIONAL,
        type2-PortSelection-r16              SEQUENCE (SIZE (1..maxNrofCSI-RS-Resources)) OF INTEGER (0..maxNrofCSI-RS-ResourcesAlt-1-r16)  OPTIONAL
    }                                                                                                                                       OPTIONAL
}

CodebookVariantsList-r16 ::= SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesAlt-r16)) OF SupportedCSI-RS-Resource

SupportedCSI-RS-Resource ::=     SEQUENCE {
    maxNumberTxPortsPerResource      ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
    maxNumberResourcesPerBand        INTEGER (1..64),
    totalNumberTxPortsPerBand        INTEGER (2..256)
}

-- TAG-CODEBOOKPARAMETERS-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-FEATURESETCOMBINATION-STOP
-- TAG-FEATURESETCOMBINATIONID-START

FeatureSetCombinationId ::=         INTEGER (0.. maxFeatureSetCombinations)

-- TAG-FEATURESETCOMBINATIONID-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,
    dummy1                                  ENUMERATED {supported}                                                  OPTIONAL,
    type1-3-CSS                             ENUMERATED {supported}                                                  OPTIONAL,
    pdcch-MonitoringAnyOccasions            ENUMERATED {withoutDCI-Gap, withDCI-Gap}                                OPTIONAL,
    dummy2                                  ENUMERATED {supported}                                                  OPTIONAL,
    ue-SpecificUL-DL-Assignment             ENUMERATED {supported}                                                  OPTIONAL,
    searchSpaceSharingCA-DL                 ENUMERATED {supported}                                                  OPTIONAL,
    timeDurationForQCL                      SEQUENCE {
        scs-60kHz                           ENUMERATED {s7, s14, s28}                                               OPTIONAL,
        scs-120kHz                          ENUMERATED {s14, s28}                                                   OPTIONAL
    }                                                                                                           OPTIONAL,
    pdsch-ProcessingType1-DifferentTB-PerSlot SEQUENCE {
        scs-15kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-30kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-60kHz                               ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL,
        scs-120kHz                              ENUMERATED {upto2, upto4, upto7}                                    OPTIONAL
    }                                                                                                           OPTIONAL,
    dummy3                                  DummyA                                                                  OPTIONAL,
    dummy4                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyB                        OPTIONAL,
    dummy5                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyC                        OPTIONAL,
    dummy6                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyD                        OPTIONAL,
    dummy7                                  SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyE                        OPTIONAL
}

FeatureSetDownlink-v1540 ::= SEQUENCE {
    oneFL-DMRS-TwoAdditionalDMRS-DL         ENUMERATED {supported}                       OPTIONAL,
    additionalDMRS-DL-Alt                   ENUMERATED {supported}                       OPTIONAL,
    twoFL-DMRS-TwoAdditionalDMRS-DL         ENUMERATED {supported}                       OPTIONAL,
    oneFL-DMRS-ThreeAdditionalDMRS-DL       ENUMERATED {supported}                       OPTIONAL,
    pdcch-MonitoringAnyOccasionsWithSpanGap SEQUENCE {
        scs-15kHz                               ENUMERATED {set1, set2, set3}                OPTIONAL,
        scs-30kHz                               ENUMERATED {set1, set2, set3}                OPTIONAL,
        scs-60kHz                               ENUMERATED {set1, set2, set3}                OPTIONAL,
        scs-120kHz                              ENUMERATED {set1, set2, set3}                OPTIONAL
    }                                                                                    OPTIONAL,
    pdsch-SeparationWithGap                 ENUMERATED {supported}                       OPTIONAL,
    pdsch-ProcessingType2                   SEQUENCE {
        scs-15kHz                               ProcessingParameters                         OPTIONAL,
        scs-30kHz                               ProcessingParameters                         OPTIONAL,
        scs-60kHz                               ProcessingParameters                         OPTIONAL
    } OPTIONAL,
    pdsch-ProcessingType2-Limited           SEQUENCE {
        differentTB-PerSlot-SCS-30kHz           ENUMERATED {upto1, upto2, upto4, upto7}
    } OPTIONAL,
    dl-MCS-TableAlt-DynamicIndication       ENUMERATED {supported}                       OPTIONAL
}

FeatureSetDownlink-v15a0 ::= SEQUENCE {
    supportedSRS-Resources              SRS-Resources                                    OPTIONAL
}

FeatureSetDownlink-v1610 ::=   SEQUENCE {
    -- R1 22-4e/4f/4g/4h: CBG based reception for DL with unicast PDSCH(s) per slot per CC with UE processing time Capability 1
    cbgPDSCH-ProcessingType1-DifferentTB-PerSlot    SEQUENCE {
        scs-15kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-30kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-60kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-120kHz       ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL
    } OPTIONAL,

    -- R1 22-3e/3f/3g/3h: CBG based reception for DL with unicast PDSCH(s) per slot per CC with UE processing time Capability 2
    cbgPDSCH-ProcessingType2-DifferentTB-PerSlot    SEQUENCE {
        scs-15kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-30kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-60kHz        ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL,
        scs-120kHz       ENUMERATED {one-pdsch, upto2, upto4, upto7} OPTIONAL
     } OPTIONAL
}

DummyA ::=      SEQUENCE {
    maxNumberNZP-CSI-RS-PerCC                   INTEGER (1..32),
    maxNumberPortsAcrossNZP-CSI-RS-PerCC        ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
                                                            p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
                                                            p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256},
    maxNumberCS-IM-PerCC                        ENUMERATED {n1, n2, n4, n8, n16, n32},
    maxNumberSimultaneousCSI-RS-ActBWP-AllCC    ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26,
                                                                n28, n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52,
                                                                n54, n56, n58, n60, n62, n64},
    totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
                                                                p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
                                                                p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256}
}

DummyB ::=       SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    supportedCodebookMode               ENUMERATED {mode1, mode1AndMode2},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyC ::=        SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p8, p16, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    supportedCodebookMode               ENUMERATED {mode1, mode2, both},
    supportedNumberPanels               ENUMERATED {n2, n4},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyD ::=                 SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    parameterLx                         INTEGER (2..4),
    amplitudeScalingType                ENUMERATED {wideband, widebandAndSubband},
    amplitudeSubsetRestriction          ENUMERATED {supported}                          OPTIONAL,
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

DummyE ::=    SEQUENCE {
    maxNumberTxPortsPerResource         ENUMERATED {p4, p8, p12, p16, p24, p32},
    maxNumberResources                  INTEGER (1..64),
    totalNumberTxPorts                  INTEGER (2..256),
    parameterLx                         INTEGER (2..4),
    amplitudeScalingType                ENUMERATED {wideband, widebandAndSubband},
    maxNumberCSI-RS-PerResourceSet      INTEGER (1..8)
}

-- TAG-FEATURESETDOWNLINK-STOP
-- TAG-FEATURESETDOWNLINKID-START

FeatureSetDownlinkId ::=            INTEGER (0..maxDownlinkFeatureSets)

-- TAG-FEATURESETDOWNLINKID-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-FEATURESETDOWNLINKPERCC-ID-START

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

-- TAG-FEATURESETDOWNLINKPERCC-ID-STOP
-- TAG-FEATURESETEUTRADOWNLINKID-START

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

-- TAG-FEATURESETEUTRADOWNLINKID-STOP
-- TAG-FEATURESETEUTRAUPLINKID-START

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

-- TAG-FEATURESETEUTRAUPLINKID-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,
    ...,
    [[
    featureSetsDownlink-v1540           SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1540         OPTIONAL,
    featureSetsUplink-v1540             SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink-v1540             OPTIONAL,
    featureSetsUplinkPerCC-v1540        SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC-v1540        OPTIONAL
    ]],
    [[
    featureSetsDownlink-v15a0           SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v15a0         OPTIONAL
    ]],
    [[
    featureSetsDownlink-v1610           SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink-v1610         OPTIONAL,
    featureSetsUplink-v1610             SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink-v1610             OPTIONAL
    ]]
}

-- TAG-FEATURESETS-STOP
-- TAG-FEATURESETUPLINK-START

FeatureSetUplink ::=                SEQUENCE {
    featureSetListPerUplinkCC           SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id,
    scalingFactor                       ENUMERATED {f0p4, f0p75, f0p8}                                          OPTIONAL,
    crossCarrierScheduling-OtherSCS     ENUMERATED {supported}                                                  OPTIONAL,
    intraBandFreqSeparationUL           FreqSeparationClass                                                     OPTIONAL,
    searchSpaceSharingCA-UL             ENUMERATED {supported}                                                  OPTIONAL,
    dummy1                              DummyI                                                                  OPTIONAL,
    supportedSRS-Resources              SRS-Resources                                                           OPTIONAL,
    twoPUCCH-Group                      ENUMERATED {supported}                                                  OPTIONAL,
    dynamicSwitchSUL                    ENUMERATED {supported}                                                  OPTIONAL,
    simultaneousTxSUL-NonSUL            ENUMERATED {supported}                                                  OPTIONAL,
    pusch-ProcessingType1-DifferentTB-PerSlot SEQUENCE {
        scs-15kHz                                 ENUMERATED {upto2, upto4, upto7}                                  OPTIONAL,
        scs-30kHz                                 ENUMERATED {upto2, upto4, upto7}                                  OPTIONAL,
        scs-60kHz                                 ENUMERATED {upto2, upto4, upto7}                                  OPTIONAL,
        scs-120kHz                                ENUMERATED {upto2, upto4, upto7}                                  OPTIONAL
    }                                                                                                           OPTIONAL,
    dummy2                               DummyF                                                                 OPTIONAL
}

FeatureSetUplink-v1540 ::=           SEQUENCE {
    zeroSlotOffsetAperiodicSRS           ENUMERATED {supported}                     OPTIONAL,
    pa-PhaseDiscontinuityImpacts         ENUMERATED {supported}                     OPTIONAL,
    pusch-SeparationWithGap              ENUMERATED {supported}                     OPTIONAL,
    pusch-ProcessingType2                SEQUENCE {
        scs-15kHz                            ProcessingParameters                       OPTIONAL,
        scs-30kHz                            ProcessingParameters                       OPTIONAL,
        scs-60kHz                            ProcessingParameters                       OPTIONAL
    }                                                                               OPTIONAL,
    ul-MCS-TableAlt-DynamicIndication    ENUMERATED {supported}                     OPTIONAL
}

FeatureSetUplink-v1610 ::=       SEQUENCE {
    -- R1 11-5: PUsCH repetition Type B
    pusch-RepetitionTypeB-r16        SEQUENCE {
        maxNumberPUSCH-Tx-r16            ENUMERATED {n2, n3, n4, n7, n8, n12},
        hoppingScheme-r16                ENUMERATED {interSlotHopping, interRepetitionHopping, both}
    }                                                                              OPTIONAL,
    -- R1 11-7: UL cancelation scheme for self-carrier
    ul-CancellationSelfCarrier-r16       ENUMERATED {supported}                    OPTIONAL,
    -- R1 11-7a: UL cancelation scheme for cross-carrier
    ul-CancellationCrossCarrier-r16      ENUMERATED {supported}                    OPTIONAL,
    -- R1 16-5c: The maximum number of SRS resources in one SRS resource set with usage set to 'codebook' for Mode 2
    ul-FullPwrMode2-MaxSRS-ResInSet      ENUMERATED {n1, n2, n4}                   OPTIONAL,

    -- R1 22-4a/4b/4c/4d: CBG based transmission for UL with unicast PUSCH(s) per slot per CC with UE processing time Capability 1
    cbgPUSCH-ProcessingType1-DifferentTB-PerSlot    SEQUENCE {
        scs-15kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-30kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-60kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-120kHz	       ENUMERATED {one-pusch, upto2, upto4, upto7}              OPTIONAL
     } OPTIONAL,

    -- R1 22-3a/3b/3c/3d: CBG based transmission for UL with unicast PUSCH(s) per slot per CC with UE processing time Capability 2
    cbgPUSCH-ProcessingType2-DifferentTB-PerSlot    SEQUENCE {
        scs-15kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-30kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-60kHz        ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL,
        scs-120kHz       ENUMERATED {one-pusch, upto2, upto4, upto7}                 OPTIONAL
     } OPTIONAL,
    supportedSRS-PosResources-r16              SRS-AllPosResources-r16                                          OPTIONAL
}

SRS-AllPosResources-r16 ::=                SEQUENCE {
    srs-PosResources-r16                       SRS-PosResources-r16,
    srs-PosResourceAP-r16                      SRS-PosResourceAP-r16                 OPTIONAL,
    srs-PosResourceSP-r16                      SRS-PosResourceSP-r16                 OPTIONAL
} 

SRS-PosResources-r16 ::=                       SEQUENCE {
    maxNumberSRS-PosResourceSetPerBWP-r16                ENUMERATED {n1, n2, n4, n8, n12, n16},
    maxNumberSRS-PosResourcesPerBWP-r16                  ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberSRS-ResourcesPerBWP-PerSlot-r16             ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14},
    maxNumberPeriodicSRS-PosResourcesPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberPeriodicSRS-PosResourcesPerBWP-PerSlot-r16  ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
}

SRS-PosResourceAP-r16 ::=                SEQUENCE {
    maxNumberAP-SRS-PosResourcesPerBWP-r16         ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberAP-SRS-PosResourcesPerBWP-PerSlot-r16 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
}

SRS-PosResourceSP-r16 ::=                       SEQUENCE {
    maxNumberSP-SRS-PosResourcesPerBWP-r16               ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberSP-SRS-PosResourcesPerBWP-PerSlot-r16       ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
}

SRS-Resources ::=                           SEQUENCE {
    maxNumberAperiodicSRS-PerBWP                ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberAperiodicSRS-PerBWP-PerSlot        INTEGER (1..6),
    maxNumberPeriodicSRS-PerBWP                 ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberPeriodicSRS-PerBWP-PerSlot         INTEGER (1..6),
    maxNumberSemiPersistentSRS-PerBWP           ENUMERATED {n1, n2, n4, n8, n16},
    maxNumberSemiPersistentSRS-PerBWP-PerSlot   INTEGER (1..6),
    maxNumberSRS-Ports-PerResource              ENUMERATED {n1, n2, n4}
}

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

-- TAG-FEATURESETUPLINK-STOP
-- TAG-FEATURESETUPLINKID-START

FeatureSetUplinkId ::=                  INTEGER (0..maxUplinkFeatureSets)

-- TAG-FEATURESETUPLINKID-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
}
FeatureSetUplinkPerCC-v1540 ::=       SEQUENCE {
    mimo-NonCB-PUSCH                      SEQUENCE {
        maxNumberSRS-ResourcePerSet           INTEGER (1..4),
        maxNumberSimultaneousSRS-ResourceTx   INTEGER (1..4)
    } OPTIONAL
}

-- TAG-FEATURESETUPLINKPERCC-STOP
-- TAG-FEATURESETUPLINKPERCC-ID-START

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

-- TAG-FEATURESETUPLINKPERCC-ID-STOP
-- TAG-FREQBANDINDICATOREUTRA-START

FreqBandIndicatorEUTRA ::=  INTEGER (1..maxBandsEUTRA)

-- TAG-FREQBANDINDICATOREUTRA-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-HIGHSPEEDPARAMETERS-START

HighSpeedParameters-r16 ::= SEQUENCE {
    measurementEnhancement-r16       ENUMERATED {supported}   OPTIONAL,
    demodulationEnhancement-r16      ENUMERATED {supported}   OPTIONAL
}

-- TAG-HIGHSPEEDPARAMETERS-STOP
-- TAG-IMS-PARAMETERS-START

IMS-Parameters ::=         SEQUENCE {
    ims-ParametersCommon       IMS-ParametersCommon                  OPTIONAL,
    ims-ParametersFRX-Diff     IMS-ParametersFRX-Diff                OPTIONAL,
    ...
}

IMS-ParametersCommon ::=   SEQUENCE {
    voiceOverEUTRA-5GC         ENUMERATED {supported}                OPTIONAL,
    ...,
    [[
    voiceOverSCG-BearerEUTRA-5GC       ENUMERATED {supported}        OPTIONAL
    ]],
    [[
    voiceFallbackIndicationEPS-r16         ENUMERATED {supported}       OPTIONAL
    ]]
}

IMS-ParametersFRX-Diff ::= SEQUENCE {
    voiceOverNR                ENUMERATED {supported}                OPTIONAL,
    ...
}

-- TAG-IMS-PARAMETERS-STOP
-- TAG-INTERRAT-PARAMETERS-START

InterRAT-Parameters ::=             SEQUENCE {
    eutra                               EUTRA-Parameters                OPTIONAL,
    ...,
    [[
    utra-FDD-r16                        UTRA-FDD-Parameters-r16         OPTIONAL
    ]]

}

EUTRA-Parameters ::=                SEQUENCE {
    supportedBandListEUTRA          SEQUENCE (SIZE (1..maxBandsEUTRA)) OF FreqBandIndicatorEUTRA,
    eutra-ParametersCommon              EUTRA-ParametersCommon                                      OPTIONAL,
    eutra-ParametersXDD-Diff            EUTRA-ParametersXDD-Diff                                    OPTIONAL,
    ...
}

EUTRA-ParametersCommon ::=      SEQUENCE {
    mfbi-EUTRA                          ENUMERATED {supported}          OPTIONAL,
    modifiedMPR-BehaviorEUTRA           BIT STRING (SIZE (32))          OPTIONAL,
    multiNS-Pmax-EUTRA                  ENUMERATED {supported}          OPTIONAL,
    rs-SINR-MeasEUTRA                   ENUMERATED {supported}          OPTIONAL,
    ...,
    [[ 
    ne-DC                               ENUMERATED {supported}          OPTIONAL
    ]],
    [[
    nr-HO-ToEN-DC-r16                   ENUMERATED {supported}          OPTIONAL
    ]]
}

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

UTRA-FDD-Parameters-r16 ::=                SEQUENCE {
    supportedBandListUTRA-FDD-r16              SEQUENCE (SIZE (1..maxBandsUTRA-FDD-r16)) OF SupportedBandUTRA-FDD-r16,
    ...
}

SupportedBandUTRA-FDD-r16 ::=           ENUMERATED {
                                            bandI, bandII, bandIII, bandIV, bandV, bandVI,
                                            bandVII, bandVIII, bandIX, bandX, bandXI,
                                            bandXII, bandXIII, bandXIV, bandXV, bandXVI,
                                            bandXVII, bandXVIII, bandXIX, bandXX,
                                            bandXXI, bandXXII, bandXXIII, bandXXIV,
                                            bandXXV, bandXXVI, bandXXVII, bandXXVIII,
                                            bandXXIX, bandXXX, bandXXXI, bandXXXII}

-- TAG-INTERRAT-PARAMETERS-STOP
-- TAG-MAC-PARAMETERS-START

MAC-Parameters ::= SEQUENCE {
    mac-ParametersCommon            MAC-ParametersCommon        OPTIONAL,
    mac-ParametersXDD-Diff          MAC-ParametersXDD-Diff      OPTIONAL
}

MAC-Parameters-v1610 ::= SEQUENCE {
    mac-ParametersFRX-Diff-r16      MAC-ParametersFRX-Diff-r16  OPTIONAL
}

MAC-ParametersCommon ::=    SEQUENCE {
    lcp-Restriction                         ENUMERATED {supported}      OPTIONAL,
    dummy                                   ENUMERATED {supported}      OPTIONAL,
    lch-ToSCellRestriction                  ENUMERATED {supported}      OPTIONAL,
    ...,
    [[
    recommendedBitRate                      ENUMERATED {supported}      OPTIONAL,
    recommendedBitRateQuery                 ENUMERATED {supported}      OPTIONAL
    ]],
    [[
    recommendedBitRateMultiplier-r16         ENUMERATED {supported}     OPTIONAL,
    secondaryDRX-Group                       ENUMERATED {supported}     OPTIONAL,
    preEmptiveBSR-r16                        ENUMERATED {supported}     OPTIONAL,
    autonomousTransmission-r16               ENUMERATED {supported}     OPTIONAL,
    lch-PriorityBasedPrioritization-r16      ENUMERATED {supported}     OPTIONAL,
    lch-ToConfiguredGrantMapping-r16         ENUMERATED {supported}     OPTIONAL,
    lch-ToGrantPriorityRestriction-r16       ENUMERATED {supported}     OPTIONAL,
    singlePHR-P-r16                          ENUMERATED {supported}     OPTIONAL,
    ul-LBT-FailureDetectionRecovery-r16      ENUMERATED {supported}     OPTIONAL
    ]]
}

MAC-ParametersFRX-Diff-r16 ::=  SEQUENCE {
    directMCG-SCellActivation-r16           ENUMERATED {supported}      OPTIONAL,
    directMCG-SCellActivationResume-r16     ENUMERATED {supported}      OPTIONAL,
    directSCG-SCellActivation-r16           ENUMERATED {supported}      OPTIONAL,
    directSCG-SCellActivationResume-r16     ENUMERATED {supported}      OPTIONAL,
    -- R1 19-1: DRX Adaptation
    drx-Adaptation-r16          SEQUENCE {
        licensedBand-r16            MinTimeGap-r16                      OPTIONAL,
    unlicensedBand-r16              MinTimeGap-r16                      OPTIONAL
    }                                                                   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,
    ...
}

MinTimeGap-r16 ::=    SEQUENCE {
    scs-15kHz-r16                         ENUMERATED {sl1, sl3}        OPTIONAL,
    scs-30kHz-r16                         ENUMERATED {sl1, sl6}        OPTIONAL,
    scs-60kHz-r16                         ENUMERATED {sl1, sl12}       OPTIONAL,
    scs-120kHz-r16                        ENUMERATED {sl2, sl24}       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
    ]],
    [[
    independentGapConfig                    ENUMERATED {supported}                  OPTIONAL,
    periodicEUTRA-MeasAndReport             ENUMERATED {supported}                  OPTIONAL,
    handoverFR1-FR2                         ENUMERATED {supported}                  OPTIONAL,
    maxNumberCSI-RS-RRM-RS-SINR             ENUMERATED {n4, n8, n16, n32, n64, n96} OPTIONAL
    ]],
    [[
    nr-CGI-Reporting-ENDC                   ENUMERATED {supported}                  OPTIONAL
    ]],
    [[
    eutra-CGI-Reporting-NEDC                ENUMERATED {supported}                  OPTIONAL,
    eutra-CGI-Reporting-NRDC                ENUMERATED {supported}                  OPTIONAL,
    nr-CGI-Reporting-NEDC                   ENUMERATED {supported}                  OPTIONAL,
    nr-CGI-Reporting-NRDC                   ENUMERATED {supported}                  OPTIONAL
    ]],
    [[
    reportAddNeighMeasForPeriodic-r16       ENUMERATED {supported}                  OPTIONAL,
    condHandoverParametersCommon-r16        SEQUENCE {
       condHandoverFDD-TDD-r16                  ENUMERATED {supported}              OPTIONAL,
       condHandoverFR1-FR2-r16                  ENUMERATED {supported}              OPTIONAL
    }                                                                               OPTIONAL,
    nr-NeedForGap-Reporting-r16             ENUMERATED {supported}                  OPTIONAL,
    supportedGapPattern-NRonly-r16          BIT STRING (SIZE (10))                  OPTIONAL,
    supportedGapPattern-NRonly-NEDC-r16     ENUMERATED {supported}                  OPTIONAL,
    maxNumberCLI-RSSI-r16                   ENUMERATED {n8, n16, n32, n64}          OPTIONAL,
    maxNumberCLI-SRS-RSRP-r16               ENUMERATED {n4, n8, n16, n32}           OPTIONAL,
    maxNumberPerSlotCLI-SRS-RSRP-r16        ENUMERATED {n2, n4, n8}                 OPTIONAL,
    mfbi-IAB-r16                            ENUMERATED {supported}                  OPTIONAL,
    multipleNS-And-Pmax-IAB-r16             ENUMERATED {supported}                  OPTIONAL,
    nr-CGI-Reporting-NPN-r16                ENUMERATED {supported}                  OPTIONAL,
    idleInactiveEUTRA-MeasReport-r16        ENUMERATED {supported}                  OPTIONAL,
    idleInactive-ValidityArea-r16           ENUMERATED {supported}                  OPTIONAL
    ]]

}

MeasAndMobParametersXDD-Diff ::=            SEQUENCE {
    intraAndInterF-MeasAndReport        ENUMERATED {supported}                      OPTIONAL,
    eventA-MeasAndReport                ENUMERATED {supported}                      OPTIONAL,
    ...,
    [[
    handoverInterF                      ENUMERATED {supported}                      OPTIONAL,
    handoverLTE-EPC                     ENUMERATED {supported}                      OPTIONAL,
    handoverLTE-5GC                     ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    sftd-MeasNR-Neigh                   ENUMERATED {supported}                      OPTIONAL,
    sftd-MeasNR-Neigh-DRX               ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    condHandoverParametersXDD-Diff-r16  SEQUENCE {
        condHandover-r16                    ENUMERATED {supported}                  OPTIONAL,
        condHandoverFailure-r16             ENUMERATED {supported}                  OPTIONAL,
        condHandoverTwoTriggerEvents-r16    ENUMERATED {supported}                  OPTIONAL
    }                                                                               OPTIONAL,
    pcellT312-r16                       ENUMERATED {supported}                      OPTIONAL,
    handoverIntraF-IAB-r16              ENUMERATED {supported}                      OPTIONAL,
    eutra-AutonomousGaps-r16            ENUMERATED {supported}                      OPTIONAL,
    eutra-AutonomousGapsNEDC-r16        ENUMERATED {supported}                      OPTIONAL,
    eutra-AutonomousGapsNRDC-r16        ENUMERATED {supported}                      OPTIONAL,
    nr-AutonomousGaps-r16               ENUMERATED {supported}                      OPTIONAL,
    nr-AutonomousGaps-ENDC-r16          ENUMERATED {supported}                      OPTIONAL,
    nr-AutonomousGapsNEDC-r16           ENUMERATED {supported}                      OPTIONAL,
    nr-AutonomousGapsNRDC-r16           ENUMERATED {supported}                      OPTIONAL,
    handoverUTRA-FDD-r16                ENUMERATED {supported}                      OPTIONAL
    ]]

}

MeasAndMobParametersFRX-Diff ::=            SEQUENCE {
    ss-SINR-Meas                                    ENUMERATED {supported}              OPTIONAL,
    csi-RSRP-AndRSRQ-MeasWithSSB                    ENUMERATED {supported}              OPTIONAL,
    csi-RSRP-AndRSRQ-MeasWithoutSSB                 ENUMERATED {supported}              OPTIONAL,
    csi-SINR-Meas                                   ENUMERATED {supported}              OPTIONAL,
    csi-RS-RLM                                      ENUMERATED {supported}              OPTIONAL,
    ...,
    [[
    handoverInterF                                  ENUMERATED {supported}              OPTIONAL,
    handoverLTE-EPC                                 ENUMERATED {supported}              OPTIONAL,
    handoverLTE-5GC                                 ENUMERATED {supported}              OPTIONAL
    ]],
    [[
    maxNumberResource-CSI-RS-RLM                    ENUMERATED {n2, n4, n6, n8}         OPTIONAL
    ]],
    [[
    simultaneousRxDataSSB-DiffNumerology            ENUMERATED {supported}              OPTIONAL
    ]],
    [[
    nr-AutonomousGaps-r16                           ENUMERATED {supported}              OPTIONAL,
    nr-AutonomousGaps-ENDC-r16                      ENUMERATED {supported}              OPTIONAL,
    handoverUTRA-FDD-r16                            ENUMERATED {supported}              OPTIONAL,
    cli-RSSI-Meas-r16                               ENUMERATED {supported}              OPTIONAL,
    cli-SRS-RSRP-Meas-r16                           ENUMERATED {supported}              OPTIONAL,
    condHandoverParametersFRX-Diff-r16              SEQUENCE {
        condHandover-r16                                ENUMERATED {supported}          OPTIONAL,
        condHandoverFailure-r16                         ENUMERATED {supported}          OPTIONAL,
        condHandoverTwoTriggerEvents-r16                ENUMERATED {supported}          OPTIONAL
    }                                                                                   OPTIONAL,
    pcellT312-r16                                   ENUMERATED {supported}              OPTIONAL,
    interFrequencyMeas-Nogap-r16                    ENUMERATED {supported}              OPTIONAL,
    simultaneousRxDataSSB-DiffNumerology-Inter-r16  ENUMERATED {supported}              OPTIONAL,
    handoverIntraF-IAB-r16                          ENUMERATED {supported}              OPTIONAL,
    idleInactiveNR-MeasReport-r16                   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-v1560 ::=      SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff-v1560    MeasAndMobParametersMRDC-XDD-Diff-v1560      OPTIONAL
}

MeasAndMobParametersMRDC-v1610 ::=      SEQUENCE {
    measAndMobParametersMRDC-Common-v1610      MeasAndMobParametersMRDC-Common-v1610        OPTIONAL,
    measAndMobParametersMRDC-XDD-Diff-v1610    MeasAndMobParametersMRDC-XDD-Diff-v1610      OPTIONAL,
    measAndMobParametersMRDC-FRX-Diff-v1610    MeasAndMobParametersMRDC-FRX-Diff-v1610      OPTIONAL,
    interNR-MeasEUTRA-IAB-r16                  ENUMERATED {supported}                       OPTIONAL
}

MeasAndMobParametersMRDC-Common ::=     SEQUENCE {
    independentGapConfig                    ENUMERATED {supported}                          OPTIONAL
}

MeasAndMobParametersMRDC-Common-v1610 ::=   SEQUENCE {
    condPSCellChangeParametersCommon-r16        SEQUENCE {
        condPSCellChangeFDD-TDD-r16                 ENUMERATED {supported}                  OPTIONAL,
        condPSCellChangeFR1-FR2-r16                 ENUMERATED {supported}                  OPTIONAL
    }                                                                                       OPTIONAL
}

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

MeasAndMobParametersMRDC-XDD-Diff-v1560 ::=    SEQUENCE {
    sftd-MeasPSCell-NEDC                           ENUMERATED {supported}                   OPTIONAL
}

MeasAndMobParametersMRDC-XDD-Diff-v1610 ::=    SEQUENCE {
    condPSCellChangeParametersXDD-Diff-r16         SEQUENCE {
        condPSCellChange-r16                           ENUMERATED {supported}               OPTIONAL,
        condPSCellChangeTwoTriggerEvents-r16           ENUMERATED {supported}               OPTIONAL
    }                                                                                       OPTIONAL,
    pscellT312-r16                                 ENUMERATED {supported}                   OPTIONAL
}

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

MeasAndMobParametersMRDC-FRX-Diff-v1610 ::=    SEQUENCE {
    condPSCellChangeParametersFRX-Diff-r16         SEQUENCE {
        condPSCellChange-r16                           ENUMERATED {supported}               OPTIONAL,
        condPSCellChangeTwoTriggerEvents-r16           ENUMERATED {supported}               OPTIONAL
    }                                                                                       OPTIONAL,
    pscellT312-r16                                 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, partialCoherent, fullCoherent}            OPTIONAL,
    beamCorrespondenceWithoutUL-BeamSweeping    ENUMERATED {supported}                                             OPTIONAL,
    periodicBeamReport                          ENUMERATED {supported}                                             OPTIONAL,
    aperiodicBeamReport                         ENUMERATED {supported}                                             OPTIONAL,
    sp-BeamReportPUCCH                          ENUMERATED {supported}                                             OPTIONAL,
    sp-BeamReportPUSCH                          ENUMERATED {supported}                                             OPTIONAL,
    dummy1                                      DummyG                                                             OPTIONAL,
    maxNumberRxBeam                             INTEGER (2..8)                                                     OPTIONAL,
    maxNumberRxTxBeamSwitchDL                   SEQUENCE {
        scs-15kHz                                   ENUMERATED {n4, n7, n14}                                           OPTIONAL,
        scs-30kHz                                   ENUMERATED {n4, n7, n14}                                           OPTIONAL,
        scs-60kHz                                   ENUMERATED {n4, n7, n14}                                           OPTIONAL,
        scs-120kHz                                  ENUMERATED {n4, n7, n14}                                           OPTIONAL,
        scs-240kHz                                  ENUMERATED {n4, n7, n14}                                           OPTIONAL
    }                                                                                                              OPTIONAL,
    maxNumberNonGroupBeamReporting              ENUMERATED {n1, n2, n4}                                            OPTIONAL,
    groupBeamReporting                          ENUMERATED {supported}                                             OPTIONAL,
    uplinkBeamManagement                        SEQUENCE {
        maxNumberSRS-ResourcePerSet-BM              ENUMERATED {n2, n4, n8, n16},
        maxNumberSRS-ResourceSet                    INTEGER (1..8)
    }                                                                                                              OPTIONAL,
    maxNumberCSI-RS-BFD                 INTEGER (1..64)                                                            OPTIONAL,
    maxNumberSSB-BFD                    INTEGER (1..64)                                                            OPTIONAL,
    maxNumberCSI-RS-SSB-CBD             INTEGER (1..256)                                                           OPTIONAL,
    dummy2                              ENUMERATED {supported}                                                     OPTIONAL,
    twoPortsPTRS-UL                     ENUMERATED {supported}                                                     OPTIONAL,
    dummy5                              SRS-Resources                                                              OPTIONAL,
    dummy3                              INTEGER (1..4)                                                             OPTIONAL,
    beamReportTiming                    SEQUENCE {
        scs-15kHz                           ENUMERATED {sym2, sym4, sym8}                                              OPTIONAL,
        scs-30kHz                           ENUMERATED {sym4, sym8, sym14, sym28}                                      OPTIONAL,
        scs-60kHz                           ENUMERATED {sym8, sym14, sym28}                                            OPTIONAL,
        scs-120kHz                          ENUMERATED {sym14, sym28, sym56}                                           OPTIONAL
    }                                                                                                              OPTIONAL,
    ptrs-DensityRecommendationSetDL     SEQUENCE {
        scs-15kHz                           PTRS-DensityRecommendationDL                                               OPTIONAL,
        scs-30kHz                           PTRS-DensityRecommendationDL                                               OPTIONAL,
        scs-60kHz                           PTRS-DensityRecommendationDL                                               OPTIONAL,
        scs-120kHz                          PTRS-DensityRecommendationDL                                               OPTIONAL
    }                                                                                                              OPTIONAL,
    ptrs-DensityRecommendationSetUL     SEQUENCE {
        scs-15kHz                           PTRS-DensityRecommendationUL                                               OPTIONAL,
        scs-30kHz                           PTRS-DensityRecommendationUL                                               OPTIONAL,
        scs-60kHz                           PTRS-DensityRecommendationUL                                               OPTIONAL,
        scs-120kHz                          PTRS-DensityRecommendationUL                                               OPTIONAL
    }                                                                                                              OPTIONAL,
    dummy4                              DummyH                                                                     OPTIONAL,
    aperiodicTRS                        ENUMERATED {supported}                                                     OPTIONAL,
    ...,
    [[
    dummy6                              ENUMERATED {true}                                                          OPTIONAL,
    beamManagementSSB-CSI-RS            BeamManagementSSB-CSI-RS                                                   OPTIONAL,
    beamSwitchTiming                    SEQUENCE {
        scs-60kHz                           ENUMERATED {sym14, sym28, sym48, sym224, sym336}                           OPTIONAL,
        scs-120kHz                          ENUMERATED {sym14, sym28, sym48, sym224, sym336}                           OPTIONAL
    }                                                                                                              OPTIONAL,
    codebookParameters                  CodebookParameters                                                         OPTIONAL,
    csi-RS-IM-ReceptionForFeedback      CSI-RS-IM-ReceptionForFeedback                                             OPTIONAL,
    csi-RS-ProcFrameworkForSRS          CSI-RS-ProcFrameworkForSRS                                                 OPTIONAL,
    csi-ReportFramework                 CSI-ReportFramework                                                        OPTIONAL,
    csi-RS-ForTracking                  CSI-RS-ForTracking                                                         OPTIONAL,
    srs-AssocCSI-RS                     SEQUENCE (SIZE (1.. maxNrofCSI-RS-Resources)) OF SupportedCSI-RS-Resource  OPTIONAL,
    spatialRelations                    SpatialRelations                                                           OPTIONAL
    ]],
    [[
    -- R1 16-2b-0: Support of default QCL assumption with two TCI states
    defaultQCL-TwoTCI-r16               ENUMERATED {supported}                                                     OPTIONAL,
    codebookParametersPerBand-r16       CodebookParameters-v1610                                                   OPTIONAL
    ]]

}

DummyG ::=                          SEQUENCE {
    maxNumberSSB-CSI-RS-ResourceOneTx   ENUMERATED {n8, n16, n32, n64},
    maxNumberSSB-CSI-RS-ResourceTwoTx   ENUMERATED {n0, n4, n8, n16, n32, n64},
    supportedCSI-RS-Density             ENUMERATED {one, three, oneAndThree}
}

BeamManagementSSB-CSI-RS ::=        SEQUENCE {
    maxNumberSSB-CSI-RS-ResourceOneTx   ENUMERATED {n0, n8, n16, n32, n64},
    maxNumberCSI-RS-Resource            ENUMERATED {n0, n4, n8, n16, n32, n64},
    maxNumberCSI-RS-ResourceTwoTx       ENUMERATED {n0, n4, n8, n16, n32, n64},
    supportedCSI-RS-Density             ENUMERATED {one, three, oneAndThree}                                       OPTIONAL,
    maxNumberAperiodicCSI-RS-Resource   ENUMERATED {n0, n1, n4, n8, n16, n32, n64}
}

DummyH ::=                          SEQUENCE {
    burstLength                         INTEGER (1..2),
    maxSimultaneousResourceSetsPerCC    INTEGER (1..8),
    maxConfiguredResourceSetsPerCC      INTEGER (1..64),
    maxConfiguredResourceSetsAllCC      INTEGER (1..128)
}

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

CSI-RS-IM-ReceptionForFeedback ::=              SEQUENCE {
    maxConfigNumberNZP-CSI-RS-PerCC                 INTEGER (1..64),
    maxConfigNumberPortsAcrossNZP-CSI-RS-PerCC      INTEGER (2..256),
    maxConfigNumberCSI-IM-PerCC                     ENUMERATED {n1, n2, n4, n8, n16, n32},
    maxNumberSimultaneousNZP-CSI-RS-PerCC           INTEGER (1..64),
    totalNumberPortsSimultaneousNZP-CSI-RS-PerCC    INTEGER (2..256)
}

CSI-RS-ProcFrameworkForSRS ::=                  SEQUENCE {
    maxNumberPeriodicSRS-AssocCSI-RS-PerBWP         INTEGER (1..4),
    maxNumberAperiodicSRS-AssocCSI-RS-PerBWP        INTEGER (1..4),
    maxNumberSP-SRS-AssocCSI-RS-PerBWP              INTEGER (0..4),
    simultaneousSRS-AssocCSI-RS-PerCC               INTEGER (1..8)
}

CSI-ReportFramework ::=                         SEQUENCE {
    maxNumberPeriodicCSI-PerBWP-ForCSI-Report       INTEGER (1..4),
    maxNumberAperiodicCSI-PerBWP-ForCSI-Report      INTEGER (1..4),
    maxNumberSemiPersistentCSI-PerBWP-ForCSI-Report INTEGER (0..4),
    maxNumberPeriodicCSI-PerBWP-ForBeamReport       INTEGER (1..4),
    maxNumberAperiodicCSI-PerBWP-ForBeamReport      INTEGER (1..4),
    maxNumberAperiodicCSI-triggeringStatePerCC      ENUMERATED {n3, n7, n15, n31, n63, n128},
    maxNumberSemiPersistentCSI-PerBWP-ForBeamReport INTEGER (0..4),
    simultaneousCSI-ReportsPerCC                    INTEGER (1..8)
}

PTRS-DensityRecommendationDL ::=    SEQUENCE {
    frequencyDensity1                   INTEGER (1..276),
    frequencyDensity2                   INTEGER (1..276),
    timeDensity1                        INTEGER (0..29),
    timeDensity2                        INTEGER (0..29),
    timeDensity3                        INTEGER (0..29)
}

PTRS-DensityRecommendationUL ::=    SEQUENCE {
    frequencyDensity1                   INTEGER (1..276),
    frequencyDensity2                   INTEGER (1..276),
    timeDensity1                        INTEGER (0..29),
    timeDensity2                        INTEGER (0..29),
    timeDensity3                        INTEGER (0..29),
    sampleDensity1                      INTEGER (1..276),
    sampleDensity2                      INTEGER (1..276),
    sampleDensity3                      INTEGER (1..276),
    sampleDensity4                      INTEGER (1..276),
    sampleDensity5                      INTEGER (1..276)
}

SpatialRelations ::=                    SEQUENCE {
    maxNumberConfiguredSpatialRelations     ENUMERATED {n4, n8, n16, n32, n64, n96},
    maxNumberActiveSpatialRelations         ENUMERATED {n1, n2, n4, n8, n14},
    additionalActiveSpatialRelationPUCCH    ENUMERATED {supported}                              OPTIONAL,
    maxNumberDL-RS-QCL-TypeD                ENUMERATED {n1, n2, n4, n8, n14}
}

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

-- TAG-MIMO-PARAMETERSPERBAND-STOP
-- TAG-MODULATIONORDER-START

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

-- TAG-MODULATIONORDER-STOP
-- TAG-MRDC-PARAMETERS-START

MRDC-Parameters ::= SEQUENCE {
    singleUL-Transmission               ENUMERATED {supported}              OPTIONAL,
    dynamicPowerSharingENDC             ENUMERATED {supported}              OPTIONAL,
    tdm-Pattern                         ENUMERATED {supported}              OPTIONAL,
    ul-SharingEUTRA-NR                  ENUMERATED {tdm, fdm, both}         OPTIONAL,
    ul-SwitchingTimeEUTRA-NR            ENUMERATED {type1, type2}           OPTIONAL,
    simultaneousRxTxInterBandENDC       ENUMERATED {supported}              OPTIONAL,
    asyncIntraBandENDC                  ENUMERATED {supported}              OPTIONAL,
    ...,
    [[
    dualPA-Architecture                 ENUMERATED {supported}              OPTIONAL,
    intraBandENDC-Support               ENUMERATED {non-contiguous, both}   OPTIONAL,
    ul-TimingAlignmentEUTRA-NR          ENUMERATED {required}               OPTIONAL
    ]],
    [[
    maxUplinkDutyCycle-interBandENDC-TDD-PC2-r16    SEQUENCE{
        eutra-TDD-Config0-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config1-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config2-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config3-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config4-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config5-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL,
        eutra-TDD-Config6-r16    ENUMERATED {n20, n40, n50, n60, n70, n80, n90, n100}    OPTIONAL
    }        OPTIONAL
    ]]
}

MRDC-Parameters-v1580 ::= SEQUENCE {
	dynamicPowerSharingNEDC             ENUMERATED {supported}              OPTIONAL
}

MRDC-Parameters-v1590 ::=	SEQUENCE {
	interBandContiguousMRDC             ENUMERATED {supported}              OPTIONAL
}

-- TAG-MRDC-PARAMETERS-STOP
-- TAG-NRDC-PARAMETERS-START

NRDC-Parameters ::=                 SEQUENCE {
    measAndMobParametersNRDC            MeasAndMobParametersMRDC                    OPTIONAL,
    generalParametersNRDC               GeneralParametersMRDC-XDD-Diff              OPTIONAL,
    fdd-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    tdd-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode               OPTIONAL,
    fr1-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    fr2-Add-UE-NRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode               OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                                OPTIONAL,
    dummy                               SEQUENCE {}                                 OPTIONAL
}

NRDC-Parameters-v1570 ::=           SEQUENCE {
    sfn-SyncNRDC                        ENUMERATED {supported}                      OPTIONAL
}

NRDC-Parameters-v1610 ::=           SEQUENCE {
    measAndMobParametersNRDC-v1610      MeasAndMobParametersMRDC-v1610              OPTIONAL
}


-- TAG-NRDC-PARAMETERS-STOP
-- TAG-OLPC-SRS-POS-START

OLPC-SRS-Pos-r16 ::=        SEQUENCE {
    olpc-SRS-PosBasedOnPRS-Serving-r16         ENUMERATED {supported}               OPTIONAL,
    olpc-SRS-PosBasedOnSSB-Neigh-r16           ENUMERATED {supported}               OPTIONAL,
    olpc-SRS-PosBasedOnPRS-Neigh-r16           ENUMERATED {supported}               OPTIONAL,
    maxNumberPathLossEstimatePerServing-r16    ENUMERATED {n1, n4, n8, n16}         OPTIONAL
}

--TAG-OLPC-SRS-POS-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-DuplicationSRB                 ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationMCG-OrSCG-DRB       ENUMERATED {supported}      OPTIONAL,
    ...,
    [[
    drb-IAB-r16                         ENUMERATED {supported}      OPTIONAL,
    non-DRB-IAB-r16                     ENUMERATED {supported}      OPTIONAL,
    extendedDiscardTimer-r16            ENUMERATED {supported}      OPTIONAL,
    continueEHC-Context-r16             ENUMERATED {supported}      OPTIONAL,
    ehc-r16                             ENUMERATED {supported}      OPTIONAL,
    maxNumberEHC-Contexts-r16           ENUMERATED {cs2, cs4, cs8, cs16, cs32, cs64, cs128, cs256, cs512, 
                                                    cs1024, cs2048, cs4096, cs8192, cs16384, cs32768, cs65536}    OPTIONAL,
    jointEHC-ROHC-Config-r16            ENUMERATED {supported}      OPTIONAL,
    pdcp-DuplicationMoreThanTwoRLC-r16  ENUMERATED {supported}      OPTIONAL
    ]]
}

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

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

PDCP-ParametersMRDC-v1610 ::= SEQUENCE {
    scg-DRB-NR-IAB-r16                  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,
    ...,
    [[
    dummy                               ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    maxNumberSearchSpaces               ENUMERATED {n10}                            OPTIONAL,
    rateMatchingCtrlResrcSetDynamic     ENUMERATED {supported}                      OPTIONAL,
    maxLayersMIMO-Indication            ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    spCellPlacement                             CarrierAggregationVariant           OPTIONAL
    ]],
    [[
    -- R1 9-1: Basic channel structure and procedure of 2-step RACH
    twoStepRACH-r16                             ENUMERATED {supported}              OPTIONAL,
    -- R1 11-1: Monitoring DCI format 1_2 and DCI format 0_2
    dci-Format1-2And0-2-r16                     ENUMERATED {supported}              OPTIONAL,
    -- R1 11-1a: Monitoring both DCI format 0_1/1_1 and DCI format 0_2/1_2 in the same search space
    monitoringDCI-SameSearchSpace-r16           ENUMERATED {supported}              OPTIONAL,
    -- R1 11-10: Type 2 configured grant release by DCI format 0_1
    type2-CG-ReleaseDCI-0-1-r16                 ENUMERATED {supported}              OPTIONAL,
    -- R1 11-11: Type 2 configured grant release by DCI format 0_2
    type2-CG-ReleaseDCI-0-2-r16                 ENUMERATED {supported}              OPTIONAL,
    -- R1 12-3: SPS release by DCI format 1_1
    sps-ReleaseDCI-1-1-r16                      ENUMERATED {supported}              OPTIONAL,
    -- R1 12-3a: SPS release by DCI format 1_2
    sps-ReleaseDCI-1-2-r16                      ENUMERATED {supported}              OPTIONAL,
    -- R1 14-8: CSI trigger states containing non-active BWP
    csi-TriggerStateNon-ActiveBWP-r16           ENUMERATED {supported}              OPTIONAL,
    -- R1 20-2: Support up to 4 SMTCs configured for an IAB node MT per frequency location, including IAB-specific SMTC window periodicities
    seperateSMTC-InterIAB-Support-r16           ENUMERATED {supported}              OPTIONAL,
    -- R1 20-3: Support RACH configuration separately from the RACH configuration for UE access, including new IAB-specific offset and scaling factors
    seperateRACH-IAB-Support-r16                ENUMERATED {supported}              OPTIONAL,
    -- R1 20-5a: Support semi-static configuration/indication of UL-Flexible-DL slot formats for IAB-MT resources
    ul-flexibleDL-SlotFormatSemiStatic-IAB-r16  ENUMERATED {supported}              OPTIONAL,
    -- R1 20-5b: Support dynamic indication of UL-Flexible-DL slot formats for IAB-MT resources
    ul-flexibleDL-SlotFormatDynamics-IAB-r16    ENUMERATED {supported}              OPTIONAL,
    dft-S-OFDM-WaveformUL-IAB-r16               ENUMERATED {supported}              OPTIONAL,
    -- R1 20-6: Support DCI Format 2_5 based indication of soft resource availability to an IAB node
    dci-25-AI-RNTI-Support-IAB-r16              ENUMERATED {supported}              OPTIONAL,
    -- R1 20-7: Support T_delta reception.
    t-DeltaReceptionSupport-IAB-r16             ENUMERATED {supported}              OPTIONAL,
    -- R1 20-8: Support of Desired guard symbol reporting and provided guard symbok reception.
    guardSymbolReportReception-IAB-r16          ENUMERATED {supported}              OPTIONAL,
    -- R1 18-8 HARQ-ACK codebook type and spatial bundling per PUCCH group
    harqACK-CB-SpatialBundlingPUCCH-Group-r16   ENUMERATED {supported}              OPTIONAL,
    -- R1 19-2: Cross Slot Scheduling
    crossSlotScheduling-r16                     SEQUENCE {
        licensedBand-r16                            ENUMERATED {supported}          OPTIONAL,
        unlicensedBand-r16                          ENUMERATED {supported}          OPTIONAL
    }                                                                               OPTIONAL,
    maxNumberSRS-PosPathLossEstimateAllServingCells-r16  ENUMERATED {n1, n4, n8, n16}         OPTIONAL,
    maxNumberSRS-PosSpatialRelationsAllServingCells-r16  ENUMERATED {n0, n1, n2, n4, n8, n16} OPTIONAL,
    extendedCG-Periodicities-r16                ENUMERATED {supported}              OPTIONAL,
    extendedSPS-Periodicities-r16               ENUMERATED {supported}              OPTIONAL,
    codebookVariantsList-r16                    CodebookVariantsList-r16            OPTIONAL
    ]]
}

Phy-ParametersXDD-Diff ::=          SEQUENCE {
    dynamicSFI                          ENUMERATED {supported}                      OPTIONAL,
    twoPUCCH-F0-2-ConsecSymbols         ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUSCH          ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUCCH          ENUMERATED {supported}                      OPTIONAL,
    ...,
    [[
    dl-SchedulingOffset-PDSCH-TypeA     ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeB     ENUMERATED {supported}                      OPTIONAL,
    ul-SchedulingOffset                 ENUMERATED {supported}                      OPTIONAL
    ]]
}

Phy-ParametersFRX-Diff ::=                  SEQUENCE {
    dynamicSFI                                  ENUMERATED {supported}                      OPTIONAL,
    dummy1                                      BIT STRING (SIZE (2))                       OPTIONAL,
    twoFL-DMRS                                  BIT STRING (SIZE (2))                       OPTIONAL,
    dummy2                                      BIT STRING (SIZE (2))                       OPTIONAL,
    dummy3                                      BIT STRING (SIZE (2))                       OPTIONAL,
    supportedDMRS-TypeDL                        ENUMERATED {type1, type1And2}               OPTIONAL,
    supportedDMRS-TypeUL                        ENUMERATED {type1, type1And2}               OPTIONAL,
    semiOpenLoopCSI                             ENUMERATED {supported}                      OPTIONAL,
    csi-ReportWithoutPMI                        ENUMERATED {supported}                      OPTIONAL,
    csi-ReportWithoutCQI                        ENUMERATED {supported}                      OPTIONAL,
    onePortsPTRS                                BIT STRING (SIZE (2))                       OPTIONAL,
    twoPUCCH-F0-2-ConsecSymbols                 ENUMERATED {supported}                      OPTIONAL,
    pucch-F2-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    pucch-F3-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    pucch-F4-WithFH                             ENUMERATED {supported}                      OPTIONAL,
    pucch-F0-2WithoutFH                         ENUMERATED {notSupported}                   OPTIONAL,
    pucch-F1-3-4WithoutFH                       ENUMERATED {notSupported}                   OPTIONAL,
    mux-SR-HARQ-ACK-CSI-PUCCH-MultiPerSlot      ENUMERATED {supported}                      OPTIONAL,
    uci-CodeBlockSegmentation                   ENUMERATED {supported}                      OPTIONAL,
    onePUCCH-LongAndShortFormat                 ENUMERATED {supported}                      OPTIONAL,
    twoPUCCH-AnyOthersInSlot                    ENUMERATED {supported}                      OPTIONAL,
    intraSlotFreqHopping-PUSCH                  ENUMERATED {supported}                      OPTIONAL,
    pusch-LBRM                                  ENUMERATED {supported}                      OPTIONAL,
    pdcch-BlindDetectionCA                      INTEGER (4..16)                             OPTIONAL,
    tpc-PUSCH-RNTI                              ENUMERATED {supported}                      OPTIONAL,
    tpc-PUCCH-RNTI                              ENUMERATED {supported}                      OPTIONAL,
    tpc-SRS-RNTI                                ENUMERATED {supported}                      OPTIONAL,
    absoluteTPC-Command                         ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUSCH                  ENUMERATED {supported}                      OPTIONAL,
    twoDifferentTPC-Loop-PUCCH                  ENUMERATED {supported}                      OPTIONAL,
    pusch-HalfPi-BPSK                           ENUMERATED {supported}                      OPTIONAL,
    pucch-F3-4-HalfPi-BPSK                      ENUMERATED {supported}                      OPTIONAL,
    almostContiguousCP-OFDM-UL                  ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-RS                                   ENUMERATED {supported}                      OPTIONAL,
    sp-CSI-IM                                   ENUMERATED {supported}                      OPTIONAL,
    tdd-MultiDL-UL-SwitchPerSlot                ENUMERATED {supported}                      OPTIONAL,
    multipleCORESET                             ENUMERATED {supported}                      OPTIONAL,
    ...,
    [[
    csi-RS-IM-ReceptionForFeedback              CSI-RS-IM-ReceptionForFeedback              OPTIONAL,
    csi-RS-ProcFrameworkForSRS                  CSI-RS-ProcFrameworkForSRS                  OPTIONAL,
    csi-ReportFramework                         CSI-ReportFramework                         OPTIONAL,
    mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot       SEQUENCE {
        sameSymbol                                  ENUMERATED {supported}                      OPTIONAL,
        diffSymbol                                  ENUMERATED {supported}                      OPTIONAL
    } OPTIONAL,
    mux-SR-HARQ-ACK-PUCCH                       ENUMERATED {supported}                      OPTIONAL,
    mux-MultipleGroupCtrlCH-Overlap             ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeA             ENUMERATED {supported}                      OPTIONAL,
    dl-SchedulingOffset-PDSCH-TypeB             ENUMERATED {supported}                      OPTIONAL,
    ul-SchedulingOffset                         ENUMERATED {supported}                      OPTIONAL,
    dl-64QAM-MCS-TableAlt                       ENUMERATED {supported}                      OPTIONAL,
    ul-64QAM-MCS-TableAlt                       ENUMERATED {supported}                      OPTIONAL,
    cqi-TableAlt                                ENUMERATED {supported}                      OPTIONAL,
    oneFL-DMRS-TwoAdditionalDMRS-UL             ENUMERATED {supported}                      OPTIONAL,
    twoFL-DMRS-TwoAdditionalDMRS-UL             ENUMERATED {supported}                      OPTIONAL,
    oneFL-DMRS-ThreeAdditionalDMRS-UL           ENUMERATED {supported}                      OPTIONAL
    ]],
    [[
    pdcch-BlindDetectionNRDC                SEQUENCE {
        pdcch-BlindDetectionMCG-UE              INTEGER (1..15),
        pdcch-BlindDetectionSCG-UE              INTEGER (1..15)
    }                                                                                       OPTIONAL,
    mux-HARQ-ACK-PUSCH-DiffSymbol               ENUMERATED {supported}                      OPTIONAL
    ]], 
    [[
    -- R1 11-1b: Type 1 HARQ-ACK codebook support for relative TDRA for DL
    type1-HARQ-ACK-Codebook-r16                 ENUMERATED {supported}                      OPTIONAL,
    -- R1 11-8: Enhanced UL power control scheme
    enhancedPowerControl-r16                    ENUMERATED {supported}                      OPTIONAL,
    -- R1 16-1b-1: TCI state activation across multiple CCs
    simultaneousTCI-ActMultipleCC-r16           ENUMERATED {supported}                      OPTIONAL,
    -- R1 16-1b-2: Spatial relation update across multiple CCs
    simultaneousSpatialRelationMultipleCC-r16   ENUMERATED {supported}                      OPTIONAL,
    -- R1 16-1c: Support of default spatial relation and pathloss reference RS for dedicated-PUCCH/SRS and PUSCH
    defaultSpatialRelationPathlossRS-r16        ENUMERATED {supported}                      OPTIONAL,
    -- R1 16-1d: Support of spatial relation update for AP-SRS via MAC CE
    spatialRelationUpdateAP-SRS-r16             ENUMERATED {supported}                      OPTIONAL,
    cli-RSSI-FDM-DL-r16                         ENUMERATED {supported}                      OPTIONAL,
    cli-SRS-RSRP-FDM-DL-r16                     ENUMERATED {supported}                      OPTIONAL,
    -- R1 19-3: Maximum MIMO Layer Adaptation
    maxLayersMIMO-Adaptation-r16                ENUMERATED {supported}                      OPTIONAL
    ]]

}

Phy-ParametersFR1 ::=                       SEQUENCE {
    pdcch-MonitoringSingleOccasion              ENUMERATED {supported}                      OPTIONAL,
    scs-60kHz                                   ENUMERATED {supported}                      OPTIONAL,
    pdsch-256QAM-FR1                            ENUMERATED {supported}                      OPTIONAL,
    pdsch-RE-MappingFR1-PerSymbol               ENUMERATED {n10, n20}                       OPTIONAL,
    ...,
    [[
    pdsch-RE-MappingFR1-PerSlot                 ENUMERATED {n16, n32, n48, n64, n80, n96, n112, n128,
                                                n144, n160, n176, n192, n208, n224, n240, n256}         OPTIONAL
    ]]
}

Phy-ParametersFR2 ::=                       SEQUENCE {
    dummy                                       ENUMERATED {supported}                                  OPTIONAL,
    pdsch-RE-MappingFR2-PerSymbol               ENUMERATED {n6, n20}                                    OPTIONAL,
    ...,
    [[
    pCell-FR2                                   ENUMERATED {supported}                                  OPTIONAL,
    pdsch-RE-MappingFR2-PerSlot                 ENUMERATED {n16, n32, n48, n64, n80, n96, n112, n128,
                                                    n144, n160, n176, n192, n208, n224, n240, n256}     OPTIONAL
    ]]
}

-- TAG-PHY-PARAMETERS-STOP
-- TAG-PHY-PARAMETERSMRDC-START

Phy-ParametersMRDC ::=              SEQUENCE {
    naics-Capability-List               SEQUENCE (SIZE (1..maxNrofNAICS-Entries)) OF NAICS-Capability-Entry         OPTIONAL,
    ...,
    [[
    spCellPlacement                     CarrierAggregationVariant                                                   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-POWSAV-PARAMETERS-START

PowSav-Parameters-r16 ::=         SEQUENCE {
    powSav-ParametersCommon-r16               PowSav-ParametersCommon-r16                                        OPTIONAL,
    powSav-ParametersFRX-Diff-r16             PowSav-ParametersFRX-Diff-r16                                      OPTIONAL,
    ...
}

PowSav-ParametersCommon-r16 ::=    SEQUENCE {
    drx-Preference-r16                        ENUMERATED {supported}                                             OPTIONAL,
    maxCC-Preference-r16                      ENUMERATED {supported}                                             OPTIONAL,
    releasePreference-r16                     ENUMERATED {supported}                                             OPTIONAL,
    -- R1 19-4a: UE assistance information
    minSchedulingOffsetPreference-r16         ENUMERATED {supported}                                             OPTIONAL,
    ...
}

PowSav-ParametersFRX-Diff-r16 ::=    SEQUENCE {
    maxBW-Preference-r16                      ENUMERATED {supported}                                             OPTIONAL,
    maxMIMO-LayerPreference-r16               ENUMERATED {supported}                                             OPTIONAL,
    ...
}

-- TAG-POWSAV-PARAMETERS-STOP
-- TAG-PROCESSINGPARAMETERS-START

ProcessingParameters ::=        SEQUENCE {
    fallback                        ENUMERATED {sc, cap1-only},
    differentTB-PerSlot              SEQUENCE {
        upto1                          NumberOfCarriers                    OPTIONAL,
        upto2                          NumberOfCarriers                    OPTIONAL,
        upto4                          NumberOfCarriers                    OPTIONAL,
        upto7                          NumberOfCarriers                    OPTIONAL
    }                                                                 OPTIONAL
}

NumberOfCarriers ::=    INTEGER (1..16)

-- TAG-PROCESSINGPARAMETERS-STOP
-- TAG-RAT-TYPE-START

RAT-Type ::= ENUMERATED {nr, eutra-nr, eutra, utra-fdd-v1610, ...}

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

RF-Parameters ::=                   SEQUENCE {
    supportedBandListNR                 SEQUENCE (SIZE (1..maxBands)) OF BandNR,
    supportedBandCombinationList        BandCombinationList                         OPTIONAL,
    appliedFreqBandListFilter           FreqBandList                                OPTIONAL,
    ...,
    [[
    supportedBandCombinationList-v1540  BandCombinationList-v1540                   OPTIONAL,
    srs-SwitchingTimeRequested          ENUMERATED {true}                           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1550  BandCombinationList-v1550                   OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1560  BandCombinationList-v1560                   OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1610  BandCombinationList-v1610                   OPTIONAL,
    supportedBandCombinationListSidelink-r16  BandCombinationListSidelink-r16       OPTIONAL,
    supportedBandCombinationList-UplinkTxSwitch-r16  BandCombinationList-UplinkTxSwitch-r16 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                       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                       CHOICE {
        fr1                                 SEQUENCE {
            scs-15kHz                           BIT STRING (SIZE (10))                      OPTIONAL,
            scs-30kHz                           BIT STRING (SIZE (10))                      OPTIONAL,
            scs-60kHz                           BIT STRING (SIZE (10))                      OPTIONAL
        },
        fr2                                 SEQUENCE {
            scs-60kHz                           BIT STRING (SIZE (3))                       OPTIONAL,
            scs-120kHz                          BIT STRING (SIZE (3))                       OPTIONAL
        }
    }                                                                                   OPTIONAL,
    ...,
    [[
    maxUplinkDutyCycle-PC2-FR1                  ENUMERATED {n60, n70, n80, n90, n100}   OPTIONAL
    ]],
    [[
    pucch-SpatialRelInfoMAC-CE          ENUMERATED {supported}                          OPTIONAL,
    powerBoosting-pi2BPSK               ENUMERATED {supported}                          OPTIONAL
    ]],
    [[
    maxUplinkDutyCycle-FR2          ENUMERATED {n15, n20, n25, n30, n40, n50, n60, n70, n80, n90, n100}     OPTIONAL
    ]],
    [[
    channelBWs-DL-v1590                 CHOICE {
        fr1                                 SEQUENCE {
            scs-15kHz                           BIT STRING (SIZE (16))              OPTIONAL,
            scs-30kHz                           BIT STRING (SIZE (16))              OPTIONAL,
            scs-60kHz                           BIT STRING (SIZE (16))              OPTIONAL
        },
        fr2                                 SEQUENCE {
            scs-60kHz                           BIT STRING (SIZE (8))               OPTIONAL,
            scs-120kHz                          BIT STRING (SIZE (8))               OPTIONAL
        }
    }                                                                               OPTIONAL,
    channelBWs-UL-v1590                 CHOICE {
        fr1                                 SEQUENCE {
            scs-15kHz                           BIT STRING (SIZE (16))              OPTIONAL,
            scs-30kHz                           BIT STRING (SIZE (16))              OPTIONAL,
            scs-60kHz                           BIT STRING (SIZE (16))              OPTIONAL
        },
        fr2                                 SEQUENCE {
            scs-60kHz                           BIT STRING (SIZE (8))               OPTIONAL,
            scs-120kHz                          BIT STRING (SIZE (8))               OPTIONAL
        }
    }                                                                               OPTIONAL
    ]],
    [[
    asymmetricBandwidthCombinationSet     BIT STRING (SIZE (1..32))           OPTIONAL
    ]],
    [[
    -- R1 10: NR-unlicensed
    unlicensedParametersPerBand-r16         UnlicensedParametersPerBand-r16         OPTIONAL,
    -- R1 11-7b: Independent cancellation of the overlapping PUSCHs in an intra-band UL CA
    cancelOverlappingPUSCH-r16              ENUMERATED {supported}                  OPTIONAL,
    -- R1 14-1: Multiple LTE-CRS rate matching patterns
    multipleRateMatchingEUTRA-CRS-r16       SEQUENCE {
        maxNumberPatterns-r16                   INTEGER (2..6),
        maxNumberNon-OverlapPatterns-r16    INTEGER (1..3)
    }                                                                               OPTIONAL,
    -- R1 14-1a: Two LTE-CRS overlapping rate matching patterns within a part of NR carrier using 15 kHz overlapping with a LTE carrier
    overlapRateMatchingEUTRA-CRS-r16        ENUMERATED {supported}                  OPTIONAL,
    -- R1 14-2: PDSCH Type B mapping of length 9 and 10 OFDM symbols
    pdsch-MappingTypeB-Alt-r16              ENUMERATED {supported}                  OPTIONAL,
    -- R1 14-3: One slot periodic TRS configuration for FR1
    oneShotPeriodicTRS-r16                  ENUMERATED {supported}                  OPTIONAL,
    olpc-SRS-Pos-r16                        OLPC-SRS-Pos-r16                        OPTIONAL,
    spatialRelationsSRS-Pos-r16             SpatialRelationsSRS-Pos-r16             OPTIONAL,
    simul-SRS-Trans-IntraBandCA-r16         INTEGER (1..2)                          OPTIONAL,
    channelBW-DL-IAB-r16                    CHOICE {
        fr1-100mhz                              SEQUENCE {
            scs-15kHz                               ENUMERATED {supported}          OPTIONAL,
            scs-30kHz                               ENUMERATED {supported}          OPTIONAL,
            scs-60kHz                               ENUMERATED {supported}          OPTIONAL
        },
        fr2-200mhz                          SEQUENCE {
            scs-60kHz                           ENUMERATED {supported}              OPTIONAL,
            scs-120kHz                          ENUMERATED {supported}              OPTIONAL
        }
    }                                                                               OPTIONAL,
    channelBW-UL-IAB-r16                    CHOICE {
        fr1-100mhz                              SEQUENCE {
            scs-15kHz                               ENUMERATED {supported}          OPTIONAL,
            scs-30kHz                               ENUMERATED {supported}          OPTIONAL,
            scs-60kHz                               ENUMERATED {supported}          OPTIONAL
        },
        fr2-200mhz                          SEQUENCE {
            scs-60kHz                           ENUMERATED {supported}              OPTIONAL,
            scs-120kHz                          ENUMERATED {supported}              OPTIONAL
        }
    }                                                                               OPTIONAL,
    rasterShift7dot5-IAB-r16                ENUMERATED {supported}                  OPTIONAL,
    ue-PowerClass-v1610                     ENUMERATED {pc1dot5}                    OPTIONAL
    ]]
}

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

RF-ParametersMRDC ::=                   SEQUENCE {
    supportedBandCombinationList            BandCombinationList                 OPTIONAL,
    appliedFreqBandListFilter               FreqBandList                        OPTIONAL,
    ...,
    [[
    srs-SwitchingTimeRequested              ENUMERATED {true}                   OPTIONAL,
    supportedBandCombinationList-v1540      BandCombinationList-v1540           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1550      BandCombinationList-v1550           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1560      BandCombinationList-v1560           OPTIONAL,
    supportedBandCombinationListNEDC-Only   BandCombinationList                 OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1570      BandCombinationList-v1570           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1580      BandCombinationList-v1580           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1590      BandCombinationList-v1590           OPTIONAL
    ]],
    [[
    supportedBandCombinationListNEDC-Only-v15a0    SEQUENCE {
        supportedBandCombinationList-v1540      BandCombinationList-v1540       OPTIONAL,
        supportedBandCombinationList-v1560      BandCombinationList-v1560       OPTIONAL,
        supportedBandCombinationList-v1570      BandCombinationList-v1570       OPTIONAL,
        supportedBandCombinationList-v1580      BandCombinationList-v1580       OPTIONAL,
        supportedBandCombinationList-v1590      BandCombinationList-v1590       OPTIONAL
    }                                                                           OPTIONAL
    ]],
    [[
    supportedBandCombinationList-v1610      BandCombinationList-v1610           OPTIONAL,
    supportedBandCombinationListNEDC-Only-v1610   BandCombinationList-v1610     OPTIONAL,
    supportedBandCombinationList-UplinkTxSwitch-r16 BandCombinationList-UplinkTxSwitch-r16 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,
    ...,
    [[
    extendedT-PollRetransmit-r16    ENUMERATED {supported}  OPTIONAL,
    extendedT-StatusProhibit-r16    ENUMERATED {supported}  OPTIONAL
    ]]
}

-- TAG-RLC-PARAMETERS-STOP
-- TAG-SDAP-PARAMETERS-START

SDAP-Parameters ::= SEQUENCE {
    as-ReflectiveQoS                 ENUMERATED {true}               OPTIONAL,
    ...,
    [[
    sdap-QOS-IAB-r16              ENUMERATED {supported}          OPTIONAL,
    sdapHeaderIAB-r16             ENUMERATED {supported}          OPTIONAL
    ]]

}

-- TAG-SDAP-PARAMETERS-STOP
-- TAG-SIDELINKPARAMETERS-START

SidelinkParameters-r16 ::=    SEQUENCE {
    sidelinkParametersNR-r16                  SidelinkParametersNR-r16                                                  OPTIONAL,
    sidelinkParametersEUTRA-r16               SidelinkParametersEUTRA-r16                                               OPTIONAL
}

SidelinkParametersNR-r16 ::= SEQUENCE {
    rlc-ParametersSidelink-r16                RLC-ParametersSidelink-r16                                                OPTIONAL,
    mac-ParametersSidelink-r16                MAC-ParametersSidelink-r16                                                OPTIONAL,
    fdd-Add-UE-Sidelink-Capabilities-r16      UE-SidelinkCapabilityAddXDD-Mode-r16                                      OPTIONAL,
    tdd-Add-UE-Sidelink-Capabilities-r16      UE-SidelinkCapabilityAddXDD-Mode-r16                                      OPTIONAL,
    ...
}

SidelinkParametersEUTRA-r16 ::= SEQUENCE {
    sl-ParametersEUTRA1-r16                   OCTET STRING                                                              OPTIONAL,
    sl-ParametersEUTRA2-r16                   OCTET STRING                                                              OPTIONAL,
    sl-ParametersEUTRA3-r16                   OCTET STRING                                                              OPTIONAL,
    supportedBandListSidelinkEUTRA-r16        SEQUENCE (SIZE (1..maxBandsEUTRA)) OF BandSidelinkEUTRA-r16               OPTIONAL,
    ...
}

RLC-ParametersSidelink-r16 ::= SEQUENCE {
    am-WithLongSN-Sidelink-r16                ENUMERATED {supported}                                                    OPTIONAL,
    um-WithLongSN-Sidelink-r16                ENUMERATED {supported}                                                    OPTIONAL,
    ...
}

MAC-ParametersSidelink-r16 ::= SEQUENCE {
    mac-ParametersSidelinkCommon-r16          MAC-ParametersSidelinkCommon-r16                                          OPTIONAL,
    mac-ParametersSidelinkXDD-Diff-r16        MAC-ParametersSidelinkXDD-Diff-r16                                        OPTIONAL,
    ...
}

UE-SidelinkCapabilityAddXDD-Mode-r16 ::=  SEQUENCE {
    mac-ParametersSidelinkXDD-Diff-r16        MAC-ParametersSidelinkXDD-Diff-r16                                        OPTIONAL
}

MAC-ParametersSidelinkCommon-r16 ::= SEQUENCE {
    lcp-RestrictionSidelink-r16               ENUMERATED {supported}                                                    OPTIONAL,
    multipleConfiguredGrantsSidelink-r16      ENUMERATED {supported}                                                    OPTIONAL,
    ...
}

MAC-ParametersSidelinkXDD-Diff-r16 ::=  SEQUENCE {
    multipleSR-ConfigurationsSidelink-r16     ENUMERATED {supported}                                                    OPTIONAL,
    logicalChannelSR-DelayTimerSidelink-r16   ENUMERATED {supported}                                                    OPTIONAL,
    ...
}

BandSidelinkEUTRA-r16 ::=               SEQUENCE {
    freqBandSidelinkEUTRA-r16               FreqBandIndicatorEUTRA,
    -- R1 15-7: Transmitting LTE sidelink mode 3 scheduled by NR Uu
    gnb-ScheduledMode3SidelinkEUTRA-r16     SEQUENCE {
        gnb-ScheduledMode3DelaySidelinkEUTRA-r16 ENUMERATED {ms0, ms0dot25, ms0dot5, ms0dot625, ms0dot75, ms1, 
                                                             ms1dot25, ms1dot5, ms1dot75, ms2, ms2dot5, ms3, ms4, 
                                                             ms5, ms6, ms8, ms10, ms20}
    }                                                                                                                   OPTIONAL,
    -- R1 15-9: Transmitting LTE sidelink mode 4 configured by NR Uu
    gnb-ScheduledMode4SidelinkEUTRA-r16     ENUMERATED {supported}                                                      OPTIONAL
}

-- TAG-SIDELINKPARAMETERS-STOP
-- TAG-SON-PARAMETERS-START

SON-Parameters-r16 ::= SEQUENCE {
    rach-Report-r16        ENUMERATED {supported}    OPTIONAL,
    ...
}

-- TAG-SON-PARAMETERS-STOP
-- TAG-SPATIALRELATIONSSRS-POS-START

SpatialRelationsSRS-Pos-r16 ::=                    SEQUENCE {
    spatialRelation-SRS-PosBasedOnSSB-Serving-r16      ENUMERATED {supported}                OPTIONAL,
    spatialRelation-SRS-PosBasedOnCSI-RS-Serving-r16   ENUMERATED {supported}                OPTIONAL,
    spatialRelation-SRS-PosBasedOnPRS-Serving-r16      ENUMERATED {supported}                OPTIONAL,
    spatialRelation-SRS-PosBasedOnSRS-r16              ENUMERATED {supported}                OPTIONAL,
    spatialRelation-SRS-PosBasedOnSSB-Neigh-r16        ENUMERATED {supported}                OPTIONAL,
    spatialRelation-SRS-PosBasedOnPRS-Neigh-r16        ENUMERATED {supported}                OPTIONAL
}

--TAG-SPATIALRELATIONSSRS-POS-STOP
-- TAG-SRS-SWITCHINGTIMENR-START

SRS-SwitchingTimeNR ::= SEQUENCE {
    switchingTimeDL         ENUMERATED {n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us}  OPTIONAL,
    switchingTimeUL         ENUMERATED {n0us, n30us, n100us, n140us, n200us, n300us, n500us, n900us}  OPTIONAL
}

-- TAG-SRS-SWITCHINGTIMENR-STOP
-- TAG-SRS-SWITCHINGTIMEEUTRA-START

SRS-SwitchingTimeEUTRA ::= SEQUENCE {
    switchingTimeDL            ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, n7}
                                                                                               OPTIONAL,
    switchingTimeUL            ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3, n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5, n7}
                                                                                               OPTIONAL
}
-- TAG-SRS-SWITCHINGTIMEEUTRA-STOP
-- 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-BASEDPERFMEAS-PARAMETERS-START

UE-BasedPerfMeas-Parameters-r16 ::= SEQUENCE {
    barometerMeasReport-r16      ENUMERATED {supported}        OPTIONAL,
    immMeasBT-r16                ENUMERATED {supported}        OPTIONAL,
    immMeasWLAN-r16              ENUMERATED {supported}        OPTIONAL,
    loggedMeasBT-r16             ENUMERATED {supported}        OPTIONAL,
    loggedMeasurements-r16       ENUMERATED {supported}        OPTIONAL,
    loggedMeasWLAN-r16           ENUMERATED {supported}        OPTIONAL,
    orientationMeasReport-r16    ENUMERATED {supported}        OPTIONAL,
    speedMeasReport-r16          ENUMERATED {supported}        OPTIONAL,
    gnss-Location-r16            ENUMERATED {supported}        OPTIONAL,
    ulPDCP-Delay-r16             ENUMERATED {supported}        OPTIONAL,
   ...
}

-- TAG-UE-BASEDPERFMEAS-PARAMETERS-STOP
-- TAG-UE-CAPABILITYRAT-CONTAINERLIST-START

UE-CapabilityRAT-ContainerList ::=    SEQUENCE (SIZE (0..maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container

UE-CapabilityRAT-Container ::=        SEQUENCE {
    rat-Type                              RAT-Type,
    ue-CapabilityRAT-Container            OCTET STRING
}

-- TAG-UE-CAPABILITYRAT-CONTAINERLIST-STOP
-- 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-CAPABILITYREQUESTFILTERCOMMON-START

UE-CapabilityRequestFilterCommon ::=            SEQUENCE {
    mrdc-Request                                SEQUENCE {
        omitEN-DC                                   ENUMERATED {true}                      OPTIONAL,    -- Need N
        includeNR-DC                                ENUMERATED {true}                      OPTIONAL,    -- Need N
        includeNE-DC                                ENUMERATED {true}                      OPTIONAL     -- Need N
    }                                                                                  OPTIONAL,        -- Need N
    ...,
    [[
    codebookTypeRequest-r16        SEQUENCE {
        type1-SinglePanel-r16          ENUMERATED {true}                                    OPTIONAL,    -- Need N
        type1-MultiPanel-r16           ENUMERATED {true}                                    OPTIONAL,    -- Need N
        type2-r16                      ENUMERATED {true}                                    OPTIONAL,    -- Need N
        type2-PortSelection-r16        ENUMERATED {true}                                    OPTIONAL     -- Need N
    }                                                                                   OPTIONAL,    -- Need N
    uplinkTxSwitchRequest-r16      ENUMERATED {true}                                    OPTIONAL     -- Need N
    ]]
}

-- TAG-UE-CAPABILITYREQUESTFILTERCOMMON-STOP
-- TAG-UE-CAPABILITYREQUESTFILTERNR-START

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

UE-CapabilityRequestFilterNR-v1540 ::=      SEQUENCE {
    srs-SwitchingTimeRequest                    ENUMERATED {true}                     OPTIONAL,  -- Need N
    nonCriticalExtension                        SEQUENCE {}                           OPTIONAL
}

-- TAG-UE-CAPABILITYREQUESTFILTERNR-STOP
-- TAG-UE-MRDC-CAPABILITY-START

UE-MRDC-Capability ::=              SEQUENCE {
    measAndMobParametersMRDC            MeasAndMobParametersMRDC                                                        OPTIONAL,
    phy-ParametersMRDC-v1530            Phy-ParametersMRDC                                                              OPTIONAL,
    rf-ParametersMRDC                   RF-ParametersMRDC,
    generalParametersMRDC               GeneralParametersMRDC-XDD-Diff                                                  OPTIONAL,
    fdd-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode                                                   OPTIONAL,
    tdd-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddXDD-Mode                                                   OPTIONAL,
    fr1-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode                                                   OPTIONAL,
    fr2-Add-UE-MRDC-Capabilities        UE-MRDC-CapabilityAddFRX-Mode                                                   OPTIONAL,
    featureSetCombinations              SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination         OPTIONAL,
    pdcp-ParametersMRDC-v1530           PDCP-ParametersMRDC                                                             OPTIONAL,
    lateNonCriticalExtension            OCTET STRING                                                                    OPTIONAL,
    nonCriticalExtension                UE-MRDC-Capability-v1560                                                        OPTIONAL
}

UE-MRDC-Capability-v1560 ::=        SEQUENCE {
    receivedFilters                     OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)                         OPTIONAL,
    measAndMobParametersMRDC-v1560      MeasAndMobParametersMRDC-v1560                                                  OPTIONAL,
    fdd-Add-UE-MRDC-Capabilities-v1560  UE-MRDC-CapabilityAddXDD-Mode-v1560                                             OPTIONAL,
    tdd-Add-UE-MRDC-Capabilities-v1560  UE-MRDC-CapabilityAddXDD-Mode-v1560                                             OPTIONAL,
    nonCriticalExtension                UE-MRDC-Capability-v1610                                                        OPTIONAL
}

UE-MRDC-Capability-v1610 ::=        SEQUENCE {
    measAndMobParametersMRDC-v1610      MeasAndMobParametersMRDC-v1610                                                  OPTIONAL,
    generalParametersMRDC-v1610         GeneralParametersMRDC-v1610                                                     OPTIONAL,
    pdcp-ParametersMRDC-v1610           PDCP-ParametersMRDC-v1610                                                       OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                                                     OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode ::=   SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff       MeasAndMobParametersMRDC-XDD-Diff                                           OPTIONAL,
    generalParametersMRDC-XDD-Diff          GeneralParametersMRDC-XDD-Diff                                              OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode-v1560 ::=    SEQUENCE {
    measAndMobParametersMRDC-XDD-Diff-v1560    MeasAndMobParametersMRDC-XDD-Diff-v1560                                  OPTIONAL
}

UE-MRDC-CapabilityAddFRX-Mode ::=   SEQUENCE {
    measAndMobParametersMRDC-FRX-Diff       MeasAndMobParametersMRDC-FRX-Diff
}


GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {
    splitSRB-WithOneUL-Path             ENUMERATED {supported}                                                          OPTIONAL,
    splitDRB-withUL-Both-MCG-SCG        ENUMERATED {supported}                                                          OPTIONAL,
    srb3                                ENUMERATED {supported}                                                          OPTIONAL,
    v2x-EUTRA                           ENUMERATED {supported}                                                          OPTIONAL,
    ...
}

GeneralParametersMRDC-v1610 ::= SEQUENCE {
    f1c-OverEUTRA-r16                   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-v1530                                                OPTIONAL
}

UE-NR-Capability-v1530 ::=               SEQUENCE {
    fdd-Add-UE-NR-Capabilities-v1530         UE-NR-CapabilityAddXDD-Mode-v1530                            OPTIONAL,
    tdd-Add-UE-NR-Capabilities-v1530         UE-NR-CapabilityAddXDD-Mode-v1530                            OPTIONAL,
    dummy                                    ENUMERATED {supported}                                       OPTIONAL,
    interRAT-Parameters                      InterRAT-Parameters                                          OPTIONAL,
    inactiveState                            ENUMERATED {supported}                                       OPTIONAL,
    delayBudgetReporting                     ENUMERATED {supported}                                       OPTIONAL,
    nonCriticalExtension                     UE-NR-Capability-v1540                                       OPTIONAL
}

UE-NR-Capability-v1540 ::=              SEQUENCE {
    sdap-Parameters                         SDAP-Parameters                                               OPTIONAL,
    overheatingInd                          ENUMERATED {supported}                                        OPTIONAL,
    ims-Parameters                          IMS-Parameters                                                OPTIONAL,
    fr1-Add-UE-NR-Capabilities-v1540        UE-NR-CapabilityAddFRX-Mode-v1540                             OPTIONAL,
    fr2-Add-UE-NR-Capabilities-v1540        UE-NR-CapabilityAddFRX-Mode-v1540                             OPTIONAL,
    fr1-fr2-Add-UE-NR-Capabilities          UE-NR-CapabilityAddFRX-Mode                                   OPTIONAL,
    nonCriticalExtension                    UE-NR-Capability-v1550                                        OPTIONAL
}

UE-NR-Capability-v1550 ::=               SEQUENCE {
    reducedCP-Latency                        ENUMERATED {supported}                                       OPTIONAL,
    nonCriticalExtension                     UE-NR-Capability-v1560                                       OPTIONAL
}

UE-NR-Capability-v1560 ::=               SEQUENCE {
    nrdc-Parameters                         NRDC-Parameters                                               OPTIONAL,
    receivedFilters                         OCTET STRING (CONTAINING UECapabilityEnquiry-v1560-IEs)       OPTIONAL,
    nonCriticalExtension                    UE-NR-Capability-v1570                                        OPTIONAL
}

UE-NR-Capability-v1570 ::=               SEQUENCE {
    nrdc-Parameters-v1570                   NRDC-Parameters-v1570                                         OPTIONAL,
    nonCriticalExtension                    UE-NR-Capability-v1610                                        OPTIONAL
}

UE-NR-Capability-v1610 ::=               SEQUENCE {
    inDeviceCoexInd-r16                     ENUMERATED {supported}                                        OPTIONAL,
    dl-DedicatedMessageSegmentation-r16     ENUMERATED {supported}                                        OPTIONAL,
    nrdc-Parameters-v1610                   NRDC-Parameters-v1610                                         OPTIONAL,
    powSav-Parameters-r16                   PowSav-Parameters-r16                                         OPTIONAL,
    fr1-Add-UE-NR-Capabilities-v1610        UE-NR-CapabilityAddFRX-Mode-v1610                             OPTIONAL,
    fr2-Add-UE-NR-Capabilities-v1610        UE-NR-CapabilityAddFRX-Mode-v1610                             OPTIONAL,
    bh-RLF-Indication-r16                   ENUMERATED {supported}                                        OPTIONAL,
    directSN-AdditionFirstRRC-IAB-r16       ENUMERATED {supported}                                        OPTIONAL,
    bap-Parameters-r16                      BAP-Parameters-r16                                            OPTIONAL,
    referenceTimeProvision-r16              ENUMERATED {supported}                                        OPTIONAL,
    sidelinkParameters-r16                  SidelinkParameters-r16                                        OPTIONAL,
    highSpeedParameters-r16                 HighSpeedParameters-r16                                       OPTIONAL,
    mac-Parameters-v1610                    MAC-Parameters-v1610                                          OPTIONAL,
    mcgRLF-RecoveryViaSCG-r16               ENUMERATED {supported}                                        OPTIONAL,
    resumeWithStoredMCG-SCells-r16          ENUMERATED {supported}                                        OPTIONAL,
    resumeWithStoredSCG-r16                 ENUMERATED {supported}                                        OPTIONAL,
    resumeWithSCG-Config-r16                ENUMERATED {supported}                                        OPTIONAL,
    ue-BasedPerfMeas-Parameters-r16         UE-BasedPerfMeas-Parameters-r16                               OPTIONAL,
    son-Parameters-r16                      SON-Parameters-r16                                            OPTIONAL,
    onDemandSIB-Connected-r16               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-v1530 ::=    SEQUENCE {
    eutra-ParametersXDD-Diff                 EUTRA-ParametersXDD-Diff
}

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

UE-NR-CapabilityAddFRX-Mode-v1540 ::=    SEQUENCE {
    ims-ParametersFRX-Diff                   IMS-ParametersFRX-Diff                                       OPTIONAL
}

UE-NR-CapabilityAddFRX-Mode-v1610 ::=    SEQUENCE {
    powSav-ParametersFRX-Diff-r16            PowSav-ParametersFRX-Diff-r16                                OPTIONAL,
    mac-ParametersFRX-Diff-r16               MAC-ParametersFRX-Diff-r16                                   OPTIONAL
}

BAP-Parameters-r16 ::=                   SEQUENCE {
    flowControlBH-RLC-ChannelBased-r16       ENUMERATED {supported}                                       OPTIONAL,
    flowControlRouting-ID-Based-r16          ENUMERATED {supported}                                       OPTIONAL
}

-- TAG-UE-NR-CAPABILITY-STOP
-- TAG-UNLICENSEDPARAMETERSPERBAND-START

UnlicensedParametersPerBand-r16 ::=           SEQUENCE {
    -- R1 10-2g: SSB-based BFD/CBD for dynamic channel access mode
    ssb-BFD-CBD-dynamicChannelAccess-r16                ENUMERATED {supported}            OPTIONAL,
    -- R1 10-2h: SSB-based BFD/CBD for semi-static channel access mode
    ssb-BFD-CBD-semi-staticChannelAccess-r16            ENUMERATED {supported}            OPTIONAL,
    -- R1 10-2i: CSI-RS-based BFD/CBD for NR-U
    csi-RS-BFD-CBD-r16                                  ENUMERATED {supported}            OPTIONAL,
    -- R1 10-10: RSSI and channel occupancy measurement and reporting
    rssi-ChannelOccupancyReporting-r16                  ENUMERATED {supported}            OPTIONAL,
    -- R1 10-11:SRS starting position at any OFDM symbol in a slot
    srs-StartAnyOFDM-Symbol-r16                         ENUMERATED {supported}            OPTIONAL,
    -- R1 10-20: Support search space set configuration with freqMonitorLocation-r16
    searchSpaceFreqMonitorLocation-r16                  INTEGER (1..5)                    OPTIONAL,
    -- R1 10-20a: Support coreset configuration with rb-Offset
    coreset-RB-Offset-r16                               ENUMERATED {supported}            OPTIONAL,
    -- R1 10-23:CGI reading on unlicensed cell for ANR functionality
    cgi-Acquisition-r16                                 ENUMERATED {supported}            OPTIONAL,
    -- R1 10-25: Enable configured UL transmissions when DCI 2_0 is configured but not detected
    configuredUL-Tx-r16                                  ENUMERATED {supported}            OPTIONAL,
    -- R1 10-8: Type B PDSCH length {3, 5, 6, 8, 9, 10, 11, 12, 13} without DMRS shift due to CRS collision
    typeB-PDSCH-length-r16                              ENUMERATED {supported}            OPTIONAL,
    -- R1 10-9: Search space set group switching with explicit DCI 2_0 bit field trigger or with implicit PDCCH decoding with DCI 2_0 monitoring
    searchSpaceSetGroupSwitchingwithDCI-r16             ENUMERATED {supported}            OPTIONAL,
    -- R1 10-9b: Search space set group switching with implicit PDCCH decoding without DCI 2_0 monitoring FFS:per band or per UE
    searchSpaceSetGroupSwitchingwithoutDCI-r16          ENUMERATED {supported}            OPTIONAL,
    -- R1 10-9d: Support Search space set group switching capability 2
    searchSpaceSetGroupSwitchingcapability2-r16         ENUMERATED {supported}            OPTIONAL,
    -- R1 10-14: Non-numerical PDSCH to HARQ-ACK timing
    non-numericalPDSCH-HARQ-timing-r16                  ENUMERATED {supported}            OPTIONAL,
    -- R1 10-15: Enhanced dynamic HARQ codebook
    enhancedDynamicHARQ-codebook-r16                    ENUMERATED {supported}            OPTIONAL,
    -- R1 10-16: One-shot HARQ ACK feedback
    oneShotHARQ-feedback-r16                            ENUMERATED {supported}            OPTIONAL,
    -- R1 10-17: Multi-PUSCH UL grant
    multiPUSCH-UL-grant-r16                             ENUMERATED {supported}            OPTIONAL,
    -- R1 10-26: CSI-RS based RLM for NR-U
    csi-RS-RLM-r16                                      ENUMERATED {supported}            OPTIONAL,
    -- R1 10-26a: CSI-RS based RRM for NR-U
    vcsi-RS-RRM-r16                                     ENUMERATED {supported}            OPTIONAL,
    -- R1 10-3: PRB interlace mapping for PUSCH
    pusch-PRB-interlace-r16                             ENUMERATED {supported}            OPTIONAL,
    -- R1 10-3a: PRB interlace mapping for PUCCH
    pucch-F0-F1-PRB-Interlace-r16                       ENUMERATED {supported}            OPTIONAL,
    -- R1 10-12: OCC for PRB interlace mapping for PF2 and PF3
    occ-PRB-PF2-PF3-r16                                 ENUMERATED {supported}            OPTIONAL,
    -- R1 10-13a: Extended CP range of more than one symbol for CG-PUSCH
    extCP-rangeCG-PUSCH-r16                             ENUMERATED {supported}            OPTIONAL,
    -- R1 10-18: Configured grant with retransmission in CG resources
    configuredGrantWithReTx-r16                         ENUMERATED {supported}            OPTIONAL,
    -- R1 10-24: CG-UCI multiplexing with HARQ ACK
    mux-CG-UCI-HARQ-ACK-r16                             ENUMERATED {supported}            OPTIONAL,
    -- R1 10-28: Configured grant with Rel-16 enhanced resource configuration
    cg-resourceConfig-r16                               ENUMERATED {supported}            OPTIONAL
}

-- TAG-UNLICENSEDPARAMETERSPERBAND-STOP
-- TAG-ABSOLUTETIMEINFO-START

AbsoluteTimeInfo-r16 ::= BIT STRING (SIZE (48))

-- TAG-ABSOLUTETIMEINFO-STOP
-- TAG-AREACONFIGURATION-START

AreaConfiguration-r16 ::=        SEQUENCE {
    areaConfig-r16                   AreaConfig-r16,
    interFreqTargetList-r16          SEQUENCE(SIZE (1..maxFreq)) OF InterFreqTargetInfo-r16              OPTIONAL  -- Need R
}

AreaConfig-r16 ::=     CHOICE {
    cellGlobalIdList-r16             CellGlobalIdList-r16,
    trackingAreaCodeList-r16         TrackingAreaCodeList-r16,
    trackingAreaIdentityList-r16     TrackingAreaIdentityList-r16
}

InterFreqTargetInfo-r16    ::=   SEQUENCE {
    dl-CarrierFreq	                ARFCN-ValueNR,
    cellList                         SEQUENCE (SIZE (1..32)) OF  PhysCellId  OPTIONAL
}

CellGlobalIdList-r16 ::=         SEQUENCE (SIZE (1..32)) OF CGI-Info-Logging-r16

TrackingAreaCodeList-r16 ::=     SEQUENCE (SIZE (1..8)) OF TrackingAreaCode

TrackingAreaIdentityList-r16 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaIdentity-r16

TrackingAreaIdentity-r16 ::=     SEQUENCE {
    plmn-Identity-r16                PLMN-Identity,
    trackingAreaCode-r16             TrackingAreaCode
}

-- TAG-AREACONFIGURATION-STOP
-- TAG-BTNAMELIST-START

BT-NameList-r16 ::=                SEQUENCE (SIZE (1..maxBT-Name-r16)) OF BT-Name-r16

BT-Name-r16 ::=                    OCTET STRING (SIZE (1..248))

-- TAG-BTNAMELIST-STOP
-- TAG-EUTRA-ALLOWEDMEASBANDWIDTH-START

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

-- TAG-EUTRA-ALLOWEDMEASBANDWIDTH-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-MULTIBANDINFOLIST-START

EUTRA-MultiBandInfoList ::=     SEQUENCE (SIZE (1..maxMultiBands)) OF EUTRA-MultiBandInfo

EUTRA-MultiBandInfo ::=         SEQUENCE {
    eutra-FreqBandIndicator         FreqBandIndicatorEUTRA,
    eutra-NS-PmaxList               EUTRA-NS-PmaxList                           OPTIONAL    -- Need R
}

-- TAG-EUTRA-MULTIBANDINFOLIST-STOP
-- TAG-EUTRA-NS-PMAXLIST-START

EUTRA-NS-PmaxList ::=               SEQUENCE (SIZE (1..maxEUTRA-NS-Pmax)) OF EUTRA-NS-PmaxValue

EUTRA-NS-PmaxValue ::=              SEQUENCE {
    additionalPmax                      INTEGER (-30..33)                       OPTIONAL,   -- Need R
    additionalSpectrumEmission          INTEGER (1..288)                        OPTIONAL    -- Need R
}

-- TAG-EUTRA-NS-PMAXLIST-STOP
-- TAG-EUTRA-PHYSCELLID-START

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

-- TAG-EUTRA-PHYSCELLID-STOP
-- TAG-EUTRA-PHYSCELLIDRANGE-START

EUTRA-PhysCellIdRange ::=       SEQUENCE {
    start                           EUTRA-PhysCellId,
    range                           ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n84, n96,
                                                n128, n168, n252, n504, spare2, spare1}                         OPTIONAL    -- Need N
}

-- TAG-EUTRA-PHYSCELLIDRANGE-STOP
-- TAG-EUTRA-PRESENCEANTENNAPORT1-START

EUTRA-PresenceAntennaPort1 ::=              BOOLEAN

-- TAG-EUTRA-PRESENCEANTENNAPORT1-STOP
-- TAG-EUTRA-Q-OFFSETRANGE-START

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

-- TAG-EUTRA-Q-OFFSETRANGE-STOP
-- TAG-IABIPADDRESS-START

IAB-IP-Address-r16 ::=  CHOICE {
    iPv4-Address-r16                BIT STRING (SIZE(32)),
    iPv6-Address-r16                BIT STRING (SIZE(128)),
    iPv6-Prefix-r16                 BIT STRING (SIZE(64)),
    ...
}

-- TAG-IABIPADDRESS-STOP
-- TAG-IABIPADDRESSINDEX-START

IAB-IP-AddressIndex-r16 ::= INTEGER (1..maxIAB-IP-Address-r16)

-- TAG-IABIPADDRESSINDEX-STOP
-- TAG-IAB-IP-USAGE-START

IAB-IP-Usage-r16 ::= ENUMERATED {f1-c, f1-U, non-F1, spare}

-- TAG-IAB-IP-USAGE-STOP
-- TAG-LOGGINGDURATION-START

LoggingDuration-r16 ::=   ENUMERATED {
                              min10, min20, min40, min60, min90, min120, spare2, spare1}

-- TAG-LOGGINGDURATION-STOP
-- TAG-LOGGINGINTERVAL-START

LoggingInterval-r16 ::=   ENUMERATED {
                              ms320, ms640, ms1280, ms2560, ms5120, ms10240, ms20480,
                              ms30720, ms40960, ms61440 , infinity}

-- TAG-LOGGINGINTERVAL-STOP
-- TAG-LOGMEASRESULTLISTBT-START

LogMeasResultListBT-r16 ::= SEQUENCE (SIZE (1..maxBT-IdReport-r16)) OF LogMeasResultBT-r16

LogMeasResultBT-r16 ::= SEQUENCE {
    bt-Addr-r16             BIT STRING (SIZE (48)),
    rssi-BT-r16             INTEGER (-128..127)        OPTIONAL,
    ...
}

-- TAG-LOGMEASRESULTLISTBT-STOP
-- TAG-LOGMEASRESULTLISTWLAN-START

LogMeasResultListWLAN-r16 ::=    SEQUENCE (SIZE (1..maxWLAN-Id-Report-r16)) OF LogMeasResultWLAN-r16

LogMeasResultWLAN-r16 ::=        SEQUENCE {
    wlan-Identifiers-r16             WLAN-Identifiers-r16,
    rssiWLAN-r16                     WLAN-RSSI-Range-r16          OPTIONAL,
    rtt-WLAN-r16                     WLAN-RTT-r16                 OPTIONAL,
    ...
}

WLAN-Identifiers-r16 ::=         SEQUENCE {
    ssid-r16                         OCTET STRING (SIZE (1..32))  OPTIONAL,
    bssid-r16                        OCTET STRING (SIZE (6))      OPTIONAL,
    hessid-r16                       OCTET STRING (SIZE (6))      OPTIONAL,
    ...
}

WLAN-RSSI-Range-r16 ::= INTEGER(0..141)

WLAN-RTT-r16 ::=                 SEQUENCE {
    rttValue-r16                     INTEGER (0..16777215),
    rttUnits-r16                     ENUMERATED {
                                         microseconds,
                                         hundredsofnanoseconds,
                                         tensofnanoseconds,
                                         nanoseconds,
                                         tenthsofnanoseconds,
... },
    rttAccuracy-r16                  INTEGER (0..255)             OPTIONAL,
    ...
}

-- TAG-OTHERCONFIG-START

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

OtherConfig-v1540 ::=           SEQUENCE {
    overheatingAssistanceConfig     SetupRelease {OverheatingAssistanceConfig}                            OPTIONAL, -- Need M
    ...
}
CandidateServingFreqListNR-r16 ::= SEQUENCE (SIZE (1..maxFreqIDC-r16)) OF ARFCN-ValueNR

OtherConfig-v1610 ::=                   SEQUENCE {
    idc-AssistanceConfig-r16                SetupRelease {IDC-AssistanceConfig-r16}                       OPTIONAL, -- Need M
    drx-PreferenceConfig-r16                SetupRelease {DRX-PreferenceConfig-r16}                       OPTIONAL, -- Need M
    maxBW-PreferenceConfig-r16              SetupRelease {MaxBW-PreferenceConfig-r16}                     OPTIONAL, -- Need M
    maxCC-PreferenceConfig-r16              SetupRelease {MaxCC-PreferenceConfig-r16}                     OPTIONAL, -- Need M
    maxMIMO-LayerPreferenceConfig-r16       SetupRelease {MaxMIMO-LayerPreferenceConfig-r16}              OPTIONAL, -- Need M
    minSchedulingOffsetPreferenceConfig-r16 SetupRelease {MinSchedulingOffsetPreferenceConfig-r16}        OPTIONAL, -- Need M
    releasePreferenceConfig-r16             SetupRelease {ReleasePreferenceConfig-r16}                    OPTIONAL, -- Need M
    referenceTimePreferenceReporting-r16    ENUMERATED {true}                                             OPTIONAL,  -- Need R
    btNameList-r16                          SetupRelease {BT-NameList-r16}                                OPTIONAL, -- Need M
    wlanNameList-r16                        SetupRelease {WLAN-NameList-r16}                              OPTIONAL, -- Need M
    sensorNameList-r16                      SetupRelease {Sensor-NameList-r16}                            OPTIONAL, -- Need M
    obtainCommonLocation-r16                ENUMERATED {true}                                             OPTIONAL,  -- Need R
    sl-AssistanceConfigNR-r16               ENUMERATED{true}                                              OPTIONAL -- Need R
}

OverheatingAssistanceConfig ::= SEQUENCE {
    overheatingIndicationProhibitTimer    ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30,
                                          s60, s90, s120, s300, s600, spare3, spare2, spare1}
}

IDC-AssistanceConfig-r16 ::=    SEQUENCE {
    candidateServingFreqListNR-r16  CandidateServingFreqListNR-r16                     OPTIONAL, -- Need R
    ...
}

DRX-PreferenceConfig-r16 ::=          SEQUENCE {
    drx-PreferenceProhibitTimer-r16       ENUMERATED {
                                              s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                              s8, s9, s10, s20, s30, spare2, spare1}
}

MaxBW-PreferenceConfig-r16 ::=        SEQUENCE {
    maxBW-PreferenceProhibitTimer-r16     ENUMERATED {
                                              s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                              s8, s9, s10, s20, s30, spare2, spare1}
}

MaxCC-PreferenceConfig-r16 ::=        SEQUENCE {
    maxCC-PreferenceProhibitTimer-r16     ENUMERATED {
                                              s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                              s8, s9, s10, s20, s30, spare2, spare1}
}

MaxMIMO-LayerPreferenceConfig-r16 ::= SEQUENCE {
    maxMIMO-LayerPreferenceProhibitTimer-r16 ENUMERATED {
                                                 s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                                 s8, s9, s10, s20, s30, spare2, spare1}
}

MinSchedulingOffsetPreferenceConfig-r16 ::=   SEQUENCE {
    minSchedulingOffsetPreferenceProhibitTimer-r16 ENUMERATED {
                                                       s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                                       s8, s9, s10, s20, s30, spare2, spare1}
}

ReleasePreferenceConfig-r16 ::=       SEQUENCE {
    releasePreferenceProhibitTimer-r16    ENUMERATED {
                                              s0, s0dot5, s1, s2, s3, s4, s5, s6, s7,
                                              s8, s9, s10, s20, s30, infinity, spare1},
    connectedReporting                    ENUMERATED {true}                                               OPTIONAL  -- Need R
}

-- TAG-OTHERCONFIG-STOP
-- TAG-PHYSCELLIDUTRA-FDD-START

PhysCellIdUTRA-FDD-r16 ::=        INTEGER (0..511)

-- TAG-PHYSCELLIDUTRA-FDD-STOP
-- TAG-RRC-TRANSACTIONIDENTIFIER-START

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

-- TAG-RRC-TRANSACTIONIDENTIFIER-STOP
-- TAG-SENSORNAMELIST-START

Sensor-NameList-r16 ::= SEQUENCE { 
    measUncomBarPre-r16     ENUMERATED {true}            OPTIONAL,  -- Need R
    measUeSpeed             ENUMERATED {true}            OPTIONAL,  -- Need R
    measUeOrientation       ENUMERATED {true}            OPTIONAL   -- Need R
}

-- TAG-SENSORNAMELIST-STOP
-- TAG-TRACEREFERENCE-START

TraceReference-r16 ::= SEQUENCE {
    plmn-Identity-r16      PLMN-Identity,
    traceId-r16            OCTET STRING (SIZE (3))
}

-- TAG-TRACEREFERENCE-STOP
-- TAG-UEMeasurementsAvailable-START

UEMeasurementsAvailable-r16 ::=              SEQUENCE {
    logMeasAvailable-r16                         ENUMERATED {true}               OPTIONAL,
    logMeasAvailableBT-r16                       ENUMERATED {true}               OPTIONAL,
    logMeasAvailableWLAN-r16                     ENUMERATED {true}               OPTIONAL,
    connEstFailInfoAvailable-r16                 ENUMERATED {true}               OPTIONAL,
    rlf-InfoAvailable-r16                        ENUMERATED {true}               OPTIONAL,
    ...
}

-- TAG-UEMeasurementsAvailable-STOP
-- TAG-UTRA-FDD-Q-OFFSETRANGE-START

UTRA-FDD-Q-OffsetRange-r16 ::=              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-UTRA-FDD-Q-OFFSETRANGE-STOP
-- TAG-VISITEDCELLINFOLIST-START

VisitedCellInfoList-r16 ::= SEQUENCE (SIZE (1..maxCellHistory-r16)) OF VisitedCellInfo-r16

VisitedCellInfo-r16 ::=  SEQUENCE {
    visitedCellId-r16        CHOICE {
        nr-CellId-r16            CHOICE {
            cgi-Info                 CGI-Info-Logging-r16,
            pci-arfcn-r16            SEQUENCE {
                physCellId-r16           PhysCellId,
                carrierFreq-r16          ARFCN-ValueNR
            }
        },
        eutra-CellId-r16         CHOICE {
            cellGlobalId-r16         CGI-InfoEUTRA,
            pci-arfcn-r16                SEQUENCE {
                physCellId-r16               EUTRA-PhysCellId,
                carrierFreq-r16              ARFCN-ValueEUTRA
            }
        }
    }                                        OPTIONAL,
    timeSpent-r16            INTEGER (0..4095),
    ...
}

-- TAG-VISITEDCELLINFOLIST-STOP
-- TAG-WLANNAMELIST-START

WLAN-NameList-r16 ::= SEQUENCE (SIZE (1..maxWLAN-Name-r16)) OF WLAN-Name-r16

WLAN-Name-r16 ::= OCTET STRING (SIZE (1..32))

-- TAG-SL-BWP-CONFIG-START

SL-BWP-Config-r16 ::=                    SEQUENCE {
    sl-BWP-Id                                BWP-Id,
    sl-BWP-Generic-r16                       SL-BWP-Generic-r16                                   OPTIONAL,    -- Need M
    sl-BWP-PoolConfig-r16                    SL-BWP-PoolConfig-r16                                OPTIONAL,    -- Need M
    ...
}

SL-BWP-Generic-r16 ::=                   SEQUENCE {
    sl-BWP-r16                               BWP                                                                OPTIONAL,    -- Need M
    sl-LengthSymbols-r16                     ENUMERATED {sym7, sym8, sym9, sym10, sym11, sym12, sym13, sym14}   OPTIONAL,    -- Need M
    sl-StartSymbol-r16                       ENUMERATED {sym0, sym1, sym2, sym3, sym4, sym5, sym6, sym7}        OPTIONAL,    -- Need M
    sl-PSBCH-Config-r16                      SetupRelease {SL-PSBCH-Config-r16}                                 OPTIONAL,    -- Need M
    sl-TxDirectCurrentLocation-r16           INTEGER (0..3301)                                                  OPTIONAL,    -- Need M
    ...
}

-- TAG-SL-BWP-CONFIG-STOP
-- TAG-SL-BWP-CONFIGCOMMON-START

SL-BWP-ConfigCommon-r16 ::=              SEQUENCE {
    sl-BWP-Generic-r16                       SL-BWP-Generic-r16                                         OPTIONAL,    -- Need R
    sl-BWP-PoolConfigCommon-r16              SL-BWP-PoolConfigCommon-r16                                OPTIONAL,    -- Need R
    ...
}

-- TAG-SL-BWP-CONFIGCOMMON-STOP
-- TAG-SL-BWP-POOLCONFIG-START

SL-BWP-PoolConfig-r16 ::=        SEQUENCE {
    sl-RxPool-r16                    SEQUENCE (SIZE (1..maxNrofRXPool-r16)) OF SL-ResourcePool-r16        OPTIONAL,    -- Cond HO
    sl-TxPoolSelectedNormal-r16      SL-TxPoolDedicated-r16                                               OPTIONAL,    -- Need M
    sl-TxPoolScheduling-r16          SL-TxPoolDedicated-r16                                               OPTIONAL,    -- Need N
    sl-TxPoolExceptional-r16         SL-ResourcePoolConfig-r16                                            OPTIONAL     -- Need M
}

SL-TxPoolDedicated-r16 ::=       SEQUENCE {
    sl-PoolToReleaseList-r16         SEQUENCE (SIZE (1..maxNrofTXPool-r16)) OF SL-ResourcePoolID-r16      OPTIONAL,    -- Need N
    sl-PoolToAddModList-r16          SEQUENCE (SIZE (1..maxNrofTXPool-r16)) OF SL-ResourcePoolConfig-r16  OPTIONAL     -- Need N
}

SL-ResourcePoolConfig-r16 ::=    SEQUENCE {
    sl-ResourcePoolID-r16            SL-ResourcePoolID-r16,
    sl-ResourcePool-r16              SL-ResourcePool-r16                                                  OPTIONAL    -- Need M
}

SL-ResourcePoolID-r16 ::=        INTEGER (1..maxNrofPoolID-r16)

-- TAG-SL-BWP-POOLCONFIG-STOP
-- TAG-SL-BWP-POOLCONFIGCOMMON-START

SL-BWP-PoolConfigCommon-r16 ::=      SEQUENCE {
    sl-RxPool-r16                        SEQUENCE (SIZE (1..maxNrofRXPool-r16)) OF SL-ResourcePool-r16         OPTIONAL,    -- Need R
    sl-TxPoolSelectedNormal-r16          SEQUENCE (SIZE (1..maxNrofTXPool-r16)) OF SL-ResourcePoolConfig-r16   OPTIONAL,    -- Need R
    sl-TxPoolExceptional-r16             SL-ResourcePoolConfig-r16                                             OPTIONAL     -- Need R
}

-- TAG-SL-BWP-POOLCONFIGCOMMON-STOP
-- TAG-SL-CBR-PRIORITYTXCONFIGLIST-START

SL-CBR-PriorityTxConfigList-r16 ::= SEQUENCE (SIZE (1..8)) OF SL-PriorityTxConfigIndex-r16

SL-PriorityTxConfigIndex-r16 ::=    SEQUENCE {
    sl-PriorityThreshold-r16             INTEGER (1..8)                                                   OPTIONAL,    -- Need M
    sl-DefaultTxConfigIndex-r16          INTEGER (0..maxCBR-Level-1-r16)                                  OPTIONAL,    -- Need M
    sl-CBR-ConfigIndex-r16               INTEGER (0..maxCBR-Config-1-r16)                                 OPTIONAL,    -- Need M
    sl-Tx-ConfigIndexList-r16            SEQUENCE (SIZE (1.. maxCBR-Level-r16)) OF SL-TxConfigIndex-r16   OPTIONAL     -- Need M
} 

SL-TxConfigIndex-r16 ::=             INTEGER (0..maxTxConfig-1-r16)

-- TAG-SL-CBR-PRIORITYTXCONFIGLIST-STOP
-- TAG-SL-CBR-COMMONTXCONFIGLIST-START

SL-CBR-CommonTxConfigList-r16 ::=     SEQUENCE {
    sl-CBR-RangeConfigList-r16            SEQUENCE (SIZE (1..maxCBR-Config-r16)) OF SL-CBR-LevelsConfig-r16     OPTIONAL,   -- Need M
    sl-CBR-PSSCH-TxConfigList-r16         SEQUENCE (SIZE (1.. maxTxConfig-r16)) OF SL-CBR-PSSCH-TxConfig-r16    OPTIONAL    -- Need M
}

SL-CBR-LevelsConfig-r16 ::=           SEQUENCE (SIZE (1..maxCBR-Level-r16)) OF SL-CBR-r16

SL-CBR-PSSCH-TxConfig-r16 ::=         SEQUENCE {
    sl-CR-Limit-r16                       INTEGER(0..10000)                                                     OPTIONAL,   -- Need M
    sl-TxParameters-r16                   SL-PSSCH-TxParameters-r16                                             OPTIONAL    -- Need M
}

SL-CBR-r16 ::=                        INTEGER (0..100)

-- TAG-SL-CBR-COMMONTXCONFIGLIST-STOP
-- TAG-SL-CONFIGDEDICATEDNR-START

SL-ConfigDedicatedNR-r16 ::=         SEQUENCE {
    sl-PHY-MAC-RLC-Config-r16            SL-PHY-MAC-RLC-Config-r16                                              OPTIONAL,    -- Need M
    sl-RadioBearerToReleaseList-r16      SEQUENCE (SIZE (1..maxNrofSLRB-r16)) OF SLRB-Uu-ConfigIndex-r16        OPTIONAL,    -- Need N
    sl-RadioBearerToAddModList-r16       SEQUENCE (SIZE (1..maxNrofSLRB-r16)) OF SL-RadioBearerConfig-r16       OPTIONAL,    -- Need N
    sl-MeasConfigInfoToReleaseList-r16   SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-DestinationIndex-r16     OPTIONAL,    -- Need N
    sl-MeasConfigInfoToAddModList-r16    SEQUENCE (SIZE (1..maxNrofSL-Dest-r16)) OF SL-MeasConfigInfo-r16       OPTIONAL,    -- Need M
    t400-r16                             ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000} OPTIONAL,    -- Need M
    ...
}

SL-DestinationIndex-r16  ::=             INTEGER (0..maxNrofSL-Dest-1-r16)

SL-PHY-MAC-RLC-Config-r16::=         SEQUENCE {
    sl-ScheduledConfig-r16               SetupRelease { SL-ScheduledConfig-r16 }                                OPTIONAL,    -- Need M
    sl-UE-SelectedConfig-r16             SetupRelease { SL-UE-SelectedConfig-r16 }                              OPTIONAL,    -- Need M
    sl-FreqInfoToReleaseList-r16         SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-Freq-Id-r16               OPTIONAL,    -- Need N
    sl-FreqInfoToAddModList-r16          SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF SL-FreqConfig-r16            OPTIONAL,    -- Need N
    sl-RLC-BearerToReleaseList-r16       SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfigIndex-r16    OPTIONAL,    -- Need N
    sl-RLC-BearerToAddModList-r16        SEQUENCE (SIZE (1..maxSL-LCID-r16)) OF SL-RLC-BearerConfig-r16         OPTIONAL,    -- Need N
    sl-MaxNumConsecutiveDTX-r16          ENUMERATED {n1, n2, n3, n4, n6, n8, n16, n32}                          OPTIONAL,    -- Need M
    sl-CSI-Acquisition-r16               ENUMERATED {enabled}                                                   OPTIONAL,    -- Need R
    sl-CSI-SchedulingRequestId-r16       SetupRelease {SchedulingRequestId}                                     OPTIONAL,    -- Need M
    sl-SSB-PriorityNR-r16                INTEGER (1..8)                                                         OPTIONAL,    -- Need R
    networkControlledSyncTx-r16          ENUMERATED {on, off}                                                   OPTIONAL     -- Need M
}

-- TAG-SL-CONFIGDEDICATEDNR-STOP
-- TAG-SL-CONFIGUREDGRANTCONFIG-START

SL-ConfiguredGrantConfig-r16 ::=           SEQUENCE {
    sl-ConfigIndexCG-r16                       SL-ConfigIndexCG-r16,
    sl-PeriodCG-r16                            SL-PeriodCG-r16                                                       OPTIONAL, -- Need M
    sl-NrOfHARQ-Processes-r16                  INTEGER (1..16)                                                       OPTIONAL, -- Need M
    sl-HARQ-ProcID-offset-r16                  INTEGER (1..16)                                                       OPTIONAL, -- Need M
    sl-CG-MaxTransNumList-r16                  SL-CG-MaxTransNumList-r16                                             OPTIONAL, -- Need M
    rrc-ConfiguredSidelinkGrant                SEQUENCE {
        sl-TimeResourceCG-Type1-r16                INTEGER (0..496)                                                  OPTIONAL, -- Need M
        sl-StartSubchannelCG-Type1-r16             INTEGER (0..26)                                                   OPTIONAL, -- Need M
        sl-FreqResourceCG-Type1-r16                INTEGER (0..6929)                                                 OPTIONAL, -- Need M
        sl-TimeOffsetCG-Type1-r16                  INTEGER (0..7999)                                                 OPTIONAL, -- Need R
        sl-N1PUCCH-AN-r16                          PUCCH-ResourceId                                                  OPTIONAL, -- Need M
        sl-PSFCH-ToPUCCH-CG-Type1-r16              INTEGER (0..15)                                                   OPTIONAL  -- Need M
    }                                                                                                                OPTIONAL, -- Need M
    ...
}

SL-ConfigIndexCG-r16 ::=          INTEGER (1..maxNrofCG-SL-r16)

SL-CG-MaxTransNumList-r16 ::=     SEQUENCE (SIZE (1..8)) OF SL-CG-MaxTransNum-r16

SL-CG-MaxTransNum-r16 ::=                  SEQUENCE {
    sl-Priority-r16                            INTEGER (1..8),
    sl-MaxTransNum-r16                         INTEGER (1..32)
}

SL-PeriodCG-r16 ::=            CHOICE{
    sl-PeriodCG1-r16               ENUMERATED {ms0, ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000},
    sl-PeriodCG2-r16               INTEGER (1..99)
}

-- TAG-SL-CONFIGUREDGRANTCONFIG-STOP
-- TAG-SL-DESTINATIONIDENTITY-START

SL-DestinationIdentity-r16 ::=           BIT STRING (SIZE (24))

-- TAG-SL-DESTINATIONIDENTITY-STOP
-- TAG-SL-FREQCONFIG-START

SL-FreqConfig-r16 ::=              SEQUENCE {
    sl-Freq-Id-r16                     SL-Freq-Id-r16,
    sl-SCS-SpecificCarrierList-r16     SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    sl-AbsoluteFrequencyPointA-r16     ARFCN-ValueNR                                                   OPTIONAL,  -- Need M
    sl-AbsoluteFrequencySSB-r16        ARFCN-ValueNR                                                   OPTIONAL,  -- Need R
    frequencyShift7p5khzSL-r16         ENUMERATED {true}                                               OPTIONAL,  -- Cond V2X-SL-Shared
    valueN-r16                         INTEGER (-1..1),
    sl-BWP-ToReleaseList-r16           SEQUENCE (SIZE (1..maxNrofSL-BWPs-r16)) OF BWP-Id               OPTIONAL,  -- Need N
    sl-BWP-ToAddModList-r16            SEQUENCE (SIZE (1..maxNrofSL-BWPs-r16)) OF SL-BWP-Config-r16    OPTIONAL,  -- Need N
    sl-SyncConfigList-r16              SL-SyncConfigList-r16                                           OPTIONAL,  -- Need M
    sl-SyncPriority-r16                ENUMERATED {gnss, gnbEnb}                                       OPTIONAL   -- Need M
}

SL-Freq-Id-r16 ::=                     INTEGER (1.. maxNrofFreqSL-r16)

-- TAG-SL-FREQCONFIG-STOP
-- TAG-SL-FREQCONFIGCOMMON-START

SL-FreqConfigCommon-r16 ::=      SEQUENCE {
    sl-SCS-SpecificCarrierList-r16   SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    sl-AbsoluteFrequencyPointA-r16   ARFCN-ValueNR,
    sl-AbsoluteFrequencySSB-r16      ARFCN-ValueNR                                                       OPTIONAL, -- Need R
    frequencyShift7p5khzSL-r16       ENUMERATED {true}                                                   OPTIONAL, -- Cond V2X-SL-Shared
    valueN-r16                       INTEGER (-1..1), 
    sl-BWP-List-r16                  SEQUENCE (SIZE (1..maxNrofSL-BWPs-r16)) OF SL-BWP-ConfigCommon-r16  OPTIONAL, -- Need R
    sl-SyncPriority-r16              ENUMERATED {gnss, gnbEnb}                                           OPTIONAL, -- Need R
    sl-NbAsSync-r16                  BOOLEAN                                                             OPTIONAL, -- Need R
    sl-SyncConfigList-r16            SL-SyncConfigList-r16                                               OPTIONAL, -- Need R
    ...
}
-- TAG-SL-FREQCONFIGCOMMON-STOP
-- TAG-SL-LOGICALCHANNELCONFIG-START

SL-LogicalChannelConfig-r16 ::=            SEQUENCE {
    sl-Priority-r16                            INTEGER (1..8),
    sl-PrioritisedBitRate-r16                  ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512,
                                               kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity},
    sl-BucketSizeDuration-r16                  ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000,
                                               spare7, spare6, spare5, spare4, spare3,spare2, spare1},
    sl-ConfiguredGrantType1Allowed-r16         ENUMERATED {true}                                                        OPTIONAL,   -- Need R
    sl-HARQ-FeedbackEnabled-r16                ENUMERATED {enabled, disabled }                                          OPTIONAL,   -- Need R
    sl-AllowedCG-List-r16                      SEQUENCE (SIZE (0.. maxNrofCG-SL-r16-1)) OF SL-ConfigIndexCG-r16
                                                                                                                        OPTIONAL,   -- Need R
    sl-AllowedSCS-List-r16                     SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing                        OPTIONAL,   -- Need R
    sl-MaxPUSCH-Duration-r16                   ENUMERATED {ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1}
                                                                                                                        OPTIONAL,   -- Need R
    sl-LogicalChannelGroup-r16                 INTEGER (0..maxLCG-ID)                                                   OPTIONAL,   -- Need R
    sl-SchedulingRequestId-r16                 SchedulingRequestId                                                      OPTIONAL,   -- Need R
    sl-LogicalChannelSR-DelayTimerApplied-r16  BOOLEAN                                                                  OPTIONAL,   -- Need R
    ...
}
-- TAG-SL-LOGICALCHANNELCONFIG-STOP
-- TAG-SL-MEASCONFIGCOMMON-START

SL-MeasConfigCommon-r16 ::=          SEQUENCE {
    sl-MeasObjectListCommon-r16          SL-MeasObjectList-r16                                           OPTIONAL,   -- Need R
    sl-ReportConfigListCommon-r16        SL-ReportConfigList-r16                                         OPTIONAL,   -- Need R
    sl-MeasIdListCommon-r16              SL-MeasIdList-r16                                               OPTIONAL,   -- Need R
    sl-QuantityConfigCommon-r16          SL-QuantityConfig-r16                                           OPTIONAL,   -- Need R
    ...
}

-- TAG-SL-MEASCONFIGCOMMON-STOP
-- TAG-SL-MEASCONFIGINFO-START

SL-MeasConfigInfo-r16 ::=           SEQUENCE {
    sl-DestinationIndex-r16             SL-DestinationIndex-r16,
    sl-MeasConfig-r16                   SL-MeasConfig-r16,
    ...
}

SL-MeasConfig-r16 ::=               SEQUENCE {
    sl-MeasObjectToRemoveList-r16       SL-MeasObjectToRemoveList-r16                                           OPTIONAL,   -- Need N
    sl-MeasObjectToAddModList-r16       SL-MeasObjectList-r16                                                   OPTIONAL,   -- Need N
    sl-ReportConfigToRemoveList-r16     SL-ReportConfigToRemoveList-r16                                         OPTIONAL,   -- Need N
    sl-ReportConfigToAddModList-r16     SL-ReportConfigList-r16                                                 OPTIONAL,   -- Need N
    sl-MeasIdToRemoveList-r16           SL-MeasIdToRemoveList-r16                                               OPTIONAL,   -- Need N
    sl-MeasIdToAddModList-r16           SL-MeasIdList-r16                                                       OPTIONAL,   -- Need N
    sl-QuantityConfig-r16               SL-QuantityConfig-r16                                                   OPTIONAL,   -- Need M
    ...
}

SL-MeasObjectToRemoveList-r16 ::=   SEQUENCE (SIZE (1..maxNrofSL-ObjectId-r16)) OF SL-MeasObjectId-r16

SL-ReportConfigToRemoveList-r16 ::= SEQUENCE (SIZE (1..maxNrofSL-ReportConfigId-r16)) OF SL-ReportConfigId-r16

SL-MeasIdToRemoveList-r16 ::=       SEQUENCE (SIZE (1..maxNrofSL-MeasId-r16)) OF SL-MeasId-r16

-- TAG-SL-MEASCONFIGINFO-STOP
-- TAG-SL-MEASIDLIST-START

SL-MeasIdList-r16 ::=               SEQUENCE (SIZE (1..maxNrofSL-MeasId-r16)) OF SL-MeasIdInfo-r16

SL-MeasIdInfo-r16 ::=               SEQUENCE {
    sl-MeasId-r16                       SL-MeasId-r16,
    sl-MeasObjectId-r16                 SL-MeasObjectId-r16,
    sl-ReportConfigId-r16               SL-ReportConfigId-r16,
    ...
}

SL-MeasId-r16 ::=                   INTEGER (1..maxNrofSL-MeasId-r16)

-- TAG-SL-MEASIDLIST-STOP
-- TAG-SL-MEASOBJECTLIST-START

SL-MeasObjectList-r16 ::=               SEQUENCE (SIZE (1..maxNrofSL-ObjectId-r16)) OF SL-MeasObjectInfo-r16

SL-MeasObjectInfo-r16 ::=               SEQUENCE {
    sl-MeasObjectId-r16                     SL-MeasObjectId-r16,
    sl-MeasObject-r16                       SL-MeasObject-r16,
    ...
}

SL-MeasObjectId-r16 ::=                 INTEGER (1..maxNrofSL-ObjectId-r16)

SL-MeasObject-r16 ::=                   SEQUENCE {
    frequencyInfoSL-r16                     ARFCN-ValueNR,
    ...
}

-- TAG-SL-MEASOBJECTLIST-STOP
-- TAG-SL-PDCP-CONFIG-START

SL-PDCP-Config-r16 ::=       SEQUENCE {
    sl-DiscardTimer-r16          ENUMERATED {ms3, ms10, ms20, ms25, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200,
                                 ms250, ms300, ms500, ms750, ms1500, infinity}                                           OPTIONAL, -- Cond Setup
    sl-PDCP-SN-Size-r16          ENUMERATED {len12bits, len18bits}                                                       OPTIONAL, -- Cond Setup2
    sl-OutOfOrderDelivery         ENUMERATED { true }                                                                    OPTIONAL,    -- Need R
    ...
}

-- TAG-SL-PDCP-CONFIG-STOP
-- TAG-SL-PSBCH-CONFIG-START

SL-PSBCH-Config-r16 ::= SEQUENCE {
    dl-P0-PSBCH-r16         INTEGER (-16..15)                                                                   OPTIONAL,    -- Need M
    dl-Alpha-PSBCH-r16      ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}   OPTIONAL,    -- Need M
    ...
}

-- TAG-SL-PSBCH-CONFIG-STOP
-- TAG-SL-PSSCH-TXCONFIGLIST-START

SL-PSSCH-TxConfigList-r16 ::=    SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r16)) OF SL-PSSCH-TxConfig-r16

SL-PSSCH-TxConfig-r16 ::=        SEQUENCE {
    sl-TypeTxSync-r16                SL-TypeTxSync-r16                                   OPTIONAL,    -- Need R
    sl-ThresUE-Speed-r16             ENUMERATED {kmph60, kmph80, kmph100, kmph120,
                                                kmph140, kmph160, kmph180, kmph200},
    sl-ParametersAboveThres-r16      SL-PSSCH-TxParameters-r16,
    sl-ParametersBelowThres-r16      SL-PSSCH-TxParameters-r16,
    ...
}


SL-PSSCH-TxParameters-r16 ::=    SEQUENCE {
    sl-MinMCS-PSSCH-r16              INTEGER (0..27),
    sl-MaxMCS-PSSCH-r16              INTEGER (0..31),
    sl-MinSubChannelNumPSSCH-r16     INTEGER (1..27),
    sl-MaxSubchannelNumPSSCH-r16     INTEGER (1..27),
    sl-MaxTxTransNumPSSCH-r16        INTEGER (1..32),
    sl-MaxTxPower-r16                SL-TxPower-r16                                      OPTIONAL    -- Cond CBR
}

-- TAG-SL-PSSCH-TXCONFIGLIST-STOP
-- TAG-SL-QOS-FLOWIDENTITY-START

SL-QoS-FlowIdentity-r16 ::=                    INTEGER (1..maxNrofSL-QFIs-r16)

-- TAG-SL-QOS-FLOWIDENTITY-STOP
-- TAG-SL-QOS-PROFILE-START

SL-QoS-Profile-r16 ::=        SEQUENCE {
    sl-PQI-r16                    SL-PQI-r16                                                  OPTIONAL,   -- Need R
    sl-GFBR-r16                   INTEGER (0..4000000000)                                     OPTIONAL,   -- Need R
    sl-MFBR-r16                   INTEGER (0..4000000000)                                     OPTIONAL,   -- Need R
    sl-Range-r16                  INTEGER (1..1000)                                           OPTIONAL,   -- Need R
    ...
}

SL-PQI-r16 ::=                CHOICE {
    sl-StandardizedPQI-r16        INTEGER (0..255),
    sl-Non-StandardizedPQI-r16    SEQUENCE {
        sl-ResourceType-r16           ENUMERATED {gbr, non-GBR, delayCriticalGBR, spare1}     OPTIONAL,   -- Need R
        sl-PriorityLevel-r16          INTEGER (1..8)                                          OPTIONAL,   -- Need R
        sl-PacketDelayBudget-r16      INTEGER (0..1023)                                       OPTIONAL,   -- Need R
        sl-PacketErrorRate-r16        INTEGER (0..9)                                          OPTIONAL,   -- Need R
        sl-AveragingWindow-r16        INTEGER (0..4095)                                       OPTIONAL,   -- Need R
        sl-MaxDataBurstVolume-r16     INTEGER (0..4095)                                       OPTIONAL,   -- Need R
    ...
   }
}

-- TAG-SL-QOS-PROFILE-STOP
-- TAG-SL-QUANTITYCONFIG-START

SL-QuantityConfig-r16 ::=               SEQUENCE {
    sl-FilterCoefficientDMRS-r16            FilterCoefficient                             DEFAULT fc4,
    ...
}

-- TAG-SL-QuantityConfig-STOP
-- TAG-SL-RADIOBEARERCONFIG-START

SL-RadioBearerConfig-r16 ::=     SEQUENCE {
    slrb-Uu-ConfigIndex-r16           SLRB-Uu-ConfigIndex-r16,
    sl-SDAP-Config-r16                SL-SDAP-Config-r16                                                 OPTIONAL,    -- Cond SLRBSetup
    sl-PDCP-Config-r16                SL-PDCP-Config-r16                                                 OPTIONAL,    -- Cond SLRBSetup
    sl-TransRange-r16                 ENUMERATED {m20, m50, m80, m100, m120, m150, m180, m200, m220, m250, m270, m300, m350, m370,
                                                 m400, m420, m450, m480, m500, m550, m600, m700, m1000, spare9, spare8, spare7, spare6,
                                                 spare5, spare4, spare3, spare2, spare1}                OPTIONAL,    -- Need R
    ...
}

-- TAG-SL-RADIOBEARERCONFIG-STOP
-- TAG-SL-REPORTCONFIGLIST-START

SL-ReportConfigList-r16 ::=           SEQUENCE (SIZE (1..maxNrofSL-ReportConfigId-r16)) OF SL-ReportConfigInfo-r16

SL-ReportConfigInfo-r16 ::=           SEQUENCE {
    sl-ReportConfigId-r16                     SL-ReportConfigId-r16,
    sl-ReportConfig-r16                       SL-ReportConfig-r16,
    ...
}

SL-ReportConfigId-r16 ::=             INTEGER (1..maxNrofSL-ReportConfigId-r16)

SL-ReportConfig-r16 ::=               SEQUENCE {
    sl-ReportType-r16                     CHOICE {
        sl-Periodical-r16                     SL-PeriodicalReportConfig-r16,
        sl-EventTriggered-r16                 SL-EventTriggerConfig-r16,
        ...
    },
    ...
}

SL-PeriodicalReportConfig-r16 ::=     SEQUENCE {
    sl-ReportInterval-r16                 ReportInterval,
    sl-ReportAmount-r16                   ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    sl-ReportQuantity-r16                 SL-MeasReportQuantity-r16,
    sl-RS-Type-r16                        SL-RS-Type-r16,
    ...
}

SL-EventTriggerConfig-r16 ::=        SEQUENCE {
    sl-EventId-r16                       CHOICE {
        eventS1-r16                          SEQUENCE {
            s1-Threshold-r16                     SL-MeasTriggerQuantity-r16,
            sl-ReportOnLeave-r16                 BOOLEAN,
            sl-Hysteresis-r16                    Hysteresis,
            sl-TimeToTrigger-r16                 TimeToTrigger,
            ...
        },
        eventS2-r16                          SEQUENCE {
            s2-Threshold-r16                     SL-MeasTriggerQuantity-r16,
            sl-ReportOnLeave-r16                 BOOLEAN,
            sl-Hysteresis-r16                    Hysteresis,
            sl-TimeToTrigger-r16                 TimeToTrigger,
            ...
        },
        ...
    },
    sl-ReportInterval-r16                ReportInterval,
    sl-ReportAmount-r16                      ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
    sl-ReportQuantity-r16                    SL-MeasReportQuantity-r16,
    sl-RS-Type-r16                           SL-RS-Type-r16,
    ...
}

SL-MeasReportQuantity-r16 ::=         CHOICE {
    sl-RSRP-r16                           RSRP-Range,
    ...
}

SL-MeasTriggerQuantity-r16 ::=        CHOICE {
    sl-RSRP-r16                           RSRP-Range,
    ...
}

SL-RS-Type-r16 ::=                    ENUMERATED {dmrs, spare3, spare2, spare1}

-- TAG-SL-REPORTCONFIGLIST-STOP
-- TAG-SL-RESOURCEPOOL-START

SL-ResourcePool-r16 ::=            SEQUENCE {
    sl-PSCCH-Config-r16                SetupRelease { SL-PSCCH-Config-r16 }                                  OPTIONAL,   -- Need M
    sl-PSSCH-Config-r16                SetupRelease { SL-PSSCH-Config-r16 }                                  OPTIONAL,   -- Need M
    sl-PSFCH-Config-r16                SetupRelease { SL-PSFCH-Config-r16 }                                  OPTIONAL,   -- Need M
    sl-SyncAllowed-r16                 SL-SyncAllowed-r16                                                    OPTIONAL,   -- Need M
    sl-SubchannelSize-r16              ENUMERATED {n10, n12, n15, n20, n25, n50, n75, n100}                  OPTIONAL,   -- Need M
    sl-TimeResource-r16                INTEGER (10..160)                                                     OPTIONAL,   -- Need M
    sl-StartRB-Subchannel-r16          INTEGER (0..265)                                                      OPTIONAL,   -- Need M
    sl-NumSubchannel-r16               INTEGER (1..27)                                                       OPTIONAL,   -- Need M
    sl-Additional-MCS-Table-r16        ENUMERATED {qam256, qam64LowSE, qam256-qam64LowSE }                   OPTIONAL,   -- Need M
    sl-ThreshS-RSSI-CBR-r16            INTEGER (0..45)                                                       OPTIONAL,   -- Need M
    sl-TimeWindowSizeCBR-r16           ENUMERATED {ms100, slot100}                                           OPTIONAL,   -- Need M
    sl-TimeWindowSizeCR-r16            ENUMERATED {ms1000, slot1000}                                         OPTIONAL,   -- Need M
    sl-PTRS-Config-r16                 SL-PTRS-Config-r16                                                    OPTIONAL,    -- Need M
    sl-UE-SelectedConfigRP-r16         SL-UE-SelectedConfigRP-r16                                            OPTIONAL,   -- Need M
    sl-RxParametersNcell-r16           SEQUENCE {
        sl-TDD-Configuration-r16           TDD-UL-DL-ConfigCommon                                            OPTIONAL,   -- Need M
        sl-SyncConfigIndex-r16             INTEGER (0..15)
    }                                                                                                        OPTIONAL,   -- Need M
    sl-ZoneConfigMCR-List-r16          SEQUENCE (SIZE (16)) OF SL-ZoneConfigMCR-r16                          OPTIONAL,   -- Need M
    sl-FilterCoefficient-r16           FilterCoefficient                                                     OPTIONAL,   -- Need M
    sl-RB-Number-r16                   INTEGER (10..275)                                                     OPTIONAL,   -- Need M
    sl-PreemptionEnable-r16            ENUMERATED {enabled, pl1, pl2, pl3, pl4, pl5, pl6, pl7, pl8}          OPTIONAL,   -- Need R
    sl-PriorityThreshold-UL-URLLC-r16  INTEGER (1..9)                                                        OPTIONAL,   -- Need M
    sl-PriorityThreshold-r16           INTEGER (1..9)                                                        OPTIONAL,   -- Need M
    sl-X-Overhead-r16                  ENUMERATED {n0,n3, n6, n9}                                            OPTIONAL,   -- Need M
    sl-PowerControl-r16                SL-PowerControl-r16                                                   OPTIONAL,   -- Need M
    sl-TxPercentageList-r16            SL-TxPercentageList-r16                                               OPTIONAL,   -- Need M
    sl-MinMaxMCS-List-r16              SL-MinMaxMCS-List-r16                                                 OPTIONAL,   -- Need M
...
}

SL-ZoneConfigMCR-r16 ::=               SEQUENCE {
    sl-ZoneConfigMCR-Index-r16             INTEGER (0..15),
    sl-TransRange-r16                      ENUMERATED {m20, m50, m80, m100, m120, m150, m180, m200, m220, m250, m270, m300, m350,
                                                       m370, m400, m420, m450, m480, m500, m550, m600, m700, m1000, spare8, spare7,
                                                       spare6, spare5, spare4, spare3, spare2, spare1}       OPTIONAL,   -- Need M
    sl-ZoneConfig-r16                      SL-ZoneConfig-r16                                                 OPTIONAL,   -- Need M
...
}

SL-SyncAllowed-r16 ::=                 SEQUENCE {
    gnss-Sync-r16                          ENUMERATED {true}                                                 OPTIONAL,   -- Need R
    gnbEnb-Sync-r16                        ENUMERATED {true}                                                 OPTIONAL,   -- Need R
    ue-Sync-r16                            ENUMERATED {true}                                                 OPTIONAL    -- Need R
}

SL-PSCCH-Config-r16 ::=                SEQUENCE {
    sl-TimeResourcePSCCH-r16               ENUMERATED {n2, n3}                                               OPTIONAL,   -- Need M
    sl-FreqResourcePSCCH-r16               ENUMERATED {n10,n12, n15, n20, n25}                               OPTIONAL,   -- Need M
    sl-DMRS-ScrambleID-r16                 INTEGER (0..65535)                                                OPTIONAL,   -- Need M
    sl-NumReservedBits-r16                 INTEGER (2..4)                                                    OPTIONAL,   -- Need M
   ...
}

SL-PSSCH-Config-r16 ::=                SEQUENCE {
    sl-PSSCH-DMRS-TimePatternList-r16      SEQUENCE (SIZE (1..3)) OF INTEGER (2..4)                          OPTIONAL,   -- Need M
    sl-BetaOffsets2ndSCI-r16               SEQUENCE (SIZE (4)) OF SL-BetaOffsets-r16                         OPTIONAL,   -- Need M
    sl-Scaling-r16                         ENUMERATED {f0p5, f0p65, f0p8, f1}                                OPTIONAL,   -- Need M
   ...
}

SL-PSFCH-Config-r16 ::=                SEQUENCE {
    sl-PSFCH-Period-r16                    ENUMERATED {sl0, sl1, sl2, sl4}                                   OPTIONAL,   -- Need M
    sl-PSFCH-RB-Set-r16                    BIT STRING (SIZE (10..275))                                       OPTIONAL,   -- Need M
    sl-NumMuxCS-Pair-r16                   ENUMERATED {n1, n2, n3, n6}                                       OPTIONAL,   -- Need M
    sl-MinTimeGapPSFCH-r16                 ENUMERATED {sl2, sl3}                                             OPTIONAL,   -- Need M
    sl-PSFCH-HopID-r16                     INTEGER (0..1023)                                                 OPTIONAL,   -- Need M
    sl-PSFCH-CandidateResourceType-r16     ENUMERATED {startSubCH, allocSubCH}                               OPTIONAL,   -- Need M
   ...
}
SL-PTRS-Config-r16 ::=                 SEQUENCE {
    sl-PTRS-FreqDensity-r16                SEQUENCE (SIZE (2)) OF INTEGER (1..276)                           OPTIONAL,   -- Need M
    sl-PTRS-TimeDensity-r16                SEQUENCE (SIZE (3)) OF INTEGER (0..29)                            OPTIONAL,   -- Need M
    sl-PTRS-RE-Offset-r16                  ENUMERATED {offset01, offset10, offset11}                         OPTIONAL,   -- Need M
    ...
}

SL-UE-SelectedConfigRP-r16 ::=         SEQUENCE {
    sl-CBR-PriorityTxConfigList-r16        SL-CBR-PriorityTxConfigList-r16                                  OPTIONAL,   -- Need M
    sl-ThresPSSCH-RSRP-List-r16            SL-ThresPSSCH-RSRP-List-r16                                       OPTIONAL,   -- Need M
    sl-MultiReserveResource-r16            ENUMERATED {enabled}                                              OPTIONAL,   -- Need M
    sl-MaxNumPerReserve-r16                ENUMERATED {n2, n3}                                               OPTIONAL,   -- Need M
    sl-SensingWindow-r16                   ENUMERATED {ms100, ms1100}                                        OPTIONAL,   -- Need M
    sl-SelectionWindowList-r16             SL-SelectionWindowList-r16                                        OPTIONAL,   -- Need M
    sl-ResourceReservePeriodList-r16       SEQUENCE (SIZE (1..16)) OF SL-ResourceReservePeriod-r16           OPTIONAL,   -- Need M
    sl-RS-ForSensing-r16                   ENUMERATED {pscch, pssch},
    ...
}

SL-ResourceReservePeriod-r16 ::=       CHOICE {
    sl-ResourceReservePeriod1-r16          ENUMERATED {ms0, ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000},
    sl-ResourceReservePeriod2-r16          INTEGER (1..99)
}

SL-SelectionWindowList-r16 ::=         SEQUENCE (SIZE (8)) OF SL-SelectionWindowConfig-r16

SL-SelectionWindowConfig-r16 ::=       SEQUENCE {
    sl-Priority-r16                        INTEGER (1..8),
    sl-SelectionWindow-r16                 ENUMERATED {n1, n5, n10, n20}
}

SL-TxPercentageList-r16 ::=            SEQUENCE (SIZE (8)) OF SL-TxPercentageConfig-r16

SL-TxPercentageConfig-r16 ::=          SEQUENCE {
    sl-Priority-r16                        INTEGER (1..8),
    sl-TxPercentage-r16                    ENUMERATED {p20, p35, p50}
}

SL-MinMaxMCS-List-r16 ::=              SEQUENCE (SIZE (1..3)) OF SL-MinMaxMCS-Config-r16

SL-MinMaxMCS-Config-r16 ::=            SEQUENCE {
    sl-MCS-Table-r16                       ENUMERATED {qam64, qam256, qam64LowSE},
    sl-MinMCS-PSSCH-r16                    INTEGER (0..27),
    sl-MaxMCS-PSSCH-r16                    INTEGER (0..31)
}

SL-BetaOffsets-r16 ::=                 INTEGER (0..31)

SL-PowerControl-r16 ::=    SEQUENCE {
    sl-MaxTransPower-r16       INTEGER (-30..33),
    sl-Alpha-PSSCH-PSCCH-r16   ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}  OPTIONAL,   -- Need M
    dl-Alpha-PSSCH-PSCCH-r16   ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}  OPTIONAL,   -- Need M
    sl-P0-PSSCH-PSCCH-r16      INTEGER (-16..15)                                                                  OPTIONAL,   -- Need M
    dl-P0-PSSCH-PSCCH-r16      INTEGER (-16..15)                                                                  OPTIONAL,   -- Need M
    dl-Alpha-PSFCH-r16         ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}  OPTIONAL,   -- Need M
    dl-P0-PSFCH-r16            INTEGER (-16..15)                                                                  OPTIONAL,   -- Need M
    ...
}

-- TAG-SL-RESOURCEPOOL-STOP
-- TAG-SL-RLC-BEARERCONFIG-START

SL-RLC-BearerConfig-r16 ::=                   SEQUENCE {
    sl-RLC-BearerConfigIndex-r16                  SL-RLC-BearerConfigIndex-r16,
    sl-ServedRadioBearer-r16                      SLRB-Uu-ConfigIndex-r16                          OPTIONAL,   -- Cond LCH-SetupOnly
    sl-RLC-Config-r16                             SL-RLC-Config-r16                                OPTIONAL,   -- Cond LCH-Setup
    sl-MAC-LogicalChannelConfig-r16               SL-LogicalChannelConfig-r16                      OPTIONAL,   -- Cond LCH-Setup
    ...
}

-- TAG-SL-RLC-BEARERCONFIG-STOP
-- TAG-SL-RLC-BEARERCONFIGINDEX-START

SL-RLC-BearerConfigIndex-r16 ::=                    INTEGER (1..maxSL-LCID-r16)

-- TAG-RLC-BEARERCONFIGINDEX-STOP
-- TAG-SL-RLC-CONFIG-START

SL-RLC-Config-r16 ::=                        CHOICE {
    sl-AM-RLC-r16                                SEQUENCE {
        sl-SN-FieldLengthAM-r16                      SN-FieldLengthAM                               OPTIONAL,   -- Cond SLRBSetup
        sl-T-PollRetransmit-r16                      T-PollRetransmit,
        sl-PollPDU-r16                                   PollPDU,
        sl-PollByte-r16                                  PollByte,
        sl-MaxRetxThreshold-r16                          ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 },
    ...
    },
    sl-UM-RLC-r16                                SEQUENCE {
        sl-SN-FieldLengthUM-r16                      SN-FieldLengthUM                               OPTIONAL,    -- Cond SLRBSetup
    ...
    },
    ...
}

-- TAG-SL-RLC-CONFIG-STOP
-- TAG-SL-SCHEDULEDCONFIG-START

SL-ScheduledConfig-r16 ::=                   SEQUENCE {
    sl-RNTI-r16                                  RNTI-Value,
    mac-MainConfigSL-r16                         MAC-MainConfigSL-r16                                     OPTIONAL,    -- Need M
    sl-Timing-Config-r16                         SL-TimingConfig-r16                                      OPTIONAL,    -- Need M
    sl-CS-RNTI-r16                               RNTI-Value                                               OPTIONAL,    -- Need M
    sl-PSFCH-ToPUCCH-r16                         SEQUENCE (SIZE (1..8)) OF INTEGER (0..15)                OPTIONAL,    -- Need M
    sl-ConfiguredGrantConfigList-r16             SL-ConfiguredGrantConfigList-r16                         OPTIONAL,    -- Need M
    ...
}

MAC-MainConfigSL-r16 ::=                     SEQUENCE {
    sl-BSR-Config-r16                            BSR-Config                                               OPTIONAL,    -- Need M
    ul-PrioritizationThres-r16                   INTEGER (1..16)                                          OPTIONAL,    -- Need M
    sl-PrioritizationThres-r16                   INTEGER (1..8)                                           OPTIONAL,    -- Need M
    ...

}

SL-TimingConfig-r16 ::=                      SEQUENCE {
    sl-DCI-ToSL-Trans-r16                        ENUMERATED{ffs}                                          OPTIONAL,    -- Need M
    ...
}

SL-ConfiguredGrantConfigList-r16 ::=       SEQUENCE {
    sl-ConfiguredGrantConfigToReleaseList-r16  SEQUENCE (SIZE (1..maxNrofCG-SL-r16)) OF SL-ConfigIndexCG-r16         OPTIONAL, -- Need N
    sl-ConfiguredGrantConfigToAddModList-r16   SEQUENCE (SIZE (1..maxNrofCG-SL-r16)) OF SL-ConfiguredGrantConfig-r16 OPTIONAL  -- Need N
}

-- TAG-SL-SCHEDULEDCONFIG-STOP
-- TAG-SL-SDAP-CONFIG-START

SL-SDAP-Config-r16 ::=                  SEQUENCE {
    sl-SDAP-Header-r16                      ENUMERATED {present, absent},
    sl-DefaultRB-r16                        BOOLEAN,
    sl-MappedQoS-Flows-r16                  CHOICE {
        sl-MappedQoS-FlowsList-r16              SEQUENCE (SIZE (1..maxNrofSL-QFIs-r16)) OF SL-QoS-Profile-r16,
        sl-MappedQoS-FlowsListDedicated-r16     SL-MappedQoS-FlowsListDedicated-r16
    }                                                                                                           OPTIONAL,   -- Need M
    sl-CastType-r16                            ENUMERATED {broadcast, groupcast, unicast, spare1}               OPTIONAL,   -- Need M
    ...
}

SL-MappedQoS-FlowsListDedicated-r16 ::= SEQUENCE {
    sl-MappedQoS-FlowsToAddList-r16         SEQUENCE (SIZE (1..maxNrofSL-QFIs-r16)) OF SL-QoS-FlowIdentity-r16  OPTIONAL,    -- Need N
    sl-MappedQoS-FlowsToReleaseList-16      SEQUENCE (SIZE (1..maxNrofSL-QFIs-r16)) OF SL-QoS-FlowIdentity-r16  OPTIONAL     -- Need N
}

-- TAG-SL-SDAP-CONFIG-STOP
-- TAG-SL-SYNCCONFIG-START

SL-SyncConfigList-r16 ::=          SEQUENCE (SIZE (1..maxSL-SyncConfig-r16)) OF SL-SyncConfig-r16

SL-SyncConfig-r16 ::=              SEQUENCE {
    sl-SyncRefMinHyst-r16              ENUMERATED {dB0, dB3, dB6, dB9, dB12}                                   OPTIONAL,    -- Need R
    sl-SyncRefDiffHyst-r16             ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf}                            OPTIONAL,    -- Need R
    sl-filterCoefficient-r16           FilterCoefficient                                                       OPTIONAL,    -- Need R
    sl-SSB-TimeAllocation1-r16         SL-SSB-TimeAllocation-r16                                               OPTIONAL,    -- Need R
    sl-SSB-TimeAllocation2-r16         SL-SSB-TimeAllocation-r16                                               OPTIONAL,    -- Need R
    sl-SSB-TimeAllocation3-r16         SL-SSB-TimeAllocation-r16                                               OPTIONAL,    -- Need R
    sl-SSID-r16                        INTEGER (0..671)                                                        OPTIONAL,    -- Need R
    txParameters-r16                   SEQUENCE {
        syncTxThreshIC-r16                 SL-RSRP-Range-r16                                                   OPTIONAL,    -- Need R
        syncTxThreshOoC-r16                SL-RSRP-Range-r16                                                   OPTIONAL,    -- Need R
        syncInfoReserved-r16               BIT STRING (SIZE (2))                                               OPTIONAL     -- Need R
    },
    gnss-Sync-r16                      ENUMERATED {true}                                                       OPTIONAL,    -- Need R
...
}

SL-RSRP-Range-r16 ::=                  INTEGER (0..13)

SL-SSB-TimeAllocation-r16 ::=          SEQUENCE {
    sl-NumSSB-WithinPeriod-r16         ENUMERATED {n1, n2, n4, n5, n16, n32, n64}                              OPTIONAL,    -- Need R
    sl-TimeOffsetSSB-r16               INTEGER (0..1279)                                                       OPTIONAL,    -- Need R
    sl-TimeInterval-r16                INTEGER (0..639)                                                        OPTIONAL     -- Need R
}

-- TAG-SL-SYNCCONFIG-STOP
-- TAG-SL-THRESPSSCH-RSRP-LIST-START

SL-ThresPSSCH-RSRP-List-r16 ::=    SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r16

SL-ThresPSSCH-RSRP-r16 ::=         INTEGER (0..66)

-- TAG-SL-THRESPSSCH-RSRP-LIST-STOP
-- TAG-SL-TXPOWER-START

SL-TxPower-r16 ::=                    CHOICE{
    minusinfinity-r16                     NULL,
    txPower-r16                           INTEGER (-30..33)
}

-- TAG-SL-TXPOWER-STOP
-- TAG-SL-TYPETXSYNC-START

SL-TypeTxSync-r16 ::=                     ENUMERATED {gnss, gnbEnb, ue}

-- TAG-SL-TYPETXSYNC-STOP
-- TAG-SL-UE-SELECTEDCONFIG-START

SL-UE-SelectedConfig-r16 ::=                 SEQUENCE {
    sl-PSSCH-TxConfigList-r16                    SL-PSSCH-TxConfigList-r16                                   OPTIONAL,    -- Need R
    sl-ProbResourceKeep-r16                      ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8}             OPTIONAL,    -- Need R
    sl-ReselectAfter-r16                         ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9}             OPTIONAL,    -- Need R
    sl-CBR-CommonTxConfigList-r16                SL-CBR-CommonTxConfigList-r16                               OPTIONAL,    -- Need R
    ul-PrioritizationThres-r16                   INTEGER (1..16)                                             OPTIONAL,    -- Need R
    sl-PrioritizationThres-r16                   INTEGER (1..8)                                              OPTIONAL,    -- Need R
    ...
}

-- TAG-SL-UE-SELECTEDCONFIG-STOP
-- TAG-SL-ZONECONFIG-START

SL-ZoneConfig-r16 ::=              SEQUENCE {
    sl-ZoneLength-r16                  ENUMERATED { m5, m10, m20, m30, m40, m50, spare2, spare1},
    ...
}

-- TAG-SL-ZONECONFIG-STOP
-- TAG-SLRB-UU-CONFIGINDEX-START

SLRB-Uu-ConfigIndex-r16 ::=                    INTEGER (1..maxNrofSLRB-r16)

-- TAG-SLRB-UU-CONFIGINDEX-STOP
-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START

maxAI-DCI-PayloadSize-r16               INTEGER ::= 128      --Maximum size of the DCI payload scrambled with ai-RNTI
maxAI-DCI-PayloadSize-r16-1             INTEGER ::= 127      --Maximum size of the DCI payload scrambled with ai-RNTI minus 1
maxBandComb                             INTEGER ::= 65536   -- Maximum number of DL band combinations
maxBandsUTRA-FDD-r16                    INTEGER ::= 64      -- Maximum number of bands listed in UTRA-FDD UE caps
maxBH-RLC-ChannelID-r16                 INTEGER ::= 65536   -- Maximum value of BH RLC Channel ID
maxBT-IdReport-r16                      INTEGER ::= 32      -- Maximum number of Bluetooth IDs to report
maxBT-Name-r16                          INTEGER ::= 4       -- Maximum number of Bluetooth name
maxCAG-Cell-r16                         INTEGER ::= 16      -- Maximum number of NR CAG cell ranges in SIB3, SIB4
maxCBR-Config-r16                       INTEGER ::= 8       -- Maximum number of CBR range configurations for sidelink communication
                                                            -- congestion control
maxCBR-Config-1-r16                     INTEGER ::= 7       -- Maximum number of CBR range configurations for sidelink communication 
                                                            -- congestion control minus 1
maxCBR-Level-r16                        INTEGER ::= 16      -- Maximum nuber of CBR levels
maxCBR-Level-1-r16                      INTEGER ::= 15      -- Maximum number of CBR levels minus 1
maxCellBlack                            INTEGER ::= 16      -- Maximum number of NR blacklisted cell ranges in SIB3, SIB4
maxCellHistory-r16                      INTEGER ::= 16      -- Maximum number of visited cells reported
maxCellInter                            INTEGER ::= 16      -- Maximum number of inter-Freq cells listed in SIB4
maxCellIntra                            INTEGER ::= 16      -- Maximum number of intra-Freq cells listed in SIB3
maxCellMeasEUTRA                        INTEGER ::= 32      -- Maximum number of cells in E-UTRAN
maxCellMeasIdle-r16                     INTEGER ::= 8       -- Maximum number of cells per carrier for idle/inactive measurements
maxCellMeasUTRA-FDD-r16                 INTEGER ::= 32      -- Maximum number of cells in FDD UTRAN
maxCellWhite                            INTEGER ::= 16      -- Maximum number of NR whitelisted cell ranges in SIB3, SIB4
maxEARFCN                               INTEGER ::= 262143  -- Maximum value of E-UTRA carrier frequency
maxEUTRA-CellBlack                      INTEGER ::= 16      -- Maximum number of E-UTRA blacklisted physical cell identity ranges
                                                            -- in SIB5
maxEUTRA-NS-Pmax                        INTEGER ::= 8       -- Maximum number of NS and P-Max values per band
maxLogMeasReport-r16                    INTEGER ::= 520     -- Maximum number of entries for logged measurements
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
maxFreqIdle-r16                         INTEGER ::= 8       -- Maximum number of carrier frequencies for idle/inactive measurements
maxNrofServingCells                     INTEGER ::= 32      -- Max number of serving cells (SpCells + SCells)
maxNrofServingCells-1                   INTEGER ::= 31      -- Max number of serving cells (SpCell + SCells) per cell group
maxNrofAggregatedCellsPerCellGroup      INTEGER ::= 16
maxNrofDUCells-r16                      INTEGER ::= 512     -- Max number of cells configured on the collocated IAB-DU
maxNrofAssociatedDUCellsPerMT-r16       INTEGER ::= 65535
maxNrofAvailabilityCombinationsPerSet-r16   INTEGER ::= 512 -- Max number of AvailabilityCombinationId used in the DCI format 2_5
maxNrofAvailabilityCombinationsPerSet-r16-1 INTEGER ::= 511 -- Max number of AvailabilityCombinationId used in the DCI format 2_5 minus 1
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
maxNrofCG-SL-r16                        INTEGER ::= 8       -- Max number of sidelink configured grant
maxNrofCG-SL-r16-1                      INTEGER ::= 7       -- Max number of sidelink configured grant minus 1
maxNrofSS-BlocksToAverage               INTEGER ::= 16      -- Max number for the (max) number of SS blocks to average to determine cell measurement
maxNrofCondCells-r16                    INTEGER ::= 8       -- Max number of conditional candidate SpCells
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
maxLC-ID-Iab-r16                        INTEGER ::= 65536   -- Maximum value of BH Logical Channel ID extension
maxLTE-CRS-Patterns-r16                 INTEGER ::= 3       -- Maximum number of additional LTE CRS rate matching patterns
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              INTEGER ::= 12      -- Max number of CoReSets configurable on a serving cell
maxNrofControlResourceSets-1            INTEGER ::= 11      -- Max number of CoReSets configurable on a serving cell minus 1
maxNrofControlResourceSets-1-r16        INTEGER ::= 15      -- Max number of CoReSets configurable on a serving cell extended in minus 1
maxNrofCoresetPools-r16                 INTEGER ::= 2       -- Maximum number of CORESET pools
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
maxIAB-IP-Address-r16                   INTEGER ::= 32      -- Max number of assigned IP addresses
maxINT-DCI-PayloadSize                  INTEGER ::= 126     -- Max number payload of a DCI scrambled with INT-RNTI
maxINT-DCI-PayloadSize-1                INTEGER ::= 125     -- Max number payload of a DCI scrambled with INT-RNTI minus 1
maxNrofRateMatchPatterns                INTEGER ::= 4       -- Max number of rate matching patterns that may be configured
maxNrofRateMatchPatterns-1              INTEGER ::= 3       -- Max number of rate matching patterns that may be configured minus 1
maxNrofRateMatchPatternsPerGroup        INTEGER ::= 8       -- Max number of rate matching patterns that may be configured in one group
maxNrofCSI-ReportConfigurations         INTEGER ::= 48      -- Maximum number of report configurations
maxNrofCSI-ReportConfigurations-1       INTEGER ::= 47      -- Maximum number of report configurations minus 1
maxNrofCSI-ResourceConfigurations       INTEGER ::= 112     -- Maximum number of resource configurations
maxNrofCSI-ResourceConfigurations-1     INTEGER ::= 111     -- Maximum number of resource configurations minus 1
maxNrofAP-CSI-RS-ResourcesPerSet        INTEGER ::= 16
maxNrOfCSI-AperiodicTriggers            INTEGER ::= 128     -- Maximum number of triggers for aperiodic CSI reporting
maxNrofReportConfigPerAperiodicTrigger  INTEGER ::= 16      -- Maximum number of report configurations per trigger state for aperiodic reporting
maxNrofNZP-CSI-RS-Resources             INTEGER ::= 192     -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources
maxNrofNZP-CSI-RS-Resources-1           INTEGER ::= 191     -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1
maxNrofNZP-CSI-RS-ResourcesPerSet       INTEGER ::= 64      -- Maximum number of NZP CSI-RS resources per resource set
maxNrofNZP-CSI-RS-ResourceSets          INTEGER ::= 64      -- Maximum number of NZP CSI-RS resources per cell
maxNrofNZP-CSI-RS-ResourceSets-1        INTEGER ::= 63      -- Maximum number of NZP CSI-RS resources per cell minus 1
maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16      -- Maximum number of resource sets per resource configuration
maxNrofNZP-CSI-RS-ResourcesPerConfig    INTEGER ::= 128     -- Maximum number of resources per resource configuration
maxNrofZP-CSI-RS-Resources              INTEGER ::= 32      -- Maximum number of Zero-Power (ZP) CSI-RS resources
maxNrofZP-CSI-RS-Resources-1            INTEGER ::= 31      -- Maximum number of Zero-Power (ZP) CSI-RS resources minus 1
maxNrofZP-CSI-RS-ResourceSets-1         INTEGER ::= 15
maxNrofZP-CSI-RS-ResourcesPerSet        INTEGER ::= 16
maxNrofZP-CSI-RS-ResourceSets           INTEGER ::= 16
maxNrofCSI-IM-Resources                 INTEGER ::= 32      -- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214.
maxNrofCSI-IM-Resources-1               INTEGER ::= 31      -- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax in 38.214.
maxNrofCSI-IM-ResourcesPerSet           INTEGER ::= 8       -- Maximum number of CSI-IM resources per set. See CSI-IM-ResourcePerSetMax in 38.214
maxNrofCSI-IM-ResourceSets              INTEGER ::= 64      -- Maximum number of NZP CSI-IM resources per cell
maxNrofCSI-IM-ResourceSets-1            INTEGER ::= 63      -- Maximum number of NZP CSI-IM resources per cell minus 1
maxNrofCSI-IM-ResourceSetsPerConfig     INTEGER ::= 16      -- Maximum number of CSI IM resource sets per resource configuration
maxNrofCSI-SSB-ResourcePerSet           INTEGER ::= 64      -- Maximum number of SSB resources in a resource set
maxNrofCSI-SSB-ResourceSets             INTEGER ::= 64      -- Maximum number of CSI SSB resource sets per cell
maxNrofCSI-SSB-ResourceSets-1           INTEGER ::= 63      -- Maximum number of CSI SSB resource sets per cell minus 1
maxNrofCSI-SSB-ResourceSetsPerConfig    INTEGER ::= 1       -- Maximum number of CSI SSB resource sets per resource configuration
maxNrofFailureDetectionResources        INTEGER ::= 10      -- Maximum number of failure detection resources
maxNrofFailureDetectionResources-1      INTEGER ::= 9       -- Maximum number of failure detection resources minus 1
maxNrofFreqSL-r16                       INTEGER ::= 8       -- Maximum number of carrier frequncy for for NR sidelink communication 
maxNrofSL-BWPs-r16                      INTEGER ::= 4       -- Maximum number of BWP for for NR sidelink communication
maxFreqSL-EUTRA-r16                     INTEGER ::= 8       -- Maximum number of EUTRA anchor carrier frequncy for NR sidelink communication
maxNrofSL-MeasId-r16                    INTEGER ::= 64      -- Maximum number of sidelink measurement identity (RSRP) per destination
maxNrofSL-ObjectId-r16                  INTEGER ::= 64      -- Maximum number of sidelink measurement objects (RSRP) per destination
maxNrofSL-ReportConfigId-r16            INTEGER ::= 64      -- Maximum number of sidelink measurement reporting configuration(RSRP) per destination
maxNrofSL-PoolToMeasureNR-r16           INTEGER ::= 8       -- Maximum number of resoure pool for NR sidelink measurement to measure for
                                                            -- each measurement object (for CBR)
maxFreqSL-NR-r16                        INTEGER ::= 8       -- Maximum number of NR anchor carrier frequncy for NR sidelink communication
maxNrofSL-QFIs-r16                      INTEGER ::= 2048    -- Maximum number of QoS flow for NR sidelink communication per UE
maxNrofSL-QFIsPerDest-r16               INTEGER ::= 64      -- Maximum number of QoS flow per destination for NR sidelink communication
maxNrofObjectId                         INTEGER ::= 64      -- Maximum number of measurement objects
maxNrofPageRec                          INTEGER ::= 32      -- Maximum number of page records
maxNrofPCI-Ranges                       INTEGER ::= 8       -- Maximum number of PCI ranges
maxPLMN                                 INTEGER ::= 12      -- Maximum number of PLMNs broadcast and reported by UE at establisghment
maxNrofCSI-RS-ResourcesRRM              INTEGER ::= 96      -- Maximum number of CSI-RS resources for an RRM measurement object
maxNrofCSI-RS-ResourcesRRM-1            INTEGER ::= 95      -- Maximum number of CSI-RS resources for an RRM measurement object minus 1
maxNrofMeasId                           INTEGER ::= 64      -- Maximum number of configured measurements
maxNrofQuantityConfig                   INTEGER ::= 2       -- Maximum number of quantity configurations
maxNrofCSI-RS-CellsRRM                  INTEGER ::= 96      -- Maximum number of cells with CSI-RS resources for an RRM measurement object
maxNrofSL-Dest-r16                      INTEGER ::= 32      -- Maximum number of destination for NR sidelink communication
maxNrofSL-Dest-1-r16                    INTEGER ::= 31      -- Highest index of destination for NR sidelink communication
maxNrofSLRB-r16                         INTEGER ::= 512     -- Maximum number of radio bearer for NR sidelink communication per UE
maxSL-LCID-r16                          INTEGER ::= 512     -- Maximum number of RLC bearer for NR sidelink communication per UE
maxSL-SyncConfig-r16                    INTEGER ::= 16      -- Maximum number of sidelink Sync configurations
maxNrofRXPool-r16                       INTEGER ::= 16      -- Maximum number of Rx resource poolfor NR sidelink communication
maxNrofTXPool-r16                       INTEGER ::= 8       -- Maximum number of Tx resourcepoolfor NR sidelink communication
maxNrofPoolID-r16                       INTEGER ::= 16      -- Maximum index of resource pool for NR sidelink communication
maxNrofSRS-PathlossReferenceRS-r16      INTEGER ::= 64      -- Maximum number of RSs used as pathloss reference for SRS power control.
maxNrofSRS-PathlossReferenceRS-1-r16    INTEGER ::= 63      -- Maximum number of RSs used as pathloss reference for SRS power control-1.
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-PosResourceSets-r16          INTEGER ::= 16      -- Maximum number of SRS Positioning resource sets in a BWP.
maxNrofSRS-PosResourceSets-1-r16        INTEGER ::= 15      -- Maximum number of SRS Positioning 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-PosResources-r16             INTEGER ::= 64      -- Maximum number of SRS Positioning resources.
maxNrofSRS-PosResources-1-r16           INTEGER ::= 63      -- Maximum number of SRS Positioning resources in an SRS Positioning
                                                            -- 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
maxULTxSwitchingBandPairs               INTEGER ::= 32      -- Maximum number of band pairs supporting dynamic UL Tx switching in a band combination
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.
maxNrofTrafficPattern-r16               INTEGER ::= 8       -- Maximum number of Traffic Pattern for NR sidelink communication.
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.
maxNrofPUCCH-PathlossReferenceRSs-r16   INTEGER ::= 64      -- Maximum number of RSs used as pathloss reference for PUCCH power control extended.
maxNrofPUCCH-PathlossReferenceRSs-1-r16 INTEGER ::= 63      -- Maximum number of RSs used as pathloss reference for PUCCH power control
                                                            -- minus 1 extended.
maxNrofPUCCH-PathlossReferenceRSsDiff-r16 INTEGER ::= 60    -- Difference between the extended maximum and the non-extended maximum
maxNrofPUCCH-ResourceGroups-r16         INTEGER ::= 4       -- Maximum number of PUCCH resources groups.
maxNrofPUCCH-ResourcesPerGroup-r16      INTEGER ::= 128     -- Maximum number of PUCCH resources in a PUCCH group.
maxNrofMultiplePUSCHs-r16               INTEGER ::= 8       -- Maximum number of multiple PUSCHs in PUSCH TDRA list
maxNrofP0-PUSCH-AlphaSets               INTEGER ::= 30      -- Maximum number of P0-pusch-alpha-sets (see 38,213, clause 7.1)
maxNrofP0-PUSCH-AlphaSets-1             INTEGER ::= 29      -- Maximum number of P0-pusch-alpha-sets minus 1 (see 38,213, clause 7.1)
maxNrofPUSCH-PathlossReferenceRSs       INTEGER ::= 4       -- Maximum number of RSs used as pathloss reference for PUSCH power control.
maxNrofPUSCH-PathlossReferenceRSs-1     INTEGER ::= 3       -- Maximum number of RSs used as pathloss reference for PUSCH power control minus 1.
maxNrofPUSCH-PathlossReferenceRSs-r16   INTEGER ::= 64      -- Maximum number of RSs used as pathloss reference for PUSCH power control extended
maxNrofPUSCH-PathlossReferenceRSs-1-r16 INTEGER ::= 63      -- Maximum number of RSs used as pathloss reference for PUSCH power control minus 1
maxNrofPUSCH-PathlossReferenceRSsDiff-r16  INTEGER ::= 60   -- Difference between maxNrofPUSCH-PathlossReferenceRSs-r16 and 
                                                            -- maxNrofPUSCH-PathlossReferenceRSs
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.
maxFreqLayers                           INTEGER ::= 4       -- Max number of frequency layers.
maxFreqIDC-r16                          INTEGER ::= 128     -- Max number of frequencies for IDC indication.
maxCombIDC-r16                          INTEGER ::= 128     -- Max number of reported UL CA for IDC indication.
maxFreqIDC-MRDC                         INTEGER ::= 32      -- Maximum number of candidate NR frequencies for MR-DC IDC indication
maxNrofCandidateBeams                   INTEGER ::= 16      -- Max number of PRACH-ResourceDedicatedBFR that in BFR config.
maxNrofCandidateBeams-r16               INTEGER ::= 64      -- Max number of candidate beam resources in BFR config.
maxNrofCandidateBeamsExt-r16            INTEGER ::= 48      -- Max number of PRACH-ResourceDedicatedBFR in the CandidateBeamRSListExt
maxNrofPCIsPerSMTC                      INTEGER ::= 64      -- Maximun number of PCIs per SMTC.
maxNrofQFIs                             INTEGER ::= 64
maxNrofResourceAvailabilityPerCombination-r16 INTEGER ::= 256
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
maxNrofSpatialRelationInfos-plus-1      INTEGER ::= 9
maxNrofSpatialRelationInfos-r16         INTEGER ::= 64
maxNrofSpatialRelationInfosDiff-r16     INTEGER ::= 56      -- Difference between maxNrofSpatialRelationInfos-r16 and maxNrofSpatialRelationInfos
maxNrofIndexesToReport                  INTEGER ::= 32
maxNrofIndexesToReport2                 INTEGER ::= 64
maxNrofSSBs-r16                         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
maxNrofCSI-RS-Resources                 INTEGER ::= 7       -- Maximum number of codebook resources supported by the UE
maxNrofCSI-RS-ResourcesAlt-r16          INTEGER ::= 512     -- Maximum number of alternative codebook resources supported by the UE
maxNrofCSI-RS-ResourcesAlt-1-r16        INTEGER ::= 511     -- Maximum number of alternative codebook resources supported by the UE minus 1
maxNrofSRI-PUSCH-Mappings               INTEGER ::= 16
maxNrofSRI-PUSCH-Mappings-1             INTEGER ::= 15
maxSIB                                  INTEGER::= 32       -- Maximum number of SIBs
maxSI-Message                           INTEGER::= 32       -- Maximum number of SI messages
maxPO-perPF                             INTEGER ::= 4       -- Maximum number of paging occasion per paging frame
maxAccessCat-1                          INTEGER ::= 63      -- Maximum number of Access Categories minus 1
maxBarringInfoSet                       INTEGER ::= 8       -- Maximum number of Access Categories
maxCellEUTRA                            INTEGER ::= 8       -- Maximum number of E-UTRA cells in SIB list
maxEUTRA-Carrier                        INTEGER ::= 8       -- Maximum number of E-UTRA carriers in SIB list
maxPLMNIdentities                       INTEGER ::= 8       -- Maximum number of PLMN identites in RAN area configurations
maxDownlinkFeatureSets                  INTEGER ::= 1024    -- (for NR DL) Total number of FeatureSets (size of the pool)
maxUplinkFeatureSets                    INTEGER ::= 1024    -- (for NR UL) Total number of FeatureSets (size of the pool)
maxEUTRA-DL-FeatureSets                 INTEGER ::= 256     -- (for E-UTRA) Total number of FeatureSets (size of the pool)
maxEUTRA-UL-FeatureSets                 INTEGER ::= 256     -- (for E-UTRA) Total number of FeatureSets (size of the pool)
maxFeatureSetsPerBand                   INTEGER ::= 128     -- (for NR) The number of feature sets associated with one band.
maxPerCC-FeatureSets                    INTEGER ::= 1024    -- (for NR) Total number of CC-specific FeatureSets (size of the pool)
maxFeatureSetCombinations               INTEGER ::= 1024    -- (for MR-DC/NR)Total number of Feature set combinations (size of the pool)
maxInterRAT-RSTD-Freq                   INTEGER ::= 3
maxHRNN-Len-r16                         INTEGER ::= 48      -- Maximum length of HRNNs
maxNPN-r16                              INTEGER ::= 12      -- Maximum number of NPNs broadcast and reported by UE at establishment
maxNrOfMinSchedulingOffsetValues-r16    INTEGER ::= 2       -- Maximum number of min. scheduling offset (K0/K2) configurations
maxK0-SchedulingOffset-r16              INTEGER ::= 16      -- Maximum number of slots configured as min. scheduling offset (K0)
maxK2-SchedulingOffset-r16              INTEGER ::= 16      -- Maximum number of slots configured as min. scheduling offset (K2)
maxDCI-2-6-Size-r16                     INTEGER ::= 140     -- Maximum size of DCI format 2-6
maxDCI-2-6-Size-1-r16                   INTEGER ::= 139     -- Maximum DCI format 2-6 size minus 1
maxNrofUL-Allocations-r16               INTEGER ::= 64      -- Maximum number of PUSCH time domain resource allocations
maxNrofP0-PUSCH-Set-r16                 INTEGER ::= 2       -- Maximum number of P0 PUSCH set(s)
maxOnDemandSIB-r16                      INTEGER ::= 8       -- Maximum number of SIB(s) that can be requested on-demand
maxOnDemandPosSIB-r16                   INTEGER ::= 32      -- Maximum number of posSIB(s) that can be requested on-demand
maxCI-DCI-PayloadSize-r16               INTEGER ::= 126     -- Maximum number of the DCI size for CI
maxCI-DCI-PayloadSize-r16-1             INTEGER ::= 125     -- Maximum number of the DCI size for CI minus 1
maxWLAN-Id-Report-r16                   INTEGER ::= 32      -- Maximum number of WLAN IDs to report
maxWLAN-Name-r16                        INTEGER ::= 4       -- Maximum number of WLAN name
maxRAReport-r16                         INTEGER ::= 8       -- Maximum number of RA procedures information to be included in the RA report
maxTxConfig-r16                         INTEGER ::= 64      -- Maximum number of sidelink transmission parameters configurations
maxTxConfig-1-r16                       INTEGER ::= 63      -- Maximum number of sidelink transmission parameters configurations minus 1
maxPSSCH-TxConfig-r16                   INTEGER ::= 16      -- Maximum number of PSSCH TX configurations
maxNrofCLI-RSSI-Resources-r16           INTEGER ::= 64      -- Maximum number of CLI-RSSI resources for UE
maxNrofCLI-RSSI-Resources-r16-1         INTEGER ::= 63      -- Maximum number of CLI-RSSI resources for UE minus 1
maxNrofCLI-SRS-Resources-r16             INTEGER ::= 32      -- Maximum number of SRS resources for CLI measurement for UE
maxCLI-Report-r16                       INTEGER ::= 8
maxNrofConfiguredGrantConfig-r16        INTEGER ::= 12      -- Maximum number of configured grant configurations per BWP
maxNrofConfiguredGrantConfig-r16-1      INTEGER ::= 11      -- Maximum number of configured grant configurations per BWP minus 1
maxNrofCG-Type2DeactivationState        INTEGER ::= 16      -- Maximum number of deactivation state for type 2 configured grants per BWP
maxNrofConfiguredGrantConfigMAC-r16     INTEGER ::= 32      -- Maximum number of configured grant configurations per MAC entity
maxNrofConfiguredGrantConfigMAC-r16-1   INTEGER ::= 31      -- Maximum number of configured grant configurations per MAC entity minus 1
maxNrofSPS-Config-r16                   INTEGER ::= 8       -- Maximum number of SPS configurations per BWP
maxNrofSPS-Config-r16-1                 INTEGER ::= 7       -- Maximum number of SPS configurations per BWP minus 1
maxNrofSPS-DeactivationState            INTEGER ::= 16      -- Maximum number of deactivation state for SPS per BWP
maxNrofDormancyGroups                   INTEGER ::= 5       -- 
maxNrofPUCCH-ResourceGroups-1-r16       INTEGER ::= 3       -- 
maxNrofServingCellsTCI-r16              INTEGER ::= 32      -- Maximum number of serving cells in simultaneousTCI-UpdateList

-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP

END

-- NR-UE-VARIABLES-START

NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
 
BEGIN

IMPORTS
    ARFCN-ValueNR,
    CellIdentity,
    EUTRA-PhysCellId,
    MeasId,
    MeasIdToAddModList,
    MeasIdleCarrierEUTRA-r16,
    MeasIdleCarrierNR-r16,
    MeasResultIdleEUTRA-r16,
    MeasResultIdleNR-r16,
    MeasObjectToAddModList,
    PhysCellId,
    RNTI-Value,
    ReportConfigToAddModList,
    RSRP-Range,
    SL-MeasId-r16,
    SL-MeasIdList-r16,
    SL-MeasObjectList-r16,
    SL-ReportConfigList-r16,
    SL-QuantityConfig-r16,
    Tx-PoolMeasList-r16,
    QuantityConfig,
    maxNrofCellMeas,
    maxNrofMeasId,
    maxFreqIdle-r16,
    PhysCellIdUTRA-FDD-r16,
    ValidityAreaList-r16,
    CondReconfigToAddModList-r16,
    ConnEstFailReport-r16,
    LoggingDuration-r16,
    LoggingInterval-r16,
    LogMeasInfoList-r16,
    LogMeasInfo-r16,
    RA-Report-r16,
    RLF-Report-r16,
    TraceReference-r16,
    WLAN-Identifiers-r16,
    WLAN-NameList-r16,
    BT-NameList-r16,
    PLMN-Identity,
    maxPLMN,
    RA-ReportList-r16,
    VisitedCellInfoList-r16,
    AbsoluteTimeInfo-r16,
    LoggedEventTriggerConfig-r16,
    LoggedPeriodicalReportConfig-r16,
    Sensor-NameList-r16,
    PLMN-IdentityList2-r16,
    AreaConfiguration-r16,
    maxNrofSL-MeasId-r16,
    maxNrofFreqSL-r16,
    maxNrofCLI-RSSI-Resources-r16,
    maxNrofCLI-SRS-Resources-r16,
    RSSI-ResourceId-r16,
    SRS-ResourceId
FROM NR-RRC-Definitions;

-- NR-UE-VARIABLES-STOP

-- TAG-VARCONDITIONALRECONFIG-START

VarConditionalReconfig ::=     SEQUENCE {
    condReconfigList               CondReconfigToAddModList-r16        OPTIONAL
}


-- TAG-VARCONDITIONALRECONFIG-STOP
-- TAG-VARCONNESTFAILREPORT-START

VarConnEstFailReport-r16 ::= SEQUENCE {
    connEstFailReport-r16        ConnEstFailReport-r16,
    plmn-Identity-r16            PLMN-Identity
}

-- TAG-VARCONNESTFAILREPORT-STOP
-- TAG-VARLOGMEASCONFIG-START

VarLogMeasConfig-r16-IEs ::= SEQUENCE {
    areaConfiguration-r16        AreaConfiguration-r16        OPTIONAL,
    bt-NameList-r16              BT-NameList-r16              OPTIONAL,
    wlan-NameList-r16            WLAN-NameList-r16            OPTIONAL,
    sensor-NameList-r16          Sensor-NameList-r16          OPTIONAL,
    loggingDuration-r16          LoggingDuration-r16,
    reportType                   CHOICE {
        periodical                   LoggedPeriodicalReportConfig-r16,
        eventTriggered               LoggedEventTriggerConfig-r16
    }
}
-- TAG-VARLOGMEASCONFIG-STOP
-- TAG-VARLOGMEAREPORT-START

VarLogMeasReport-r16 ::=     SEQUENCE {
    absoluteTimeStamp-r16        AbsoluteTimeInfo-r16,
    traceReference-r16           TraceReference-r16,
    traceRecordingSessionRef-r16 OCTET STRING (SIZE (2)),
    tce-Id-r16                   OCTET STRING (SIZE (1)),
    logMeasInfoList-r16          LogMeasInfoList-r16,
    plmn-IdentityList-r16        PLMN-IdentityList2-r16
}

-- TAG-VARLOGMEAREPORT-STOP
-- TAG-VARMEASCONFIG-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-VARMEASCONFIG-STOP
-- TAG-VARMEASCONFIGSL-START

VarMeasConfigSL-r16 ::=                        SEQUENCE {
    -- NR sidelink measurement identities
    sl-MeasIdList-r16                              SL-MeasIdList-r16                          OPTIONAL,
    -- NR sidelink measurement objects
    sl-MeasObjectList-r16                          SL-MeasObjectList-r16                      OPTIONAL,
    -- NR sidelink reporting configurations
    sl-reportConfigList-r16                        SL-ReportConfigList-r16                    OPTIONAL,
    -- Other parameters
    sl-QuantityConfig-r16                          SL-QuantityConfig-r16                      OPTIONAL
}

-- TAG-VARMEASCONFIGSL-STOP
-- TAG-VARMEASIDLECONFIG-START

VarMeasIdleConfig-r16 ::=     SEQUENCE {
    measIdleCarrierListNR-r16     SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierNR-r16                  OPTIONAL,
    measIdleCarrierListEUTRA-r16  SEQUENCE (SIZE (1..maxFreqIdle-r16)) OF MeasIdleCarrierEUTRA-r16               OPTIONAL,
    measIdleDuration-r16          ENUMERATED {sec10, sec30, sec60, sec120, sec180, sec240, sec300, spare},
    validityAreaList-r16          ValidityAreaList-r16                                                          OPTIONAL
}

-- TAG-VARMEASIDLECONFIG-STOP
-- TAG-VARMEASIDLEREPORT-START

VarMeasIdleReport-r16 ::=    SEQUENCE {
    measReportIdleNR-r16         MeasResultIdleNR-r16                     OPTIONAL,
    measReportIdleEUTRA-r16      MeasResultIdleEUTRA-r16                  OPTIONAL
}

-- TAG-VARMEASIDLEREPORT-STOP
-- TAG-VARMEASREPORTLIST-START

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

VarMeasReport ::=                   SEQUENCE {
    -- List of measurement that have been triggered
    measId                              MeasId,
    cellsTriggeredList                  CellsTriggeredList              OPTIONAL,
    numberOfReportsSent                 INTEGER,
    cli-TriggeredList-r16               CLI-TriggeredList-r16           OPTIONAL,
    tx-PoolMeasToAddModListNR-r16       Tx-PoolMeasList-r16           OPTIONAL
}

CellsTriggeredList ::=              SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE {
    physCellId                          PhysCellId,
    physCellIdEUTRA                     EUTRA-PhysCellId,
    physCellIdUTRA-FDD-r16              PhysCellIdUTRA-FDD-r16
    }

CLI-TriggeredList-r16 ::=           CHOICE {
    srs-RSRP-TriggeredList-r16          SRS-RSRP-TriggeredList-r16,
    cli-RSSI-TriggeredList-r16          CLI-RSSI-TriggeredList-r16
    }

SRS-RSRP-TriggeredList-r16 ::=      SEQUENCE (SIZE (1.. maxNrofCLI-SRS-Resources-r16)) OF SRS-ResourceId

CLI-RSSI-TriggeredList-r16 ::=      SEQUENCE (SIZE (1.. maxNrofCLI-RSSI-Resources-r16)) OF RSSI-ResourceId-r16

-- TAG-VARMEASREPORTLIST-STOP
-- TAG-VARMEASREPORTLISTSL-START

VarMeasReportListSL-r16 ::=               SEQUENCE (SIZE (1..maxNrofSL-MeasId-r16)) OF VarMeasReportSL-r16

VarMeasReportSL-r16 ::=                   SEQUENCE {
    -- List of NR sidelink measurement that have been triggered
    sl-MeasId-r16                             SL-MeasId-r16,
    sl-FrequencyTriggeredList-r16             SEQUENCE (SIZE (1..maxNrofFreqSL-r16)) OF ARFCN-ValueNR              OPTIONAL,
    sl-NumberOfReportsSent-r16                INTEGER
}

-- TAG-VARMEASREPORTLISTSL-STOP
-- TAG-VARMOBILITYHISTORYREPORT-START

VarMobilityHistoryReport-r16 ::= VisitedCellInfoList-r16

-- TAG-VARMOBILITYHISTORYREPORT-STOP
-- TAG-VARPENDINGRNA-UPDATE-START

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

-- TAG-VARPENDINGRNA-UPDATE-STOP
-- TAG-VARRA-REPORT-START

VarRA-Report-r16 ::=      SEQUENCE {
    ra-ReportList-r16         RA-ReportList-r16,
    plmn-IdentityList-r16     PLMN-IdentityList-r16
}

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

-- TAG-VARRA-REPORT-STOP
-- TAG-VARRESUMEMAC-INPUT-START

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

}

-- TAG-VARRESUMEMAC-INPUT-STOP
-- TAG-VARRLF-REPORT-START

VarRLF-Report-r16 ::=    SEQUENCE {
    rlf-Report-r16           RLF-Report-r16,
    plmn-IdentityList-r16    PLMN-IdentityList-r16
}

-- TAG-VARRLF-REPORT-STOP
-- TAG-VARSHORTMAC-INPUT-START

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

-- TAG-VARSHORTMAC-INPUT-STOP

END

-- TAG-NR-INTER-NODE-DEFINITIONS-START

NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
    ARFCN-ValueNR,
    ARFCN-ValueEUTRA,
    CellIdentity,
    CGI-InfoEUTRA,
    CGI-InfoNR,
    CSI-RS-Index,
    CSI-RS-CellMobility,
    DRX-Config,
    EUTRA-PhysCellId,
    FreqBandIndicatorNR,
    GapConfig,
    maxBandComb,
    maxBands,
    maxCellSFTD,
    maxFeatureSetsPerBand,
    maxFreqIDC-MRDC,
    maxNrofCombIDC,
    maxNrofSCells,
    maxNrofServingCells,
    maxNrofServingCells-1,
    maxNrofServingCellsEUTRA,
    maxNrofIndexesToReport,
    maxSimultaneousBands,
    MeasQuantityResults,
    MeasResultCellListSFTD-EUTRA,
    MeasResultCellListSFTD-NR,
    MeasResultList2NR,
    MeasResultSCG-Failure,
    MeasResultServFreqListEUTRA-SCG,
    NeedForGapsInfoNR-r16,
    OverheatingAssistance,
    P-Max,
    PhysCellId,
    RadioBearerConfig,
    RAN-NotificationAreaInfo,
    RRCReconfiguration,
    ServCellIndex,
    SetupRelease,
    SSB-Index,
    SSB-MTC,
    SSB-ToMeasure,
    SS-RSSI-Measurement,
    ShortMAC-I,
    SubcarrierSpacing,
    UEAssistanceInformation,
    UE-CapabilityRAT-ContainerList,
    maxNrofCLI-RSSI-Resources-r16,
    maxNrofCLI-SRS-Resources-r16,
    RSSI-ResourceId-r16,
    SidelinkUEInformationNR-r16,
    SRS-ResourceId
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),
    ...,
    [[
    sourceRB-SN-Config                      OCTET STRING (CONTAINING RadioBearerConfig)     OPTIONAL,
    sourceSCG-NR-Config                     OCTET STRING (CONTAINING RRCReconfiguration)    OPTIONAL,
    sourceSCG-EUTRA-Config                  OCTET STRING                                    OPTIONAL
    ]],
    [[
    sourceSCG-Configured                    ENUMERATED {true}                               OPTIONAL
    ]]

}

AS-Context ::=                          SEQUENCE {
    reestablishmentInfo                     ReestablishmentInfo                             OPTIONAL,
    configRestrictInfo                      ConfigRestrictInfoSCG                           OPTIONAL,
    ...,
    [[  ran-NotificationAreaInfo            RAN-NotificationAreaInfo                        OPTIONAL
    ]],
    [[  ueAssistanceInformation             OCTET STRING (CONTAINING UEAssistanceInformation)  OPTIONAL   -- Cond HO2
    ]],
    [[
    selectedBandCombinationSN               BandCombinationInfoSN                           OPTIONAL
    ]],
    [[
    configRestrictInfoDAPS-r16              ConfigRestrictInfoDAPS-r16                      OPTIONAL,
    sidelinkUEInformationNR-r16             OCTET STRING                                    OPTIONAL,
    sidelinkUEInformationEUTRA-r16          OCTET STRING                                    OPTIONAL,
    ueAssistanceInformationEUTRA-r16        OCTET STRING                                    OPTIONAL,
    ueAssistanceInformationSCG-r16          OCTET STRING (CONTAINING UEAssistanceInformation)  OPTIONAL,   -- Cond HO2
    needForGapsInfoNR-r16                   NeedForGapsInfoNR-r16                           OPTIONAL
    ]]
}

ConfigRestrictInfoDAPS-r16 ::=          SEQUENCE {
    powerCoordination-r16                   SEQUENCE {
        p-DAPS-Source-r16                       P-Max,
        p-DAPS-Target-r16                       P-Max,
        uplinkPowerSharingDAPS-Mode-r16          ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic }
    }                                                                                       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, min1s20, 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,
    ...,
    [[
    candidateCellInfoListSN-EUTRA      MeasResultServFreqListEUTRA-SCG                      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,
    selectedBandCombination             BandCombinationInfoSN                           OPTIONAL,
    fr-InfoListSCG                      FR-InfoList                                     OPTIONAL,
    candidateServingFreqListNR          CandidateServingFreqListNR                      OPTIONAL,
    nonCriticalExtension                CG-Config-v1540-IEs                             OPTIONAL
}

CG-Config-v1540-IEs ::=             SEQUENCE {
    pSCellFrequency                     ARFCN-ValueNR                                   OPTIONAL,
    reportCGI-RequestNR                 SEQUENCE {
        requestedCellInfo                   SEQUENCE {
            ssbFrequency                        ARFCN-ValueNR,
            cellForWhichToReportCGI             PhysCellId
        }                                                                               OPTIONAL
    }                                                                                   OPTIONAL,
    ph-InfoSCG                          PH-TypeListSCG                                  OPTIONAL,
    nonCriticalExtension                CG-Config-v1560-IEs                             OPTIONAL
}

CG-Config-v1560-IEs ::=             SEQUENCE {
    pSCellFrequencyEUTRA                ARFCN-ValueEUTRA                                OPTIONAL,
    scg-CellGroupConfigEUTRA            OCTET STRING                                    OPTIONAL,
    candidateCellInfoListSN-EUTRA       OCTET STRING                                    OPTIONAL,
    candidateServingFreqListEUTRA       CandidateServingFreqListEUTRA                   OPTIONAL,
    needForGaps                         ENUMERATED {true}                               OPTIONAL,
    drx-ConfigSCG                       DRX-Config                                      OPTIONAL,
    reportCGI-RequestEUTRA              SEQUENCE {
        requestedCellInfoEUTRA          SEQUENCE {
            eutraFrequency                             ARFCN-ValueEUTRA,
            cellForWhichToReportCGI-EUTRA              EUTRA-PhysCellId
        }                                                                               OPTIONAL
    }                                                                                   OPTIONAL,
    nonCriticalExtension                CG-Config-v1590-IEs                             OPTIONAL
}

CG-Config-v1590-IEs ::=             SEQUENCE {
    scellFrequenciesSN-NR               SEQUENCE (SIZE (1.. maxNrofServingCells-1)) OF  ARFCN-ValueNR          OPTIONAL,
    scellFrequenciesSN-EUTRA            SEQUENCE (SIZE (1.. maxNrofServingCells-1)) OF  ARFCN-ValueEUTRA       OPTIONAL,
    nonCriticalExtension                CG-Config-v1610-IEs                                                    OPTIONAL
}

CG-Config-v1610-IEs ::=             SEQUENCE {
    drx-InfoSCG2                        DRX-Info2                                       OPTIONAL,
    nonCriticalExtension                SEQUENCE {}                                     OPTIONAL
}

PH-TypeListSCG ::=                  SEQUENCE (SIZE (1..maxNrofServingCells)) OF PH-InfoSCG

PH-InfoSCG ::=                      SEQUENCE {
    servCellIndex                       ServCellIndex,
    ph-Uplink                           PH-UplinkCarrierSCG,
    ph-SupplementaryUplink              PH-UplinkCarrierSCG                             OPTIONAL,
    ...
}

PH-UplinkCarrierSCG ::=             SEQUENCE{
    ph-Type1or3                         ENUMERATED {type1, type3},
    ...
}

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,
    ...,
    [[
    requestedPDCCH-BlindDetectionSCG    INTEGER (1..15)                                     OPTIONAL,
    requestedP-MaxEUTRA                 P-Max                                               OPTIONAL
    ]],
    [[
    requestedP-MaxFR2-r16               P-Max                                               OPTIONAL,
    requestedMaxInterFreqMeasIdSCG-r16  INTEGER(1..maxMeasIdentitiesMN)                     OPTIONAL,
    requestedMaxIntraFreqMeasIdSCG-r16  INTEGER(1..maxMeasIdentitiesMN)                     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

CandidateServingFreqListEUTRA ::= SEQUENCE (SIZE (1.. maxFreqIDC-MRDC)) OF ARFCN-ValueEUTRA

-- 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-AddMod
    candidateCellInfoListMN         MeasResultList2NR                                                 OPTIONAL,
    candidateCellInfoListSN         OCTET STRING (CONTAINING MeasResultList2NR)                       OPTIONAL,
    measResultCellListSFTD-NR       MeasResultCellListSFTD-NR                                         OPTIONAL,
    scgFailureInfo                  SEQUENCE {
        failureType                     ENUMERATED { t310-Expiry, randomAccessProblem,
                                                     rlc-MaxNumRetx, synchReconfigFailure-SCG,
                                                     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            CG-ConfigInfo-v1540-IEs                                           OPTIONAL
}

CG-ConfigInfo-v1540-IEs ::=     SEQUENCE {
    ph-InfoMCG                      PH-TypeListMCG                                                    OPTIONAL,
    measResultReportCGI             SEQUENCE {
        ssbFrequency                    ARFCN-ValueNR,
        cellForWhichToReportCGI         PhysCellId,
        cgi-Info                        CGI-InfoNR
    }                                                                                                 OPTIONAL,
    nonCriticalExtension            CG-ConfigInfo-v1560-IEs                                           OPTIONAL
}

CG-ConfigInfo-v1560-IEs ::=	 SEQUENCE {
    candidateCellInfoListMN-EUTRA       OCTET STRING                                              OPTIONAL,
    candidateCellInfoListSN-EUTRA       OCTET STRING                                              OPTIONAL,
    sourceConfigSCG-EUTRA               OCTET STRING                                              OPTIONAL,
    scgFailureInfoEUTRA                 SEQUENCE {
        failureTypeEUTRA                    ENUMERATED { t313-Expiry, randomAccessProblem,
                                                    rlc-MaxNumRetx, scg-ChangeFailure},
        measResultSCG-EUTRA                 OCTET STRING 
    }                                                                                             OPTIONAL,
    drx-ConfigMCG                       DRX-Config                                                OPTIONAL,
    measResultReportCGI-EUTRA               SEQUENCE {
        eutraFrequency                      ARFCN-ValueEUTRA,
        cellForWhichToReportCGI-EUTRA           EUTRA-PhysCellId,
        cgi-InfoEUTRA                           CGI-InfoEUTRA
    }                                                                                             OPTIONAL,
    measResultCellListSFTD-EUTRA        MeasResultCellListSFTD-EUTRA                              OPTIONAL,
    fr-InfoListMCG                      FR-InfoList                                               OPTIONAL,
    nonCriticalExtension                CG-ConfigInfo-v1570-IEs                                   OPTIONAL
}

CG-ConfigInfo-v1570-IEs ::=  SEQUENCE {
    sftdFrequencyList-NR                SFTD-FrequencyList-NR                                     OPTIONAL,
    sftdFrequencyList-EUTRA             SFTD-FrequencyList-EUTRA                                  OPTIONAL,
    nonCriticalExtension                CG-ConfigInfo-v1590-IEs                                   OPTIONAL
}

CG-ConfigInfo-v1590-IEs ::=  SEQUENCE {
    servFrequenciesMN-NR            SEQUENCE (SIZE (1.. maxNrofServingCells-1)) OF  ARFCN-ValueNR OPTIONAL,
    nonCriticalExtension            CG-ConfigInfo-v1610-IEs                                       OPTIONAL
}

CG-ConfigInfo-v1610-IEs ::=  SEQUENCE {
    drx-InfoMCG2                 DRX-Info2                                                        OPTIONAL,
    alignedDRX-Indication        ENUMERATED {true}                                                OPTIONAL,
    scgFailureInfo-r16                  SEQUENCE {
        failureType-r16                     ENUMERATED { scg-lbtFailure-r16, beamFailureRecoveryFailure-r16, 
                                                         t312-Expiry-r16, bh-RLF-r16,
                                                         spare4, spare3, spare2, spare1},
        measResultSCG-r16                   OCTET STRING (CONTAINING MeasResultSCG-Failure)
    }                                                                                             OPTIONAL,
    scgFailureInfoEUTRA-r16                 SEQUENCE {
        failureTypeEUTRA-r16                    ENUMERATED { scg-lbtFailure-r16, beamFailureRecoveryFailure-r16, 
                                                         t312-Expiry-r16, bh-RLF-r16,
                                                                     spare4, spare3, spare2, spare1},
        measResultSCG-EUTRA-r16                 OCTET STRING 
    }                                                                                             OPTIONAL,
    sidelinkUEInformationNR-r16      OCTET STRING (CONTAINING SidelinkUEInformationNR-r16)        OPTIONAL,
    sidelinkUEInformationEUTRA-r16   OCTET STRING                                                 OPTIONAL,
    nonCriticalExtension             SEQUENCE {}                                                  OPTIONAL
}
SFTD-FrequencyList-NR ::=               SEQUENCE (SIZE (1..maxCellSFTD)) OF ARFCN-ValueNR

SFTD-FrequencyList-EUTRA ::=            SEQUENCE (SIZE (1..maxCellSFTD)) OF ARFCN-ValueEUTRA

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-AddMod
    maxMeasFreqsSCG                     INTEGER(1..maxMeasFreqsMN)                                OPTIONAL,
    dummy                               INTEGER(1..maxMeasIdentitiesMN)                           OPTIONAL,
    ...,
    [[
    selectedBandEntriesMNList        SEQUENCE (SIZE (1..maxBandComb)) OF SelectedBandEntriesMN    OPTIONAL,
    pdcch-BlindDetectionSCG          INTEGER (1..15)                                              OPTIONAL,
    maxNumberROHC-ContextSessionsSN  INTEGER(0.. 16384)                                           OPTIONAL
    ]],
    [[
    maxIntraFreqMeasIdentitiesSCG     INTEGER(1..maxMeasIdentitiesMN)                             OPTIONAL,
    maxInterFreqMeasIdentitiesSCG     INTEGER(1..maxMeasIdentitiesMN)                             OPTIONAL
    ]],
    [[
    p-maxNR-FR1-MCG-r16               P-Max                                                       OPTIONAL,
    powerCoordination-FR2-r16         SEQUENCE {
        p-maxNR-FR2-MCG-r16                P-Max                                                  OPTIONAL,
        p-maxNR-FR2-SCG-r16                P-Max                                                  OPTIONAL,
        p-maxUE-FR2-r16                    P-Max                                                  OPTIONAL
    }                                                                                             OPTIONAL,
    nrdc-PC-mode-FR1-r16    ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic}            OPTIONAL,
    nrdc-PC-mode-FR2-r16    ENUMERATED {semi-static-mode1, semi-static-mode2, dynamic}            OPTIONAL,
    maxMeasSRS-ResourceSCG-r16       INTEGER(0..maxNrofCLI-SRS-Resources-r16)                     OPTIONAL,
    maxMeasCLI-ResourceSCG-r16       INTEGER(0..maxNrofCLI-RSSI-Resources-r16)                    OPTIONAL,
    maxNumberEHC-ContextsSN-r16      INTEGER(0..65536)                                            OPTIONAL,
    allowedReducedConfigForOverheating-r16      OverheatingAssistance                             OPTIONAL
    ]]
}

SelectedBandEntriesMN ::=       SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandEntryIndex

BandEntryIndex ::=              INTEGER (0.. maxNrofServingCells) 

PH-TypeListMCG ::=              SEQUENCE (SIZE (1..maxNrofServingCells)) OF PH-InfoMCG

PH-InfoMCG ::=                  SEQUENCE {
    servCellIndex                       ServCellIndex,
    ph-Uplink                           PH-UplinkCarrierMCG,
    ph-SupplementaryUplink              PH-UplinkCarrierMCG                                       OPTIONAL,
    ...
}

PH-UplinkCarrierMCG ::=         SEQUENCE{
    ph-Type1or3                         ENUMERATED {type1, type3},
    ...
}

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
}

DRX-Info2 ::=          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 }
                           }
}

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

}

MRDC-AssistanceInfo ::= SEQUENCE {
    affectedCarrierFreqCombInfoListMRDC     SEQUENCE (SIZE (1..maxNrofCombIDC)) OF AffectedCarrierFreqCombInfoMRDC,
    ...,
    [[
    overheatingAssistanceSCG-r16            OCTET STRING (CONTAINING OverheatingAssistance)       OPTIONAL
    ]]
}

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                    MeasurementTimingConfiguration-v1550-IEs    OPTIONAL
}

MeasurementTimingConfiguration-v1550-IEs ::= SEQUENCE {
    campOnFirstSSB                               BOOLEAN,
    psCellOnlyOnFirstSSB                         BOOLEAN,
    nonCriticalExtension                         MeasurementTimingConfiguration-v1610-IEs       OPTIONAL
}

MeasurementTimingConfiguration-v1610-IEs ::=  SEQUENCE {
    csi-RS-Config-r16                             SEQUENCE {
        csi-RS-SubcarrierSpacing-r16                  SubcarrierSpacing,
        csi-RS-CellMobility-r16                       CSI-RS-CellMobility,
        refSSBFreq-r16                                ARFCN-ValueNR
    },
    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,
...,
    [[    
    ssb-ToMeasure                           SSB-ToMeasure                               OPTIONAL,
    physCellId                              PhysCellId                                  OPTIONAL
    ]]
}

-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP
-- TAG-UE-RADIO-PAGING-INFORMATION-START

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
}


-- TAG-UE-RADIO-PAGING-INFORMATION-STOP
-- TAG-UE-RADIO-ACCESS-CAPABILITY-INFORMATION-START

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-UE-RADIO-ACCESS-CAPABILITY-INFORMATION-STOP
-- 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
