Amarisoft

NR Rrc Inactive

 

The purpose of this tutorial is to show you how to test RrcInactive status.  In this tutorial, I assume that you are familiar with basic operations of callbox and I would not explain the very basic operational procedure. I will just explain about the important configurations and how you can confirm on those configuration from the log.

RrcInactive in NR is a mechanism to park the communication in a kind of dormant mode without releasing RRC. The advantage of putting the communication into this mode comparing to releasing RRC is that it can switch back to the normal communication mode much more quickly then the case of RrcRelease.

Overall procedure (statemachine) for switching back and forth between RRC Connected and RRC Inactive is as follows.

NR RrcInactive Overview

Image Source : Sharetechnote

 

 

Table of Contents

 

 

Test Setup

Test setup for this tutorial is as shown below.  (NOTE: Since TDD UL/DL configuration gets configured into SIB1 message and you may not need to get UE connected to the callbox if you just want to check the SIB1 as in this tutorial)

TestSetup Callbox UE 1sdr 01

 

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

 

Configuration

I used the configuration gnb-sa-rrc-inactive.cfg which is copied from gnb-sa.cfg and modified for this tutorial.

NR RrcInactive Config 01

I have used mme-ims-cn-assistance.cfg which is copied from mme-ims.cfg and modified. RRC Inactive involves core network feature as well as gNB configuration, so I created a special configuration file for mme configuration as well.

NR RrcInactive Config 02

In gnb-sa-rrc-inactive.cfg, add rrc_inactive object as shown below. Configuration for RRC inactive for gNB is set by rrc_inactive parameter. rna_cell_list, inactivity_timer and release_timer_mins are important parameters in this configuration. cell_id_list within rna_cell_list should be 28 digit in binary and you can create the value by concatenating gNB ID and Cell ID.

NR RrcInactive Config 03

In mme-ims-cn-assistance.cfg , add the parameter cn_assistance_info_support as show below. It is important to set cn_assistance_info_support to true in order to enable RRCinactive functionality.

NR RrcInactive Config 04

 

Perform the Test

Check basic cell configuration with 'cell phy' and cell command, and make it sure that it is configured as per your UE capability. gNB_ID and Cell ID with dotted line is used to make up the number in cell_id_list[] in the configuration file shown before.

NR RrcInactive Run 01

Power on UE and Get the UE attached to cell

NR RrcInactive Run 02

Make it sure that UE is registered to mme. Make it sure that at least one IP is assigned to the UE.

NR RrcInactive Run 03

When there is no traffic, RRC goes into [inactive] as shown below. When the call status goes into RRCinactive, [inactive] is printed in the trace log.

NR RrcInactive Run 04

When the RRC is in Inactive state, you can let Callbox to trigger Resume by sending ping as below. Usually the 'time' value for the first ping reply would be very long since it has to wait until the Resume process gets completed. During the resume process, RAN Paging and a few additional procedures should be completed and these steps are the main factors of the delay.

NR RrcInactive Run 05

Rrc resumes as shown below as the user traffic (ping data in this case). When higher layer triggers RRC Resume, you would see that RACH process is triggered in trace log.

NR RrcInactive Run 06

 

Log Analysis

Sample Log

First to check if UE support Rrc Inactive states from UE capability information message. If UE does not notify inactiveState, gNB and MME would not trigger RRC inactive process.

NOTE : This is very important to check. If the UE does not notify this capability, gNB will not trigger RRC Inactive state even if all the configuration is correctly set in the configuration file.

NR RrcInactive Log 01

If there is no higher layer data traffic for a certain duration set in the configuration file. Network would trigger switching to RRC INACTIVE as shown below. RRC message to switch to RRCinactive is rrcRelease message with suspendConfig IE. The suspendConfig IE provide the required information to resume the connection when needed.

NR RrcInactive Log 02

If you trigger data traffic (e.g, ping) while in Rrc Inactive, the callbox(gNB) would send ping to trigger Resume process. The ping should carry the ue-Identity that is same as the one configured in suspendConfig of rrcRelease message.

NR RrcInactive Log 03

In response to the paging, UE will send resume request. In rrcResumeRequest message, you see resumeIdentity IE which is associated with RNTI that is configured in suspendConfig.

NR RrcInactive Log 04

Callbox send Rrc Resume with the necessary Rrc Configuration to switch back to Rrc Connected state. If UE recieves the paging, it send Rrc Resume Request. If gNB recieves rrcResumeRequest from the UE, it send RRC resume message. In terms of functionality and the information it carries, RRC resume message is similar to RRC setup message. It should carry all the radio protocol parameter to reestablish the call connection.

NR RrcInactive Log 05

If UE properly recieves RRC resume message and applied all the parameters properly, UE send Rrc Resume Complete

NR RrcInactive Log 06

If there is no data traffic at higher layer for a certain duration. Network would trigger switching to RRC INACTIVE as shown below

NR RrcInactive Log 07

If UE trigger data traffic (e.g, browsing) while in Rrc Inactive, the UE would send ResumeRequest to trigger Resume processNR RrcInactive Log 08

 

 

RRC / NAS Signaling

 

RrcRelease (SA)

: This is the RrcRelease message sent by gNB  to switch to Rrc Inactive Status. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcRelease: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcRelease: {

      suspendConfig {

        fullI-RNTI '1234504601'H,

        shortI-RNTI '504601'H,

        ran-PagingCycle rf32,

        ran-NotificationAreaInfo cellList: {

          {

            plmn-Identity {

              mcc {

                0,

                0,

                1

              },

              mnc {

                0,

                1

              }

            },

            ran-AreaCells {

              '001234501'H

            }

          }

        },

        t380 min30,

        nextHopChainingCount 0

      }

    }

  }

}

 

 

Paging (SA)

: This is the Paging message sent by gNB  to trigger UE to wake up from the inactive status. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

 

{

  message c1: paging: {

    pagingRecordList {

      {

        ue-Identity fullI-RNTI: '1234504601'H

      }

    }

  }

}

 

 

RrcResumeRequest (SA)

: This is the RrcResumeRequest message sent by UE  to trigger UE to wake up from the inactive status. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcResumeRequest: {

    rrcResumeRequest {

      resumeIdentity '504601'H,

      resumeMAC-I 'F474'H,

      resumeCause mt-Access,

      spare '0'B

    }

  }

}

 

 

RrcResume (SA)

: This is the RrcResume message sent by gNB  to setup RRC. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcResume: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResume: {

      radioBearerConfig {

        ..

      },

      masterCellGroup {

        cellGroupId 0,

        rlc-BearerToAddModList {

          ..

        },

        mac-CellGroupConfig {

          ..

        },

        spCellConfig {

          spCellConfigDedicated {

            uplinkConfig {

              initialUplinkBWP {

                pucch-Config setup: {

                  ..

                  },

                  resourceToReleaseList {

                    ..

                  },

                  schedulingRequestResourceToAddModList {

                    ..

                  }

                },

                srs-Config setup: {

                  ...

                }

              }

            },

            csi-MeasConfig setup: {

              ...

            },

            tag-Id 0

          }

        }

      }

    }

  }

}

 

 

RrcResumeComplete (SA)

: This is the RrcResumeComplete message sent by UE. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcResumeComplete: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcResumeComplete: {

      selectedPLMN-Identity 1

    }

  }

}