5G/NR - RRC Reconfiguration                      Home : www.sharetechnote.com





As in LTE, RRC Reconfiguration is the most important steps in establishing Radio Connection between UE and Network. Understanding every details of RRC Reconfiguration would imply understanding almost everything in NR Radio Stack.  I would take around an year to get the understandings on the details of this single message to a certain degree and you would need to keep learning further details and new things throughout the whole life cycles of 5G/NR. So.. don't be too hurry trying to understand everything at a time and read / think on small pieces and analyze the protocol log when available whenever you have chance. This page also will be updated piece by piece and linked to many other pages for the details.


Following sequence shows what triggers NR RRC Reconfiguration on UE. As you see here, this can be triggered by LTE (in NSA(Non-Standalone) deployment) or by NR (in SA(Standalone) deployment).





RRCReconfiguration ::=              SEQUENCE {

    rrc-TransactionIdentifier           RRC-TransactionIdentifier,

    criticalExtensions                  CHOICE {

        rrcReconfiguration                  RRCReconfiguration-IEs,

        criticalExtensionsFuture            SEQUENCE {}





RRCReconfiguration-IEs ::=          SEQUENCE {

    radioBearerConfig                       RadioBearerConfig        OPTIONAL, -- Need M

    masterCellGroupConfig                   CellGroupConfig          OPTIONAL, -- Need M

    secondaryCellGroupToAddModList          SEQUENCE (SIZE (1..maxSCellGroups)) OF

                                                     CellGroupConfig OPTIONAL, -- Need M

    secondaryCellGroupToReleaseList         SEQUENCE (SIZE (1..maxSCellGroups)) OF

                                                     CellGroupId     OPTIONAL, -- Need M


    measConfig                              MeasConfig     OPTIONAL, -- Need M



    lateNonCriticalExtension                OCTET STRING     OPTIONAL,

    nonCriticalExtension                    SEQUENCE{}       OPTIONAL




RadioBearerConfig ::=                   SEQUENCE {

    srb-ToAddModList                        SRB-ToAddModList      OPTIONAL, -- Need M

    srb-ToReleaseList                       INTEGER (3)           OPTIONAL, -- Need M

    drb-ToAddModList                        DRB-ToAddModList      OPTIONAL, -- Need M

    drb-ToReleaseList                       DRB-ToReleaseList     OPTIONAL, -- Need M

    securityConfig                          SecurityConfig        OPTIONAL  -- Cond KeyChange




SRB-ToAddModList ::=                    SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod

SRB-ToAddMod ::=                        SEQUENCE {

    srb-Identity                            SRB-Identity,

    reestablishPDCP                         ENUMERATED{true}      OPTIONAL,       

    pdcp-Config                             PDCP-Config           OPTIONAL,  





DRB-ToAddModList ::=                    SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod

DRB-ToAddMod ::=                        SEQUENCE {

    cnAssociation                           CHOICE {

        eps-BearerIdentity                  INTEGER (0..15)      OPTIONAL,      

        sdap-Config                             SDAP-Config      OPTIONAL  


    drb-Identity                            DRB-Identity,

    reestablishPDCP                         ENUMERATED{true}     OPTIONAL,

    recoverPDCP                             ENUMERATED{true}     OPTIONAL,     

    pdcp-Config                             PDCP-Config          OPTIONAL, 





DRB-ToReleaseList ::=                   SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity



SecurityConfig ::=                      SEQUENCE {  

    securityAlgorithmConfig                 SecurityAlgorithmConfig    OPTIONAL, 

    keyToUse                                ENUMERATED{KeNB, S-KgNB}   OPTIONAL






CellGroupConfig ::=  SEQUENCE {

    cellGroupId      CellGroupId,


    rlc-BearerToAddModList       SEQUENCE (SIZE(1..maxLCH)) OF LCH-Config         OPTIONAL,

    rlc-BearerToReleaseList      SEQUENCE (SIZE(1..maxLCH)) OF LogicalChannelIdentity   OPTIONAL,


    mac-CellGroupConfig          MAC-CellGroupConfig               OPTIONAL,   -- Need M

    rlf-TimersAndConstants       RLF-TimersAndConstants            OPTIONAL,   -- Need M

    physical-CellGroupConfig     PhysicalCellGroupConfig           OPTIONAL,   -- Need M


    spCellConfig                 SpCellConfig                      OPTIONAL,   -- Need M

    sCellToAddModList            SCellToAddModList                 OPTIONAL,   -- Need M

    sCellToReleaseList           SCellToReleaseList                OPTIONAL    -- Need M



CellGroupId ::=                  INTEGER (1.. maxSCellGroups)


LCH-Config ::=                   SEQUENCE {

    logicalChannelIdentity             LogicalChannelIdentity,

    servedRadioBearer                       INTEGER (1..32)       OPTIONAL,   -- Cond LCH-SetupOnly

    reestablishRLC                          ENUMERATED {true}     OPTIONAL,   -- Need N

    rlc-Config                              RLC-Config           OPTIONAL,   -- Cond LCH-Setup

    mac-LogicalChannelConfig                LogicalChannelConfig    OPTIONAL    -- Cond LCH-Setup   



LogicalChannelIdentity ::=                  INTEGER (1..FFS)


PhysicalCellGroupConfig ::=                 SEQUENCE {

    harq-ACK-Spatial-Bundling                   ENUMERATED {true}    OPTIONAL    -- Need R,



SpCellConfig ::=                        SEQUENCE {

    reconfigurationWithSync             SEQUENCE {

        spCellConfigCommon                  ServingCellConfigCommon,

        newUE-Identity                      C-RNTI,

        t304                                ENUMERATED {ms50, ms100, ms150, ms200, ms500,

                                                        ms1000, ms2000, ms10000-v1310},

        rach-ConfigDedicated                RACH-ConfigDedicated   OPTIONAL,   -- Need M

    }   OPTIONAL,   -- Cond SpCellChange


    spCellConfigDedicated               ServingCellConfigDedicated   OPTIONAL,   -- Need M



C-RNTI ::=                          BIT STRING (SIZE (16))

SCellToReleaseList ::=              SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex

SCellToAddModList ::=               SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig


SCellConfig ::=                     SEQUENCE {

    sCellIndex                          SCellIndex,

    sCellConfigCommon                   ServingCellConfigCommon      OPTIONAL,   

    sCellConfigDedicated                ServingCellConfigDedicated   OPTIONAL,   





ServingCellConfigCommon ::=     SEQUENCE {


    physCellId                          PhysCellId            OPTIONAL,

    frequencyInfoDL                     SEQUENCE {

        carrierFreqDL                       ARFCN-ValueNR

        carrierBandwidthDL                  CarrierBandwidthNR

    }                                                         OPTIONAL,

    frequencyInfoUL                     FrequencyInfoUL       OPTIONAL,


    supplementaryUplink                 SEQUENCE {

        frequencyInfoUL                     FrequencyInfoUL,

    }                                                        OPTIONAL -- Cond SUL



    subcarrierSpacingCommon             SubcarrierSpacing,


    ssb-subcarrier-offset               INTEGER (1..11)                 OPTIONAL,


    ssb-PositionsInBurst                CHOICE {

        shortBitmap                         BIT STRING (SIZE (4)),

        mediumBitmap                        BIT STRING (SIZE (8)),

        longBitmap                          BIT STRING (SIZE (64))

    }                                   OPTIONAL, -- Need M,


    ssb-periodicityServingCell          ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160 }  OPTIONAL,

    dmrs-TypeA-Position                 ENUMERATED {pos2, pos3},

    subcarrierSpacingSSB                SubcarrierSpacingSSB     OPTIONAL, -- Need R


    tdd-UL-DL-configurationCommon       SEQUENCE {

        dl-UL-TransmissionPeriodicity       ENUMERATED {ms0dot5, ms1, ms2, ms5, ms10}    OPTIONAL,

        nrofDownlinkSlots                   INTEGER (0..160)                OPTIONAL,

        nrofDownlinkSymbols                 INTEGER (0..maxSymbolIndex)     OPTIONAL,

        nrofUplinkSlots                     INTEGER (0..160)                OPTIONAL,

        nrofUplinkSymbols                   INTEGER (0..maxSymbolIndex)     OPTIONAL,

    }                                       OPTIONAL, -- Cond TDD

    ss-PBCH-BlockPower                  INTEGER (-60..50),

    rach-ConfigCommon                   RACH-ConfigCommon,


    -- =====================================

    -- FFS which of the following are needed


    --  BandwidthPart-Confi

    --  ControlResourceSet

    --  SearchSpace

    --  or include pdcchConfigSIB1 instead of BWP, CORESET and SearchSpace?

    --  bcch-Config                         BCCH-Config,

    --  pcch-Config                         PCCH-Config,

    --  prach-Config                        PRACH-ConfigSIB,

    --  pdsch-ConfigCommon                  PDSCH-ConfigCommon,

    --  pusch-ConfigCommon                  PUSCH-ConfigCommon,

    --  pucch-ConfigCommon                  PUCCH-ConfigCommon,

    --  soundingRS-UL-ConfigCommon          SoundingRS-UL-ConfigCommon,

    --  uplinkPowerControlCommon            UplinkPowerControlCommon,





subcarrierSpacingCommon : Indicates Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages.

                            Values 15, and 30 kHz are applicable for carrier frequencies <6GHz;

                            Values 60 and 120 kHz are applicable for carrier frequencies >6GHz

ssb-subcarrier-offset :  The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. Absence of the field indicates that no offset if applied (offset = 0). See 38.211,

ssb-PositionsInBurst : Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. It corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1)

                         shortBitmap : bitmap for sub 3 GHz

                         mediumBitmap : bitmap for 3-6 GHz

                         longBitmap : bitmap for above 6 GHz

ssb-periodicityServingCell : The SSB periodicity in msec for the rate matching purpose (see 38.211-  

dmrs-TypeA-Position : Position of (first) DL DM-RS (see 38.211, section This field is usually in MIB. Assuming that the UE does not need to acquire MIB before sending RA to target cell, this parameter should also be here.

subcarrierSpacingSSB : Subcarrier spacing of SSB. Used only for non-initial access (e.g. SCells, PCell of SCG).

dl-UL-TransmissionPeriodicity : Periodicity of the DL-UL pattern. Corresponds to L1 parameter 'DL-UL-transmission-periodicity' (see 38.211). If the field is absent the UE shall assume the default value of the band.

nrofDownlinkSlots : Number of consecutive full DL slots at the beginning of each DL-UL pattern. Corresponds to L1 parameter 'number-of-DL-slots' (see 38.211)

nrofDownlinkSymbols : Number of consecutive DL symbols in the beginning of the slot following the last full DL slot (as derived from nrofDownlinkSlots). Corresponds to L1 parameter 'number-of-DL-symbols-common' (see 38.211)

nrofUplinkSlots : Number of consecutive full UL slots at the end of each DL-UL pattern. Corresponds to L1 parameter 'number-of-UL-slots' (see 38.211)

nrofUplinkSymbols : Number of consecutive UL symbols in the end of the slot preceding the first full UL slot (as derived from nrofUplinkSlots). Corresponds to L1 parameter 'number-of-UL-symbols-common' (see 38.211)        

ss-PBCH-BlockPower : TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power

rach-ConfigCommon : Parameters that are also conveyed via system information (SIB1) but which are provided here to accelerate handover and to avoid that UEs need to read system information from SCells. See rach-ConfigCommon details in RACH page.