<!-- title: 5G NR波束失败恢复与CFRA/CBRA双径拆解 -->
<!-- domain: ran -->

# 5G NR波束失败恢复（BFR）全链路信令拆解：从BFD检测到CFRA/CBRA双径重建

## 一、机制定位与设计动机

在5G NR高频段（FR2，24.25GHz–52.6GHz）部署中，波束赋形（Beamforming）是物理层的核心传输手段。然而，高频信道对遮挡、人体移动、雨衰等因素极其敏感，服务波束可能在毫秒级突然恶化——这不是小区级无线链路失败（RLF），而是**波束级**的链路中断。

如果每次波束失败都触发RRC重建，时延高达数百毫秒，完全无法满足URLLC等场景的可靠性要求。为此，3GPP在**TS 38.321 Section 5.17**引入了**Beam Failure Recovery（BFR）**机制——一个**纯MAC层**的快速恢复过程，目标是在**几十毫秒内**完成波束切换，无需RRC介入。

BFR的设计哲学可概括为三层递进：

1. **L1物理层检测**：通过BFD-RS评估服务波束质量，输出BFI指示
2. **MAC层判决**：BFI计数器累加至门限后触发恢复
3. **随机接入重建**：通过CFRA或CBRA在新波束上恢复连接

## 二、BFD波束失败检测机制（TS 38.213 Section 6.1）

### 2.1 假设BLER评估模型

与LTE的同步/失步指示不同，NR BFD采用**假设PDCCH BLER**作为判决基准。物理层为每个BFD-RS资源计算一个"假设在当前波束质量下PDCCH的误块率"：

- **Q_out**：假设BLER门限，定义为BLER = 10%（对应质量下限）
- 当所有被监测的BFD-RS资源的假设BLER均 > Q_out时，物理层向MAC层发送一个**BFI（Beam Failure Instance）指示**

BFD-RS可以是：
- **SSB（SS/PBCH Block）**：默认参考信号，无需额外配置
- **CSI-RS**：周期性配置，精度更高，适用于Rel-16+增强场景

```mermaid
flowchart TD
    A[UE持续监测BFD-RS] --> B{假设BLER > Q_out?}
    B -->|是| C[向MAC层发送BFI指示]
    B -->|否| D[不发送BFI<br>当前波束质量正常]
    C --> E[MAC层: BFI_COUNTER++]
    E --> F{BFI_COUNTER ≥<br>beamFailureInstanceMaxCount?}
    F -->|否| G[等待下一个BFD评估时机]
    F -->|是| H[触发波束失败指示<br>Beam Failure Indication]
    D --> A
    G --> A
    H --> I[启动新波束搜索<br>New Beam Identification]
```

### 2.2 BFD-RS资源配置（RRC层）

BFD-RS资源通过RRC Reconfiguration中的`BeamFailureRecoveryConfig`和`RadioLinkMonitoringConfig`配置：

| RRC参数 | 含义 | 典型取值 |
|---------|------|---------|
| `beamFailureDetectionTimer` | BFI计数器重置定时器 | 10/20/40/80/160/320 ms |
| `beamFailureInstanceMaxCount` | 触发BFR所需的最大BFI计数 | 1/2/3/4/5/6/7/8 |
| `failureDetectionResources` | BFD-RS资源列表（SSB/CSI-RS索引） | 配置的SSB或CSI-RS |
| `rsrp-ThresholdSSB` | SSB候选波束的L1-RSRP门限 | -140 ~ -44 dBm |
| `rsrp-ThresholdCSI-RS` | CSI-RS候选波束的L1-RSRP门限 | -140 ~ -44 dBm |
| `candidateBeamRSList` | 新波束候选列表 | SSB/CSI-RS资源集合 |
| `recoverySearchSpaceId` | BFR响应的PDCCH搜索空间 | 专用SearchSpace ID |
| `beamFailureRecoveryTimer` | BFR整体恢复定时器 | 1/2/4/8/16/32/64/128 ms |

## 三、新波束识别（New Beam Identification）

当MAC层确认波束失败后，UE立即执行**候选波束扫描**。UE对`candidateBeamRSList`中配置的所有参考信号进行L1-RSRP测量：

- 若候选信号为SSB：L1-RSRP ≥ `rsrp-ThresholdSSB` → 该波束合格
- 若候选信号为CSI-RS：L1-RSRP ≥ `rsrp-ThresholdCSI-RS` → 该波束合格

UE选择**RSRP最强**的合格波束作为恢复目标。此时面临一个关键分支——**CFRA与CBRA的选择**。

```mermaid
flowchart TD
    A[波束失败指示触发] --> B[扫描candidateBeamRSList]
    B --> C{候选波束中是否有<br>专用Preamble分配?}
    C -->|有: BFR-SSB-Resource<br>或BFR-CSIRS-Resource已配置| D[选择CFRA路径<br>Contention-Free RA]
    C -->|无: 该候选波束<br>未分配专用Preamble| E[选择CBRA路径<br>Contention-Based RA]
    D --> F[在目标波束上<br>发送专用PRACH Preamble]
    E --> G[在目标波束上<br>随机选择PRACH Preamble]
    F --> H[启动beamFailureRecoveryTimer<br>监听recoverySearchSpace]
    G --> H
    H --> I{收到C-RNTI加扰的DCI?}
    I -->|是| J[BFR成功<br>重置BFI_COUNTER]
    I -->|Timer超时| K{重传次数<最大?}
    K -->|是| F
    K -->|否| L[BFR失败<br>触发RLF→RRC重建]
```

### 3.1 CFRA路径：专用Preamble无竞争接入

CFRA（Contention-Free Random Access）是BFR的**首选路径**。gNB通过RRC为每个候选波束预分配**专用的PRACH Preamble**和**对应的PRACH时频资源**：

- 配置参数：`ra-PreambleIndex`（专用Preamble索引）
- PRACH时机：通过`ra-ssb-OccasionMaskIndex`或CSI-RS关联的PRACH时机确定
- **无竞争**：gNB通过Preamble索引即可识别UE，无需Msg3/Msg4竞争解决

### 3.2 CBRA路径：回退到竞争接入

当以下条件满足时，UE回退到CBRA：
1. 所选候选波束**未配置**专用Preamble
2. CFRA尝试失败（Timer超时且无gNB响应）
3. `candidateBeamRSList`中无合格波束（需在任意波束上尝试）

CBRA走完整的四步RA流程（Msg1→Msg2→Msg3→Msg4），时延更长且存在碰撞风险。

## 四、完整信令时序图

```mermaid
sequenceDiagram
    participant UE as UE (MAC/PHY)
    participant gNB as gNB

    Note over UE,gNB: Phase 1: Beam Failure Detection
    UE->>UE: 监测BFD-RS (SSB/CSI-RS)
    UE->>UE: 假设BLER计算 > Q_out
    UE->>UE: PHY→MAC: BFI指示 #1
    UE->>UE: BFI_COUNTER = 1
    Note over UE: beamFailureDetectionTimer运行中

    UE->>UE: PHY→MAC: BFI指示 #2
    UE->>UE: BFI_COUNTER = 2

    UE->>UE: PHY→MAC: BFI指示 #N
    UE->>UE: BFI_COUNTER = N ≥ maxCount
    UE->>UE: 触发Beam Failure Indication

    Note over UE,gNB: Phase 2: New Beam Identification
    UE->>UE: 测量candidateBeamRSList
    UE->>UE: 选择L1-RSRP最强的合格波束

    alt CFRA路径（首选）
        Note over UE,gNB: Phase 3a: CFRA BFR
        UE->>gNB: Msg1: PRACH Preamble (专用)<br>在新波束对应的RO上发送
        Note over UE: 启动beamFailureRecoveryTimer<br>监听recoverySearchSpace
        gNB->>UE: BFR Response: PDCCH DCI 1_0<br>C-RNTI加扰
        Note over UE: BFR成功, BFI_COUNTER重置为0
    else CBRA路径（回退）
        Note over UE,gNB: Phase 3b: CBRA BFR
        UE->>gNB: Msg1: PRACH Preamble (随机选择)<br>在共享RO上发送
        gNB->>UE: Msg2: RAR (RA-RNTI加扰)<br>含TA、UL Grant、TC-RNTI
        UE->>gNB: Msg3: RRC连接恢复请求 / C-RNTI MAC CE
        gNB->>UE: Msg4: 竞争解决 (TC-RNTI/C-RNTI加扰)
        Note over UE: BFR成功, BFI_COUNTER重置为0
    end

    Note over UE,gNB: Phase 4: 恢复正常通信
    gNB->>UE: 后续下行数据在新波束上传输
    UE->>gNB: 后续上行数据在新波束上发送
```

## 五、MAC层关键参数与定时器交互

### 5.1 BFI计数器状态机

```mermaid
stateDiagram-v2
    [*] --> Normal: RRC连接建立<br>BFD-RS配置完成
    Normal --> BFI_Counting: 收到第1个BFI<br>BFI_COUNTER=1<br>启动BFD_Timer
    BFI_Counting --> Normal: BFD_Timer超时<br>且BFI_COUNTER < maxCount<br>重置BFI_COUNTER=0
    BFI_Counting --> BeamFailure: BFI_COUNTER ≥ maxCount<br>触发Beam Failure Indication
    BeamFailure --> NewBeamSearch: 立即启动候选波束扫描
    NewBeamSearch --> CFRA: 找到合格波束<br>且有专用Preamble
    NewBeamSearch --> CBRA: 找到合格波束<br>但无专用Preamble
    NewBeamSearch --> BFR_Failure: 无合格候选波束<br>或搜索超时
    CFRA --> BFR_Success: 收到C-RNTI DCI响应
    CFRA --> BFR_Failure: beamFailureRecoveryTimer超时<br>且重传耗尽
    CBRA --> BFR_Success: Msg4竞争解决成功
    CBRA --> BFR_Failure: RA整体失败
    BFR_Success --> Normal: BFI_COUNTER重置<br>新波束生效
    BFR_Failure --> RLF: 通知RRC层<br>触发RLF/RRC重建
    RLF --> [*]
```

### 5.2 定时器交互矩阵

| 定时器 | 启动条件 | 停止条件 | 超时后果 |
|--------|---------|---------|---------|
| `beamFailureDetectionTimer` | 收到首个BFI | 正常到期（不重启） | 若BFI_COUNTER < maxCount → 重置计数器 |
| `beamFailureRecoveryTimer` | 发送BFR PRACH Preamble | 收到有效C-RNTI DCI | BFR失败，可重传或触发RLF |
| `ra-ContentionResolutionTimer` | 发送CBRA Msg3 | 收到Msg4竞争解决 | CBRA失败，回退 |
| PRACH回退定时器 | CFRA失败 | — | 决定是否重试PRACH |

## 六、CFRA vs CBRA对比分析

| 维度 | CFRA（Contention-Free） | CBRA（Contention-Based） |
|------|------------------------|-------------------------|
| **Preamble来源** | gNB预分配专用索引 | UE从公共池随机选择 |
| **消息步数** | 2步（Msg1 + gNB Response） | 4步（Msg1→Msg2→Msg3→Msg4） |
| **时延** | ~10-20ms | ~30-50ms |
| **碰撞风险** | 无（专用资源） | 有（多UE可能选同一Preamble） |
| **适用波束** | 已配置专用资源的候选波束 | 任意波束（含未配置专用资源的） |
| **gNB识别方式** | Preamble→UE映射 | Msg3中携带C-RNTI MAC CE |
| **响应搜索空间** | recoverySearchSpace（专用） | 正常RA SearchSpace |
| **Rel-15支持** | PCell only | PCell only |
| **Rel-16增强** | 扩展至SCell | 扩展至SCell |

### 6.1 CFRA Preamble映射机制

gNB通过RRC消息为每个候选波束分配专用Preamble，映射关系如下：

```
candidateBeamRSList中的每个条目:
├── SSB索引 (ssb-Index) 或 CSI-RS资源索引 (csi-RS-Index)
├── 对应的专用Preamble (ra-PreambleIndex)
├── 对应的PRACH时机掩码 (ra-ssb-OccasionMaskIndex)
└── PRACH前导码接收目标功率 (ra-PreambleTransPower)
```

UE选择候选波束后，直接查找该映射关系，获取专用Preamble并在对应的PRACH时机发送。gNB收到该Preamble后，通过Preamble索引反查UE身份，直接以C-RNTI加扰DCI进行响应。

## 七、Rel-16/17/18增强特性

### 7.1 SCell BFR（Rel-16）

Rel-16将BFR能力扩展到SCell（辅小区），关键变化包括：

- **BFD-RS独立配置**：每个SCell可独立配置BFD-RS资源
- **BFR MAC CE上报**：UE通过**BFR MAC CE**（而非随机接入）向gNB报告SCell波束失败和新波束信息
- **MAC CE格式**：
  - LCID = 52（用于截断BFR MAC CE）
  - LCID = 53（用于完整BFR MAC CE）
  - 包含：失败SCell ID + 推荐的新波束ID（SSB/CSI-RS索引）
- **gNB响应**：gNB收到BFR MAC CE后，通过DCI指示波束切换（TCI State更新）

### 7.2 Multi-TRP BFR（Rel-17）

在Multi-TRP部署中，不同TRP的波束可能独立失败：

- 每个TRP配置独立的BFD-RS集合
- BFR可针对特定TRP触发，不影响其他TRP的正常传输
- BFR MAC CE中携带TRP标识，指示哪个TRP发生波束失败

### 7.3 L1/L2移动性增强（Rel-18/19）

Rel-18引入了**L1/L2移动性**框架，BFR作为其中的一个子过程：

- 与**Candidate Cell List**结合，BFR候选波束可来自邻小区
- 与**条件切换（CHO）**联动，BFR失败后可直接触发CHO而非RLF
- AI/ML辅助的波束预测，提前预判波束失败

## 八、抓包识别与故障排查

### 8.1 抓包特征识别

在协议分析仪（如Wireshark + srsRAN、QXDM、TEMS）中识别BFR流程：

| 抓包层 | 关键标识 | 说明 |
|--------|---------|------|
| PHY层 | PRACH Preamble发送 | 在非正常RA时机出现Preamble → 疑似BFR |
| MAC层 | BFR MAC CE（LCID=52/53） | SCell BFR的明确标识 |
| RRC层 | `BeamFailureRecoveryConfig` 出现 | BFR功能启用的标志 |
| L1层 | BFI指示（厂商私有日志） | PHY→MAC的BFI通知 |
| PDCCH | recoverySearchSpace中的DCI 1_0 | BFR响应的明确标识 |

### 8.2 常见故障场景

**场景1：BFR反复触发但无法恢复**
- 现象：BFI_COUNTER持续到达maxCount，CFRA/CBRA均失败
- 根因：`candidateBeamRSList`配置的候选波束质量均不佳，或覆盖存在盲区
- 排查：检查所有候选波束的L1-RSRP测量报告，调整候选列表

**场景2：CFRA成功但数据传输中断**
- 现象：gNB回复了BFR Response，但后续数据传输仍失败
- 根因：recoverySearchSpace配置错误，或新波束的TCI State未正确更新
- 排查：验证recoverySearchSpace的CORESET配置，检查TCI State激活MAC CE

**场景3：SCell BFR MAC CE被gNB忽略**
- 现象：UE发送BFR MAC CE后，gNB未执行波束切换
- 根因：MAC CE格式错误（如截断BFR的bitmap不正确），或gNB不支持该特性
- 排查：对比MAC CE比特级解析结果与TS 38.321 Section 6.1.3格式定义
## 九、BFR与RRC重建的关系辨析

BFR是**波束级**恢复机制，位于MAC层；RLF/RRC重建是**小区级**恢复机制，位于RRC层。两者关系如下：

```
波束质量恶化 → BFD检测 → BFI累加 → BFR触发
                                        │
                                   BFR成功 → 恢复正常（无需RRC介入）
                                        │
                                   BFR失败 → MAC通知RRC
                                        │
                                   RRC触发RLF → RRC Reestablishment
```

关键区别：BFR成功后，UE的C-RNTI不变、安全上下文不变、PDU Session不变——这是一个**零感知**的底层恢复过程。而RRC重建意味着连接中断、上下文重建，上层业务感知明显。

## 常见问题

**Q1: BFR和RLF有什么区别？什么时候触发BFR而不是RLF？**

A: BFR是MAC层的波束级恢复，针对的是"当前服务波束失败但小区仍可接入"的场景。RLF是RRC层的链路级恢复，针对"整个小区信号不可用"的场景。只要gNB配置了`BeamFailureRecoveryConfig`且存在合格候选波束，UE优先触发BFR。只有BFR也失败后，才会升级为RLF。

**Q2: CFRA的专用Preamble数量有限，如何保证BFR的可靠性？**

A: gNB通过RRC为每个候选波束分配1个专用Preamble。在波束管理较好的网络中，同时发生波束失败的UE数量有限，专用Preamble通常够用。如果网络运维发现Preamble冲突频繁，可增大`candidateBeamRSList`中的波束数量（从而增加专用Preamble池），或调整BFD门限减少误触发。

**Q3: SCell波束失败为什么不用随机接入恢复？**

A: SCell上不传输PUCCH/PRACH（除非特殊配置），因此无法执行随机接入。Rel-16引入的SCell BFR使用BFR MAC CE在PCell上上报SCell的波束失败信息，gNB收到后通过TCI State更新来切换SCell的波束——整个过程不涉及随机接入。

**Q4: BFR对URLLC场景有什么特殊意义？**

A: URLLC要求端到端时延<1ms、可靠性>99.999%。BFR的CFRA路径可在~10-20ms内恢复波束，远优于RRC重建的数百毫秒。在Rel-17/18中，BFR与Multi-TRP冗余传输结合，即使一个TRP的波束失败，另一个TRP仍可维持传输，进一步保障URLLC可靠性。

**Q5: beamFailureDetectionTimer和beamFailureRecoveryTimer有什么区别？**

A: `beamFailureDetectionTimer`控制BFI计数器的重置——如果在该Timer周期内BFI计数未达到maxCount，计数器清零。`beamFailureRecoveryTimer`控制BFR恢复过程的超时——UE发送BFR Preamble后启动该Timer，若到期未收到gNB响应则判定BFR失败。前者是"检测阶段"的Timer，后者是"恢复阶段"的Timer。

## 参考来源

1. [3GPP TS 38.321 V18.4.0](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3194) — Section 5.17 Beam Failure Detection and Recovery procedure
2. [3GPP TS 38.213 V18.4.0](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3215) — Section 6.1 Beam Failure Detection, Section 6.2 New Beam Identification
3. [3GPP TS 38.331 V18.4.0](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3197) — BeamFailureRecoveryConfig IE定义
4. [ShareTechnote - 5G/NR Beam Failure Recovery](https://www.sharetechnote.com/html/5G/5G_BeamFailureRecovery.html) — 波束失败恢复流程图解
5. [WirelessBrew - Beam Failure Detection and Recovery in 5G NR](https://wirelessbrew.com/5g-nr/beam-failure-detection-and-recovery-procedure-in-5g-nr/) — BFR完整流程分析

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
