5G/NR - UE Capability  

 

 

 

UE Capability in a Nutshell

 

  • What is it for ? UE capability is a RRC signaling mechanism by which UE can inform its capabilities to gNB
  • gNB request UE to inform about its capability by sending the message : UE Capability Enquiry and UE responds to this request by sending UE Capability Information message.
  • NR UE capability Information in general is much more complicated than LTE UE capability Information because NR Radio stack is more flexible and complex than LTE radio stack.
  • gNB may not want to get all the possible UE capability information and can restrict the type and amount of UE capability information by putting a specific requirements in UE capability Enquiry. The entire list of UE capabilities without any restriction can be too long and cause too much signaling overhead if it is transmitted in full size.
  • Some of the most important information on UE capability Information in NR would be : bandwidth information, Bandwidth(for single carrier) and Bandwidth Combination(for Carrier Aggregation), MIMO, Subcarrier Spacing etc.

UE Capability in Detail

The purpose (Function) of UE Capability Information in NR is same as LTE UE Capability Information. In LTE UE capability information carries the information in roughly two large category : RF/Physical layer information and Feature Group(FGI). NR also reports similar information (i.e, RF/PHY information and Feature sets) but much more diverse information than LTE.

For the details of the meaning of each IEs listed here, refer to 38.306. But to understand the exact meaning of the descriptions in 38.306, you would need to understand the whole NR specification... simply put, it would be life time job to understand the full details of what you see in the UE capability information. So.. don't be hurry.. take time trying to one at a time.  The best way is to take a look at specific IEs that you are interested one at a time and find some examples as shown below and try to understand the detailed meaning based on 38.306 and all other related specification.

UE Capability Enquiry - NR

Followings overall structure of UE Capability Enquiries for NR.

 

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

}

 

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

   ...

}

 

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

}

Example 01 > nr single band

  message c1: ueCapabilityEnquiry: {

    rrc-TransactionIdentifier 0,

    criticalExtensions ueCapabilityEnquiry: {

      ue-CapabilityRAT-RequestList {

        {

          rat-Type nr,

          capabilityRequestFilter {

            frequencyBandListFilter {

              bandInformationNR: {

                bandNR 78

              }

            }

          }

        }

      },

      ue-CapabilityEnquiryExt {

        nonCriticalExtension {

          rrc-SegAllowed-r16 enabled

        }

      }

    }

  }

Example 02 > nr multi band

{

  message c1: ueCapabilityEnquiry: {

    rrc-TransactionIdentifier 0,

    criticalExtensions ueCapabilityEnquiry: {

      ue-CapabilityRAT-RequestList {

        {

          rat-Type nr,

          capabilityRequestFilter {

            frequencyBandListFilter {

              bandInformationNR: {

                bandNR 1

              },

              bandInformationNR: {

                bandNR 2

              },

              bandInformationNR: {

                bandNR 3

              },

              bandInformationNR: {

                bandNR 4

              },

              bandInformationNR: {

                bandNR 5

              },

              bandInformationNR: {

                bandNR 6

              },

              bandInformationNR: {

                bandNR 7

              },

              bandInformationNR: {

                bandNR 8

              },

              bandInformationNR: {

                bandNR 9

              },

              bandInformationNR: {

                bandNR 10

              },

              bandInformationNR: {

                bandNR 41

              },

              bandInformationNR: {

                bandNR 78

              },

              bandInformationNR: {

                bandNR 79

              },

              bandInformationNR: {

                bandNR 80

              },

              bandInformationNR: {

                bandNR 81

              },

              bandInformationNR: {

                bandNR 82

              },

              bandInformationNR: {

                bandNR 83

              },

              bandInformationNR: {

                bandNR 84

              },

              bandInformationNR: {

                bandNR 86

              },

              bandInformationNR: {

                bandNR 89

              }

            }

          }

        }

      },

      ue-CapabilityEnquiryExt {

        nonCriticalExtension {

          rrc-SegAllowed-r16 enabled

        }

      }

    }

  }

}

UE Capability Information - NR

Following is the RRC message structure of UE capability Information message. But it may be too complicated and in many cases too confusing as well because of too many parameters and too complicated inter-dependencies among multiple parameters. I think the best way is to check out specific examples for various cases.

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

}

 

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

    }

 

 

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

 

 

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

}

 

UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE {

    irat-ParametersNR-r15                   IRAT-ParametersNR-r15                   OPTIONAL,

    featureSetsEUTRA-r15                    FeatureSetsEUTRA-r15                    OPTIONAL,

    pdcp-ParametersNR-r15                   PDCP-ParametersNR-r15                   OPTIONAL,

    fdd-Add-UE-EUTRA-Capabilities-v1510     UE-EUTRA-CapabilityAddXDD-Mode-v1510    OPTIONAL,

    tdd-Add-UE-EUTRA-Capabilities-v1510     UE-EUTRA-CapabilityAddXDD-Mode-v1510    OPTIONAL,

    nonCriticalExtension                    UE-EUTRA-Capability-v1520-IEs           OPTIONAL

}

 

IRAT-ParametersNR-r15 ::=       SEQUENCE {

    en-DC-r15                       ENUMERATED {supported}                      OPTIONAL,

    eventB2-r15                     ENUMERATED {supported}                      OPTIONAL,

    supportedBandListNR-r15         SupportedBandListNR-r15                     OPTIONAL

}

 

UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE {

    measParameters-v1520                    MeasParameters-v1520,   

    nonCriticalExtension                    SEQUENCE {}     OPTIONAL

}

 

UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::=    SEQUENCE {

    pdcp-ParametersNR-r15                   PDCP-ParametersNR-r15       OPTIONAL

}

 

PDCP-ParametersNR-r15 ::=       SEQUENCE {

    rohc-Profiles-r15                   ROHC-ProfileSupportList-r15,

    rohc-ContextMaxSessions-r15         ENUMERATED {

                                            cs2, cs4, cs8, cs12, cs16, cs24, cs32,

                                            cs48, cs64, cs128, cs256, cs512, cs1024,

                                            cs16384, spare2, spare1}            DEFAULT cs16,

    rohc-ProfilesUL-Only-r15                SEQUENCE {

        profile0x0006-r15                       BOOLEAN

    },

    rohc-ContextContinue-r15            ENUMERATED {supported}              OPTIONAL,

    outOfOrderDelivery-r15              ENUMERATED {supported}              OPTIONAL,

    sn-SizeLo-r15                       ENUMERATED {supported}              OPTIONAL,

    ims-VoiceOverNR-PDCP-MCG-Bearer-r15 ENUMERATED {supported}              OPTIONAL,

    ims-VoiceOverNR-PDCP-SCG-Bearer-r15 ENUMERATED {supported}              OPTIONAL

}

 

UE-MRDC-Capability ::=  SEQUENCE {

    measParametersMRDC                  MeasParametersMRDC                  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)) OPTIONAL,

    lateNonCriticalExtension            OCTET STRING                        OPTIONAL,

    nonCriticalExtension                SEQUENCE {}                         OPTIONAL

}

 

UE-MRDC-CapabilityAddXDD-Mode ::=   SEQUENCE {

    measParametersMRDC-XDD-Diff     MeasParametersMRDC-XDD-Diff     OPTIONAL,

    generalParametersMRDC-XDD-Diff      GeneralParametersMRDC-XDD-Diff      OPTIONAL

}

 

UE-MRDC-CapabilityAddFRX-Mode ::=   SEQUENCE {

    measParametersMRDC-FRX-Diff     MeasParametersMRDC-FRX-Diff

}

 

GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {

    splitSRB-WithOneUL-Path             ENUMERATED {supported}      OPTIONAL,

    splitDRB-withUL-Both-MCG-SCG        ENUMERATED {supported}      OPTIONAL,

    srb3                                ENUMERATED {supported}      OPTIONAL,

    ...

}

 

RF-ParametersMRDC ::= SEQUENCE {

    supportedBandCombinationList        BandCombinationList                 OPTIONAL,

    appliedFreqBandListFilter           FreqBandList                        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

}

 

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

   ]]

}

 

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

   }

}

 

FeatureSetDownlink ::= SEQUENCE {

   featureSetListPerDownlinkCC     SEQUENCE (SIZE (1..maxNrofServingCells))

                                             OF FeatureSetDownlinkPerCC-Id,

   intraBandFreqSeparationDL       FreqSeparationClass OPTIONAL,

   scalingFactor                   ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL,

   crossCarrierScheduling-OtherSCS ENUMERATED {supported} OPTIONAL,

   scellWithoutSSB                 ENUMERATED {supported} OPTIONAL,

   csi-RS-MeasSCellWithoutSSB      ENUMERATED {supported} OPTIONAL,

   dummy1                          ENUMERATED {supported} OPTIONAL,

   type1-3-CSS                     ENUMERATED {supported} OPTIONAL,

   pdcch-MonitoringAnyOccasions    ENUMERATED {withoutDCI-Gap, withDCI-Gap} OPTIONAL,

   dummy2                          ENUMERATED {supported} OPTIONAL,

   ue-SpecificUL-DL-Assignment     ENUMERATED {supported} OPTIONAL,

   searchSpaceSharingCA-DL         ENUMERATED {supported} OPTIONAL,

   timeDurationForQCL SEQUENCE {

      scs-60kHz              ENUMERATED {s7, s14, s28} OPTIONAL,

      scs-120kHz             ENUMERATED {s14, s28} OPTIONAL

   } OPTIONAL,

   pdsch-ProcessingType1-DifferentTB-PerSlot SEQUENCE {

      scs-15kHz              ENUMERATED {upto2, upto4, upto7} OPTIONAL,

      scs-30kHz              ENUMERATED {upto2, upto4, upto7} OPTIONAL,

      scs-60kHz              ENUMERATED {upto2, upto4, upto7} OPTIONAL,

      scs-120kHz             ENUMERATED {upto2, upto4, upto7} OPTIONAL

   } OPTIONAL,

   dummy3                        DummyA OPTIONAL,

   dummy4                        SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyB OPTIONAL,

   dummy5                        SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyC OPTIONAL,

   dummy6                        SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyD OPTIONAL,

   dummy7                        SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF DummyE OPTIONAL

}

 

FeatureSetDownlink-v1540 ::= SEQUENCE {

   oneFL-DMRS-TwoAdditionalDMRS-DL      ENUMERATED {supported} OPTIONAL,

   additionalDMRS-DL-Alt                ENUMERATED {supported} OPTIONAL,

   twoFL-DMRS-TwoAdditionalDMRS-DL      ENUMERATED {supported} OPTIONAL,

   oneFL-DMRS-ThreeAdditionalDMRS-DL    ENUMERATED {supported} OPTIONAL,

   pdcch-MonitoringAnyOccasionsWithSpanGap SEQUENCE {

      scs-15kHz            ENUMERATED {set1, set2, set3} OPTIONAL,

      scs-30kHz            ENUMERATED {set1, set2, set3} OPTIONAL,

      scs-60kHz            ENUMERATED {set1, set2, set3} OPTIONAL,

      scs-120kHz           ENUMERATED {set1, set2, set3} OPTIONAL

   } OPTIONAL,

   pdsch-SeparationWithGap              ENUMERATED {supported} OPTIONAL,

   pdsch-ProcessingType2 SEQUENCE {

      scs-15kHz           ProcessingParameters OPTIONAL,

      scs-30kHz           ProcessingParameters OPTIONAL,

      scs-60kHz           ProcessingParameters OPTIONAL

   } OPTIONAL,

   pdsch-ProcessingType2-Limited SEQUENCE {

      differentTB-PerSlot-SCS-30kHz     ENUMERATED {upto1, upto2, upto4, upto7}

   } OPTIONAL,

   dl-MCS-TableAlt-DynamicIndication    ENUMERATED {supported} OPTIONAL

}

 

DummyA ::= SEQUENCE {

   maxNumberNZP-CSI-RS-PerCC              INTEGER (1..32),

   maxNumberPortsAcrossNZP-CSI-RS-PerCC   ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40,

                                                      p48, p56, p64, p72, p80, p88, p96, p104,

                                                      p112, p120, p128, p136, p144, p152, p160,

                                                      p168, p176, p184, p192, p200, p208, p216,

                                                      p224, p232, p240, p248, p256},

   maxNumberCS-IM-PerCC                   ENUMERATED {n1, n2, n4, n8, n16, n32},

   maxNumberSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16,

                                                        n18, n20, n22, n24, n26, n28, n30, n32,

                                                        n34, n36, n38, n40, n42, n44, n46, n48,

                                                        n50, n52,n54, n56, n58, n60, n62, n64},

   totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48,

                                                               p56, p64, p72, p80, p88, p96,

                                                               p104, p112, p120, p128, p136,

                                                               p144, p152, p160, p168, p176,

                                                               p184, p192, p200, p208, p216,

                                                               p224, p232, p240, p248, p256}

}

 

DummyB ::= SEQUENCE {

   maxNumberTxPortsPerResource                   ENUMERATED {p2, p4, p8, p12, p16, p24, p32},

   maxNumberResources                            INTEGER (1..64),

   totalNumberTxPorts                            INTEGER (2..256),

   supportedCodebookMode                         ENUMERATED {mode1, mode1AndMode2},

   maxNumberCSI-RS-PerResourceSet                INTEGER (1..8)

}

 

DummyC ::= SEQUENCE {

   maxNumberTxPortsPerResource                  ENUMERATED {p8, p16, p32},

   maxNumberResources                           INTEGER (1..64),

   totalNumberTxPorts                           INTEGER (2..256),

   supportedCodebookMode                        ENUMERATED {mode1, mode2, both},

   supportedNumberPanels                        ENUMERATED {n2, n4},

   maxNumberCSI-RS-PerResourceSet               INTEGER (1..8)

}

 

DummyD ::= SEQUENCE {

   maxNumberTxPortsPerResource                 ENUMERATED {p4, p8, p12, p16, p24, p32},

   maxNumberResources                          INTEGER (1..64),

   totalNumberTxPorts                          INTEGER (2..256),

   parameterLx                                 INTEGER (2..4),

   amplitudeScalingType                        ENUMERATED {wideband, widebandAndSubband},

   amplitudeSubsetRestriction                  ENUMERATED {supported} OPTIONAL,

   maxNumberCSI-RS-PerResourceSet              INTEGER (1..8)

}

 

DummyE ::= SEQUENCE {

   maxNumberTxPortsPerResource                ENUMERATED {p4, p8, p12, p16, p24, p32},

   maxNumberResources                         INTEGER (1..64),

   totalNumberTxPorts                         INTEGER (2..256),

   parameterLx                                INTEGER (2..4),

   amplitudeScalingType                       ENUMERATED {wideband, widebandAndSubband},

   maxNumberCSI-RS-PerResourceSet             INTEGER (1..8)

}

 

FeatureSetDownlinkPerCC ::= SEQUENCE {

   supportedSubcarrierSpacingDL               SubcarrierSpacing,

   supportedBandwidthDL                       SupportedBandwidth,

   channelBW-90mhz                            ENUMERATED {supported} OPTIONAL,

   maxNumberMIMO-LayersPDSCH                  MIMO-LayersDL OPTIONAL,

   supportedModulationOrderDL                 ModulationOrder OPTIONAL

}

 

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,

    ...

}

 

Phy-ParametersXDD-Diff ::=  SEQUENCE {

    dynamicSFI                          ENUMERATED {supported}          OPTIONAL,

    twoPUCCH-F0-2-ConsecSymbols         ENUMERATED {supported}          OPTIONAL,

    twoDifferentTPC-Loop-PUSCH          ENUMERATED {supported}          OPTIONAL,

    twoDifferentTPC-Loop-PUCCH          ENUMERATED {supported}          OPTIONAL,

    ...

}

 

Phy-ParametersFRX-Diff ::=  SEQUENCE {

    dynamicSFI                          ENUMERATED {supported}          OPTIONAL,

    oneFL-DMRS-TwoAdditionalDMRS        BIT STRING (SIZE (2))           OPTIONAL,

    twoFL-DMRS                          BIT STRING (SIZE (2))           OPTIONAL,

    twoFL-DMRS-TwoAdditionalDMRS        BIT STRING (SIZE (2))           OPTIONAL,

    oneFL-DMRS-ThreeAdditionalDMRS      BIT STRING (SIZE (2))           OPTIONAL,

    supportedDMRS-TypeDL                ENUMERATED {type1, type2}       OPTIONAL,

    supportedDMRS-TypeUL                ENUMERATED {type1, type2}       OPTIONAL,

    semiOpenLoopCSI                     ENUMERATED {supported}          OPTIONAL,

    csi-ReportWithoutPMI                ENUMERATED {supported}          OPTIONAL,

    csi-ReportWithoutCQI                ENUMERATED {supported}          OPTIONAL,

    onePortsPTRS                        BIT STRING (SIZE (2))           OPTIONAL,

    twoPUCCH-F0-2-ConsecSymbols         ENUMERATED {supported}          OPTIONAL,

    pucch-F2-WithFH                     ENUMERATED {supported}          OPTIONAL,

    pucch-F3-WithFH                     ENUMERATED {supported}          OPTIONAL,

    pucch-F4-WithFH                     ENUMERATED {supported}          OPTIONAL,

    freqHoppingPUCCH-F0-2               ENUMERATED {notSupported}       OPTIONAL,

    freqHoppingPUCCH-F1-3-4             ENUMERATED {notSupported}       OPTIONAL,

    mux-SR-HARQ-ACK-CSI-PUCCH           ENUMERATED {supported}          OPTIONAL,

    uci-CodeBlockSegmentation           ENUMERATED {supported}          OPTIONAL,

    onePUCCH-LongAndShortFormat         ENUMERATED {supported}          OPTIONAL,

    twoPUCCH-AnyOthersInSlot            ENUMERATED {supported}          OPTIONAL,

    intraSlotFreqHopping-PUSCH          ENUMERATED {supported}          OPTIONAL,

    pusch-LBRM                          ENUMERATED {supported}          OPTIONAL,

    pdcch-BlindDetectionCA              ENUMERATED {supported}          OPTIONAL,

    tpc-PUSCH-RNTI                      ENUMERATED {supported}          OPTIONAL,

    tpc-PUCCH-RNTI                      ENUMERATED {supported}          OPTIONAL,

    tpc-SRS-RNTI                        ENUMERATED {supported}          OPTIONAL,

    absoluteTPC-Command                 ENUMERATED {supported}          OPTIONAL,

    twoDifferentTPC-Loop-PUSCH          ENUMERATED {supported}          OPTIONAL,

    twoDifferentTPC-Loop-PUCCH          ENUMERATED {supported}          OPTIONAL,

    pusch-HalfPi-BPSK                   ENUMERATED {supported}          OPTIONAL,

    pucch-F3-4-HalfPi-BPSK              ENUMERATED {supported}          OPTIONAL,

    almostContiguousCP-OFDM-UL          ENUMERATED {supported}          OPTIONAL ,

    sp-CSI-RS                           ENUMERATED {supported}          OPTIONAL,

    sp-CSI-IM                           ENUMERATED {supported}          OPTIONAL,

    tdd-MultiDL-UL-SwitchPerSlot        ENUMERATED {supported}          OPTIONAL,

    multipleCORESET                     ENUMERATED {supported}          OPTIONAL,

    ...

}

 

Phy-ParametersFR1 ::=   SEQUENCE {

    pdcchMonitoringSingleOccasion       ENUMERATED {supported}          OPTIONAL,

    scs-60kHz                           ENUMERATED {supported}          OPTIONAL,

    pdsch-256QAM-FR1                    ENUMERATED {supported}          OPTIONAL,

    pdsch-RE-MappingFR1                 ENUMERATED {n10, n20}           OPTIONAL,

    ...

}

 

Phy-ParametersFR2 ::=   SEQUENCE {

    calibrationGapPA                    ENUMERATED {supported}          OPTIONAL,

    pdsch-RE-MappingFR2                 ENUMERATED {n6, n20}            OPTIONAL,

    ...

}

 

RF-Parameters ::= SEQUENCE {

    supportedBandListNR                 SEQUENCE (SIZE (1..maxBands)) OF BandNR,

    supportedBandCombinationList        BandCombinationList              OPTIONAL,

    appliedFreqBandListFilter           FreqBandList                     OPTIONAL

}

 

BandNR ::=  SEQUENCE {

    bandNR                          FreqBandIndicatorNR,

    modifiedMPR-Behaviour           BIT STRING (SIZE (8))                       OPTIONAL,

    mimo-ParametersPerBand          MIMO-ParametersPerBand                      OPTIONAL,

    extendedCP                      ENUMERATED {supported}                      OPTIONAL,

    multipleTCI                     ENUMERATED {supported}                      OPTIONAL,

    bwp-WithoutRestriction          ENUMERATED {supported}                      OPTIONAL,

    bwp-SameNumerology                  ENUMERATED {upto2, upto4}               OPTIONAL,

    bwp-DiffNumerology                  ENUMERATED {upto4}                      OPTIONAL,

    crossCarrierSchedulingDL-SameSCS        ENUMERATED {supported}              OPTIONAL,

    crossCarrierSchedulingUL-SameSCS        ENUMERATED {supported}              OPTIONAL,

    pdsch-256QAM-FR2                ENUMERATED {supported}                      OPTIONAL,

    pusch-256QAM                    ENUMERATED {supported}                      OPTIONAL,

    ue-PowerClass                   ENUMERATED {pc2, pc3}                       OPTIONAL,

    rateMatchingLTE-CRS             ENUMERATED {supported}                      OPTIONAL,

    ...

}

 

MIMO-ParametersPerBand ::= SEQUENCE {

    tci-StatePDSCH                      SEQUENCE {

        maxNumberConfiguredTCIstatesPerCC   ENUMERATED {n4, n8, n16, n32, n64}   OPTIONAL,

        maxNumberActiveTCI-PerBWP           ENUMERATED {n1, n2, n4, n8}          OPTIONAL

    }                                                                            OPTIONAL,

    additionalActiveTCI-StatePDCCH      ENUMERATED {supported}                   OPTIONAL,

    pusch-TransCoherence                ENUMERATED {nonCoherent,

                                                    partialNonCoherent,

                                                    fullCoherent}                OPTIONAL,

    beamCorrespondence                  ENUMERATED {supported}                   OPTIONAL,

    periodicBeamReport                  ENUMERATED {supported}                   OPTIONAL,

    aperiodicBeamReport                 ENUMERATED {supported}                   OPTIONAL,

    sp-BeamReportPUCCH                  ENUMERATED {supported}                   OPTIONAL,

    sp-BeamReportPUSCH                  ENUMERATED {supported}                   OPTIONAL,

    beamManagementSSB-CSI-RS            BeamManagementSSB-CSI-RS                 OPTIONAL,

    maxNumberRxBeam                     INTEGER (2..8)                           OPTIONAL,

    maxNumberRxTxBeamSwitchDL           SEQUENCE {

        scs-15kHz                           ENUMERATED {n4, n7, n14}             OPTIONAL,

        scs-30kHz                           ENUMERATED {n4, n7, n14}             OPTIONAL,

        scs-60kHz                           ENUMERATED {n4, n7, n14}             OPTIONAL,

        scs-120kHz                          ENUMERATED {n4, n7, n14}             OPTIONAL,

        scs-240kHz                          ENUMERATED {n4, n7, n14}             OPTIONAL

    }                                                                            OPTIONAL,

    maxNumberNonGroupBeamReporting      ENUMERATED {n1, n2, n4}                  OPTIONAL,

    groupBeamReporting                  ENUMERATED {supported}                   OPTIONAL,

    uplinkBeamManagement                SEQUENCE {

        maxNumberSRS-ResourcePerSet         ENUMERATED {n2, n4, n8, n16, n32},

        maxNumberSRS-ResourceSet            INTEGER (1..8)

    }                                                                            OPTIONAL,

    maxNumberCSI-RS-BFR                 INTEGER (1..64)                          OPTIONAL,

    maxNumberSSB-BFR                    INTEGER (1..64)                          OPTIONAL,

    maxNumberCSI-RS-SSB-BFR             INTEGER (1..256)                         OPTIONAL,

    twoPortsPTRS-DL                     ENUMERATED {supported}                   OPTIONAL,

    twoPortsPTRS-UL                     ENUMERATED {supported}                   OPTIONAL,

    supportedSRS-Resources              SRS-Resources                            OPTIONAL,

    srs-TxSwitch                        SRS-TxSwitch                             OPTIONAL,

    maxNumberSimultaneousSRS-PerCC      INTEGER (1..4)                           OPTIONAL,

    beamReportTiming                    SEQUENCE {

        scs-15kHz                           ENUMERATED {sym2, sym4, sym8}        OPTIONAL,

        scs-30kHz                           ENUMERATED {sym4, sym8, sym14}       OPTIONAL,

        scs-60kHz                           ENUMERATED {sym8, sym14, sym28}      OPTIONAL,

        scs-120kHz                          ENUMERATED {sym14, sym28, sym56}     OPTIONAL

    }                                                                            OPTIONAL,

    ptrs-DensityRecommendationSetDL     SEQUENCE {

        scs-15kHz                           PTRS-DensityRecommendationDL         OPTIONAL,

        scs-30kHz                           PTRS-DensityRecommendationDL         OPTIONAL,

        scs-60kHz                           PTRS-DensityRecommendationDL         OPTIONAL,

        scs-120kHz                          PTRS-DensityRecommendationDL         OPTIONAL

    }                                                                            OPTIONAL,

    ptrs-DensityRecommendationSetUL     SEQUENCE {

        scs-15kHz                           PTRS-DensityRecommendationUL         OPTIONAL,

        scs-30kHz                           PTRS-DensityRecommendationUL         OPTIONAL,

        scs-60kHz                           PTRS-DensityRecommendationUL         OPTIONAL,

        scs-120kHz                          PTRS-DensityRecommendationUL         OPTIONAL

    }                                                                            OPTIONAL,

    csi-RS-ForTracking                      CSI-RS-ForTracking                   OPTIONAL,

    aperiodicTRS                            ENUMERATED {supported}              OPTIONAL,

    ...

}

 

BeamManagementSSB-CSI-RS ::=    SEQUENCE {

    maxNumberSSB-CSI-RS-ResourceOneTx   ENUMERATED {n8, n16, n32, n64},

    maxNumberSSB-CSI-RS-ResourceTwoTx   ENUMERATED {n0, n4, n8, n16, n32, n64},

    supportedCSI-RS-Density             ENUMERATED {one, three, oneAndThree}

}

 

CSI-RS-ForTracking ::=              SEQUENCE {

    burstLength                         INTEGER (1..2),

    maxSimultaneousResourceSetsPerCC    INTEGER (1..8),

    maxConfiguredResourceSetsPerCC      INTEGER (1..64),

    maxConfiguredResourceSetsAllCC      INTEGER (1..128)

}

 

PTRS-DensityRecommendationDL ::=    SEQUENCE {

    frequencyDensity1                   INTEGER (1..276),

    frequencyDensity2                   INTEGER (1..276),

    timeDensity1                        INTEGER (0..29),

    timeDensity2                        INTEGER (0..29),

    timeDensity3                        INTEGER (0..29)

}

 

PTRS-DensityRecommendationUL ::=    SEQUENCE {

    frequencyDensity1                   INTEGER (1..276),

    frequencyDensity2                   INTEGER (1..276),

    timeDensity1                        INTEGER (0..29),

    timeDensity2                        INTEGER (0..29),

    timeDensity3                        INTEGER (0..29),

    sampleDensity1                      INTEGER (1..276),

    sampleDensity2                      INTEGER (1..276),

    sampleDensity3                      INTEGER (1..276),

    sampleDensity4                      INTEGER (1..276),

    sampleDensity5                      INTEGER (1..276)

}

 

SRS-Resources ::=   SEQUENCE {

    maxNumberAperiodicSRS-PerBWP                    ENUMERATED {n1, n2, n4, n8, n16},

    maxNumberAperiodicSRS-PerBWP-PerSlot            INTEGER (1..6),

    maxNumberPeriodicSRS-PerBWP                     ENUMERATED {n1, n2, n4, n8, n16},

    maxNumberPeriodicSRS-PerBWP-PerSlot             INTEGER (1..6),

    maxNumberSemiPersitentSRS-PerBWP                ENUMERATED {n1, n2, n4, n8, n16},

    maxNumberSP-SRS-PerBWP-PerSlot                  INTEGER (1..6),

    maxNumberSRS-Ports-PerResource                  ENUMERATED {n1, n2, n4}

}

 

SRS-TxSwitch ::=    SEQUENCE {

    supportedSRS-TxPortSwitch           ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal},

    txSwitchImpactToRx                  ENUMERATED {true}  OPTIONAL

}

 

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,

    ...

}

 

RLC-Parameters ::= SEQUENCE {

    am-WithShortSN                  ENUMERATED {supported}  OPTIONAL,

    um-WithShortSN                  ENUMERATED {supported}  OPTIONAL,

    um-WIthLongSN                   ENUMERATED {supported}  OPTIONAL,

    ...

}

 

MAC-Parameters ::= SEQUENCE {

    mac-ParametersCommon            MAC-ParametersCommon    OPTIONAL,

    mac-ParametersXDD-Diff          MAC-ParametersXDD-Diff  OPTIONAL

}

 

MAC-ParametersCommon ::=    SEQUENCE {

    lcp-Restriction                 ENUMERATED {supported}  OPTIONAL,

    pucch-SpatialRelInfoMAC-CE      ENUMERATED {supported}  OPTIONAL,

    ...

}

 

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,

    ...

}

 

MeasAndMobParameters ::= SEQUENCE {

    measAndMobParametersCommon      MeasAndMobParametersCommon OPTIONAL,

    measAndMobParametersXDD-Diff    MeasAndMobParametersXDD-Diff OPTIONAL,

    measAndMobParametersFRX-Diff    MeasAndMobParametersFRX-Diff OPTIONAL

}

 

MeasAndMobParametersCommon ::= SEQUENCE {

    supportedGapPattern            BIT STRING (SIZE (22)) OPTIONAL,

    ssb-RLM                        ENUMERATED {supported} OPTIONAL,

    ssb-AndCSI-RS-RLM              ENUMERATED {supported} OPTIONAL,

    ...,

    [[

        eventB-MeasAndReport       ENUMERATED {supported} OPTIONAL,

        handoverFDD-TDD            ENUMERATED {supported} OPTIONAL,

        eutra-CGI-Reporting        ENUMERATED {supported} OPTIONAL,

        nr-CGI-Reporting           ENUMERATED {supported} OPTIONAL

    ]],

    [[

       independentGapConfig        ENUMERATED {supported} OPTIONAL,

       periodicEUTRA-MeasAndReport ENUMERATED {supported} OPTIONAL,

       handoverFR1-FR2             ENUMERATED {supported} OPTIONAL,

       maxNumberCSI-RS-RRM-RS-SINR ENUMERATED {n4, n8, n16, n32, n64, n96} OPTIONAL

    ]],

    [[

       nr-CGI-Reporting-ENDC       ENUMERATED {supported} OPTIONAL

    ]]

}

 

MeasAndMobParametersXDD-Diff ::= SEQUENCE {

    intraAndInterF-MeasAndReport  ENUMERATED {supported} OPTIONAL,

    eventA-MeasAndReport          ENUMERATED {supported} OPTIONAL,

    ...,

    [[

       handoverInterF             ENUMERATED {supported} OPTIONAL,

       handoverLTE                ENUMERATED {supported} OPTIONAL,

       handover-eLTE              ENUMERATED {supported} OPTIONAL

    ]]

}

 

MeasAndMobParametersFRX-Diff ::= SEQUENCE {

    ss-SINR-Meas                            ENUMERATED {supported} OPTIONAL,

    csi-RSRP-AndRSRQ-MeasWithSSB            ENUMERATED {supported} OPTIONAL,

    csi-RSRP-AndRSRQ-MeasWithoutSSB         ENUMERATED {supported} OPTIONAL,

    csi-SINR-Meas                           ENUMERATED {supported} OPTIONAL,

    csi-RS-RLM                              ENUMERATED {supported} OPTIONAL,

    ...,

    [[

       handoverInterF                       ENUMERATED {supported} OPTIONAL,

       handoverLTE                          ENUMERATED {supported} OPTIONAL,

       handover-eLTE                        ENUMERATED {supported} OPTIONAL

    ]],

    [[

       maxNumberResource-CSI-RS-RLM         ENUMERATED {n2, n4, n6, n8} OPTIONAL

    ]],

    [[

       simultaneousRxDataSSB-DiffNumerology ENUMERATED {supported} OPTIONAL

    ]]

}

 

MeasParameters ::= SEQUENCE {

    measParametersCommon            MeasParametersCommon        OPTIONAL,

    measParametersXDD-Diff          MeasParametersXDD-Diff      OPTIONAL,

    measParametersFRX-Diff          MeasParametersFRX-Diff      OPTIONAL

}

 

MeasParametersCommon ::= SEQUENCE {

    supportedGapPattern             BIT STRING (SIZE (22))          OPTIONAL,

    ...

}

 

MeasParametersXDD-Diff ::=  SEQUENCE {

    intraAndInterF-MeasAndReport    ENUMERATED {supported}  OPTIONAL,

    eventA-MeasAndReport            ENUMERATED {supported}  OPTIONAL,

    ...

}

 

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

    ...

}

Examples  of UE Capability:

     

    Example 1 : Click here to get the example of full Capability Information for ENDC/NSA.

                    This is from a sample log from Amarisoft

     

    Example 2 : Click hereto get the example of full Capability Information for SA.

                    This is from a sample log from Amarisoft

     

    Example 3 : An example of NSA band combination from Example 1.

      rf-ParametersMRDC {

        supportedBandCombinationList {

        {

          bandList {

          eutra: {

            bandEUTRA 8, ca-BandwidthClassDL-EUTRA a,

            ca-BandwidthClassUL-EUTRA a

          },

          nr: {

            bandNR 78,

            ca-BandwidthClassDL-NR a,

            ca-BandwidthClassUL-NR a

          }

          },

          featureSetCombination 0,

          mrdc-Parameters {

            simultaneousRxTxInterBandENDC supported,

            asyncIntraBandENDC supported

          },

          supportedBandwidthCombinationSet '0'B

        },

    Example 4 : An example of supported bandwidth in SA.

      channelBWs-DL-v1530 fr1: {

        scs-15kHz '0000000000'B,

        scs-30kHz '0000001111'B,=> support 40,50,60,80 and 100 (max BW)

        scs-60kHz '0000000000'B

      },

      channelBWs-UL-v1530 fr1: {

        scs-15kHz '0000000000'B,

        scs-30kHz '0000001111'B,=> support 40,50,60,80 and 100 (max BW) s

        cs-60kHz '0000000000'B

      }

      38.306 specifies the meaning of this IE as follows :

       

      channelBWs-DL/channelBWs-UL :

      Indicates for each subcarrier spacing whether the UE supports channel bandwidthslower than the maximum channel bandwidth as defined in TS 38.101-1  and TS 38.101-2 . If this parameter is not included, it mean that the UE supports the channel bandwidths among [5, 10, 15, 20, 25, 30, 40, 50, 60, 80, 100] in FR1 and [50, 100, 200] in FR2.

       

      For FR1, the bits starting from the leading / leftmost bit indicate 5, 10, 15, 20, 25, 30, 40, 50, 60 and 80MHz. For FR2, the bits starting from the leading / leftmost bit indicate 50, 100 and 200MHz.

       

      NOTE : it is assumed that the maximum bandwidth (in most case 100Mhz in FR1 SCS30, 50 Mhz in FR1 SCS 15, 400 Mhz FR2) is supported by default.

       

     

    Example 5 : DMRS Type / pucch format, frequency hopping / multiple CORESET

       

      phy-ParametersFRX-Diff {

        twoFL-DMRS '10'B, supported

        DMRS-TypeDL type1,

        supportedDMRS-TypeUL type1,

        pucch-F2-WithFH supported,

        pucch-F3-WithFH supported,

        pucch-F1-3-4WithoutFH notSupported,

        almostContiguousCP-OFDM-UL supported,

        multipleCORESET supported,

        mux-SR-HARQ-ACK-CSI-PUCCH-OncePerSlot { sameSymbol supported },

        oneFL-DMRS-TwoAdditionalDMRS-UL supported

      },

       

      38.306 specifies the meaning of this IE as follows :

       

      twoFL-DMRS (MappingTypeB, DMRS length = 2)

      Defines whether the UE supports DM-RS pattern for DL reception and/or UL transmission with 2 symbols front-loaded DM-RS without additional DM-RS symbols.

       

      twoFL-DMRS-TwoAdditionalDMRS

      Defines whether the UE supports DM-RS pattern for DL reception and/or UL transmission with 2 symbols front-loaded DM-RS with one additional 2 symbols DMRS.

       

      NOTE : front-loaded DMRS mean mappingType B

       

      featureSetsDownlink-v1540 {

        {

          oneFL-DMRS-TwoAdditionalDMRS-DL supported,

          twoFL-DMRS-TwoAdditionalDMRS-DL supported,

          oneFL-DMRS-ThreeAdditionalDMRS-DL supported

        }

      }

       

    Example 6 : HARQ, PUSCH RaType, PDSCH MappingType, Number of SearchSpace

       

      phy-ParametersCommon {

        dynamicHARQ-ACK-Codebook supported,

        semiStaticHARQ-ACK-Codebook supported,

        ra-Type0-PUSCH supported,

        dynamicSwitchRA-Type0-1-PDSCH supported,

        dynamicSwitchRA-Type0-1-PUSCH supported,

        pdsch-MappingTypeA supported,

        rateMatchingResrcSetSemi-Static supported,

        rateMatchingResrcSetDynamic supported,

        bwp-SwitchingDelay type1,

        maxNumberSearchSpaces n10,

        rateMatchingCtrlResrcSetDynamic supported,

        maxLayersMIMO-Indication supported

      },

       

    Example 7 : Subcarrier Spacing, Max Bandwidth, Modulation Scheme, MIMO layers

       

      featureSets {

        featureSetsDownlink {

          {

            featureSetListPerDownlinkCC { 1 },

            type1-3-CSS supported

          }

        },

        featureSetsDownlinkPerCC {

          {

            supportedSubcarrierSpacingDL kHz30,

            supportedBandwidthDL fr1: mhz100,

            maxNumberMIMO-LayersPDSCH fourLayers,

            supportedModulationOrderDL qam256

          }

        },

        featureSetsUplinkPerCC {

          {

            supportedSubcarrierSpacingUL kHz30,

            supportedBandwidthUL fr1: mhz100,

            mimo-CB-PUSCH {

            maxNumberMIMO-LayersCB-PUSCH twoLayers,

            maxNumberSRS-ResourcePerSet 1

          },

        supportedModulationOrderUL qam256

      },

       

    Example 8 : SRS

       

      featureSetsUplink {

        { .....

         supportedSRS-Resources {

           maxNumberAperiodicSRS-PerBWP n1,

           maxNumberAperiodicSRS-PerBWP-PerSlot 1,

           maxNumberPeriodicSRS-PerBWP n1,

           maxNumberPeriodicSRS-PerBWP-PerSlot 1,

           maxNumberSemiPersitentSRS-PerBWP n1,

           maxNumberSP-SRS-PerBWP-PerSlot 1,

           maxNumberSRS-Ports-PerResource n1

         },

      featureSetsUplinkPerCC {

         { ...

           mimo-CB-PUSCH

            {

              maxNumberMIMO-LayersCB-PUSCH oneLayer,

              maxNumberSRS-ResourcePerSet 1

             },

      ...

       

      38.306 defines the meaning of IEs as follows :

       

      maxNumberSRS-ResourcePerSet : the maximum number of SRS resources per SRS resource set configured for codebook based transmission to the UE.

 

    Example 9 :Max Number of BWP and Subcarrier spacing for the BWPs

       : Following example says the UE support max 4 BWPs in n78 and the subcarrier spacing for all the BWPs should be same.

          rf-Parameters {

              supportedBandListNR {

                {                

                {

                  bandNR 78,

                  ...

                  bwp-SameNumerology upto4,

                  ...

                },

 

            phy-Parameters {

              phy-ParametersCommon {

                ...

                bwp-SwitchingDelay type1,

                ...

              },

 

            featureSetsDownlink {

              {

                  ...

                  pdsch-ProcessingType1-DifferentTB-PerSlot {

                    scs-15kHz upto2,

                    scs-30kHz upto2,

                    scs-60kHz upto2,

                    scs-120kHz upto2

                  },

               ...

 

         Example 11 : SRB3

 

            generalParametersMRDC {

              srb3 supported

            },

            fdd-Add-UE-MRDC-Capabilities {

              generalParametersMRDC-XDD-Diff {

                srb3 supported

              }

            },

            tdd-Add-UE-MRDC-Capabilities {

              measAndMobParametersMRDC-XDD-Diff {

                sftd-MeasPSCell supported,

                sftd-MeasNR-Cell supported

              },

              generalParametersMRDC-XDD-Diff {

                srb3 supported

              }

            },

 

       Example 12 : Uplink MIMO

 

             featureSetsUplinkPerCC {

                {

                  supportedSubcarrierSpacingUL kHz30,

                  supportedBandwidthUL fr1: mhz100,

                  channelBW-90mhz supported,

                  mimo-CB-PUSCH {

                    maxNumberMIMO-LayersCB-PUSCH oneLayer,// MIMO not supported

                    maxNumberSRS-ResourcePerSet 1

                  },

                  maxNumberMIMO-LayersNonCB-PUSCH oneLayer,

                  supportedModulationOrderUL qam64

                }

 

        featureSetsUplinkPerCC {

        {

           supportedSubcarrierSpacingUL kHz30,

           supportedBandwidthUL fr1: mhz20,

           mimo-CB-PUSCH {

              maxNumberMIMO-LayersCB-PUSCHtwoLayers,// MIMO supported

              maxNumberSRS-ResourcePerSet 1

            },

              supportedModulationOrderUL qam256

           }

        },

              NOTE : Refer to maxNumberMIMO-LayersCB-PUSCH in 38.306

 

        Example 13 : SRS Antenna Switching

        supportedBandCombinationList-v1540 {

          {

            bandList-v1540 {

              {

                srs-TxSwitch {

                  supportedSRS-TxPortSwitch t1r2

                }

              }

            },

            ca-ParametersNR-v1540 {

              csi-RS-IM-ReceptionForFeedbackPerBandComb {

                maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC 8,

                totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC 64

              },

              simultaneousCSI-ReportsAllCC 8

            }

          },

          ....

         }

 

              Example 14 : SA Supportablity

        There is no direct indicator for SA support in UE capability Information (as far as I know). You may check the SA supportability using a NAS message as shown below. You can find this information from Attach Request in LTE and RegistrationRequest in NR SA

         

        UE network capability:

          0xf0 (EEA0=1, 128-EEA1=1, 128-EEA2=1, 128-EEA3=1, EEA4=0, EEA5=0, EEA6=0, EEA7=0)

          0x70 (EIA0=0, 128-EIA1=1, 128-EIA2=1, 128-EIA3=1, EIA4=0, EIA5=0, EIA6=0, EIA7=0)

          0xc0 (UEA0=1, UEA1=1, UEA2=0, UEA3=0, UEA4=0, UEA5=0, UEA6=0, UEA7=0)

          0x40 (UCS2=0, UIA1=1, UIA2=0, UIA3=0, UIA4=0, UIA5=0, UIA6=0, UIA7=0)

          0x19 (ProSe-dd=0, ProSe=0, H.245-ASH=0, ACC-CSFB=1, LPP=1, LCS=0, 1xSRVCC=0, NF=1)

          0x80 (ePCO=1, HC-CP CIoT=0, ERw/oPDN=0, S1-U data=0, UP CIoT=0, CP CIoT=0, ProSe-relay=0, ProSe-dc=0)

          0xb0 (15 bearers=1, SGC=0,N1mode=1, DCNR=1, CP backoff=0, RestrictEC=0, V2X PC5=0, multipleDRB=0)

         

        Or you may indirectly confirm on SA supportability from LTE UE capability as below

         

        irat-ParametersNR-v1540 {

         eutra-EPC-HO-ToNR-TDD-FR1-r15 supported,

         sa-NR-r15 supported,

         supportedBandListNR-SA-r15 {

           {

              bandNR-r15 41

           },

           {

              bandNR-r15 78

           }

         }

         

 

                 Example 15 : NSA Supportability - NAS Capability

        For NSA, there should be two major feature should be supported. One is lower layer band combination and the other one is higher layer dual connectivity. Higher layer dual connectivity (i.e, dual connectivity with NR) is notified by a NAS message with a parameter calledDCNR. This feature is configured in UE network capability in Attach Request (in case of LTE) or Registration Request (in case of NR).

        NOTE : This is for NSA Supportability with NAS point of view. For the lower layer capability of NSA Supportability, Refer to Example 16.

         

        UE network capability:

          0xf0 (EEA0=1, 128-EEA1=1, 128-EEA2=1, 128-EEA3=1, EEA4=0, EEA5=0, EEA6=0, EEA7=0)

          0x70 (EIA0=0, 128-EIA1=1, 128-EIA2=1, 128-EIA3=1, EIA4=0, EIA5=0, EIA6=0, EIA7=0)

          0xc0 (UEA0=1, UEA1=1, UEA2=0, UEA3=0, UEA4=0, UEA5=0, UEA6=0, UEA7=0)

          0x40 (UCS2=0, UIA1=1, UIA2=0, UIA3=0, UIA4=0, UIA5=0, UIA6=0, UIA7=0)

          0x19 (ProSe-dd=0, ProSe=0, H.245-ASH=0, ACC-CSFB=1, LPP=1, LCS=0, 1xSRVCC=0, NF=1)

          0x80 (ePCO=1, HC-CP CIoT=0, ERw/oPDN=0, S1-U data=0, UP CIoT=0, CP CIoT=0, ProSe-relay=0, ProSe-dc=0)

          0xb0 (15 bearers=1, SGC=0, N1mode=1,DCNR=1, CP backoff=0, RestrictEC=0, V2X PC5=0, multipleDRB=0)

 

      Example 16 : NSA Supportability - RRC Capability

         

        For RRC and Lower Layer Capability of NSA, UE should notify something as shown below.

        {

          rat-Type eutra-nr,

          ueCapabilityRAT-Container {

            measAndMobParametersMRDC {

              measAndMobParametersMRDC-FRX-Diff {

                simultaneousRxDataSSB-DiffNumerology supported

              }

            },

            rf-ParametersMRDC {

              supportedBandCombinationList {

                {

                  bandList {

                    eutra: {

                      bandEUTRA 1,

                      ca-BandwidthClassDL-EUTRA a,

                      ca-BandwidthClassUL-EUTRA a

                    },

                    nr: {

                      bandNR 78,

                      ca-BandwidthClassDL-NR a,

                      ca-BandwidthClassUL-NR a

                    }

                  },

                  featureSetCombination 0,

                  mrdc-Parameters {

                    dynamicPowerSharingENDC supported,

                    simultaneousRxTxInterBandENDC supported

                  },

                  powerClass-v1530 pc2

                }

              },

              appliedFreqBandListFilter {

                bandInformationEUTRA: {

                  bandEUTRA 1

                },

                bandInformationNR: {

                  bandNR 78

                }

              },

              supportedBandCombinationList-v1540 {

                {

                  bandList-v1540 {

                    {

                      srs-TxSwitch {

                        supportedSRS-TxPortSwitch notSupported

                      }

                    },

                    {

                      srs-TxSwitch {

                        supportedSRS-TxPortSwitch t1r2

                      }

                    }

                  },

                  ca-ParametersNR-v1540 {

                    csi-RS-IM-ReceptionForFeedbackPerBandComb {

                      maxNumberSimultaneousNZP-CSI-RS-ActBWP-AllCC 8,

                      totalNumberPortsSimultaneousNZP-CSI-RS-ActBWP-AllCC 64

                    },

                    simultaneousCSI-ReportsAllCC 8

                  }

                }

              }

            },

            generalParametersMRDC {

              splitDRB-withUL-Both-MCG-SCG supported

            },

            featureSetCombinations {

              {

                {

                  eutra: {

                    downlinkSetEUTRA 3,

                    uplinkSetEUTRA 1

                  }

                },

                {

                  nr: {

                    downlinkSetNR 1,

                    uplinkSetNR 1

                  }

                }

              }

            }

          }

        }

 

    Example 17 : Parameters determining Ideal Max Throughput

       

      This is pretty complicated story and explained in a separate note here.

How to handle the ever increasing size of UE capability Information ? - RRC Segmentation

As far as I recall, I have seen many issues even from LTE only cases in later 3GPP release in terms of processing UE capability information in both UE and network (or network simulator) side.

Sometimes UE fails to generate the well structured UE capability information with huge set of features, especially when the number of carrier aggregation gets increased. And problems heppens in network side in similar situation failing to decode properly the lengthy and complicated UE capability Information message.

This issue has become even more serious in NR (both SA and NSA). NR UE capability features in NR is much more complicated than LTE. When the number of aggregated carrier gets increases, the size of the UE capability Information message exceeds the maximum size of RRC signaling message.

To workaround this situation, a new mechanism of RRC signaling is introduced. The new mechanism is called 'Segmented RRC Message'. For further details of this mechanism, I would like to share what Anupam Shrivastava kindly contributed as below.

With the introduction of new UE-capa every release the size of RRC is increasing( below study on UE-capa IE introduction with different 3gpp releases from Rel-15.1 till Rel-17) and in scenarios of CA, HO there are situations when the RRC size will exceed the limit for 9k bytes as explained above for the NR, to overcome this situation we need to fragment/segment the capa into smaller chunks for which Segmentation is introduced, though it comes with a cost of additional delay in UECapabilityinformation received by gNB , as gNB need extra time to receive all segments and then reassemble them.

 

The maximum supported size of a PDCP SDU is 9000 bytes. The maximum supported size of a PDCP Control PDU is 9000 bytes. So the UE capability Information with size greater than 9000 byte should be split into multiple rrc messages and then combined later.

The RRC message carrying each of the segment is as follows :

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

}

Example 01 >

Following is an example log from Amarisoft Callbox (gNB) and UEsim.

 

[1] First Segment

{

  message messageClassExtension: c2: ulDedicatedMessageSegment-r16: {

    criticalExtensions ulDedicatedMessageSegment-r16: {

      segmentNumber-r16 0,

      rrc-MessageSegmentContainer-r16 '48821EB0694CE8100C0241E0601C0660140702D...'H,

      rrc-MessageSegmentType-r16 notLastSegment

    }

  }

}

 

[2] Second / Last Segment

{

  message messageClassExtension: c2: ulDedicatedMessageSegment-r16: {

    criticalExtensions ulDedicatedMessageSegment-r16: {

      segmentNumber-r16 1,

      rrc-MessageSegmentContainer-r16 '00A471434003800780000...0'H,

      rrc-MessageSegmentType-r16 lastSegment

    }

  }

}

 

[3] Recombined Message

{

  message c1: ueCapabilityInformation: {

    rrc-TransactionIdentifier 0,

    criticalExtensions ueCapabilityInformation: {

      ue-CapabilityRAT-ContainerList {

        ....

            },

            nonCriticalExtension {

              nonCriticalExtension {

                ims-Parameters {

                  ims-ParametersFRX-Diff {

                    voiceOverNR supported

                  }

                },

                nonCriticalExtension {

                  nonCriticalExtension {

                    receivedFilters {

                      nonCriticalExtension {

                        rrc-SegAllowed-r16 enabled

                      }

                    },

                    nonCriticalExtension {

                      nonCriticalExtension {

                        dl-DedicatedMessageSegmentation-r16 supported,

                        powSav-Parameters-r16 {

                          powSav-ParametersCommon-r16 {

                            releasePreference-r16 supported

                          }

                        },

                        nonCriticalExtension {

                          nonCriticalExtension {

                            nonCriticalExtension {

                              ul-RRC-Segmentation-r16 supported

                            }

Reference

[1]