|
|||||
UE Capability in DetailThe 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 - NRFollowings 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 bandmessage 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 - NRFollowing 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:
This is from a sample log from Amarisoft
This is from a sample log from Amarisoft
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 },
channelBWs-DL-v1530 fr1: { scs-15kHz '0000000000'B, scs-30kHz '0000001111'B, scs-60kHz '0000000000'B }, channelBWs-UL-v1530 fr1: { scs-15kHz '0000000000'B, scs-30kHz '0000001111'B, cs-60kHz '0000000000'B } 38.306 specifies the meaning of this IE as follows :
Indicates for each subcarrier spacing whether the UE supports channel bandwidths
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.
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 :
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.
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.
featureSetsDownlink-v1540 { { oneFL-DMRS-TwoAdditionalDMRS-DL supported, twoFL-DMRS-TwoAdditionalDMRS-DL supported, oneFL-DMRS-ThreeAdditionalDMRS-DL supported } }
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 },
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 },
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 :
: 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 }, ...
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 } },
featureSetsUplinkPerCC { { supportedSubcarrierSpacingUL kHz30, supportedBandwidthUL fr1: mhz100, channelBW-90mhz supported, mimo-CB-PUSCH { maxNumberMIMO-LayersCB-PUSCH maxNumberSRS-ResourcePerSet 1 }, maxNumberMIMO-LayersNonCB-PUSCH supportedModulationOrderUL qam64 }
featureSetsUplinkPerCC { { supportedSubcarrierSpacingUL kHz30, supportedBandwidthUL fr1: mhz20, mimo-CB-PUSCH { maxNumberMIMO-LayersCB-PUSCH maxNumberSRS-ResourcePerSet 1 }, supportedModulationOrderUL qam256 } },
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 } }, .... }
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,
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, { bandNR-r15 41 }, { bandNR-r15 78 } }
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 called 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,
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 } } } } } }
This is pretty complicated story and explained in a separate note here. How to handle the ever increasing size of UE capability Information ? - RRC SegmentationAs 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.
{ message messageClassExtension: c2: ulDedicatedMessageSegment-r16: { criticalExtensions ulDedicatedMessageSegment-r16: { rrc-MessageSegmentContainer-r16 '48821EB0694CE8100C0241E0601C0660140702D...'H, } } }
{ message messageClassExtension: c2: ulDedicatedMessageSegment-r16: { criticalExtensions ulDedicatedMessageSegment-r16: { rrc-MessageSegmentContainer-r16 '00A471434003800780000...0'H, } } }
{ 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]
|
|||||