5G/NR - Interworking with LTE

 

 

 

Interworking with LTE - NSA / ENDC in a Nutshell

Let's start with the two names, because they are easy to confuse. ENDC and NEDC both describe LTE and NR carrying traffic for the same UE at the same time. The only difference between them is which radio is in charge. The summary below is the short version, and the rest of this page works through it in detail.

 

  • There are two types of LTE - NR interworking : ENDC and NEDC
  • In ENDC (Eutra / NR Dual Carrier), Eutra (LTE) become MCG(Main Cell Group) and NR become SCG(Secondary Cell Group), meaning that LTE is main cell and NR just work as a secondary cell.
  • In NEDC (NR/Eutra Dual Carrier), NR become MCG(Main Cell Group) and Eutra (LTE) become SCG(Secondary Cell Group), meaning that NR is main cell and LTE just work as a secondary cell.
  • ENDC is dominant form of deployment, NEDC is just done in specification, I personally haven't seen any example of real deployment.
  • In ENDC, Core Network is based on LTE Core, NR just provide additional RAN pipe.
  • In ENDC, Downlink traffic is always split between LTE and NR, but there is two options for Uplink traffic.
    • Option 1 : All the uplink goes through LTE only
    • Option 2 : Uplink gets split between LTE and NR. The ratio of the split is configured by RRC
  • When NR is added to the LTE cell, UE should be able to detect SSB of NR cell and perform RACH procedure to NR

Interworking with LTE - NSA / ENDC in Detail

This is about one of NR deployment options where LTE work as a master and NR work as a secondary cell (In 3GPP terms, this is about EN-DC (EUTRA-NR Dual Connectivity) / MR-DC with EPC as described in 37.340). In this configuration, UE get connected to LTE network first and then connected to NR via RRC Connection Reconfiguration process. Further details on lower layer process is yet to be studied, but just looking into the conentents of RRCConnectionReconfiguration would give you some general idea about the mechanism.

Two things are worth fixing in mind before the detail starts. The first is that EN-DC keeps the EPC. The core network is the one LTE already had, and NR contributes radio capacity and nothing else. That is what makes EN-DC a deployment option rather than a new system, and it is why the signalling further down is LTE RRC carrying NR RRC inside it.

The second is that the LTE cell anchors everything the network cares about. The UE registers through LTE, its NAS connection runs over LTE, and RRC signalling reaches it from the LTE eNB. NR is added afterwards, onto a connection that already exists. Nothing on this page describes a UE camping on NR first, because in EN-DC it never does.

Overall Network Architecture

Overall RAN architecture of EN-DC can be illustrated as below (this is based on 37.340 - 4.3.1 and 4.3.2). As you see here, UE is communicating with both LTE eNB and NR gNB in Radio side, but all those communication (signaling and data) are going through LTE core network. Though not shown in this illustration, I would point out that LTE eNB and NR gNB are using their own PHY/MAC (i.e, independent MAC Scheduler)).

As you see here, in case of data plane both Master Node(LTE) and Secondary Node(gNB) has direct interface with LTE corenetwork(S-GW), but in case of control plane only Master Node(LTE) has direct interface with LTE core network(MME).

NOTE : This illustration is just to give you the big picture of how 4G/5G RAN connected to each other and how they are connected to core network (EPC). It is based on general concept of Option 3, but not showing any specific variation of the option (e.g, plain option 3 or 3a or 3x). For further details of those deployment options, refer to Deployment Scenario page and some references linked in the page.

Now let's read the picture. If you take a close look at the illustration and just describe it in words, you would get the descrition as follows. If you don't like reading (like me :), just take 10 minutes (not 10 seconds) and look thorugh each and every part and lines of the picture.

  •   For C-Plane
    •   There is an interface between MN(Master Node : MeNB in this csae) and the SN (Secondary Node : En-gNB in this case). This interface is called X2-C.
    •   There is an interface between MN and CN(Core Network : MME in this case). This interface is called S1-MME.
    •   There is NO direct interface(connection) between SN and CN
  •   For U-Plane
    •   There is an interface between MN(Master Node : MeNB in this csae) and the SN (Secondary Node : En-gNB in this case). This interface is called X2-U.
    •   There is an interface between MN and CN(Core Network : MME in this case).  This interface is called S1-U
    •   There is an interface(connection) between SN and CN. This interface is called S1-U.

Overall Layer 2 Architecture

Following is based on 37.340 - Figure 4.2.2-3 and Figure 4.2.2-1. As mentioned before, there are roughly two options when LTE and NR interplay. One option is to make LTE as a master and NR as a slave. The other option is to make NR as a master and LTE as a slave. In real deployment, especially at the early deployment, the first option (i.e, LTE Master and NR Slave) would be the major deployment option. This illustration is also to show the overal radio stack structure of LTE Master and NR Slave.

Read the picture in three blocks. The left grey box is the LTE node, the right one is the NR node, and the box at the bottom is the UE. X2 runs between the two network boxes, and the coloured lines crossing it are bearers whose PDCP sits on one node while their RLC sits on the other.

The row of labels along the top is the part to study. MCG Bearer, SCG Bearer and Split Bearer each enter the stack at a different PDCP entity, and that entry point is the whole definition of the bearer type. Notice which PDCP blocks are which. Only the leftmost block on the LTE node is drawn as E-UTRA/NR PDCP. Every other PDCP block in the drawing, on both nodes and in the UE, is NR PDCP.

That asymmetry is deliberate. An MCG bearer may keep LTE PDCP, because it is the bearer that existed before NR arrived. Anything anchored at the NR node, or split across both nodes, needs NR PDCP instead.

  • The UE stack mirrors the network : the bottom box carries the same PDCP, RLC and MAC entities as the two network boxes together. The UE has to terminate whichever bearer type it is given.
  • Two MACs, never one : E-UTRA MAC and NR MAC stay separate everywhere in the picture, which is what makes this dual connectivity rather than carrier aggregation.
  • PDCP is where the split happens : every line crossing X2 leaves a PDCP block and arrives at an RLC block. The bearer is divided above RLC and never below it.
  • E-UTRA/NR PDCP appears once per stack : it is the only block that can be either, and it belongs to the MCG bearer.

Various types of Bearer for LTE-NR Interworking (EN-DC)

In terms of Over The Air(OTA) and Physical Layer perspective, LTE-NR interworking (EN-DC) in NSA(Non-StandAlone) is only one possibility (assuming that LTE always becomes the Anchor), but with the same OTA/Physical layer there can still be multiple possibilities of implementing higher layer bearer.

38.331 - 5.3.1.1 RRC connection control states as follows :

    In case of EN-DC, the SCG cells use another RAT, namely NR. When configured with EN-DC, user data carried by a DRB may either be transferred via MCG, via NR SCG or via both MCG and NR SCG. Also RRC signalling carried by a SRB may either be transferred via MCG or via both MCG and NR SCG. When DRBs and SRBs are configured with transmission via both MCG and SCG, duplication may be used in both DL and UL.

I just tried to turn this statement into illustration as follows (This illustration is based on 37.340 - Figure 4.2.2-3 and Figure 4.2.2-1)  :

The statement 'DRB may either be transferred via MCG, via NR SCG or via both MCG and NR SCG' can be illustrated as follows.

There is another bearer type called split Bearer (or split DRB). It can be illustrated as follows. You may find more details about this in Split Bearer page.

Types of NR(SCG) addition in EN-DC(LTE+NR Interworking)

In ENDC(Eutra NR Dual Connectivity), LTE would become a MCG(Master Cell Group) and NR would become a SCG(Secondary Cell Group). MCG work as the anchor and UE performs initial registration to this anchor cell group, and this anchor cell add one or more Secondary Cells (SCG). In 36.331-5.3.1.1, there are three different types(ways) of adding SCGs to the LTE anchor cell as follows.

    Type 1 : Reconfiguration with sync and key change

      •   Perform RA Procedure to PScell
      •   Reset NR MAC
      •   Re-establish NR RLC
      •   Re-establish NR PDCP
      •   Refresh  NR SCG security

    Type 2 : Reconfiguration with sync but without key change

      •   Perform  RA to the PSCell,
      •   Reset NR MAC
      •   Re-establish NR RLC re-establishment and
      •   Re-establish PDCP data recovery (for AM DRB)

    Type 3 : Regular NR SCG reconfiguration without Sync / SCG Security

      •   Does not perform RA to the PScell
      •   Does not refresh NR SCG security
      •   Reset NR MAC
      •   Re-establish NR RLC

The three types differ in how much of the NR stack is torn down and rebuilt, and the cost rises steeply from Type 3 up to Type 1. Type 3 is a configuration change on an SCG that keeps running. Type 2 rebuilds the lower layers and re-runs random access, but leaves the keys alone. Type 1 does all of that and refreshes the SCG security as well.

That ordering is the useful part when you are reading a log. A random access to the PSCell means the network chose Type 1 or Type 2, and never Type 3. If the SCG keys change as well, it was Type 1. A reconfiguration that touches neither is Type 3, and the UE keeps transmitting on the SCG throughout.

  • Only Type 1 changes the SCG keys : that is the one case where sk-Counter has to move, so an unchanged counter rules Type 1 out.
  • Random access separates Type 3 from the other two : Types 1 and 2 both send the UE back through RACH on the PSCell, and Type 3 does not.
  • Type 3 is the cheap one and the common one : most SCG reconfigurations in a running connection change parameters without resetting MAC or re-establishing RLC.

Overall Signaling Procedure

This section is about how to add NR cell(Secondary Node) to an existing LTE Cell.(Master Note). Overall signaling flow is illustrated below. This flow is based on 37.340 - 10.2.1 except the step 6-0 which is added by me. As you may notice,the process is iniated by MN (Master Node : LTE eNB in this case) and final confirmation is done by MME.

< 37.340 - Figure 10.2.1-1: Secondary Node Addition procedure >

 

Step 1 : MN (Master Node : LTE eNB) send SgNB Addition Request to SN (Secondary Node : NR gNB in this case). LTE eNB forward following informations to NR gNB.

  •   E-RAB Characteristics (E-RAB Parameters, TNL address information)
  •   The requested SCG configuration information including the entire UE capabilities and UE capability coordination result
  •   The latest measurement result for SN to choose
  •   Securiy Information to enable SRB3
  • In case of bearer option that requires X2-U between MN and SN
    •   X2-U TNS address information
  •   In case of SN terminated split bearers,
    •   the maximum supportable QoS level

Step 2 : (If SN decided to accept the request), it sends SgNB Addition Request Acknowlege performing followings

  •   Allocate the necessary radio resources transport network resources
  •   decides Pscell and other SCG Scells and provide the new SCG radio resource configuration to MN
  •   In case of bearer options that requires X2-U between MN and SN
    •   provides X2-U TNS address informations
  •   In case of SCG radio resources being requested
    •   provide SCG radio resource configuration

Step 3 : If NR gNB accept the SN addition request and provides all the necessary information to LTE eNB, LTE eNB generate RRC Connection Reconfiguation message carrying all the necessary information and send it to UE. This message carries NR RRC Connection Cofiguration in it so that UE can figure out the necessary configuration information for NR gNB.

Step 4  : After UE received RRCConnectionReconfiguration, it checks if all the configurations in the message is doable in UE side, it sends RRCConnectionReconfigurationComplete message. This message includes NR RRC Response as well.

Step 5  : Once MN (LTE eNB) received RRCConnectionReconfigurationComplete from UE, the MN informs SN(NR gNB) that UE has completed the reconfiguration procedure.

Step 6-0  : Based on the information contained in NR RRCConnectionConfiguration within RRC Connection Reconfiguration message, UE detects SSBlock(PSS, SSS and PBCH) of NR gNB.  For the details of SSBlock, see SSBlock page.

Step 6  : Once it successfully detects PSS, SSH, PBCH of NR gNB, it performs RACH procedure to PSCell of the SN (NR gNB). UE aquire all the information required for RACH procedure from RRC Connection Reconfiguration message instead of SIB, this process is described in RACH Process for LTE-Interworking(ENDC) .

Following is a summary of overall NSA procedure which would give you more practical sense. This would be the most common NSA protocol sequence that you may see from RRC/NAS log.

Direction

Message/Procedure

Comments

UE <-- NW

SIB2 with 5G support indication

See this note for an example

UE <-> NW

< LTE Initial Attach Start>

 

 

...

 

UE <-- NW

UECapabilityInformqtionEnquiry

NW request UE to notify NR capability

UE --> NW

UECapabilityInformation

UE Report NR capability. See this note

 

...

 

 

< LTE Initial Attach Complete>

 

UE <-- NW

RrcConnectionReconfiguration for NR Cell Measurement

See this note for an example

UE --> NW

RrcConnectionReconfigurationComplete

 

UE --> NW

MeasurementReport with NR Cell Measurement

See this note for an example

UE <-- NW

RrcConnectionReconfiguration for NR Addition

See this note for the details

UE --> NW

RrcConnectionReconfigurationComplete

 

UE <-> NW

Peform RACH process to NR Cell

See this note for an example

LTE RRC Configuration

The major role of RRC in LTE-NR Interworking(more specifically ENDC) is to add NR as a secondary cell to LTE Anchor cell. The major IE(information elements) related to this process are

  •   nr-Config
  •   nr-SecondaryCellGroupConfig
  •   nr-RadioBearerConfig1

These few IEs has very complicated structures in it and carries so much information. Basically they carries all the information that combines MIB, SIB and RRC Configuration messages in standalone NR.  I will take a while to get the detailed understanding on each and every elements of informations in it. Followings are rough summary of informations carried by the RRC Connection Reconfiguration message.

Function (Information)

Description

Frequency and Bandwidth

     in NR Downlink

spCellConfigCommon.frequencyInfoDL

spCellConfigCommon.initialDownlinkBWP

Frequency and Bandwidth

     in NR Uplink

spCellConfigCommon.uplinkConfigCommon.frequencyInfoUL

spCellConfigCommon.uplinkConfigCommon.initialUplinkBWP

PRACH to NR

spCellConfigCommon.uplinkConfigCommon.initialUplinkBWP.rach-ConfigCommon

PDCCH Configuration

     to decode RAR(PDSCH)

spCellConfigCommon.initialDownlinkBWP.pdcch-ConfigCommon

PDSCH Configuration

     to send RAR(PDSCH)

spCellConfigCommon.initialDownlinkBWP.pdsch-ConfigCommon

PUSCH Configruation

     for Common Channel

spCellConfigCommon.uplinkConfigCommon.initialUplinkBWP.PUSCH-ConfigCommon

PDCCH Configuration

     for dedicated channels

(msg4 and onwards)

spCellConfigDedicated.initialDownlinkBWP.pdcch-Config

PDSCH Configuration

     for dedicated channels

(msg4 and onwards)

spCellConfigDedicated.initialDownlinkBWP.pdsch-Config

PUCCH Configruation

     for Dedicated Channel

(msg4 Ack/Nack and onwards)

spCellConfigDedicated.initialDownlinkBWP.pdcch-Config

PUSCH Configruation

     for Dedicated Channel

(msg4 Ack/Nack and onwards)

spCellConfigDedicated.initialDownlinkBWP.pdcch-Config

tdd UL/DL Configuration

spCellConfigCommn.tdd-UL-DL-ConfigurationCommon

spCellConfigDedicated.tdd-UL-DL-ConfigurationDedicated

 

Following is based on 36.331 v19.3.0 (Release 19)

RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE {
    sl-V2X-ConfigDedicated-r14                  SL-V2X-ConfigDedicated-r14                              OPTIONAL,   -- Need ON
    sCellToAddModListExt-v1430                  SCellToAddModListExt-v1430                              OPTIONAL,   -- Need ON
    perCC-GapIndicationRequest-r14              ENUMERATED{true}                                        OPTIONAL,   -- Need ON
    systemInformationBlockType2Dedicated-r14    OCTET STRING (CONTAINING SystemInformationBlockType2)   OPTIONAL,   -- Cond nonHO
    nonCriticalExtension                        RRCConnectionReconfiguration-v1510-IEs                  OPTIONAL
}

RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE {
    nr-Config-r15                               CHOICE {
        release                                     NULL,
        setup                                       SEQUENCE {
            endc-ReleaseAndAdd-r15                      BOOLEAN,
            nr-SecondaryCellGroupConfig-r15             OCTET STRING            OPTIONAL,   -- Need ON
            p-MaxEUTRA-r15                              P-Max                   OPTIONAL    -- Need ON
        }
    }                                                                                                   OPTIONAL,   -- Need ON
    sk-Counter-r15                              INTEGER (0.. 65535)                                     OPTIONAL,   -- Need ON
    nr-RadioBearerConfig1-r15                   OCTET STRING                                            OPTIONAL,   -- Need ON
    nr-RadioBearerConfig2-r15                   OCTET STRING                                            OPTIONAL,   -- Need ON
    tdm-PatternConfig-r15                       TDM-PatternConfig-r15                                   OPTIONAL,   -- Cond FDD-PCell
    nonCriticalExtension                        RRCConnectionReconfiguration-v1530-IEs                  OPTIONAL
}

NOTE : The two listings below use the v15x0 naming from an early Release 15 draft of 36.331. No IE by either name reached the published specification. RRCConnectionReconfiguration-v15x0-IEs became RRCConnectionReconfiguration-v1510-IEs above, and RRCConnectionResume-v15x0-IEs became RRCConnectionResume-v1510-IEs. They are kept here because the field names show what the working group was aiming at, and because older logs and vendor documents still use them.

Draft naming, not present in 36.331 v19.3.0 (Release 19)

RRCConnectionReconfiguration-v15x0-IEs ::= SEQUENCE {
    endc-Config-r15                     SEQUENCE {
        scg-ConfigReleaseNR-r15             BOOLEAN,
        sk-Counter-r15                      INTEGER (0.. 65535)     OPTIONAL,   -- Need ON
        nr-SecondaryCellGroupConfig-r15     OCTET STRING            OPTIONAL,   -- Need ON
        nr-RadioBearerConfig-r15            OCTET STRING            OPTIONAL,   -- Need ON
        nr-RadioBearerConfigS-r15           OCTET STRING            OPTIONAL,   -- Need ON
        tdm-PatternSingle-Tx-r15            SEQUENCE {
            subframeAssignment-r15              SubframeAssignment-r15,
            harq-Offset-r15                     INTEGER (0.. 9)     OPTIONAL    -- Need ON
        }                                                           OPTIONAL    -- Need ON
    }                                                               OPTIONAL    -- Need ON
    nonCriticalExtension                SEQUENCE {}                 OPTIONAL
}

nr-SecondaryCellGroupConfig1-r15,nr-SecondaryCellGroupConfig2-r15 : Includes NR RRCReconfiguration message.

                                             The field includes the configuration of RBs configured with NR PDCP.

nr-RadioBearerConfig : Include NR RadioBearerConfig. Mainly for DRB, EPS, NR PDCP Configuration

Draft naming, not present in 36.331 v19.3.0 (Release 19)

RRCConnectionResume-v15x0-IEs ::= SEQUENCE {
    sk-Counter-r15                      INTEGER (0.. 65535)         OPTIONAL,   -- Need ON
    nr-RadioBearerConfig-r15            OCTET STRING                OPTIONAL,   -- Need ON
    nr-RadioBearerConfigS-r15           OCTET STRING                OPTIONAL,   -- Need ON
    nonCriticalExtension                SEQUENCE {}                 OPTIONAL
}

The published form of that last one carries the same two octet strings, under the names used everywhere else in the message. It also chains to a Release 15.3 extension instead of ending in an empty SEQUENCE.

Following is based on 36.331 v19.3.0 (Release 19)

RRCConnectionResume-v1510-IEs ::= SEQUENCE {
    sk-Counter-r15                      INTEGER (0.. 65535)         OPTIONAL,   -- Need ON
    nr-RadioBearerConfig1-r15           OCTET STRING                OPTIONAL,   -- Need ON
    nr-RadioBearerConfig2-r15           OCTET STRING                OPTIONAL,   -- Need ON
    nonCriticalExtension                RRCConnectionResume-v1530-IEs   OPTIONAL
}

Example >

As mentioned above, RRC Connection Reconfiguration in LTE for Adding NR Cell carries only a couple of container that carries a huge tree of NR RRC message.  Due to the complicated RRC structure in NR, I found it difficult to put the whole structure and description of any NR RRC message in a single page. In this example, you will see a couple of starting points of NR RRC part as shown below and you should follow the link until you reach the final destination.

NOTE : If you want to see the contents of full log with Amarisoft Log viewer, go to LogAnalysis section and click on 'Sample Log' in this tutorial of Amarisoft TechAcademy.

Field tree of the LTE RRCConnectionReconfiguration that adds NR. This is a navigation sketch rather than specification text, so it carries no version stamp.

rrcConnectionReconfiguration
    measConfig
    mobilityControlInfo
    dedicatedInfoNASList
    radioResourceConfigDedicated
    nonCriticalExtension
        laterNonCriticalExtension
        nonCriticalExtension
            otherConfig-r9
            fullConfig-r9
            nonCriticalExtension
                sCellToReleaseList-r10
                sCellToAddModList-r10
                nonCriticalExtension
                    systemInformationBlockType1Dedicated-r11
                    nonCriticalExtension
                        wlan-OffloadInfo-r12
                        scg-Configuration-r12
                        sl-SyncTxConfrol-r12
                        sl-DiscConfig-r12
                        sl-CommonConfig-r12
                        nonCriticalExtension
                            sCellToReleaseListExt-r13
                            sCellToAddModListExt-r13
                            lwa-Configuration-r13
                            lwip-Configuration-r13
                            rdwi-Configuration-r13
                            nonCriticalExtension
                                sl-V2X-ConfigDedicated-r14
                                sCellToAddModListExt-v1430
                                perCC-GapIndicationRequest-r14
                                systemInformationBlockType2Dedicated-r14
                                nonCriticalExtension
                                    nr-Config-r15
                                        endc-ReleaseAndAdd-r15
                                        nr_SecondaryCellGroupConfig-r15
                                            cellGroupID
                                            rlc-BearerToAddModList
                                            mac-CellGroupConfig
                                            physicalCellGroupConfig
                                            spCellConfig
                                                servCellIndeix
                                                reconfigurationWithSync
                                                   spCellConfigCommon
                                                      physCellId
                                                      frequencyInfoDL
                                                      initialDownlinkBWP
                                                         genericParameters
                                                         pdcch_ConfigCommon
                                                            setup
                                                               commonControlResources
                                                               commonSearchSpaces
                                                               searchSpaceSIB1
                                                               searchSpaceOtherSystemInformation
                                                               pagingSearchSpace
                                                               ra_ConfrolResourceSet
                                                               ra_SearchSpace
                                                         pdsch_ConfigCommon
                                                            setup
                                                               ="5G_PDSCH.html#PDSCH_Config_pdsch_AllocationList" target="_self">pdsch_AllocationList
                                                      uplinkConfigCommon
                                                         frequencyInfoUL
                                                         initialUplinkBWP
                                                         supplementaryUplinkConfig
                                                      supplementaryUplinkConfig
                                                      ssb_PositionsInBurst
                                                      ssb_periodicityServingCell
                                                      dmrs_TypeA_Position
                                                      lte_CRS_ToMatchAround
                                                      rateMatchPatternToAddModList
                                                      rateMatchPatternToReleaseList
                                                      subcarrierSpacing
                                                      tdd_UL_DL_ConfigurationCommon
                                                         referenceSubcarrierSpacing
                                                         dl_UL_TransmissionPeriodicity
                                                         nrofDownlinkSlots
                                                         nrofDownlinkSymbols
                                                         nrofUplinkSlots
                                                         nrofUplinkSymbols
                                                      tdd_UL_DL_ConfigurationCommon2
                                                      ss_PBCH_BlockPower
                                                      newUE_Identity
                                                      t304
                                                      rach_ConfigDedicated
                                                rlf-TimersAndConstants
                                                rlmInSyncOutOfSyncThreshold
                                                spCellConfigDedicated
                                                   tdd_UL_DL_ConfigurationDedicated
                                                   initialDownlinkBWP
                                                      pdcch_Config
                                                      pdsch_Config
                                                      sps_Config
                                                      radioLinkMonitoringConfig
                                                   downlinkBWP_ToReleaseList
                                                   downlinkBWP_ToAddModList
                                                   firstActiveDownlinkBWP_Id
                                                   bwp_InactivityTimer
                                                   defaultDownlinkBWP_Id
                                                   uplinkConfig
                                                      initialUplinkBWP
                                                      uplinkBWP_ToReleaseList
                                                      uplinkBWP_ToAddModList
                                                      firstActiveUplinkBWP_Id
                                                      pusch_ServingCellConfig
                                                   supplementaryUplink
                                                   pdsch_ServingCellConfig
                                                   csi_MeasConfig
                                                   carrierSwitching
                                                   sCellDeactivationTimer
                                                   crossCarrierScheduleConfig
                                                   tag_Id
                                                   ue_BeamLockFunction
                                                   pathlossReferenceLinking
                                        p_MaxEUTRA-r15
                                    sk-Counter-r15
                                    nr-RadioBearerConfig1-r15
                                    nr-RadioBearerConfig2-r15
                                    tdm-PatternConfig-r15
                                    nonCriticalExtension

Measurement (LTE-NR Measurement)

In real operation, it is expected for LTE to perform the measurement of the NR cell before it tries adding it. When it comes to measurement, first we need to think of what kind of measurement event to be used. And since this is interfrequency/interRAT from the point of LTE we need to think of measurement gap.

In terms of measurement event, we are using the existing event B1 and B2 and not new event is defined for NR measurement(see here for the details), but in terms of measurement gap, we got a lot of new gap patterns for NR measurement(see here for the details).

NOTE : If you want to see the contents of full log with Amarisoft Log viewer, go to LogAnalysis section and click on 'Sample Log' in this tutorial of Amarisoft TechAcademy.

Example 01 >

Following example message is from Amari Callbox and a commercial UE. I am just putting the measurement related part here and refer to this file for the full contents of the message.

Decoded RRC message, JER format. Field values are from a live capture, not from the specification.

  message c1: rrcConnectionReconfiguration: {
    rrc-TransactionIdentifier 0,
    criticalExtensions c1: rrcConnectionReconfiguration-r8: {
      measConfig {
        measObjectToAddModList {
          {
            measObjectId 1,
            measObject measObjectEUTRA: {
              carrierFreq 300,
              allowedMeasBandwidth mbw100,
              presenceAntennaPort1 TRUE,
              neighCellConfig '01'B
            }
          },
          {
            measObjectId 2,
            measObject measObjectNR-r15: {
              carrierFreq-r15 632256,
              rs-ConfigSSB-r15 {
                measTimingConfig-r15 {
                  periodicityAndOffset-r15 sf20-r15: 0,
                  ssb-Duration-r15 sf1
                },
                subcarrierSpacingSSB-r15 kHz30
              },
              quantityConfigSet-r15 1,
              bandNR-r15 setup: 78
            }
          }
        },
        reportConfigToAddModList {
          {
            reportConfigId 1,
            reportConfig reportConfigInterRAT: {
              triggerType event: {
                eventId eventB1-NR-r15: {
                  b1-ThresholdNR-r15 nr-RSRP-r15: 56,
                  reportOnLeave-r15 FALSE
                },
                hysteresis 0,
                timeToTrigger ms100
              },
              maxReportCells 8,
              reportInterval ms120,
              reportAmount r1,
              reportQuantityCellNR-r15 {
                ss-rsrp TRUE,
                ss-rsrq TRUE,
                ss-sinr TRUE
              }
            }
          }
        },
        measIdToAddModList {
          {
            measId 1,
            measObjectId 2,
            reportConfigId 1
          }
        },
        quantityConfig {
          quantityConfigEUTRA {
            filterCoefficientRSRP fc3
          },
          quantityConfigNRList-r15 {
            {
              measQuantityCellNR-r15 {
                filterCoeff-RSRP-r15 fc3
              }
            }
          }
        },
        measGapConfig setup: {
          gapOffset gp0: 16
        }
      },
......
}

  message c1: measurementReport: {
    criticalExtensions c1: measurementReport-r8: {
      measResults {
        measId 1,
        measResultPCell {
          rsrpResult 69,
          rsrqResult 30
        },
        measResultNeighCells measResultNeighCellListNR-r15: {
          {
            pci-r15 500,
            measResultCell-r15 {
              rsrpResult-r15 79,
              rsrqResult-r15 65,
              rs-sinr-Result-r15 89
            }
          }
        }
      }
    }
  }
}

SCG Failure

Various type of failure can happen during NR addition after UE recieves RRC Connection Reconfiguration. When this happens, UE send SCG Failure Information message with various failure cause as listed below. This is based on 38.331 5.7.3.3. You should see 38.331 v15.4 or higher)

Failure type of SCG-FailureInformation

 

t310-Expiry

This is triggered when UE is experience consecutive Out-Of_Sync at low layer. (Refer to 38.331-7.1.1 for further details.)

Related Parameter : t310, n310, n311

 

t312-Expiry

(Applicable for failureType-v1610). Not receiving N311 consecutive in-sync indications from lower layers for the SpCell, receiving RRCReconfiguration with reconfigurationWithSync for that cell group after measurement report is triggered ( Refer to 38.331-7.1.1 for further details.)

 

synchReconfigFailure-SCG

This is triggered when initial synchronization failed.

It is triggered when UE fails to complete NR RACH until T304 expires

Related Parameter : t304 (see 38.331 - 5.3.5.8.3 and 7.1.1 for further details)

 

randomAccessProblem

This is triggered when random access process has failed

Related Parameter : PreambleTransMax (see 38.331 - 5.7.3.3 for further details)

 

rlc-MaxNumRetx

This is triggered when the maximum number of retransmissions has been reached

Related Parameter : maxRetxThreshold (see 38.331 - 5.7.3.3 for further details)

 

srb3-IntegrityFailure

This is triggered when SRB3 Integrity fails (see 38.331 - 5.7.3.3 for further details)

 

scg-reconfigFailure

This is triggered when Reconfiguration message is not compatible with UE (see 38.331 - 5.7.3.3 for further details)

Those values are the contents of one field in one message, and the message is worth naming precisely, because EN-DC does not use the obvious one.

Which Message Carries the Report

38.331-5.7.3.2 sends the UE down two different paths at the end of the procedure. In (NG)EN-DC the UE transmits SCGFailureInformationNR, which is an LTE message defined in 36.331-5.6.13a. In every other case it transmits the NR SCGFailureInformation instead.

That split follows from where the report has to arrive. The MCG is LTE, so the only surviving signalling path at the moment of failure is SRB1 on the LTE anchor. The report therefore has to be an LTE message, and the eNB reads it directly rather than forwarding a container it cannot decode.

Following is based on 36.331 v19.3.0 (Release 19)

SCGFailureInformationNR-r15-IEs ::=     SEQUENCE {
    failureReportSCG-NR-r15                 FailureReportSCG-NR-r15             OPTIONAL,
    nonCriticalExtension                    SCGFailureInformationNR-v1590-IEs   OPTIONAL
}

FailureReportSCG-NR-r15 ::=             SEQUENCE {
    failureType-r15                         ENUMERATED {
                                                t310-Expiry, randomAccessProblem,
                                                rlc-MaxNumRetx,
                                                synchReconfigFailureSCG, scg-reconfigFailure,
                                                srb3-IntegrityFailure, dummy},
    measResultFreqListNR-r15                MeasResultFreqListFailNR-r15        OPTIONAL,
    measResultSCG-r15                       OCTET STRING                        OPTIONAL,
    ...,
    [[  locationInfo-r16                    LocationInfo-r10                    OPTIONAL,
        logMeasResultListBT-r16             LogMeasResultListBT-r15             OPTIONAL,
        logMeasResultListWLAN-r16           LogMeasResultListWLAN-r15           OPTIONAL,
        failureType-v1610                   ENUMERATED {t312-Expiry, scg-lbtFailure,
                                                beamFailureRecoveryFailure, bh-RLF-r16,
                                                beamFailure-r17,
                                                spare3, spare2, spare1}         OPTIONAL
    ]],
    [[  previousPSCellId-r19                SEQUENCE {
            physCellId-r19                      PhysCellIdNR-r15,
            carrierFreq-r19                     ARFCN-ValueNR-r15
        }                                                                       OPTIONAL,
        failedPSCellId-r19                  SEQUENCE {
            physCellId-r19                      PhysCellIdNR-r15,
            carrierFreq-r19                     ARFCN-ValueNR-r15
        }                                                                       OPTIONAL,
        timeSCG-Failure-r19                 INTEGER (0..1023)                   OPTIONAL
    ]]
}

Two things in that definition explain the table above. There are two failure type fields, not one. The original enumeration holds the six Release 15 values plus a dummy, and everything added later lives in the Release 16 extension. The table above covers the first set and t312-Expiry from the second, so four values from the extension are not listed there : scg-lbtFailure, beamFailureRecoveryFailure, bh-RLF-r16 and beamFailure-r17.

38.331-5.7.3.3 explains the odd consequence of that arrangement. When the cause is T312 expiry, the UE sets failureType-v1610 to t312-Expiry and sets the original failureType to any value at all. So a decoder will show a Release 15 cause beside the real one, and the Release 15 cause means nothing. Read the extension first whenever both are present.

The rest of the message is there so the eNB can decide what to do next. Field measResultFreqListNR carries the best measured NR cells per frequency, ordered best first, using RSRP where it is available and RSRQ or SINR otherwise. Field measResultSCG carries the NR measurement results as an octet string. Together they tell the anchor whether another NR cell is worth trying.

The Release 19 group at the end exists for mobility robustness optimisation. It records the previous PSCell, the PSCell that failed, and how long elapsed since the reconfiguration with sync that led to the failure. Those three make it possible to tell a badly timed PSCell change from a cell that was simply out of coverage.

  • EN-DC reports on the LTE side : the message is SCGFailureInformationNR from 36.331, so look for it on SRB1 towards the eNB and not on any NR bearer.
  • There are two failure type fields : anything newer than Release 15 arrives in failureType-v1610, and the table above lists only one of those four extension values.
  • A T312 failure carries a meaningless r15 cause : the specification lets the UE set it to any value, so trust failureType-v1610 when both fields are present.
  • The measurement results are the actionable part : they are what lets the eNB choose a replacement PSCell rather than abandoning NR.

What the UE Does When the SCG Fails

The report is only half of it. Before the UE sends anything it suspends the secondary leg. Knowing exactly how far that goes tells you what a trace should look like afterwards.

38.331-5.7.3.2 lists five triggers. The first is radio link failure on the SCG. The second is beam failure of the PSCell, but only while the SCG is deactivated. The third is reconfiguration with sync failure, and the fourth is SCG configuration failure. The fifth is an integrity check failure reported by SCG lower layers for SRB3. The procedure only runs when neither MCG nor SCG transmission is already suspended.

On initiation the UE suspends SCG transmission for all SRBs, DRBs and BH RLC channels, and resets the SCG MAC. It stops T304 for the SCG if it is running, and it stops evaluating any conditional PSCell change or addition it had been given. Then it sends the report.

Notice what is absent from that list. Nothing touches the MCG. The LTE connection stays up, the UE keeps its RRC connection and its NAS connection, and user data keeps flowing on any MCG bearer. An SCG failure in EN-DC is a lost radio leg rather than a dropped call, which is exactly why the anchor design was chosen.

  • The MCG survives an SCG failure : the UE suspends the SCG and reports over LTE, so the connection continues on the anchor while NR is rebuilt or abandoned.
  • Suspend and reset, not release : the SCG configuration is still held by the UE after the failure, and it is the network that decides whether to release, change or re-add.
  • Conditional PSCell changes are cancelled too : any CPC or CPA evaluation stops at the same moment, so a prepared target will not fire after the failure.
  • Beam failure only triggers this while the SCG is deactivated : an active SCG handles beam failure through its own recovery procedure instead.

NOTE : If you speak / understand Korean, you may refer to this YouTube by Sean Mobile Channel(@22:00)

Carrier Aggregation Setup in NR

After you add NR cell to LTE Anchor completing ENDC, you can add other NR cells to establish Carrer Aggregation(CA). The addition of secondary NR cells can be done at the same step as ENDC establishment or done separately after the ENDC Setup. This NR CA process is very similar to LTE CA establishment process. Overall procedure is as shown below.

Both of those routes carry exactly the same thing. The secondary cells are an sCellToAddModList inside the NR cell group configuration, and the only real difference is which RRCConnectionReconfiguration that list travels in. Send them at setup and the message that first creates the secondary cell group carries the list. Send them later and a message modifying a running group carries it instead.

So the choice is a trade between how soon the capacity appears and how large the setup message becomes. Every entry in the list carries a full ServingCellConfigCommon and a full ServingCellConfig, so configuring four secondary cells at setup makes that message several times larger. Adding them afterwards keeps the message that establishes ENDC small, and that message has to get through on the LTE anchor before NR is carrying anything at all.

The comparison with LTE CA is a fair one, and it holds where it matters most. Both configure a cell before using it. Both leave the cell deactivated until something says otherwise. Both run a per-cell deactivation timer to take it down again. If you know how an LTE SCell behaves, you already know the shape of the NR one.

Four differences are worth knowing before you read a log, and none of them is about the radio.

 

LTE CA

NR CA inside EN-DC

The special cell

The PCell, which is the cell the UE camped on in the first place.

The PSCell, addressed as the SpCell of the secondary cell group. The UE never camped on it.

How the configuration arrives

In a native RRCConnectionReconfiguration from the same RAT.

As an NR RRCReconfiguration wrapped in an OCTET STRING inside the LTE message, which is why the LTE eNB never reads it.

Index range

SCellIndex-r10 ran 1 to 7, with maxSCell of 4. Release 13 raised these to 1 to 31.

SCellIndex runs 1 to 31 from the start, so NR begins where LTE finished.

Group wide deactivation

No equivalent. Cells go down one at a time, or with the connection.

scg-State deactivates every SCell of the secondary cell group at once.

 

One more difference is easy to miss, because it never appears as a message. In LTE every carrier used the same 15 kHz subcarrier spacing, so aggregating carriers changed the bandwidth and nothing else. NR secondary cells may each use a different numerology from the PSCell. An SCell can therefore run on a wider subcarrier spacing, and a shorter slot, than the cell that configured it. The sections below take the configuration and the activation in turn.

Step

Direction

Procedure

1

UE <-> NW

Establish ENDC Connection (NR Primary Cell + NR Secondary Cells)

2

UE < NW

NR Secondary Cell Activation by MAC CE

Step 1 in that table is a single RRC message, and it is worth seeing what sits inside it. What follows is the NR cell group configuration as the UE receives it, laid out by field name. The types are left out here, and the ASN.1 further down fills them in.

Two shapes are worth noticing. The special cell appears once, as spCellConfig, and it carries reconfigurationWithSync because the UE has to synchronise to the PSCell before it can use it. Every secondary cell after that is the same three fields repeated : an index, a common configuration and a dedicated one. Nothing distinguishes the first entry from the last except which cell it describes, and that repetition is exactly what makes it a list.

RRC Connection Message Structure for NR Secondary Cells

spCellConfig

    reconfigurationWithSync

        spCellConfigCommon

    spcellConfigDedicated

sCellToAddModList[0]

    sCellIndex

    sCellConfigCommon

    sCellConfigDedicated

sCellToAddModList[1]

    sCellIndex

    sCellConfigCommon

    sCellConfigDedicated

....

sCellToAddModList[n]

    sCellIndex

    sCellConfigCommon

    sCellConfigDedicated

Two steps look thin, and they are thin because most of the work has already happened. By the time the UE reaches this point it has an ENDC connection, and the NR secondary cells were configured in the same RRCReconfiguration that added the NR primary cell. What is left is switching them on.

That is why step 2 is a MAC CE and not an RRC message. Adding a cell needs RRC, because the UE has to be given a full configuration for it. Activating a cell it is already configured for needs one octet, and the network can send that whenever it likes without a reconfiguration round trip.

One consequence is worth expecting in a trace. A UE can hold several configured but deactivated NR secondary cells while showing none of them as active. A throughput test that looks like it is failing may only be waiting for the activation MAC CE to arrive.

  • Configuration and activation are separate steps : RRC configures the secondary cells, and a MAC CE decides which of them are actually carrying data at any moment.
  • The cells can be added with the ENDC connection itself : there is no requirement to wait for ENDC to finish before configuring NR carrier aggregation on top of it.
  • An inactive SCell is not a failed SCell : it is configured and waiting, so check for the activation MAC CE before treating low throughput as a configuration problem.

SCell Configuration in NR RRC

The tree above names the fields but does not show what they are. Since every one of these secondary cells is configured through NR RRC inside the ENDC container, the definitions come from 38.331 rather than 36.331. Two of them carry the whole story.

Following is based on 38.331 v19.3.0 (Release 19)

CellGroupConfig ::=                 SEQUENCE {
    cellGroupId                         CellGroupId,
    ...
    spCellConfig                        SpCellConfig                                        OPTIONAL,   -- Need M
    sCellToAddModList                   SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig   OPTIONAL,   -- Need N
    sCellToReleaseList                  SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex    OPTIONAL,   -- Need N
    ...
}

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

maxNrofSCells   INTEGER ::= 31
SCellIndex  ::= INTEGER (1..31)

Read the two together and the numbered entries in the table above stop being arbitrary. Each sCellToAddModList entry is one SCellConfig, and each SCellConfig is an index plus up to two configurations. The index is the handle everything else uses, and it runs from 1 to 31 because SCellIndex is bounded there. Index 0 does not exist, since the special cell is addressed as the SpCell and never as an SCell.

The two OPTIONAL conditions are worth reading carefully. The field sCellConfigCommon is Cond SCellAdd. It is present when the cell is being added, and can be left out when an existing cell is only modified. The field sCellConfigDedicated is Cond SCellAddMod, so it appears in both cases. That is why a reconfiguration that merely retunes an SCell is far smaller than the message that first created it.

One Release 16 field changes the two step story on this page. The field sCellState-r16 lets the network mark an SCell as activated at the moment it is configured. When it is present the UE brings the cell up without waiting for any MAC CE, so the second step disappears. If you meet a trace where an SCell starts carrying data with no activation MAC CE in sight, this field is the first thing to look for.

  • sCellIndex is the handle for everything else : the release list carries indexes and nothing more, and the activation MAC CE addresses cells by the same index.
  • The two configurations are conditioned differently : sCellConfigCommon only has to be sent when the cell is added, while sCellConfigDedicated is sent on add and on modify.
  • 31 is the ceiling in the specification, not in a product : maxNrofSCells is 31, and what a given UE and band combination actually support is far lower.
  • sCellState-r16 can remove the MAC CE step : an SCell configured with it is activated on configuration, so the two step sequence above collapses into one.

The SCell Activation / Deactivation MAC CE

Step 2 in the table names this MAC CE without showing it. It is a small thing to decode, and knowing its shape tells you immediately how many secondary cells a network intends to drive.

38.321-6.1.3.10 defines it in two sizes, and the size is chosen by the LCID in the MAC subheader rather than by any field inside the payload.

Form

LCID

Contents

Reaches

One octet

58

7 C-fields and 1 R-field

SCellIndex 1 to 7. Enough for most deployments, and one octet on the wire.

Four octets

57

31 C-fields and 1 R-field

SCellIndex 1 to 31, which is the whole range SCellIndex allows.

Enhanced, one octet Ci

eLCID 295

Ci fields plus TRS indication

Added later, in 38.321-6.1.3.55. It can point the UE at a TRS so the cell comes up faster.

Enhanced, four octet Ci

eLCID 296

Ci fields plus TRS indication

The same, over the full index range.

 

The field semantics are as simple as the table suggests. Ci set to 1 activates the SCell with SCellIndex i, and Ci set to 0 deactivates it. If no SCell is configured with that index, the MAC entity ignores the field rather than treating it as an error. R is a reserved bit and is set to 0.

Notice what that means for reading a log. The MAC CE is a full picture and not a delta. Every configured index appears in it on every transmission, so a cell whose bit is 0 is being told to stay down, not merely left unmentioned.

Activation is not free, and 38.321-5.9 lists what the UE starts doing once a cell comes up. It begins SRS transmissions on the SCell, CSI reporting for it, PDCCH monitoring on and for it, and PUCCH transmissions if the cell is configured for them. The timing follows 38.213 when a MAC CE did the activating, and 38.133 when the cell was brought up directly by configuration.

Three other things can change an SCell state without an activation MAC CE arriving, and all three explain traces that otherwise look wrong.

  • sCellDeactivationTimer : configured per SCell, and the cell deactivates when it expires. An SCell configured with PUCCH is exempt, so it stays up until something else takes it down.
  • sCellState : the Release 16 field above, which activates the cell at configuration time.
  • scg-State : when the UE receives it, every SCell of that secondary cell group is deactivated at once.

There is one more case that surprises people. If firstActiveDownlinkBWP-Id points at the dormant BWP, the SCell activates into dormancy instead of into normal operation. The cell is active, but the UE does not monitor PDCCH on it. A capacity test against such a cell measures nothing, and no amount of waiting for another MAC CE will change that.

  • The LCID tells you the size before you decode anything : 58 is the one octet form and 57 is the four octet form. The subheader alone says whether the network drives more than seven secondary cells.
  • Ci is absolute, not incremental : every configured index is present in every MAC CE, so a zero is an instruction to stay deactivated.
  • An index with no configured cell is ignored : 38.321 says so directly, which is why a MAC CE with bits set for cells that do not exist is not a fault.
  • Dormancy looks like activation in a log : the cell is up and idle by design when its first active BWP is the dormant one. It carries no data until the BWP changes.

Reference

[1] LTE-NR tight-interworking and the first steps to 5G (Errisson Research Blog)  

[2] 4G-5G Interworking (SamSung)

[3] 38.331 v19.3.0 : NR - Radio Resource Control (RRC) protocol specification. CellGroupConfig and SCellConfig were read.

[4] 38.321 v19.3.0 : NR - Medium Access Control (MAC) protocol specification. Clauses 5.9, 6.1.3.10 and Table 6.2.1-1 were read.

[5] 36.331 v19.3.0 : E-UTRA - Radio Resource Control (RRC) protocol specification. The ASN.1 on this page was checked against it.