5G/NR - RRC Overview   

 

 

 

 

NR RRC INACTIVE

 

There is a addition RRC states between RRC Connected and Idle and Network/UE can optionally stay in INACTIVE state without completely releasing the RRC when there is no traffic and quickly switch back to CONNECTED states when necessary. (NOTE : There was no corresponding states in LTE, but Rrc Inactive status is added to LTE from Release 16).

To me, RRC INACTIVE state is similar to the combination of FACH and PCH in UMTS. Actually Use case of INACTIVE state is almost same as FACH/PCH in UMTS.

The switching between RRC CONNECTED and RRC INACTIVE state happens as shown below.

 

 

 

 

State Transistion Sequence

 

Following is a example of protocol sequence captured by Amarisoft Callbox and a commercial UE.  Suumary of the overall sequence is as follows.

    [1] Network would check if UE support Rrc Inactive via UE Capability Information. (Step (1))

    [2] When there is no traffic for a certain time period, Network would suspend via Rrc Release (Step(2))

    [3] Now the call status is in RRC INACTIVE

    [4] (I did ping from network). Network will trigger Rrc Resume process via Paging (Step (3))

    [5] UE trigger RACH process and send Rrc Resume Request (Step (4))

    [6] Network send Rrc Resume (Step (5))

    [7] UE send Rrc Resume Complete (Step (6))

    [8] Higher layer data (ping in this case) is going on

    [9] After a certain time period from the completion of Higher Layer Data exchange, Network trigger Rrc Suspend via Rrc Release (Step (7))

    [10] I launched Browser from UE to let UE trigger the resume.

    [11] UE trigger RACH process and send Rrc Resume Request (Step (8))

    [12] Network send Rrc Resume (Step (9))

    [13] UE send Rrc Resume Complete (Step (10))

 

 

 

 

(1) UE Capability Information

 

{

  message c1: ueCapabilityInformation: {

    rrc-TransactionIdentifier 0,

    criticalExtensions ueCapabilityInformation: {

      ue-CapabilityRAT-ContainerList {

        {

         ...

            nonCriticalExtension {

              ...

              },

              inactiveState supported

            }

          }

        }

      }

    }

  }

}

 

(2) Rrc Release

 

{

  message c1: rrcRelease: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcRelease: {

      suspendConfig {

        fullI-RNTI '123450460D'H,

        shortI-RNTI '50460D'H,

        ran-PagingCycle rf32,

        ran-NotificationAreaInfo cellList: {

          {

            plmn-Identity {

              mcc {

                0,

                0,

                1

              },

              mnc {

                0,

                1

              }

            },

            ran-AreaCells {

              '001234501'H

            }

          }

        },

        t380 min30,

        nextHopChainingCount 0

      }

    }

  }

}

 

 

(3) Paging

 

{

  message c1: paging: {

    pagingRecordList {

      {

        ue-Identity fullI-RNTI: '1234504601'H

      }

    }

  }

}

 

 

(4) Rrc Resume Request

 

{

  message c1: rrcResumeRequest: {

    rrcResumeRequest {

      resumeIdentity '504601'H,

      resumeMAC-I 'F474'H,

      resumeCause mt-Access,

      spare '0'B

    }

  }

}

 

 

(5) Rrc Resume

 

: This would be the most complicated message for Resume process.. the configuration is almost like RrcSetup / RrcReconfiguration. If the resume happens with the same cell, this message would be enough to carry PUCCH, SRS, DRX and CA configuration since the NW and UE still keep some context from previous connection, but if the resume happens in different cell, NW would need to send full configuration (like full RrcSetup).

 

{

  message c1: rrcResume: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResume: {

      radioBearerConfig {

        srb-ToAddModList {

          {

            srb-Identity 2,

            reestablishPDCP true

          }

        },

        drb-ToAddModList {

          {

            drb-Identity 1,

            reestablishPDCP true

          }

        }

      },

      masterCellGroup {

        cellGroupId 0,

        rlc-BearerToAddModList {

          {

            logicalChannelIdentity 2,

            reestablishRLC true

          },

          {

            logicalChannelIdentity 4,

            reestablishRLC true

          }

        },

        mac-CellGroupConfig {

          phr-Config setup: {

            phr-PeriodicTimer sf500,

            phr-ProhibitTimer sf200,

            phr-Tx-PowerFactorChange dB3,

            multiplePHR FALSE,

            dummy FALSE,

            phr-Type2OtherCell FALSE,

            phr-ModeOtherCG real

          },

          skipUplinkTxDynamic FALSE

        },

        spCellConfig {

          spCellConfigDedicated {

            uplinkConfig {

              initialUplinkBWP {

                pucch-Config setup: {

                  resourceToAddModList {

                    {

                      pucch-ResourceId 16,

                      startingPRB 50,

                      intraSlotFrequencyHopping enabled,

                      secondHopPRB 0,

                      format format1: {

                        initialCyclicShift 8,

                        nrofSymbols 14,

                        startingSymbolIndex 0,

                        timeDomainOCC 2

                      }

                    },

                    {

                      pucch-ResourceId 17,

                      startingPRB 49,

                      intraSlotFrequencyHopping enabled,

                      secondHopPRB 1,

                      format format2: {

                        nrofPRBs 1,

                        nrofSymbols 2,

                        startingSymbolIndex 2

                      }

                    }

                  },

                  resourceToReleaseList {

                    16,

                    17

                  },

                  schedulingRequestResourceToAddModList {

                    {

                      schedulingRequestResourceId 1,

                      schedulingRequestID 0,

                      periodicityAndOffset sl40: 8,

                      resource 16

                    }

                  }

                },

                srs-Config setup: {

                  srs-ResourceToAddModList {

                    {

                      srs-ResourceId 0,

                      nrofSRS-Ports port1,

                      transmissionComb n2: {

                        combOffset-n2 0,

                        cyclicShift-n2 0

                      },

                      resourceMapping {

                        startPosition 0,

                        nrofSymbols n1,

                        repetitionFactor n1

                      },

                      freqDomainPosition 0,

                      freqDomainShift 5,

                      freqHopping {

                        c-SRS 11,

                        b-SRS 3,

                        b-hop 0

                      },

                      groupOrSequenceHopping neither,

                      resourceType aperiodic: {

                      },

                      sequenceId 500

                    }

                  }

                }

              }

            },

            csi-MeasConfig setup: {

              csi-ReportConfigToAddModList {

                {

                  reportConfigId 0,

                  resourcesForChannelMeasurement 0,

                  csi-IM-ResourcesForInterference 1,

                  reportConfigType periodic: {

                    reportSlotConfig slots80: 9,

                    pucch-CSI-ResourceList {

                      {

                        uplinkBandwidthPartId 0,

                        pucch-Resource 17

                      }

                    }

                  },

                  reportQuantity cri-RI-PMI-CQI: NULL,

                  reportFreqConfiguration {

                    cqi-FormatIndicator widebandCQI,

                    pmi-FormatIndicator widebandPMI

                  },

                  timeRestrictionForChannelMeasurements notConfigured,

                  timeRestrictionForInterferenceMeasurements notConfigured,

                  codebookConfig {

                    codebookType type1: {

                      subType typeI-SinglePanel: {

                        nrOfAntennaPorts two: {

                          twoTX-CodebookSubsetRestriction '111111'B

                        },

                        typeI-SinglePanel-ri-Restriction '03'H

                      },

                      codebookMode 1

                    }

                  },

                  groupBasedBeamReporting disabled: {

                  },

                  cqi-Table table2,

                  subbandSize value1

                }

              }

            },

            tag-Id 0

          }

        }

      }

    }

  }

}

 

 

(6) Rrc Resume Complete

 

{

  message c1: rrcResumeComplete: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResumeComplete: {

      selectedPLMN-Identity 1

    }

  }

}

 

 

(7) Rrc Release

 

{

  message c1: rrcRelease: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcRelease: {

      suspendConfig {

        fullI-RNTI '123450460A'H,

        shortI-RNTI '50460A'H,

        ran-PagingCycle rf32,

        ran-NotificationAreaInfo cellList: {

          {

            plmn-Identity {

              mcc {

                0,

                0,

                1

              },

              mnc {

                0,

                1

              }

            },

            ran-AreaCells {

              '001234501'H

            }

          }

        },

        t380 min30,

        nextHopChainingCount 0

      }

    }

  }

}

 

 

(8) Rrc Resume Request

 

{

  message c1: rrcResumeRequest: {

    rrcResumeRequest {

      resumeIdentity '50460A'H,

      resumeMAC-I 'B534'H,

      resumeCause mo-Data,

      spare '0'B

    }

  }

}

 

 

(9) Rrc Resume

 

{

  message c1: rrcResume: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResume: {

      radioBearerConfig {

        srb-ToAddModList {

          {

            srb-Identity 2,

            reestablishPDCP true

          }

        },

        drb-ToAddModList {

          {

            drb-Identity 1,

            reestablishPDCP true

          }

        }

      },

      masterCellGroup {

        cellGroupId 0,

        rlc-BearerToAddModList {

          {

            logicalChannelIdentity 2,

            reestablishRLC true

          },

          {

            logicalChannelIdentity 4,

            reestablishRLC true

          }

        },

        mac-CellGroupConfig {

          phr-Config setup: {

            phr-PeriodicTimer sf500,

            phr-ProhibitTimer sf200,

            phr-Tx-PowerFactorChange dB3,

            multiplePHR FALSE,

            dummy FALSE,

            phr-Type2OtherCell FALSE,

            phr-ModeOtherCG real

          },

          skipUplinkTxDynamic FALSE

        },

        spCellConfig {

          spCellConfigDedicated {

            uplinkConfig {

              initialUplinkBWP {

                pucch-Config setup: {

                  resourceToAddModList {

                    {

                      pucch-ResourceId 16,

                      startingPRB 50,

                      intraSlotFrequencyHopping enabled,

                      secondHopPRB 0,

                      format format1: {

                        initialCyclicShift 8,

                        nrofSymbols 14,

                        startingSymbolIndex 0,

                        timeDomainOCC 2

                      }

                    },

                    {

                      pucch-ResourceId 17,

                      startingPRB 49,

                      intraSlotFrequencyHopping enabled,

                      secondHopPRB 1,

                      format format2: {

                        nrofPRBs 1,

                        nrofSymbols 2,

                        startingSymbolIndex 2

                      }

                    }

                  },

                  resourceToReleaseList {

                    16,

                    17

                  },

                  schedulingRequestResourceToAddModList {

                    {

                      schedulingRequestResourceId 1,

                      schedulingRequestID 0,

                      periodicityAndOffset sl40: 8,

                      resource 16

                    }

                  }

                },

                srs-Config setup: {

                  srs-ResourceToAddModList {

                    {

                      srs-ResourceId 0,

                      nrofSRS-Ports port1,

                      transmissionComb n2: {

                        combOffset-n2 0,

                        cyclicShift-n2 0

                      },

                      resourceMapping {

                        startPosition 0,

                        nrofSymbols n1,

                        repetitionFactor n1

                      },

                      freqDomainPosition 0,

                      freqDomainShift 5,

                      freqHopping {

                        c-SRS 11,

                        b-SRS 3,

                        b-hop 0

                      },

                      groupOrSequenceHopping neither,

                      resourceType aperiodic: {

                      },

                      sequenceId 500

                    }

                  }

                }

              }

            },

            csi-MeasConfig setup: {

              csi-ReportConfigToAddModList {

                {

                  reportConfigId 0,

                  resourcesForChannelMeasurement 0,

                  csi-IM-ResourcesForInterference 1,

                  reportConfigType periodic: {

                    reportSlotConfig slots80: 9,

                    pucch-CSI-ResourceList {

                      {

                        uplinkBandwidthPartId 0,

                        pucch-Resource 17

                      }

                    }

                  },

                  reportQuantity cri-RI-PMI-CQI: NULL,

                  reportFreqConfiguration {

                    cqi-FormatIndicator widebandCQI,

                    pmi-FormatIndicator widebandPMI

                  },

                  timeRestrictionForChannelMeasurements notConfigured,

                  timeRestrictionForInterferenceMeasurements notConfigured,

                  codebookConfig {

                    codebookType type1: {

                      subType typeI-SinglePanel: {

                        nrOfAntennaPorts two: {

                          twoTX-CodebookSubsetRestriction '111111'B

                        },

                        typeI-SinglePanel-ri-Restriction '03'H

                      },

                      codebookMode 1

                    }

                  },

                  groupBasedBeamReporting disabled: {

                  },

                  cqi-Table table2,

                  subbandSize value1

                }

              }

            },

            tag-Id 0

          }

        }

      }

    }

  }

}

 

 

(10) Rrc Resume Complete

 

{

  message c1: rrcResumeComplete: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResumeComplete: {

      selectedPLMN-Identity 1

    }

  }

}

 

 

 

RRC Parameters

 

 

RRCRelease ::= SEQUENCE {

    rrc-TransactionIdentifier               RRC-TransactionIdentifier,

    criticalExtensions CHOICE {

        rrcRelease                              RRCRelease-IEs,

        criticalExtensionsFuture            SEQUENCE {}

    }

}

 

RRCRelease-IEs ::= SEQUENCE {

    redirectedCarrierInfo                    RedirectedCarrierInfo OPTIONAL, -- Need N

    cellReselectionPriorities                 CellReselectionPriorities OPTIONAL, -- Need R

    suspendConfig                            SuspendConfig OPTIONAL, -- Need R

    deprioritisationReq                       SEQUENCE {

            deprioritisationType             ENUMERATED {frequency, nr},

            deprioritisationTimer            ENUMERATED {min5, min10, min15, min30}

    } OPTIONAL, -- Need N

    lateNonCriticalExtension OCTET STRING OPTIONAL,

    nonCriticalExtension RRCRelease-v1540-IEs OPTIONAL

}

 

SuspendConfig ::= SEQUENCE {

    fullI-RNTI                                  I-RNTI-Value,

    shortI-RNTI                               ShortI-RNTI-Value,

    ran-PagingCycle                         PagingCycle,

    ran-NotificationAreaInfo               RAN-NotificationAreaInfo OPTIONAL, -- Need M

    t380                                         PeriodicRNAU-TimerValue OPTIONAL, -- Need R

    nextHopChainingCount                 NextHopChainingCount,

    ...

}

 

 

RRCResumeRequest ::= SEQUENCE {

    rrcResumeRequest                      RRCResumeRequest-IEs

}

 

RRCResumeRequest-IEs ::= SEQUENCE {

    resumeIdentity                          ShortI-RNTI-Value,

    resumeMAC-I                            BIT STRING (SIZE (16)),

    resumeCause                            ResumeCause,

    spare                                      BIT STRING (SIZE (1))

}

 

RRCResumeRequest1 ::= SEQUENCE {

    rrcResumeRequest1                    RRCResumeRequest1-IEs

}

 

RRCResumeRequest1-IEs ::= SEQUENCE {

    resumeIdentity                          I-RNTI-Value,

    resumeMAC-I                            BIT STRING (SIZE (16)),

    resumeCause                            ResumeCause,

    spare                                      BIT STRING (SIZE (1))

}

 

ResumeCause ::= ENUMERATED {

    emergency,

    highPriorityAccess,

    mt-Access,

    mo-Signalling,

    mo-Data,

    mo-VoiceCall,

    mo-VideoCall,

    mo-SMS,

    rna-Update,

    mps-PriorityAccess,

    mcs-PriorityAccess,

    spare1, spare2, spare3, spare4, spare5

}

 

 

 

Reference

 

[1]