NR UAI (UE-Assistance Information)
The purpose of this tutorial is to show you how to configure gNB so that it can handle UE assistance Information from UE. UE assistance information is a special set of RRC messages introduced since Release 16 mainly for several purpose summarized below. (This is short summary, for the details specified in 3gpp, refer to 38.331-5.7.4.1
- Power Saving : The messages related to the configuration for drx, aggregated bandwidth, MIMO layers, scross-slot scheduling
- Overheating Mitigation : Overheating Assistance Information
- Measurement : The messages related to relaxation for RLM, BFD, RRM measurement
- Others : Preference on RRC Status and etc
As of now, Amarisoft support the receptions of many of the UAI message, but in most case Amarisoft gNB just recieves the message and does not perform any specific activities for the message except 'Preference on RRC State' (Amarisoft gNB performs a specific activity as per the contents of the UAI for 'Preference on RRC State').
Table of Contents
Introduction
The evolution of 5G New Radio (NR) introduces a sophisticated and highly adaptable network architecture, enabling enhanced mobile broadband, ultra-reliable low-latency communication, and massive machine-type communication. At the core of this architecture is the gNodeB (gNB), the 5G equivalent of the eNodeB in LTE, which serves as the interface between User Equipment (UE) and the 5G Core Network. In 3GPP Release 16, the specification introduced a significant enhancement known as User Equipment (UE) Assistance Information, a mechanism that allows UEs to communicate context-aware operational needs to the gNB via specialized Radio Resource Control (RRC) signaling. This capability empowers the network to optimize resource allocation, energy efficiency, and user experience by adapting to real-time conditions such as device power constraints, thermal states, and measurement relaxation requirements. By leveraging UE Assistance Information, the gNB can make more informed scheduling and configuration decisions, ultimately contributing to network sustainability, device longevity, and improved service quality. The integration and handling of UE Assistance Information is thus a critical aspect of modern 5G deployments, forming a foundational element for advanced network management and optimization strategies within the broader 5G ecosystem.
-
Context and Background
- 5G NR introduces advanced mechanisms for dynamic interaction between UEs and the network, including the ability for UEs to send assistance information relevant to their operational status.
- UE Assistance Information was standardized in 3GPP Release 16 to support use cases such as power saving, overheating mitigation, and measurement relaxation, allowing the network to respond proactively to UE needs.
- The gNB acts as a critical node, processing RRC signaling from UEs and incorporating this feedback into scheduling, resource management, and state transition decisions.
-
Relevance and Importance
- Proper handling of UE Assistance Information is essential for achieving the energy efficiency, reliability, and flexibility goals of 5G NR.
- Network operators and engineers must configure gNBs to correctly interpret and act on UE Assistance Information for optimal network and device performance.
- This tutorial addresses the practical steps to enable and verify UE Assistance Information handling in Amarisoft gNB, highlighting vendor-specific behaviors and customization points.
-
What You Will Learn
- The architectural role of UE Assistance Information in 5G NR networks and its interaction with the gNB.
- How to configure Amarisoft gNB to support the reception and (where applicable) processing of various UE Assistance Information types.
- The operational impact of specific UE Assistance Information categories (e.g., power saving, overheating mitigation, measurement relaxation, RRC state preference).
- Methods to validate and troubleshoot UE Assistance Information handling in a test or production network environment.
-
Prerequisite Knowledge and Skills
- Familiarity with 5G NR architecture, specifically RAN components such as gNB and UE.
- Understanding of RRC signaling procedures and the overall protocol stack in 5G.
- Basic experience with Amarisoft gNB configuration and operational workflows.
- General knowledge of 3GPP standards, with specific reference to Release 16 documentation.
Summary of the Tutorial
This tutorial demonstrates the setup, configuration, and procedure for testing UE-Assistance Information (UAI) with Release Preference, specifically focusing on RRC Inactive state using Amarisoft UEsim as the DUT.
-
Test Setup:
- Two setups are described:
- Setup A: Uses a commercial UE supporting UAI (Release Preference).
- Setup B: Uses Amarisoft UEsim as DUT supporting UAI. The tutorial uses Setup B.
- SIM card supplied with the system is used.
- Two setups are described:
-
Key Configuration Parameters:
- Important parameters for UAI include overheating_assistance, max_bw_preference, max_cc_preference, max_mimo_layer_preference, and release_preference.
- Remote_API parameters on UEsim: ue_id, power_pref_indication, preferred_rrc_state.
-
Test 1: Release Preference - RRC Inactive
-
Configuration Steps:
- gNB (Callbox) is configured with gnb-sa-uai-rrc-state.cfg (modified from gnb-sa.cfg).
- Key configurations:
- Enable both rrc_inactive and ue_assistance_information in gNB config.
- ue_assistance_information must include release_preference.
- When release_preference is set, RRC Inactive is performed as per rrc_inactive parameter.
- Core network (MME) configuration (mme-ims-cn-assistance.cfg):
- Enable cn_assistance_info_support to allow core to trigger RRC Inactive state.
- On UEsim, configure ue-nr-uai-rrc-inactive.cfg:
- Enable rrc_inactive_support to allow UEsim to indicate RRC-Inactive capability in UE capability information.
- If using a commercial UE, ensure it supports UE-Assistance Information for release-preference.
-
Test Execution Steps:
- Start trace on gNB (Callbox).
- Power on UE on UEsim (or turn on commercial DUT).
- Wait for initial attach procedure to complete.
- On UEsim, run the following remote API command to trigger the UE-Assistance Information message:
./ws.js ue '{ "message": "ue_assistance_information", "ue_id":1, "preferred_rrc_state": "inactive" }' - Verify that RRC State transitions to inactive upon sending the message.
-
Log Analysis:
- Verify that UE capability information indicates support for releasePreference UAI.
- Confirm that UEsim sends appropriate UE assistance information with releasePreference.preferredRRC-State inactive when the remote API command is triggered.
- Check that gNB responds with RRC Release with suspendConfig (i.e., transitions to RRC inactive).
-
Configuration Steps:
Throughout the procedure, the focus is on proper configuration of gNB, MME, and UEsim, followed by execution of the test and validation using traces and logs to confirm RRC state behavior in response to UE-Assistance Information messages with release preference for RRC Inactive.
Test Setup
Test setup for this tutorial is as shown below. This is just for low layer testing, you may not need any complicated IP layer setup.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
If you have a commercial UE that support UE assistance information with Release Preference, you can use the Setup A. If you don't have any commercial UE supporting this feature but have Amarisoft UEsim you can use Setup B. In this Test, Setup B is used.
Setup A
This setup is the case where you use a commerical UE as a DUT supporting UAI (UE-Assistance Information)

Setup B
This setup is the case where you use a commerical Amarisoft UEsim as a DUT supporting UAI (UE-Assistance Information)

Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- ue_assistance_information : In this link, you can find the descriptions for all the parameters below.
- overheating_assistance
- max_bw_preference
- max_cc_preference
- max_mimo_layer_preference
- release_preference
Following is Remote_API configuration on UEsim to trigger UE assistance information message.
- ue_assistance_information: In this link, you can find the descriptions for all the parameters below.
- ue_id
- power_pref_indication
- preferred_rrc_state
Test 1 : Release Preference - RRC Inactive
This test is to show how to configure and test a case of UAI for Release Preference with RRC Inactive. This is to let gNB to have preference of releasing with RRC Inactive instead of regular release.
Configuration
The configuration shown here is common configuration for all the subtests belonging to Test 1 and I will not show this configuration repeatedly for every subtest.
I have used gnb-sa-uai-rrc-state.cfg which is copied and modified from gnb-sa.cfg on Callbox (gNB)

I am using mme-ims-cn-assistance.cfg and ims config as shown below.

On UEsim, I used ue-nr-uai-rrc-inactive.cfg which has been copied and modified from ue-nr-sa.cfg (

gnb-sa-uai-rrc-state.cfg is configured as follows.
In this configuration, both rrc_inactive and ue_assistance_information are enabled.
The rrc_inactive section defines the parameters required for RRC Inactive operation, including rna_cell_list, ran_paging_cycle, and inactivity_timer. In this example, inactivity_timer inside rrc_inactive is set to a very large value, 120000. This is done to prevent the gNB from moving the UE to RRC Inactive by normal inactivity handling before the UE sends the UE Assistance Information message.
The ue_assistance_information section enables release_preference and sets prohibit_timer to 0.5. This allows the UE to send release preference information. When the UE sends release preference with inactive state, the gNB can apply RRC Inactive release according to the parameters configured in rrc_inactive.

mme-ims-cn-assistance.cfg is configured as shown below.
In MME configuration, cn_assistance_info_support is set to true. This enables the core network to send Core Network Assistance Information during Initial Context Setup.
This configuration is not mandatory for every UE Assistance Information test. It is required for this specific test because the UE sends release preference with inactive state. With cn_assistance_info_support enabled, the core network becomes capable of supporting the RRC Inactive related procedure, so the gNB can release the UE to RRC Inactive according to the configured release preference behavior.

ue-nr-uai-rrc-inactive.cfg is configured as shown below. (
The key UEsim parameter is rrc_inactive_support. This parameter allows UEsim to report RRC Inactive support in UE capability information.
In this configuration, as_release is set to 16 so that UEsim can support Release 16 based UE Assistance Information. ue_category is set to nr for NR UE operation. rrc_inactive_support is set to true so that the UE includes RRC Inactive support in its UE capability information.
This setting is important for this test because the gNB needs to know that the UE supports RRC Inactive before it can release the UE to RRC Inactive state based on the release preference received from UE Assistance Information.

Perform the Test
To perform the test, first start the trace on the gNB side. In the Callbox console, run the trace command 't'. After this command is executed, the gNB starts tracing signaling messages and shows the message Press [return] to stop the trace. Keep this trace running while the UE is attached and while the UE Assistance Information message is triggered from the UE side.

Power on the UE from UEsim. If the DUT is a commercial phone, turn on the phone instead.
In this example, UEsim is started with RF0 configured for band n78. The downlink and uplink frequency are both set to 3489.420 MHz, with 2 downlink antennas and 1 uplink antenna. After the UE is powered on, the UE starts cell search and detects the cell. The log Cell 0: SIB found confirms that the UE has found the cell and successfully decoded SIB information.

Wait until the initial attach is complete.
After the UE is attached, send the following remote API command from the /root/ue/doc directory on UEsim. This command makes UEsim send a UE Assistance Information message for UE ID 1. In the message body, preferred_rrc_state is set to inactive. This means the UE is informing the network that it prefers to be released to RRC Inactive state.
./ws.js ue '{"message": "ue_assistance_information", "ue_id":1, "preferred_rrc_state": "inactive"}'
After the command is executed, the WebSocket remote API connects to UEsim on 127.0.0.1:9002. The log shows that the message ue_assistance_information id#1 is sent and then accepted by UEsim. The Message received response confirms that UEsim has received the command successfully and has triggered the UE Assistance Information message toward the network.

Confirm that the RRC state changes to inactive immediately after the UE Assistance Information message is sent.
In the gNB trace, the UE is first shown in active RRC state with normal DL and UL scheduling information. After the UE sends the UE Assistance Information message with ReleasePreference set to inactive, the gNB receives the message and triggers the release procedure toward RRC Inactive.
After that point, the UE state in the trace changes from normal scheduling status to inactive. This confirms that the gNB accepted the UE release preference and moved the UE to RRC Inactive state according to the configured rrc_inactive parameters.

Log Analysis
Following is the log snapshot that are involved in UE assistance information message and handling process.
First, check whether the UE reports support for releasePreference UAI in UE Capability Information.
In the WebGUI log, open the UE capability information message and check the nonCriticalExtension.powSav-Parameters section. In this example, powSav-ParametersCommon-r16 includes releasePreference-r16 supported. This means the UE has informed the network that it supports release preference based UE Assistance Information.
This capability indication is important because the gNB should know that the UE supports releasePreference UAI before the UE sends UE Assistance Information requesting preferred_rrc_state as inactive. After this capability is reported, the later UE Assistance Information message can be interpreted as a valid release preference request from the UE.

When you run the remote API command ./ws.js ue '{"message": "ue_assistance_information", "ue_id":1, "preferred_rrc_state": "inactive"}', UEsim sends UE Assistance Information with releasePreference.preferredRRC-State set to inactive.
In the WebGUI log, select the UE assistance information message. In the decoded message, check criticalExtensions.ueAssistanceInformation.nonCriticalExtension.releasePreference-r16. In this example, preferredRRC-State-r16 is shown as inactive.
This confirms that the remote API command successfully triggered the UE to send UE Assistance Information, and the content of the message indicates that the UE prefers to be released to RRC Inactive state.

Once the gNB receives the UE Assistance Information message, it responds according to the requested release preference.
In this example, the UE requested preferredRRC-State as inactive. After receiving this message, the gNB sends RRC Release to the UE. In the decoded RRC Release message, suspendConfig is included. This indicates that the release is not a normal release to RRC Idle, but a release with suspend configuration for RRC Inactive.
The suspendConfig includes the information required for the UE to resume later, such as fullI-RNTI, shortI-RNTI, ran-PagingCycle, and ran-NotificationAreaInfo. This confirms that the gNB accepted the UE Assistance Information request and released the UE to RRC Inactive state.

RRC / NAS Signaling
ueAssistanceInformation - preferredRRC State : inactive (SA)
: This is ueAssistanceInformation message from UE with preferred RRC State = inacative.
{
message c1: ueAssistanceInformation: {
criticalExtensions ueAssistanceInformation: {
nonCriticalExtension {
nonCriticalExtension {
releasePreference-r16 {
preferredRRC-State-r16 inactive
}
}
}
}
}
}