For 5G NSA, the data flow will be splited into LTE and NR. Then to know where to find how data split is configured is quite important for me when I do UE log analysis. When UE has low throughout issue for 5G NSA, the first thing I would do is to make sure Network has the same setting as I anticipate before I dig into details for UE logs. As 5G is new to operators, they may have different setting for their network before they find their optimal parameter setting… To be pedantic, there must be an objective function whenever you talk about optimization :)


My current understanding is that:
1. For DL, the data split is managed by the Network (eNB), thus there is no L3 message regarding DL data split.
2. For UL, as UE is responsible for transmitting the UL data, the Network (eNB) has to tell UE how to do UL data split via L3 signaling.

UE Capablility

First thing first, you have to make sure the UE you have does support UL data split :)

TS38.331 - UE-MRDC-Capability

The IE UE-MRDC-Capability is used to convey the UE Radio Access Capability Parameters for MR-DC, see TS 38.306 (NR; User Equipment (UE) radio access capabilities)


  – ASN1START
  – TAG-UE-MRDC-CAPABILITY-START

  UE-MRDC-Capability ::= SEQUENCE {
      measAndMobParametersMRDC MeasAndMobParametersMRDC OPTIONAL,
      phy-ParametersMRDC-v1530 Phy-ParametersMRDC OPTIONAL,
      rf-ParametersMRDC RF-ParametersMRDC,
      generalParametersMRDC GeneralParametersMRDC-XDD-Diff OPTIONAL,
      fdd-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddXDD-Mode OPTIONAL,
      tdd-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddXDD-Mode OPTIONAL,
      fr1-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddFRX-Mode OPTIONAL,
      fr2-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddFRX-Mode OPTIONAL,
      featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL,
      pdcp-ParametersMRDC-v1530 PDCP-ParametersMRDC OPTIONAL,
      lateNonCriticalExtension OCTET STRING OPTIONAL,
      nonCriticalExtension SEQUENCE {} OPTIONAL
  }

  UE-MRDC-CapabilityAddXDD-Mode ::= SEQUENCE {
      measAndMobParametersMRDC-XDD-Diff MeasAndMobParametersMRDC-XDD-Diff OPTIONAL,
      generalParametersMRDC-XDD-Diff GeneralParametersMRDC-XDD-Diff OPTIONAL
  }

  UE-MRDC-CapabilityAddFRX-Mode ::= SEQUENCE {
      measAndMobParametersMRDC-FRX-Diff MeasAndMobParametersMRDC-FRX-Diff
  }


  GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {
      splitSRB-WithOneUL-Path ENUMERATED {supported} OPTIONAL,
      splitDRB-withUL-Both-MCG-SCG ENUMERATED {supported} OPTIONAL,
      srb3 ENUMERATED {supported} OPTIONAL,
      v2x-EUTRA-v1530 ENUMERATED {supported} OPTIONAL,
      …
  }

  – ASN1STOP
  – TAG-UE-MRDC-CAPABILITY-STOP


  splitDRB-withUL-Both-MCG-SCG
       Indicates whether the UE supports UL transmission via both MCG path and SCG path for
       the split DRB as specified in TS 37.340. The UE shall not set the FDD/TDD specific fields
       for this capability (i.e. it shall not include this field in UE-MRDC-CapabilityAddXDD-Mode).

Example

  generalParametersMRDC {
    splitDRB-withUL-Both-MCG-SCG supported
   }

PDCP-Config

The IE PDCP-Config is used to set the configurable PDCP parameters for signalling and data radio bearers.
As split bear is handled by PDCP layer, thus UL data split configuration can be found in PDCP config information element which is part of RRC Information Elements (TS38.331 6.3).

  – ASN1START
  – TAG-PDCP-CONFIG-START

  PDCP-Config ::= SEQUENCE {
      drb SEQUENCE {
          discardTimer ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200,
                                              ms250, ms300, ms500, ms750, ms1500, infinity} OPTIONAL, – Cond Setup
          pdcp-SN-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, – Cond Setup2
          pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, – Cond Setup2
          headerCompression CHOICE {
              notUsed NULL,
              rohc SEQUENCE {
                  maxCID INTEGER (1..16383) DEFAULT 15,
                  profiles SEQUENCE {
                      profile0x0001 BOOLEAN,
                      profile0x0002 BOOLEAN,
                      profile0x0003 BOOLEAN,
                      profile0x0004 BOOLEAN,
                      profile0x0006 BOOLEAN,
                      profile0x0101 BOOLEAN,
                      profile0x0102 BOOLEAN,
                      profile0x0103 BOOLEAN,
                      profile0x0104 BOOLEAN
                  },
                  drb-ContinueROHC ENUMERATED { true } OPTIONAL – Need N
              },
              uplinkOnlyROHC SEQUENCE {
                  maxCID INTEGER (1..16383) DEFAULT 15,
                  profiles SEQUENCE {
                      profile0x0006 BOOLEAN
                  },
                  drb-ContinueROHC ENUMERATED { true } OPTIONAL – Need N
              },
              …
          },
          integrityProtection ENUMERATED { enabled } OPTIONAL, – Cond ConnectedTo5GC1
          statusReportRequired ENUMERATED { true } OPTIONAL, – Cond Rlc-AM
          outOfOrderDelivery ENUMERATED { true } OPTIONAL – Need R
      } OPTIONAL, – Cond DRB
      moreThanOneRLC SEQUENCE {
          primaryPath SEQUENCE {
              cellGroup CellGroupId OPTIONAL, – Need R
              logicalChannel LogicalChannelIdentity OPTIONAL – Need R
          },
          ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, – Cond SplitBearer
          pdcp-Duplication BOOLEAN OPTIONAL – Need R
      } OPTIONAL, – Cond MoreThanOneRLC

      t-Reordering ENUMERATED {
                                      ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40,
                                      ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220,
                                      ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250,
                                      ms1500, ms1750, ms2000, ms2250, ms2500, ms2750,
                                      ms3000, spare28, spare27, spare26, spare25, spare24,
                                      spare23, spare22, spare21, spare20,
                                      spare19, spare18, spare17, spare16, spare15, spare14,
                                      spare13, spare12, spare11, spare10, spare09,
                                      spare08, spare07, spare06, spare05, spare04, spare03,
                                      spare02, spare01 } OPTIONAL, – Need S
      …,
      [[
      cipheringDisabled ENUMERATED {true} OPTIONAL – Cond ConnectedTo5GC
      ]]

  }

  UL-DataSplitThreshold ::= ENUMERATED {
                                              b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800,
                                              b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400,
                                              b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}

  – TAG-PDCP-CONFIG-STOP
  – ASN1STOP


  moreThanOneRLC
     This field configures UL data transmission when more than one RLC entity is associated with the PDCP entity.
  primaryPath
     Indicates the cell group ID and LCID of the primary RLC entity as specified in TS 38.323 (NR PDCP), clause 5.2.1 for UL data transmission
     when more than one RLC entity is associated with the PDCP entity. In this version of the specification, only cell group ID corresponding to MCG
     is supported for SRBs. The NW indicates cellGroup for split bearers using logical channels in different cell groups. The NW indicates
     logicalChannel for CA based PDCP duplication, i.e., if both logical channels terminate in the same cell group.
  ul-DataSplitThreshold
     Parameter specified in TS 38.323 (NR PDCP). Value b0 corresponds to 0 bytes, value b100 corresponds to 100 bytes, value b200 corresponds
     to 200 bytes, and so on. The network sets this field to ‘infinity’ for UEs not supporting splitDRB-withUL-Both-MCG-SCG. If the field
     is absent when the split bearer is configured for the radio bearer first time, then the default value infinity is applied.

Example-1

This example shows that UL data will be transmitted over NR primarily as primaryPath cellGroup = 1 and UL data will be splitted to LTE when the data is more than 0 byte.

  - . . . . . . . . . . . . . . . . . . . .moreThanOneRLC
  - . . . . . . . . . . . . . . . . . . . . .primaryPath
  - . . . . . . . . . . . . . . . . . . . . . .cellGroup: 1
  - . . . . . . . . . . . . . . . . . . . . .ul-DataSplitThreshold: 0 ( b0)

Example-2

This example shows that UL data will be transmitted over LTE only as primaryPath cellGroup = 0 and UL data will be splitted to NR when the data is more than infinity.

  - . . . . . . . . . . . . . . . . . . . .moreThanOneRLC
  - . . . . . . . . . . . . . . . . . . . . .primaryPath
  - . . . . . . . . . . . . . . . . . . . . . .cellGroup: 0
  - . . . . . . . . . . . . . . . . . . . . .ul-DataSplitThreshold: 23 ( infinity)

Discussion

From the above 2 examples, looks like some of the operators thinks NR would have worse UL performance to LTE. Thus, UL data transmission is configured to LTE only.
In my humble opinion, using more aggressive parameter setting to see what is the limit of NR UL in the early phase of 5G roll-out may be a better approach. As subscribers are tend to tolerate 5G Network connections in the tiral/early phase. Without knowing the actual NR UL coverage, it’s pretty hard to do UL Network optimzation in the future as there is no reference…