Beam Failure detection and Recovery procedure in 5G-NR

Beam Failure detection and recovery is a very important procedure in 5G NR. I will try to explain the details in this post with as many details as possible.

I will start with giving an overall idea in simple terms to understand the concept and then go deeper in how it functions .

So why do we need Beam failure detection since there is a Radio link failure detection procedure already ?

Beam failure detection and recovery is an L1/L2 procedure and it is transparent to the RRC layer and it is much faster, whereas Radio link failure is an upper layer procedure i.e. RRC layer and it is much slower compared to Beam Failure procedure.

In Higher frequency beam-based communications the radio link between UE and gNB is susceptible to blockage and degradation which can suddenly interrupt the communication link. Imagine a situation where a user is sitting in a corner coffee shop playing a movie, Now if a truck stops outside the coffee shop and blocks the transmission between UE and gNB, and the UE is not able to perform Beam switch. So at the UE, there should be a mechanism to detect such sudden and rapid changes in the communication link and simultaneously recover from it, and the UE can do this with the help of the Beam failure recovery procedure (BFR) in 5G-NR.

Bands operating is FR2 are susceptible to beam failure due to the characteristics of radio wave propagation in higher frequency. So the chances of Beam failure are high in the Frequency range 2.

BFR is a combination of PHY and MAC procedure without any higher layer signaling. On a High level beam failure recovery procedure consists of below four steps

  • Beam failure detection
  • Best Beam selection (SSB or CSI-RS)
  • Beam Failure recovery request
  • Beam Failure recovery response

Detailed Step-by-Step Flow for Beam Failure Detection and Recovery Procedure

The Beam Failure Detection and Recovery procedure is a critical aspect of ensuring reliable connectivity in 5G networks. Below is the step-by-step explanation of how the procedure works, following the prompt you’ve provided.

1. Variables Initialization
  • BFI_COUNTER: A counter that tracks the number of beam failure instances. It is initialized to 0.
2. Check for Beam Failure Instance Indication
  • The MAC layer receives a beam failure instance indication from the lower layers. Action:
  • If a beam failure instance indication is received:
    1. Start or Restart the beamFailureDetectionTimer: This timer tracks how long the MAC layer should wait before deciding that beam failure detection has failed.
    2. Increment BFI_COUNTER: The counter is increased by 1 every time a beam failure instance is indicated.
    3. Check BFI_COUNTER: If the counter reaches a value greater than or equal to beamFailureInstanceMaxCount (a predefined threshold):
3. Beam Failure Recovery Check
  • Once the BFI_COUNTER exceeds or equals the beamFailureInstanceMaxCount, it indicates that multiple beam failures have been detected, and recovery action must be taken. Action:
  • Check whether beamFailureRecoveryConfig is configured for the active uplink bandwidth part (UL BWP):
    • If beamFailureRecoveryConfig is configured:
    1. Start the beamFailureRecoveryTimer (if configured): This timer determines the window during which beam failure recovery can be initiated.
    2. Initiate Random Access Procedure on the Serving Cell (SpCell):
      • Use the parameters configured in beamFailureRecoveryConfig, such as:
        • powerRampingStep: Defines the step size to increase power for each transmission attempt.
        • preambleReceivedTargetPower: Defines the target power for preamble transmissions during random access.
        • preambleTransMax: Sets the maximum number of preamble transmissions allowed.
    • If beamFailureRecoveryConfig is not configured:
    1. Initiate Random Access Procedure on the Serving Cell (SpCell) without the special parameters from beamFailureRecoveryConfig.
4. Handling Timer Expiry or Reconfiguration
  • The process also monitors whether the beamFailureDetectionTimer expires or if any of the beam failure detection parameters (like beamFailureDetectionTimer, beamFailureInstanceMaxCount, or the reference signals used for beam failure detection) are reconfigured by upper layers. Action:
  • If the timer expires or a reconfiguration occurs, the procedure takes the following action:
    1. Reset the BFI_COUNTER to 0: This signifies that the beam failure detection procedure needs to restart and the failure count is reset.
5. Random Access Procedure Completion
  • If a Random Access procedure (initiated for beam failure recovery) completes successfully, the recovery process is deemed successful. Action:
  • Once the Random Access procedure is successful:
    1. Set BFI_COUNTER to 0: This resets the failure instance counter, indicating that recovery was successful.
    2. Stop the beamFailureRecoveryTimer, if it was configured: The recovery timer is no longer needed since recovery has been completed.
    3. Consider the Beam Failure Recovery procedure complete: The procedure successfully restores the connection, and normal operation resumes.
6. Overall Monitoring
  • The system continues monitoring for future beam failure instances and will trigger the process again if new failures are detected.

Summary of Key Events and Timers
  • BFI_COUNTER: Tracks the number of beam failure instances.
  • beamFailureDetectionTimer: Timer that runs when a beam failure instance is indicated. It’s reset or restarted on each new beam failure.
  • beamFailureRecoveryConfig: Configuration that provides parameters for the Random Access procedure during beam failure recovery.
  • beamFailureRecoveryTimer: Timer that runs during the beam recovery process to define the recovery window.
  • Random Access Procedure: A process used to recover from beam failures by re-establishing communication with the network.

High-Level Flow
  1. Initialization: Set BFI_COUNTER to 0.
  2. Beam Failure Detection: Monitor for beam failure indications.
    • If a failure is detected, increment the counter and start the detection timer.
  3. Beam Failure Recovery: If the failure count exceeds the threshold:
    • Start the recovery timer (if configured) and initiate the random access procedure.
  4. Recovery Completion: If random access is successful, reset the counter and stop the recovery timer.
  5. Monitoring: Continuously monitor for new beam failure instances.

This step-by-step breakdown simplifies the detailed actions the MAC layer takes to handle beam failures and recover from them, ensuring continuous communication in 5G NR systems.

PlantUML Syntax:<br />
@startuml<br />
!theme vibrant<br />
title <size:20><b>Beam Failure Detection and Recovery Procedure</b></size></p>
<p>skinparam {<br />
    shadowing false<br />
    backgroundColor #ffffff<br />
    defaultFontName Arial<br />
    defaultFontSize 12<br />
    activity {<br />
        BackgroundColor #e6f7ff<br />
        FontColor #003366<br />
        BorderColor #003366<br />
        ArrowColor #003366<br />
        StartColor #99ccff<br />
        EndColor #99ccff<br />
        DecisionBorderColor #ffcc99<br />
        DecisionBackgroundColor #ffcc99<br />
        SwimlaneFontSize 14<br />
    }<br />
    arrow {<br />
        Color #003366<br />
        Thickness 2<br />
    }<br />
    footer {<br />
        FontSize 14<br />
        FontColor #333333<br />
    }<br />
}</p>
<p>start</p>
<p>:Initialize **BFI_COUNTER** to 0;</p>
<p>if (Beam failure instance received?) then (YES)<br />
    :Start/restart **beamFailureDetectionTimer**;<br />
    :Increment **BFI_COUNTER**;<br />
    if (**BFI_COUNTER** >= **beamFailureInstanceMaxCount**?) then (YES)<br />
        if (**beamFailureRecoveryConfig** for UL BWP configured?) then (YES)<br />
            :Start **beamFailureRecoveryTimer**, if configured;<br />
            :Initiate **Random Access** procedure (use parameters from **beamFailureRecoveryConfig**);<br />
        else (NO)<br />
            :Initiate **Random Access** procedure on **SpCell**;<br />
        endif<br />
    endif<br />
else (NO)<br />
    :Monitor for beam failure indication;<br />
endif</p>
<p>if (**beamFailureDetectionTimer** expires or reconfiguration by upper layers?) then (YES)<br />
    :Reset **BFI_COUNTER** to 0;<br />
endif</p>
<p>if (Random Access procedure successful?) then (YES)<br />
    :Reset **BFI_COUNTER** to 0;<br />
    :Stop **beamFailureRecoveryTimer**, if configured;<br />
    :Beam Failure Recovery procedure complete;<br />
endif</p>
<p>stop</p>
<p>footer WWW.WIRELESSBREW.COM<br />
@enduml<br />

Reference : 3GPP TS 38.321 5.17 Beam Failure Detection and Recovery procedure