UE Assistance Information is a special RRC message (mechanism) by which UE can inform various internal status to the network so that Network can assign / control resources better fit for the specific moment of each connected UE.
- Overall Procedure
- Types of UE Assistance Information
- What is gNB supposed to do ?
- Examples
- UE Capability
- RRC Parameters
- Reference :
- Get the Test Procedure and Log / Amarisoft TechAcademy
Overall Procedure
The procedure is short, and what it leaves out is the interesting part. There is no request from the network and no permission granted at the moment of sending. The UE decides when to speak. The one precondition is set earlier, and 38.331 Figure 5.7.4.1-1 shows where.
As shown below (38.331-Figure 5.7.4.1-1: UE Assistance Information), UE may send UEAssistanceInformation after RRCReconfiguration.

Two lifelines and two arrows is all there is. The RRCReconfiguration arrow carries a head at each end, and the UEAssistanceInformation arrow points one way only, from UE to Network. That asymmetry is the point. The reconfiguration is an exchange, and the assistance report is a notification that expects no answer.
That RRCReconfiguration is doing something specific, and it is what makes the rest possible. It carries OtherConfig, and OtherConfig holds one SetupRelease entry per preference type. The Release 16 set is drx-PreferenceConfig-r16, maxBW-PreferenceConfig-r16, maxCC-PreferenceConfig-r16, maxMIMO-LayerPreferenceConfig-r16, minSchedulingOffsetPreferenceConfig-r16 and releasePreferenceConfig-r16, and later releases added more.
So the freedom is real but bounded. The UE picks the moment and the value, and the network picks which preferences exist at all. If the network never sets up drx-PreferenceConfig-r16, no amount of battery pressure will produce a DRX preference from that UE.
There is a rate limit as well, and it is the only thing those configurations contain. DRX-PreferenceConfig-r16 holds exactly one field, drx-PreferenceProhibitTimer-r16, an ENUMERATED running s0, s0dot5, s1 and on to s30. MaxBW-PreferenceConfig-r16 has the same shape. So the network grants a preference and sets how often the UE may repeat it, and that is the whole of its control.
The UE starts this one : no request and no grant, unlike UE capability, which the network has to ask for.OtherConfig is the gate : a preference the network never set up is a preference the UE cannot report.The configuration is only a prohibit timer : DRX-PreferenceConfig-r16 and MaxBW-PreferenceConfig-r16 each hold one timer field and nothing else.Check the gate before the UE : when a preference never appears in a log, the missing SetupRelease entry is the first thing to look for.
In some aspect, you may consider the purpose of this message is similar to UE capability Information. Then, why we need this kind of new/additional signaling message. I think (in my personal opinion) there are some differences between UEassistanceInformation and UEcapabilityInformation).
- UE capability Information can be sent only in response to the request from gNB whereas UEassistanceInformation can be sent whenever UE wants to send
- UE capability Information is usually being sent before RRCReconfiguration to help gNB not to configure anything that is out of capability of the UE whereas UEassistanceInformation is sent after RRCReconfigure to help gNB to configure parameters best fit for the UE for the specific moment/duration.
- UE capabilityInformation usually informs on its max capabilities whereas UE assistanceInformation informs the capabilities at a specific moments (UE capability Information is more of a set of static information whereas UEassistanceInformation is more of dynamic nature)
Types of UE Assistance Information
The information that can be informed by UEassistanceMessage can be categorized as follows (this table is based on 38.331-5.7.4.1). I think one of the strongest motivation for this message is for Power Saving and Heat Mitigation and I think those would be implemented with higher priority.
|
Application Purpose |
Parameters |
|
Power Saving |
DRX parameters maximum aggregated bandwidth maximum number of secondary component carriers maximum number of MIMO layers minimum scheduling offset for cross-slot scheduling |
|
Overheating Mitigation |
overheating assistance information |
|
Measurement |
relaxation state for RLM measurements relaxation state for BFD measurements change of its fulfilment status for RRM measurement relaxation criterion |
|
Others |
delay budget report carrying desired increment/decrement in the connected mode DRX cycle length overheating assistance information IDC assistance information preference on the RRC state configured grant assistance information for NR sidelink communication preference in being provisioned with reference time information preference for FR2 UL gap preference to transition out of RRC_CONNECTED state for MUSIM operation preference on the MUSIM gaps availability of data mapped to radio bearers which are not configured for SDT preference for the SCG to be deactivated, or; indicate that the UE has uplink data to transmit for a DRB for which there is no MCG RLC bearer while the SCG is deactivated |
Each row of that table lands somewhere specific in the ASN.1 further down, and the mapping is worth having before you read either one. Power saving is the Release 16 preference set : DRX-Preference-r16, MaxBW-Preference-r16, MaxCC-Preference-r16, MaxMIMO-LayerPreference-r16 and MinSchedulingOffsetPreference-r16.
Overheating mitigation is older than all of those. OverheatingAssistance arrived in UEAssistanceInformation-v1540-IEs, which is the first extension container in the chain. The measurement row is at the other end. All three of its fields arrived together in UEAssistanceInformation-v1700-IEs : rlm-MeasRelaxationState-r17, bfd-MeasRelaxationState-r17 and rrm-MeasRelaxationFulfilment-r17.
The long Others row is spread across the whole chain, and that is what makes it long. The field delayBudgetReport sits in the original UEAssistanceInformation-IEs. Then v1700 adds musim-Assistance-r17, scg-DeactivationPreference-r17 and nonSDT-DataIndication-r17. The Release 18 IDC fields are in v1800. It is much easier to read that row in release order than in table order.
The table is really a release history : the order of the rows says little, but the container each field sits in says when it arrived.Overheating came first : OverheatingAssistance is in v1540-IEs, before the power-saving preferences existed.The measurement row is Release 17 : all three relaxation fields arrived together in v1700-IEs.Others is not one feature : it collects everything that did not fit the other three rows, from delay budget reporting to MUSIM.
What is gNB supposed to do ?
I think the end effect of the UE assisstant information was often done by some UE implementation even when we didn't have the feature like UE assisstant information. The tricks that some UE (modem) employed for heat mitigation (i.e, avoiding overheat). Simply put, the trick was to cheat gNB in such a way that gNB reduces physical resources (reduce throughput) for a UE. Some example of these trick was as follows.
- UE report low RI even when the channel condition is good enough for higher value. It is expected for eNB/gNB to reduce the number of antenna for transmission and reduce heat generation / power consumption on UE
- (If above does not work enough), UE report low CQI even when the channel condition is good enough for higher value. It is expected for eNB/gNB to reduce MCS value and reduce heat generation / power consumption on UE
- When UE is in Carrier Aggregation, UE send scg-Failure and it is expected for gNB to remove the SCC.
I think major purpose of UE-Assisstance Information in NR is to make this kind of 'cheating process' an offical/formal processes. 3GPP specifies what kind of information a UE send / report by standard, but it doesn't seem (if I didn't miss anything) that there is clear statement about what gNB is supposed to do when it gets some message from UE. However I think the expectation from UE side would be similar to what they used to get when they were trying to cheat the gNB. Some of examples of expectation would be as follows :
MaxMIMO-LayerPreference-r16 : Usually UE would report the MIMO config than what it has reported in UE capability information and it is expected for gNB to send RRCReconfig to downgrade the MIMO as UE report.reducedMaxCCs : Usually UE would report the less number of CCs than the number of CC in the current setup and it is expected for gNB to reduce the number of CCs.reducedMaxCCs : Usually UE would report the less number of CCs than the number of CC in the current setup and it is expected for gNB to reduce the number of CCs.MinSchedulingOffsetPreference-r16 : Usually UE would report the larger values for k0 and k2 to have enough time to prepare PDSCH / PUSCH in response to DCI. In this case gNB may do two things. It just can put the requested value (any value greater than the requested value) in DCI without doing RRCReconfiguration. This can relax the required PDSCH/PUSCH preparation time, but it would not impact much on power saving on UE side. If gNB explicitely change k0, k2 value in RRCReconfiguration, then UE can switch off some of the PHY process between DCI and PDSCH/PUSCH if k0 and k2 are explicitely specified long enough.
Examples
The sections above give the message, the rules and the structures. What they do not give is the shape of one exchange from beginning to end, so a short sequence for each assistance type follows. Every one of them covers a type that has its own SetupRelease entry in OtherConfig, because that gate is what makes the exchange possible at all.
They all share the same four beats, and it is worth seeing that before reading any of them. The network opens the gate, something changes inside the UE, the UE reports, and the network may or may not act. Only the third step is specified tightly. The fourth is The fourth is for the network to decide.
DRX Preference
The classic power-saving case. The UE would rather wake less often, and DRX saves more power than anything else it can ask for. Note that all four fields are OPTIONAL, so the UE can ask about the long cycle alone and say nothing about the rest.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up drx-PreferenceConfig-r16. Its only field is drx-PreferenceProhibitTimer-r16, which is how often the UE may repeat itself. |
|
2 |
UE |
- |
Battery is low, or traffic has stopped, and the UE would rather sleep longer. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
drx-Preference-r16 carries preferredDRX-LongCycle-r16, and may add preferredDRX-InactivityTimer-r16, preferredDRX-ShortCycle-r16 and preferredDRX-ShortCycleTimer-r16. |
|
4 |
gNB -> UE |
RRCReconfiguration |
If the gNB agrees, it rewrites DRX-Config. Nothing obliges it to. |
Maximum Aggregated Bandwidth Preference
Bandwidth costs power in the receiver, so a UE under pressure may ask for less of it. The request is per frequency range, which matters because FR2 is usually the expensive one to keep open.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up maxBW-PreferenceConfig-r16, again holding only maxBW-PreferenceProhibitTimer-r16. |
|
2 |
UE |
- |
The UE decides its current aggregated bandwidth is more than it wants to run. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
maxBW-Preference-r16 carries reducedMaxBW-FR1-r16 or reducedMaxBW-FR2-r16, each a ReducedMaxBW-FRx-r16. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may narrow the bandwidth part or drop a carrier. |
Maximum Number of Component Carriers Preference
The same idea as bandwidth, applied to whole carriers rather than to one. Rather than narrowing a carrier the UE asks to run fewer of them, which is the cheaper thing to do when carrier aggregation is configured but not needed.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up maxCC-PreferenceConfig-r16. |
|
2 |
UE |
- |
The UE is aggregating more carriers than its current traffic justifies. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
maxCC-Preference-r16 carries reducedMaxCCs-r16, which names a downlink and an uplink count. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may release secondary cells to match. |
Maximum MIMO Layer Preference
Layers cost receive chains, and receive chains cost power. What is gNB supposed to do ? describes UEs achieving this for years by reporting a low rank. It is now a field of its own.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up maxMIMO-LayerPreferenceConfig-r16. |
|
2 |
UE |
- |
The UE would rather run fewer layers than the channel could support. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
maxMIMO-LayerPreference-r16 carries reducedMaxMIMO-LayersFR1-r16 or the FR2 pair, each an INTEGER (1..8) downlink and INTEGER (1..4) uplink. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may reduce the configured rank, which also reduces its own transmit chains. |
Minimum Scheduling Offset Preference
This one gives the UE time rather than resources. A larger k0 or k2 means more slots between the grant and the data, so the UE can leave parts of the receiver idle instead of holding them ready.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up minSchedulingOffsetPreferenceConfig-r16. |
|
2 |
UE |
- |
The UE wants longer between the DCI and the PDSCH or PUSCH it schedules. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
minSchedulingOffsetPreference-r16 carries preferredK0-r16 and preferredK2-r16, given per subcarrier spacing : sl1, sl2, sl4, sl6 at 15 and 30 kHz, and sl2, sl4, sl8, sl12 at 60 and 120 kHz. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may set minimumSchedulingOffsetK0 and K2 accordingly. |
Release Preference
Every other preference asks to stay connected on cheaper terms. This one asks to stop being connected at all, and it is the only preference whose value is a state rather than a quantity.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up releasePreferenceConfig-r16. |
|
2 |
UE |
- |
The UE has nothing to send and no reason to hold the connection. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
releasePreference-r16 carries preferredRRC-State-r16, an ENUMERATED { idle, inactive, connected, outOfConnected }. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may release the UE to RRC_IDLE or RRC_INACTIVE, or ignore the request and keep it connected. |
Overheating Assistance
The oldest of these, and the only one where the UE is reporting a physical problem rather than a preference. It arrived in UEAssistanceInformation-v1540-IEs, before the Release 16 preference set existed, which is why its field names carry no release suffix.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up overheatingAssistanceConfig. |
|
2 |
UE |
- |
The UE has reached a temperature it cannot sustain. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
overheatingAssistance carries any of reducedMaxCCs, reducedMaxBW-FR1, reducedMaxBW-FR2, reducedMaxMIMO-LayersFR1 and reducedMaxMIMO-LayersFR2. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB reduces whichever of those it configured. |
|
5 |
UE -> gNB |
UEAssistanceInformation |
When the UE cools down it sends the message again with the fields absent, which is how it withdraws the request. |
IDC Assistance
Here the interference is inside the handset. Another radio in the same device is colliding with NR, and it might be Bluetooth, WiFi or now UWB. Only the UE can see that it is happening.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up idc-AssistanceConfig-r16. |
|
2 |
UE |
- |
The UE detects that one of its own other radios is interfering with an NR carrier. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
idc-Assistance-r16 carries affectedCarrierFreqList-r16 and affectedCarrierFreqCombList-r16, naming the NR frequencies that suffer. |
|
4 |
UE |
- |
VictimSystemType-r16 inside those lists names the interferer. Release 18 added uwb-r18 to that list. |
|
5 |
gNB -> UE |
RRCReconfiguration |
The gNB may move the UE off the affected frequency. |
Delay Budget Report
This one predates the Release 16 set, and it sits in the original message body rather than in an extension container. It asks for the connected mode DRX cycle to move, and it can ask in either direction.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig carries delayBudgetReportingProhibitTimer directly, with an ENUMERATED { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30 }. |
|
2 |
UE |
- |
The UE wants a longer or a shorter connected mode DRX cycle than it has. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
delayBudgetReport sits in UEAssistanceInformation-IEs itself, not in any of the v15xx or later containers. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may adjust the DRX cycle length. |
Measurement Relaxation Reporting
These three are reports rather than requests. The UE is not asking for anything. It is telling the network which relaxations it has already applied, so that the network knows how current its measurements are.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up rlm-RelaxationReportingConfig-r17, bfd-RelaxationReportingConfig-r17 or rrm-MeasRelaxationReportingConfig-r17. |
|
2 |
UE |
- |
The UE meets the relaxation criterion, for example it is stationary and in good coverage. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
rlm-MeasRelaxationState-r17 is a BOOLEAN, bfd-MeasRelaxationState-r17 is a BIT STRING with one bit per serving cell, and rrm-MeasRelaxationFulfilment-r17 is a BOOLEAN. All three sit in UEAssistanceInformation-v1700-IEs. |
|
4 |
UE |
- |
The network now knows the UE is measuring less often, and can read its reports with that in mind. |
MUSIM Assistance
Multi-SIM is the case where the UE has a commitment to another network. It needs either a gap to serve the other SIM, or permission to leave connected mode entirely, and both are requested through this message.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up musim-GapAssistanceConfig-r17 for gaps, or musim-LeaveAssistanceConfig-r17 for leaving. |
|
2 |
UE |
- |
The other SIM needs the radio, either briefly or for longer. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
musim-Assistance-r17 in UEAssistanceInformation-v1700-IEs carries the gap request or the leave request. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may configure the gaps, or may release the UE. |
SCG Deactivation Preference
Dual connectivity is expensive to keep alive when the secondary leg is idle. This preference is unusual in carrying an explicit way to say no preference, rather than relying on the field being absent.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets up scg-DeactivationPreferenceConfig-r17. |
|
2 |
UE |
- |
The UE would rather the secondary cell group were deactivated. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
scg-DeactivationPreference-r17 carries an ENUMERATED { scg-DeactivationPreferred, noPreference }, in UEAssistanceInformation-v1700-IEs. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The master node may deactivate the SCG, which is cheaper than releasing and re-adding it. |
FR2 UL Gap Preference
The last of the Release 17 set, and the shortest. Its gate is not even a structure : ul-GapFR2-PreferenceConfig-r17 is an ENUMERATED { true }, so the network either allows the report or it does not.
|
Step |
Direction |
Message |
What happens |
|
1 |
gNB -> UE |
RRCReconfiguration |
OtherConfig sets ul-GapFR2-PreferenceConfig-r17 to true. |
|
2 |
UE |
- |
The UE wants an uplink gap on FR2, typically to calibrate or to retune. |
|
3 |
UE -> gNB |
UEAssistanceInformation |
ul-GapFR2-Preference-r17 sits in UEAssistanceInformation-v1700-IEs. |
|
4 |
gNB -> UE |
RRCReconfiguration |
The gNB may configure the FR2 uplink gap. |
Take the thirteen together and two things are worth noticing. The first is how little the message itself varies : the same container, a different optional field, and the same prohibit timer discipline behind all of them. The second is that step 4 is never guaranteed. Every one of these is a preference, a report or an indication, and not one of them is a command.
Four beats, thirteen times : the gate, the trigger, the report, and a network response that may not come.The gate is always OtherConfig : every type here has its own SetupRelease entry, and without it the UE stays quiet.Absence is meaningful : sending the message again with a field omitted is how a UE withdraws a request it made earlier.Two of them are not requests : the measurement relaxation fields report what the UE already did, and overheating reports a physical state.
UE Capability
Before any of this works, the UE has to declare that it can do it. The capability fields below are the second gate, sitting under the OtherConfig one. They are worth checking first when a preference never appears in a log. Without the capability declared, the UE will not send the report, however the network configures it.
Following is based on
UE-NR-Capability-v1610 ::= SEQUENCE {
inDeviceCoexInd-r16 ENUMERATED {supported} OPTIONAL,
dl-DedicatedMessageSegmentation-r16 ENUMERATED {supported} OPTIONAL,
nrdc-Parameters-v1610 NRDC-Parameters-v1610 OPTIONAL,
powSav-Parameters-r16 PowSav-Parameters-r16 OPTIONAL,
fr1-Add-UE-NR-Capabilities-v1610 UE-NR-CapabilityAddFRX-Mode-v1610 OPTIONAL,
fr2-Add-UE-NR-Capabilities-v1610 UE-NR-CapabilityAddFRX-Mode-v1610 OPTIONAL,
bh-RLF-Indication-r16 ENUMERATED {supported} OPTIONAL,
directSN-AdditionFirstRRC-IAB-r16 ENUMERATED {supported} OPTIONAL,
bap-Parameters-r16 BAP-Parameters-r16 OPTIONAL,
referenceTimeProvision-r16 ENUMERATED {supported} OPTIONAL,
sidelinkParameters-r16 SidelinkParameters-r16 OPTIONAL,
highSpeedParameters-r16 HighSpeedParameters-r16 OPTIONAL,
mac-Parameters-v1610 MAC-Parameters-v1610 OPTIONAL,
mcgRLF-RecoveryViaSCG-r16 ENUMERATED {supported} OPTIONAL,
resumeWithStoredMCG-SCells-r16 ENUMERATED {supported} OPTIONAL,
resumeWithStoredSCG-r16 ENUMERATED {supported} OPTIONAL,
resumeWithSCG-Config-r16 ENUMERATED {supported} OPTIONAL,
ue-BasedPerfMeas-Parameters-r16 UE-BasedPerfMeas-Parameters-r16 OPTIONAL,
son-Parameters-r16 SON-Parameters-r16 OPTIONAL,
onDemandSIB-Connected-r16 ENUMERATED {supported} OPTIONAL,
nonCriticalExtension UE-NR-Capability-v1640 OPTIONAL
}
PowSav-Parameters-r16 ::= SEQUENCE {
powSav-ParametersCommon-r16 PowSav-ParametersCommon-r16 OPTIONAL,
powSav-ParametersFRX-Diff-r16 PowSav-ParametersFRX-Diff-r16 OPTIONAL,
...
}
PowSav-Parameters-v1700 ::= SEQUENCE {
powSav-ParametersFR2-2-r17 PowSav-ParametersFR2-2-r17 OPTIONAL,
...
}
PowSav-ParametersCommon-r16 ::= SEQUENCE {
drx-Preference-r16 ENUMERATED {supported} OPTIONAL,
maxCC-Preference-r16 ENUMERATED {supported} OPTIONAL,
releasePreference-r16 ENUMERATED {supported} OPTIONAL,
-- R1 19-4a: UE assistance information
minSchedulingOffsetPreference-r16 ENUMERATED {supported} OPTIONAL,
...
}
PowSav-ParametersFRX-Diff-r16 ::= SEQUENCE {
maxBW-Preference-r16 ENUMERATED {supported} OPTIONAL,
maxMIMO-LayerPreference-r16 ENUMERATED {supported} OPTIONAL,
...
}
PowSav-ParametersFR2-2-r17 ::= SEQUENCE {
maxBW-Preference-r17 ENUMERATED {supported} OPTIONAL,
maxMIMO-LayerPreference-r17 ENUMERATED {supported} OPTIONAL,
...
}
Read those fields as a set of switches rather than as numbers. PowSav-Parameters-r16 splits into a common part and a per-frequency-range part, so a UE can support a preference on FR1 and not on FR2. PowSav-ParametersFR2-2-r17 then repeats the same split again for FR2-2, which is why the same capability appears three times under slightly different names.
One field sits outside that structure. The flag inDeviceCoexInd-r16 is declared directly in UE-NR-Capability-v1610 rather than under the power-saving branch, because in-device coexistence is not a power-saving feature. It is the switch that gates IDC-Assistance-r16.
Capability is the second gate : OtherConfig decides what the network will accept, and this decides what the UE can offer.The split is per frequency range : support on FR1 says nothing about FR2, and FR2-2 is declared separately again.IDC is declared on its own : inDeviceCoexInd-r16 sits at the top level, apart from the power-saving parameters.
RRC Parameters
What follows is the reference material for the whole page. It covers the message itself, the structures it carries, and the two configurations the network uses once it decides to act. They are grouped in that order, with a short note before each group so you can find the one you need without reading the rest.
Start with the message itself, because its shape explains everything after it. UEAssistanceInformation is a chain of extension containers rather than one flat structure. Each release attached its new preferences to the end through nonCriticalExtension, so reading it means following that chain from v1540 through to v1900.
Following is based on
UEAssistanceInformation ::= SEQUENCE {
criticalExtensions CHOICE {
ueAssistanceInformation UEAssistanceInformation-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
UEAssistanceInformation-IEs ::= SEQUENCE {
delayBudgetReport DelayBudgetReport OPTIONAL,
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension UEAssistanceInformation-v1540-IEs OPTIONAL
}
UEAssistanceInformation-v1540-IEs ::= SEQUENCE {
overheatingAssistance OverheatingAssistance OPTIONAL,
nonCriticalExtension UEAssistanceInformation-v1610-IEs OPTIONAL
}
OverheatingAssistance ::= SEQUENCE {
reducedMaxCCs ReducedMaxCCs-r16 OPTIONAL,
reducedMaxBW-FR1 ReducedMaxBW-FRx-r16 OPTIONAL,
reducedMaxBW-FR2 ReducedMaxBW-FRx-r16 OPTIONAL,
reducedMaxMIMO-LayersFR1 SEQUENCE {
reducedMIMO-LayersFR1-DL MIMO-LayersDL,
reducedMIMO-LayersFR1-UL MIMO-LayersUL
} OPTIONAL,
reducedMaxMIMO-LayersFR2 SEQUENCE {
reducedMIMO-LayersFR2-DL MIMO-LayersDL,
reducedMIMO-LayersFR2-UL MIMO-LayersUL
} OPTIONAL
}
ReducedAggregatedBandwidth ::= ENUMERATED {mhz0, mhz10, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz200, mhz300, mhz400}
UEAssistanceInformation-v1610-IEs ::= SEQUENCE {
idc-Assistance-r16 IDC-Assistance-r16 OPTIONAL,
drx-Preference-r16 DRX-Preference-r16 OPTIONAL,
maxBW-Preference-r16 MaxBW-Preference-r16 OPTIONAL,
maxCC-Preference-r16 MaxCC-Preference-r16 OPTIONAL,
maxMIMO-LayerPreference-r16 MaxMIMO-LayerPreference-r16 OPTIONAL,
minSchedulingOffsetPreference-r16 MinSchedulingOffsetPreference-r16 OPTIONAL,
releasePreference-r16 ReleasePreference-r16 OPTIONAL,
sl-UE-AssistanceInformationNR-r16 SL-UE-AssistanceInformationNR-r16 OPTIONAL,
referenceTimeInfoPreference-r16 BOOLEAN OPTIONAL,
nonCriticalExtension UEAssistanceInformation-v1700-IEs OPTIONAL
}
UEAssistanceInformation-v1700-IEs ::= SEQUENCE {
ul-GapFR2-Preference-r17 UL-GapFR2-Preference-r17 OPTIONAL,
musim-Assistance-r17 MUSIM-Assistance-r17 OPTIONAL,
overheatingAssistance-r17 OverheatingAssistance-r17 OPTIONAL,
maxBW-PreferenceFR2-2-r17 MaxBW-PreferenceFR2-2-r17 OPTIONAL,
maxMIMO-LayerPreferenceFR2-2-r17 MaxMIMO-LayerPreferenceFR2-2-r17 OPTIONAL,
minSchedulingOffsetPreferenceExt-r17 MinSchedulingOffsetPreferenceExt-r17 OPTIONAL,
rlm-MeasRelaxationState-r17 BOOLEAN OPTIONAL,
bfd-MeasRelaxationState-r17 BIT STRING (SIZE (1..maxNrofServingCells)) OPTIONAL,
nonSDT-DataIndication-r17 SEQUENCE {
resumeCause-r17 ResumeCause OPTIONAL
} OPTIONAL,
scg-DeactivationPreference-r17 ENUMERATED { scg-DeactivationPreferred, noPreference } OPTIONAL,
uplinkData-r17 ENUMERATED { true } OPTIONAL,
rrm-MeasRelaxationFulfilment-r17 BOOLEAN OPTIONAL,
propagationDelayDifference-r17 PropagationDelayDifference-r17 OPTIONAL,
nonCriticalExtension UEAssistanceInformation-v1800-IEs OPTIONAL
}
UEAssistanceInformation-v1800-IEs ::= SEQUENCE {
idc-FDM-Assistance-r18 IDC-FDM-Assistance-r18 OPTIONAL,
idc-TDM-Assistance-r18 IDC-TDM-Assistance-r18 OPTIONAL,
multiRx-PreferenceFR2-r18 ENUMERATED {single, multiple } OPTIONAL,
musim-Assistance-v1800 MUSIM-Assistance-v1800 OPTIONAL,
flightPathInfoAvailable-r18 ENUMERATED {true} OPTIONAL,
ul-TrafficInfo-r18 UL-TrafficInfo-r18 OPTIONAL,
n3c-RelayUE-InfoList-r18 SEQUENCE (SIZE (0..8)) OF N3C-RelayUE-Info-r18 OPTIONAL,
sl-PRS-UE-AssistanceInformationNR-r18 SL-PRS-UE-AssistanceInformationNR-r18 OPTIONAL,
nonCriticalExtension UEAssistanceInformation-v1900-IEs OPTIONAL
}
UEAssistanceInformation-v1900-IEs ::= SEQUENCE {
gapOccasionCancelRatio-r19 GapOccasionCancelRatio-r19 OPTIONAL,
lpwus-OffsetPreference-r19 LPWUS-OffsetPreference-r19 OPTIONAL,
applicabilityReportList-r19 ApplicabilityReportList-r19 OPTIONAL,
dataCollectionPreference-r19 DataCollectionPreference-r19 OPTIONAL,
loggedDataCollectionAssistance-r19 LoggedDataCollectionAssistance-r19 OPTIONAL,
assisted-SSB-MTC-MG-Report-r19 BIT STRING (SIZE (7)) OPTIONAL,
fbs-Preference-r19 ENUMERATED {preferred, notPreferred } OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
In-device coexistence is the case where the UE's own other radios are the problem. The UE names the NR frequencies that suffer and names what is interfering with them. VictimSystemType-r16 is that list of culprits, and Release 18 added uwb-r18 to it.
Three of those containers were absent from this page until now, and they hold most of what the Types of UE Assistance Information table lists. UEAssistanceInformation-v1700-IEs carries musim-Assistance-r17, ul-GapFR2-Preference-r17, scg-DeactivationPreference-r17, nonSDT-DataIndication-r17 and the three measurement relaxation fields. UEAssistanceInformation-v1800-IEs adds the Release 18 IDC fields and ul-TrafficInfo-r18. UEAssistanceInformation-v1900-IEs adds the Release 19 set, including lpwus-OffsetPreference-r19 and dataCollectionPreference-r19.
That gap is worth noticing for its own sake. The copy on this page stopped at v1610, so the Types of UE Assistance Information table described features the listing could not show. Decode a live UEAssistanceInformation from a Release 17 UE against the old copy, and the definitions stop exactly where the newer preferences begin.
Following is based on
IDC-Assistance-r16 ::= SEQUENCE {
affectedCarrierFreqList-r16 AffectedCarrierFreqList-r16 OPTIONAL,
affectedCarrierFreqCombList-r16 AffectedCarrierFreqCombList-r16 OPTIONAL,
...
}
AffectedCarrierFreqList-r16 ::= SEQUENCE (SIZE (1.. maxFreqIDC-r16)) OF AffectedCarrierFreq-r16
AffectedCarrierFreq-r16 ::= SEQUENCE {
carrierFreq-r16 ARFCN-ValueNR,
interferenceDirection-r16 ENUMERATED {nr, other, both, spare}
}
AffectedCarrierFreqCombList-r16 ::= SEQUENCE (SIZE (1..maxCombIDC-r16)) OF AffectedCarrierFreqComb-r16
AffectedCarrierFreqComb-r16 ::= SEQUENCE {
affectedCarrierFreqComb-r16 SEQUENCE (SIZE (2..maxNrofServingCells)) OF ARFCN-ValueNR OPTIONAL,
victimSystemType-r16 VictimSystemType-r16
}
VictimSystemType-r16 ::= SEQUENCE {
gps-r16 ENUMERATED {true} OPTIONAL,
glonass-r16 ENUMERATED {true} OPTIONAL,
bds-r16 ENUMERATED {true} OPTIONAL,
galileo-r16 ENUMERATED {true} OPTIONAL,
navIC-r16 ENUMERATED {true} OPTIONAL,
wlan-r16 ENUMERATED {true} OPTIONAL,
bluetooth-r16 ENUMERATED {true} OPTIONAL,
...,
[[
uwb-r18 ENUMERATED {true} OPTIONAL
]]
}
These are the preferences themselves, and they share one shape. Each carries the value the UE would rather have, and each field is OPTIONAL, so omitting one is itself a statement. Note that none of them is a demand. The names say preference throughout.
Following is based on
DRX-Preference-r16 ::= SEQUENCE {
preferredDRX-InactivityTimer-r16 ENUMERATED {
ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, ms80,
ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8,
spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL,
preferredDRX-LongCycle-r16 ENUMERATED {
ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512,
ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, spare12, spare11, spare10,
spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
preferredDRX-ShortCycle-r16 ENUMERATED {
ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32,
ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9,
spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
preferredDRX-ShortCycleTimer-r16 INTEGER (1..16) OPTIONAL
}
MaxBW-Preference-r16 ::= SEQUENCE {
reducedMaxBW-FR1-r16 ReducedMaxBW-FRx-r16 OPTIONAL,
reducedMaxBW-FR2-r16 ReducedMaxBW-FRx-r16 OPTIONAL
}
MaxCC-Preference-r16 ::= SEQUENCE {
reducedMaxCCs-r16 ReducedMaxCCs-r16 OPTIONAL
}
MaxMIMO-LayerPreference-r16 ::= SEQUENCE {
reducedMaxMIMO-LayersFR1-r16 SEQUENCE {
reducedMIMO-LayersFR1-DL-r16 INTEGER (1..8),
reducedMIMO-LayersFR1-UL-r16 INTEGER (1..4)
} OPTIONAL,
reducedMaxMIMO-LayersFR2-r16 SEQUENCE {
reducedMIMO-LayersFR2-DL-r16 INTEGER (1..8),
reducedMIMO-LayersFR2-UL-r16 INTEGER (1..4)
} OPTIONAL
}
MinSchedulingOffsetPreference-r16 ::= SEQUENCE {
preferredK0-r16 SEQUENCE {
preferredK0-SCS-15kHz-r16 ENUMERATED {sl1, sl2, sl4, sl6} OPTIONAL,
preferredK0-SCS-30kHz-r16 ENUMERATED {sl1, sl2, sl4, sl6} OPTIONAL,
preferredK0-SCS-60kHz-r16 ENUMERATED {sl2, sl4, sl8, sl12} OPTIONAL,
preferredK0-SCS-120kHz-r16 ENUMERATED {sl2, sl4, sl8, sl12} OPTIONAL
} OPTIONAL,
preferredK2-r16 SEQUENCE {
preferredK2-SCS-15kHz-r16 ENUMERATED {sl1, sl2, sl4, sl6} OPTIONAL,
preferredK2-SCS-30kHz-r16 ENUMERATED {sl1, sl2, sl4, sl6} OPTIONAL,
preferredK2-SCS-60kHz-r16 ENUMERATED {sl2, sl4, sl8, sl12} OPTIONAL,
preferredK2-SCS-120kHz-r16 ENUMERATED {sl2, sl4, sl8, sl12} OPTIONAL
} OPTIONAL
}
ReleasePreference-r16 ::= SEQUENCE {
preferredRRC-State-r16 ENUMERATED {idle, inactive, connected, outOfConnected}
}
ReducedMaxBW-FRx-r16 ::= SEQUENCE {
reducedBW-DL-r16 ReducedAggregatedBandwidth,
reducedBW-UL-r16 ReducedAggregatedBandwidth
}
ReducedMaxCCs-r16 ::= SEQUENCE {
reducedCCsDL-r16 INTEGER (0..31),
reducedCCsUL-r16 INTEGER (0..31)
}
The two IEs below are the network side of the same conversation, and they are not part of UEAssistanceInformation at all. They are what the gNB configures once it decides to act on a preference. PhysicalCellGroupConfig and ServingCellConfig are shown only down to the field that matters here, because both run past a hundred lines in full.
Following is based on
PhysicalCellGroupConfig ::= SEQUENCE {
-- ... the fields before it are not UE assistance related
dcp-Config-r16 SetupRelease { DCP-Config-r16 } OPTIONAL, -- Need M
-- ... the remaining fields and extensions are not UE assistance related
}
DCP-Config-r16 ::= SEQUENCE {
ps-RNTI-r16 RNTI-Value,
ps-Offset-r16 INTEGER (1..120),
sizeDCI-2-6-r16 INTEGER (1..maxDCI-2-6-Size-r16),
ps-PositionDCI-2-6-r16 INTEGER (0..maxDCI-2-6-Size-1-r16),
ps-WakeUp-r16 ENUMERATED {true} OPTIONAL, -- Need S
ps-TransmitPeriodicL1-RSRP-r16 ENUMERATED {true} OPTIONAL, -- Need S
ps-TransmitOtherPeriodicCSI-r16 ENUMERATED {true} OPTIONAL -- Need S
}
ServingCellConfig ::= SEQUENCE {
-- ... the fields before it are not UE assistance related
dormantBWP-Config-r16 SetupRelease { DormantBWP-Config-r16 } OPTIONAL, -- Need M
-- ... the remaining fields and extensions are not UE assistance related
}
DormantBWP-Config-r16::= SEQUENCE {
dormantBWP-Id-r16 BWP-Id OPTIONAL, -- Need M
withinActiveTimeConfig-r16 SetupRelease { WithinActiveTimeConfig-r16 } OPTIONAL, -- Need M
outsideActiveTimeConfig-r16 SetupRelease { OutsideActiveTimeConfig-r16 } OPTIONAL -- Need M
}
WithinActiveTimeConfig-r16 ::= SEQUENCE {
firstWithinActiveTimeBWP-Id-r16 BWP-Id OPTIONAL, -- Need M
dormancyGroupWithinActiveTime-r16 DormancyGroupID-r16 OPTIONAL -- Need R
}
OutsideActiveTimeConfig-r16 ::= SEQUENCE {
firstOutsideActiveTimeBWP-Id-r16 BWP-Id OPTIONAL, -- Need M
dormancyGroupOutsideActiveTime-r16 DormancyGroupID-r16 OPTIONAL -- Need R
}
DormancyGroupID-r16 ::= INTEGER (0..4)
Under MR-DC the assistance has further to travel. The UE reports to the master node, and the master node has to forward whatever the secondary node needs. ULInformationTransferMRDC carries the message between them, CG-ConfigInfo is the inter-node message the master sends, and MRDC-AssistanceInfo is the structure holding the forwarded assistance.
Following is based on
ULInformationTransferMRDC ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE {
ulInformationTransferMRDC ULInformationTransferMRDC-IEs,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
ULInformationTransferMRDC-IEs::= SEQUENCE {
ul-DCCH-MessageNR OCTET STRING OPTIONAL,
ul-DCCH-MessageEUTRA OCTET STRING OPTIONAL,
lateNonCriticalExtension OCTET STRING OPTIONAL,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
CG-ConfigInfo ::= SEQUENCE {
criticalExtensions CHOICE {
c1 CHOICE{
cg-ConfigInfo CG-ConfigInfo-IEs,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
CG-ConfigInfo-IEs ::= SEQUENCE {
ue-CapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList) OPTIONAL,-- Cond SN-AddMod
candidateCellInfoListMN MeasResultList2NR OPTIONAL,
candidateCellInfoListSN OCTET STRING (CONTAINING MeasResultList2NR) OPTIONAL,
measResultCellListSFTD-NR MeasResultCellListSFTD-NR OPTIONAL,
scgFailureInfo SEQUENCE {
failureType ENUMERATED { t310-Expiry, randomAccessProblem,
rlc-MaxNumRetx, synchReconfigFailure-SCG,
scg-reconfigFailure,
srb3-IntegrityFailure},
measResultSCG OCTET STRING (CONTAINING MeasResultSCG-Failure)
} OPTIONAL,
configRestrictInfo ConfigRestrictInfoSCG OPTIONAL,
drx-InfoMCG DRX-Info OPTIONAL,
measConfigMN MeasConfigMN OPTIONAL,
sourceConfigSCG OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL,
scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL,
mcg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL,
mrdc-AssistanceInfo MRDC-AssistanceInfo OPTIONAL,
nonCriticalExtension CG-ConfigInfo-v1540-IEs OPTIONAL
}
MRDC-AssistanceInfo ::= SEQUENCE {
affectedCarrierFreqCombInfoListMRDC SEQUENCE (SIZE (1..maxNrofCombIDC)) OF AffectedCarrierFreqCombInfoMRDC,
...,
[[
overheatingAssistanceSCG-r16 OCTET STRING (CONTAINING OverheatingAssistance) OPTIONAL
]],
[[
overheatingAssistanceSCG-FR2-2-r17 OCTET STRING (CONTAINING OverheatingAssistance-r17) OPTIONAL
]],
[[
affectedCarrierFreqRangeCombList-r18 AffectedCarrierFreqRangeCombList-r18 OPTIONAL,
affectedCarrierFreqCombList-r18 AffectedCarrierFreqCombList-r16 OPTIONAL,
idc-TDM-Assistance-r18 IDC-TDM-Assistance-r18 OPTIONAL
]]
}
Reference :
[1] The 5G Evolution:3GPP Releases 16-17 (5G Americas)
[2] RP-200494 - UE Power Saving in NR (Work Item Description)
[3] TR 38.840 - Study on User Equipment (UE) power saving in NR
[4] Study on User Equipment (UE) power saving in NR (Release 16)
YouTube
- 5G Mobile mmWave Technology Evolution (Mar 2020)