5G/NR  -  UE Assistance Information  

 

 

 

UE Assistance Information

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

As shown below (38.331-Figure 5.7.4.1-1: UE Assistance Information), UE may send UEAssistanceInformation after RRCReconfiguration.

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

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.

UE Capability

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,

   ...

}

RRC Parameters

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 SEQUENCE {} OPTIONAL

}

 

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,

   ...

}

 

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)

}

 

PhysicalCellGroupConfig ::= SEQUENCE {

   ..

   dcp-Config-r16                        SetupRelease { DCP-Config-r16 } OPTIONAL, -- Need M

   ...

}

 

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 {

   dormantBWP-Config-r16              SetupRelease { DormantBWP-Config-r16 }

}

 

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)

 

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

   ]]

 

}

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