5G/NR - Beam Failure Recovery                                  Home : www.sharetechnote.com

 

 

 

 

 

Beam Failure Recovery

 

 

Step

Direction

Process

1

< UE >

Detects Beam Failure (L1-RSRP for the connected beam goes below a certain limit).

2

< UE >

Search Another Canadidate Beam with good quality

3

UE -> NW

If a predefined number of Beam Failure is detected, Trigger Beam Failure Recovery Process with the candidate beam (PRACH). The predefined number of beamfailure to trigger this process is defined by beamFailureInstanceMaxCount in RRC.

4

UE <- NW

Reply to Beam Failure Recovery Request (RACH Response)

 

 

 

RRC Parameters for Beam Failure Detection

 

RadioLinkMonitoringConfig ::= SEQUENCE {

   failureDetectionResourcesToAddModList     SEQUENCE (SIZE(1..maxNrofFailureDetectionResources))

                                                   OF RadioLinkMonitoringRS

   failureDetectionResourcesToReleaseList    SEQUENCE (SIZE(1..maxNrofFailureDetectionResources))

                                                   OF RadioLinkMonitoringRS-Id

   beamFailureInstanceMaxCount               ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10}

   beamFailureDetectionTimer                 ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5,

                                                         pbfd6, pbfd8, pbfd10}

   ...

}

 

RadioLinkMonitoringRS ::= SEQUENCE {

   radioLinkMonitoringRS-Id                  RadioLinkMonitoringRS-Id,

   purpose                                   ENUMERATED {beamFailure, rlf, both},

   detectionResource                         CHOICE {

                                                   ssb-Index SSB-Index,

                                                   csi-RS-Index NZP-CSI-RS-ResourceId

   },

...

}

 

 

RRC Parameters for Beam Failure Recovery Configuration

 

BeamFailureRecoveryConfig ::= SEQUENCE {

   rootSequenceIndex-BFR              INTEGER (0..137) OPTIONAL, -- Need M

   rach-ConfigBFR                     RACH-ConfigGeneric OPTIONAL, -- Need M

   rsrp-ThresholdSSB                  RSRP-Range OPTIONAL, -- Need M

   candidateBeamRSList                SEQUENCE (SIZE(1..maxNrofCandidateBeams))

                                         OF PRACH-ResourceDedicatedBFR OPTIONAL, -- Need M

   ssb-perRACH-Occasion               ENUMERATED {oneEighth, oneFourth, oneHalf, one, two,

                                                  four, eight, sixteen} OPTIONAL, -- Need M

   ra-ssb-OccasionMaskIndex           INTEGER (0..15) OPTIONAL, -- Need M

   recoverySearchSpaceId              SearchSpaceId OPTIONAL, -- Need R

   ra-Prioritization                  RA-Prioritization OPTIONAL, -- Need R

   beamFailureRecoveryTimer           ENUMERATED {ms10, ms20, ms40, ms60, ms80,

                                                  ms100, ms150, ms200} OPTIONAL, -- Need M

   ...,

   [[

      msg1-SubcarrierSpacing-v1530 SubcarrierSpacing OPTIONAL -- Need M

   ]]

}

 

PRACH-ResourceDedicatedBFR ::= CHOICE {

   ssb                               BFR-SSB-Resource,

   csi-RS                            BFR-CSIRS-Resource

}

 

BFR-SSB-Resource ::= SEQUENCE {

   ssb                               SSB-Index,

   ra-PreambleIndex                  INTEGER (0..63),

   ...

}

 

BFR-CSIRS-Resource ::= SEQUENCE {

   csi-RS                            NZP-CSI-RS-ResourceId,

   ra-OccasionList                   SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS))

                                        OF INTEGER (0..maxRA-Occasions-1) OPTIONAL, -- Need R

   ra-PreambleIndex                  INTEGER (0..63) OPTIONAL, -- Need R

   ...

}

 

 

RACH-ConfigGeneric ::= SEQUENCE {

   prach-ConfigurationIndex          INTEGER (0..255),

   msg1-FDM                          ENUMERATED {one, two, four, eight},

   msg1-FrequencyStart               INTEGER (0..maxNrofPhysicalResourceBlocks-1),

   zeroCorrelationZoneConfig         INTEGER(0..15),

   preambleReceivedTargetPower       INTEGER (-202..-60),

   preambleTransMax                  ENUMERATED {n3,n4,n5,n6,n7,n8,n10,n20,n50,n100,n200},

   powerRampingStep                  ENUMERATED {dB0, dB2, dB4, dB6},

   ra-ResponseWindow                 ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80},

   ...

}

 

 

RA-Prioritization ::= SEQUENCE {

   powerRampingStepHighPriority      ENUMERATED {dB0, dB2, dB4, dB6},

   scalingFactorBI                   ENUMERATED {zero, dot25, dot5, dot75} OPTIONAL, -- Need R

   ...

}

 

 

 

Reference

 

[1]