N2 handover intra-AMF 2Gnb 1ue
This commit is contained in:
1 parent
10ca9395e5
commit
388389428d
38 files changed
+4031
-13
No files matched your search
+92
@@ -0,0 +1,92 @@
|
||||
# 添加 HANDOVER_REQUEST 和 HANDOVER_COMMAND 处理
|
||||
|
||||
## 问题描述
|
||||
在 `GnbRrcTask::onLoop()` 函数的 switch 语句中,缺少对 `NmGnbNgapToRrc` 枚举类型中的 `HANDOVER_REQUEST` 和 `HANDOVER_COMMAND` 这两个枚举值的处理。
|
||||
|
||||
## 修改内容
|
||||
|
||||
### 1. 修改 `src/gnb/rrc/task.hpp`
|
||||
在函数声明区域添加了两个新的处理函数:
|
||||
```cpp
|
||||
void handleHandoverRequest(int ueId);
|
||||
void handleHandoverCommand(int ueId);
|
||||
```
|
||||
|
||||
### 2. 修改 `src/gnb/rrc/task.cpp`
|
||||
|
||||
#### a) 在 onLoop() 函数的 switch 语句中添加处理分支:
|
||||
```cpp
|
||||
case NmGnbNgapToRrc::HANDOVER_REQUEST:
|
||||
handleHandoverRequest(w.ueId);
|
||||
break;
|
||||
case NmGnbNgapToRrc::HANDOVER_COMMAND:
|
||||
handleHandoverCommand(w.ueId);
|
||||
break;
|
||||
```
|
||||
|
||||
#### b) 实现两个处理函数:
|
||||
```cpp
|
||||
void GnbRrcTask::handleHandoverRequest(int ueId)
|
||||
{
|
||||
m_logger->debug("Handling handover request for UE: {}", ueId);
|
||||
|
||||
// TODO: 实现切换请求处理逻辑
|
||||
// 1. 验证UE上下文
|
||||
// 2. 准备Source to Target Transparent Container
|
||||
// 3. 生成HandoverRequestAcknowledge消息
|
||||
|
||||
// 目前先记录日志,后续完善实现
|
||||
m_logger->warn("Handover request handling not yet implemented for UE: {}", ueId);
|
||||
}
|
||||
|
||||
void GnbRrcTask::handleHandoverCommand(int ueId)
|
||||
{
|
||||
m_logger->debug("Handling handover command for UE: {}", ueId);
|
||||
|
||||
// TODO: 实现切换命令处理逻辑
|
||||
// 1. 解析Target to Source Transparent Container
|
||||
// 2. 生成RRC Reconfiguration消息
|
||||
// 3. 发送给UE以执行切换
|
||||
|
||||
// 目前先记录日志,后续完善实现
|
||||
m_logger->warn("Handover command handling not yet implemented for UE: {}", ueId);
|
||||
}
|
||||
```
|
||||
|
||||
## 功能说明
|
||||
|
||||
### handleHandoverRequest()
|
||||
- **作用**: 处理来自 NGAP 层的切换请求
|
||||
- **用途**: 当作为目标 gNB 接收到切换请求时调用
|
||||
- **后续实现**: 需要验证 UE 上下文,准备透明容器,生成切换请求确认
|
||||
|
||||
### handleHandoverCommand()
|
||||
- **作用**: 处理来自 NGAP 层的切换命令
|
||||
- **用途**: 当作为源 gNB 接收到切换命令时调用
|
||||
- **后续实现**: 需要解析透明容器,生成 RRC 重配置消息
|
||||
|
||||
## N2 Handover 流程中的位置
|
||||
|
||||
这两个函数在 N2 handover 流程中的作用:
|
||||
|
||||
1. **源 gNB (发起切换)**:
|
||||
- RRC 测量报告触发切换决定 ✅ (已实现)
|
||||
- 发送 NGAP HandoverRequired 🔄 (待实现)
|
||||
- 接收 NGAP HandoverCommand → `handleHandoverCommand()`
|
||||
- 发送 RRC Reconfiguration 给 UE
|
||||
|
||||
2. **目标 gNB (接受切换)**:
|
||||
- 接收 NGAP HandoverRequest → `handleHandoverRequest()`
|
||||
- 发送 NGAP HandoverRequestAcknowledge
|
||||
- 准备接收 UE 的切换
|
||||
|
||||
## 编译状态
|
||||
- ✅ 编译错误已解决
|
||||
- ✅ 函数声明和实现匹配
|
||||
- ✅ Switch 语句现在处理所有枚举值
|
||||
|
||||
## 后续工作
|
||||
1. 实现 `handleHandoverRequest()` 的具体逻辑
|
||||
2. 实现 `handleHandoverCommand()` 的具体逻辑
|
||||
3. 完善与 NGAP 层的消息交互
|
||||
4. 测试切换流程的端到端功能
|
||||
Reference in new issue
Block a user