NR 6Rx bands #7

Closed
opened 2025-07-27 10:09:40 +02:00 by rtommy · 8 comments
rtommy commented 2025-07-27 10:09:40 +02:00 (Migrated from github.com)

According to the source code NR 6Rx bands means components with MIMO DL value 6.

[...nrTddBands, ...nrFddBands].forEach(band => {
    const nr6RxComponent = endcItem.componentsNr && endcItem.componentsNr.find(component => component.band === band && component.mimoDl && component.mimoDl.value === 6);
    f (nr6RxComponent) {
        nr6RxBands.add(band);
        foundNr6Rx = true;
    }
});

However, MIMO DL values can be 2, 4 or 8 only.

Wireshark packet-nr-rrc.c:

static const value_string nr_rrc_MIMO_LayersDL_vals[] = {
  {   0, "twoLayers" },
  {   1, "fourLayers" },
  {   2, "eightLayers" },
  { 0, NULL }
};

Wireshark NR-RRC-Definitions.asn:

-- TAG-MIMO-LAYERS-START

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

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

-- TAG-MIMO-LAYERS-STOP

Where is this feature coming from?

According to the source code `NR 6Rx bands` means components with MIMO DL value 6. ```js [...nrTddBands, ...nrFddBands].forEach(band => { const nr6RxComponent = endcItem.componentsNr && endcItem.componentsNr.find(component => component.band === band && component.mimoDl && component.mimoDl.value === 6); f (nr6RxComponent) { nr6RxBands.add(band); foundNr6Rx = true; } }); ``` However, MIMO DL values can be 2, 4 or 8 only. Wireshark packet-nr-rrc.c: ```c static const value_string nr_rrc_MIMO_LayersDL_vals[] = { { 0, "twoLayers" }, { 1, "fourLayers" }, { 2, "eightLayers" }, { 0, NULL } }; ``` Wireshark NR-RRC-Definitions.asn: ```asn1 -- TAG-MIMO-LAYERS-START MIMO-LayersDL ::= ENUMERATED {twoLayers, fourLayers, eightLayers} MIMO-LayersUL ::= ENUMERATED {oneLayer, twoLayers, fourLayers} -- TAG-MIMO-LAYERS-STOP ``` Where is this feature coming from?
high3eam commented 2025-07-28 07:49:40 +02:00 (Migrated from github.com)

@rtommy
You're correct. Up to 3GPP Rel. 18, 6 Layers are not supported, however 6 Rx with up to 4L is supported.
See this document from Qualcomm, where they examine the usecases for 6Rx (with 4L and 6L).

[...]6Rx smartphones can enable up to 6 layers on DL in the future 3GPP release 19[...]

This is why the features parser checks for max. supported Rx, not actual layers.

@rtommy You're correct. Up to 3GPP Rel. 18, 6 Layers are not supported, however 6 Rx with up to 4L is supported. [See this document from Qualcomm, where they examine the usecases for 6Rx (with 4L and 6L).](https://www.qualcomm.com/content/dam/qcomm-martech/dm-assets/documents/5G-Whitepaper-6Rx_Smartphone_in_5G-NR_FR1_TDD-Qualcomm.pdf) > [...]6Rx smartphones can enable up to 6 layers on DL in the future 3GPP release 19[...] This is why the features parser checks for max. supported Rx, not actual layers.
rtommy commented 2025-07-28 08:18:17 +02:00 (Migrated from github.com)

I followed the current implementation logic and code. According to that, MIMO DL value cannot be 6.
My interpretation is different from yours.

component.mimoDl.value comes from maxNumberMIMO-LayersPDSCH in getNRFeatureSet function. It cannot have value 6, only 2/4/8.

Later, in applyNrFeaturesPerCC the feature's uplink and downlink MIMO value is coped into the component's mimo values here and here.

Finally, in updateNrBandsCapabilities the band inherits these from the component here.

3GPP rel 19 is not even implemented anywhere, Wireshark is also on 18.6.0 so I think i't s bit early to add a feature from future release.

I followed the current implementation logic and code. According to that, MIMO DL value cannot be 6. My interpretation is different from yours. `component.mimoDl.value` comes from [maxNumberMIMO-LayersPDSCH](https://github.com/handymenny/uecapabilityparser/blob/4a9292938c3ad73f5543212563ecc496472fa826/src/main/java/it/smartphonecombo/uecapabilityparser/importer/ImportCapabilityInformation.kt#L1243) in `getNRFeatureSet` function. It cannot have value 6, only 2/4/8. Later, in `applyNrFeaturesPerCC` the feature's uplink and downlink MIMO value is coped into the component's mimo values [here](https://github.com/handymenny/uecapabilityparser/blob/4a9292938c3ad73f5543212563ecc496472fa826/src/main/java/it/smartphonecombo/uecapabilityparser/importer/ImportCapabilitySharedHelper.kt#L129) and [here](https://github.com/handymenny/uecapabilityparser/blob/4a9292938c3ad73f5543212563ecc496472fa826/src/main/java/it/smartphonecombo/uecapabilityparser/importer/ImportCapabilitySharedHelper.kt#L139). Finally, in `updateNrBandsCapabilities` the band inherits these from the component [here](https://github.com/handymenny/uecapabilityparser/blob/4a9292938c3ad73f5543212563ecc496472fa826/src/main/java/it/smartphonecombo/uecapabilityparser/importer/ImportCapabilityInformation.kt#L523). 3GPP rel 19 is not even implemented anywhere, Wireshark is also on 18.6.0 so I think i't s bit early to add a feature from future release.
handymenny commented 2025-07-31 18:06:12 +02:00 (Migrated from github.com)

I followed the current implementation logic and code. According to that, MIMO DL value cannot be 6.

Hi, Mimo 6rx is supported for proprietary capability formats like 0xB826, ue capability code doesn't support that (as you pointed out it will be available in future 3gpp releases)

> I followed the current implementation logic and code. According to that, MIMO DL value cannot be 6. Hi, Mimo 6rx is supported for proprietary capability formats like 0xB826, ue capability code doesn't support that (as you pointed out it will be available in future 3gpp releases)
rtommy commented 2025-08-01 03:41:10 +02:00 (Migrated from github.com)

Okay so this means to me that at the moment there does not seem to be any valuable reason to have Mimo 6Rx in the feature list.

Okay so this means to me that at the moment there does not seem to be any valuable reason to have Mimo 6Rx in the feature list.
handymenny commented 2025-08-01 08:57:01 +02:00 (Migrated from github.com)

Okay so this means to me that at the moment there does not seem to be any valuable reason to have Mimo 6Rx in the feature list.

Some devices support it even if it's out of spec, it isn't used to transmit 6 streams, which would be impossible without 3GPP support, but it's used to increase the probability of getting an high rank

> Okay so this means to me that at the moment there does not seem to be any valuable reason to have Mimo 6Rx in the feature list. Some devices support it even if it's out of spec, it isn't used to transmit 6 streams, which would be impossible without 3GPP support, but it's used to increase the probability of getting an high rank
rtommy commented 2025-08-08 09:02:26 +02:00 (Migrated from github.com)

So we basically established that the current uecapparser implementation does not support 6Rx hence, why do you keep it in your code then? as of now, 100% of every uploaded message will have "No NR 6Rx support" for sure.

So we basically established that the current uecapparser implementation does not support 6Rx hence, why do you keep it in your code then? as of now, 100% of every uploaded message will have "No NR 6Rx support" for sure.
high3eam commented 2025-08-08 09:33:33 +02:00 (Migrated from github.com)

@rtommy
Tbh, not really sure at this point what exactly you mean, but check this logs for example:
Xiaomi 15 Pro CN.
This device supports 6 receiving antennas for 4L and more stable Rank 3/4 usage on some FR1 NR bands

@rtommy Tbh, not really sure at this point what exactly you mean, but check this logs for example: [Xiaomi 15 Pro CN](https://uecapability.smartphonecombo.it/view/multi/?id=acf20e0c-24c5-4b5e-8b14-cb8d707342f3). This device supports 6 receiving antennas for 4L and more stable Rank 3/4 usage on some FR1 NR bands
rtommy commented 2025-08-08 10:41:14 +02:00 (Migrated from github.com)

You are right. I was under the impression that I would not see value 6 like "NR max MIMO Rx: 6 Rx", because none of the bands would have/support it. But the example you shared shows otherwise. 😄
Okay, it was my confusion then, thank you for clarifying.

You are right. I was under the impression that I would not see value 6 like "NR max MIMO Rx: 6 Rx", because none of the bands would have/support it. But the example you shared shows otherwise. 😄 Okay, it was my confusion then, thank you for clarifying.
Sign in to join this conversation.