跳转至

How to Update Your 5G vRAN

(1) TLDR:

  • 提出并实现了一个名为 SwapRAN 的实时更新系统:
    • 专用于 5G vRAN 软件组件: 分布式单元(DU)和集中式单元(CU)
  • 与之前依赖额外硬件(如备用服务器或可编程交换机)的系统不同,SwapRAN 能够实现原地(in-place)更新
    • 对于当前主流的单服务器架构(DRAN)具有很高的实用价值

(2) Online-Update DU:

  • 实时线程平滑过渡:
    • 利用操作系统的线程优先级机制
    • 在旧 DU 仍在处理活跃用户流量时,安全地在后台(非实时状态下)初始化新 DU 的相关进程
  • 前传流量重定向:
    • 通过重新利用现代以太网卡(NIC)中自带的嵌入式交换机(eSwitch)功能
    • 直接将前传(Fronthaul)流量无缝引导至新 DU,无需使用额外的可编程交换机

(3) Online-Update CU:

  • CU与DU的解耦:
    • 引入了一个中传代理(Midhaul Proxy)
    • 将原本紧密耦合的 CU 与 DU 的 有状态连接进行解耦
    • 使旧 CU 的关闭不会直接导致所有底层 DU 断开连接
  • 用户平滑迁移:
    • 巧妙地复用了现有的标准化控制平面消息(即 F1AP Resets 命令)
    • 以 DU-by-DU 的方式逐步将用户设备(UE)迁移至新 CU,从而有效避免了短时间内海量设备重连引发的信令风暴

Introduction

(1) 传统更新方式的痛点与 vRAN 的持续部署愿景:

传统的无线接入网(RAN)依赖专用硬件,软件更新非常困难,通常需要特定厂商的操作流程和预先计划的维护停机时间

基于通用服务器的虚拟化 RAN(vRAN)有望像云数据中心应用一样,实现持续集成与持续部署(CI/CD),从而快速且轻松地推送软件更新

SwapRAN 系统旨在实现这一愿景,克服 RAN 独有的严格实时性、有状态计算 等挑战

(2) vRAN 的核心架构与“原地更新”概念:

vRAN 软件主要分为 DU 和 CU 两部分:

  • DU 位于基站侧(cell site),负责底层的基带处理和 MAC 层调度,以满足极高的亚毫秒级实时性要求
  • CU 负责聚合多个 DU,并运行高层的无线控制和数据包处理协议

alt text

SwapRAN 为 DU 和 CU 提供了在同一台服务器界限内进行的 "原地(in-place)"更新 机制,该机制依赖用户设备(UE)在秒级时间内快速重连的基本能力

(3) 现有更新系统(如 Atlas)的局限性:

近期的 Atlas 等系统采用了非原地的 DU 更新设计,需要借助一台备用服务器运行新 DU,并依赖可编程以太网交换机来重定向射频单元(RU)的前传流量

这不仅增加了部署与跨服务器协调的管理复杂性,而且无法适用于现今常见的、只有一台服务器直连射频单元的分布式 RAN(DRAN)部署(如 Fig. 1)

(4) 为什么 SwapRAN 可以实现:

  • DU 原地更新技术:

    • 首先,利用操作系统的实时线程优先级调度特性,在旧 DU 仍为用户提供服务的同时,安全地执行新 DU 耗时的初始化阶段
    • 其次,SwapRAN 摒弃了外部可编程交换机,转而利用 NIC 中的 eSwitch 来将前传流量直接重定向至新 DU
  • CU 首次实时更新技术:

    • CU 的实时更新在过往文献中属于空白领域,SwapRAN 打造了首个切实可行的系统
    • 针对目前 关闭旧 CU 会直接断开所有对等 DU 的架构缺陷, SwapRAN 引入了一个 midhaul proxy 对 CU 和 DU 进行解耦
    • 此外,系统还开创性地复用了现有的中传控制平面消息(F1AP Resets),从而实现将用户平滑且渐进地迁移至新 CU
亮点
  1. OS调度, 提前新DU初始化
  2. NIC eSwitch 流量重定向
  3. Midhaul Proxy: 将 CU/DU 解耦
  4. 复用 F1AP Resets

Background and Motivation

(1) vRAN 的基础组成与网络架构

5G vRAN 主要由三个标准化组件构成:无线单元(RU)、分布式单元(DU)和集中式单元(CU)

alt text

  • 在网络拓扑上:
    • 一个 DU 通常通过低延迟的前传(Fronthaul)网络连接多个 RU
    • 一个 CU 则通过中传(Midhaul)网络聚合多达数百个 DU
  • 各层职责划分:
    • RU 负责与UE交换数字无线信号
    • CU 实现非实时层 (RRC 无线资源控制层和数据面层)
    • DU 则负责运行对时间极其敏感的底层 (负责基带处理的 PHY 层和负责调度的 MAC 层)

(2) DU 组件的严苛实时性要求

  • 为了满足 5G 极短的空中接口延迟限制(例如 Sub-6 GHz 频段要求 500 微秒内响应),DU 必须运行多个高优先级的 Realtime 线程
  • 这些实时线程被强行绑定在专用 CPU 核心,并且与服务器上的其他非实时任务进行严格资源隔离,以确保处理不会超时
    • 这种特性使得在同一台服务器上更新 DU 变得极具挑战性

(3) 现有软件更新方案的缺陷与局限性

  • 网络停机时间过长:
    • 虽然 vRAN 的初衷是加快软件更新速度,但现有的 RAN 更新方法会导致长达数十秒的网络停机时间
    • 且传统更新往往依赖复杂的停机规划与人工干预(如调整邻近基站的功率)
  • 近期 DU 更新系统(如 Atlas 和 Slingshot)存在三大短板:
    1. 不支持单服务器(DRAN)架构: 它们需要引入一台备用服务器来运行新 DU,并需要部署昂贵的可编程交换机来进行前传流量的重定向,这在资源受限的边缘基站中是不切实际的
    2. 不符合标准规范: 例如,Atlas 的 DU 更新依赖handover功能,但这与 O-RAN 的底层架构规范不兼容
    3. 缺乏系统集成: 在工程实现层面,它们没有与现有的 K8s 等编排系统进行集成
  • CU 更新领域的空白:
    • 除此之外,目前在学术界与工业界,还没有任何公开文献或系统探讨并解决 CU 的在线实时更新问题

SwapRAN

SwapRAN 总体概览与设计原则

(1) 架构组成:

SwapRAN 从高层面上分为 DU 更新和 CU 更新两部分

为了实现实时更新,系统在现有的 vRAN 部署中增加了三个组件:

  • (a) 拦截 CU-DU 控制平面的 F1AP 代理(Midhaul Proxy)
  • (b) 在容器生命周期启动和停止阶段由编排引擎调用的脚本
  • (c) 运行在 DU 进程底层的 libswapRAN.so(一个 LD_PRELOAD 库)

alt text

核心设计选择
  • 原地更新(In-place updates):
    • 更新在同一台服务器界限内完成,不需要额外的硬件或网络重配置,这使其完美适用于单服务器的 DRAN 部署架构
  • 兼容 O-RAN 规范:
    • 系统设计严格遵循 O-RAN 规范(例如: 在 CU 更新中特意选择不使用 handover 机制)
  • 更新自包含(Self-contained updates):
    • DU 或 CU 的更新独立进行,无需互相改变生命周期(例如互相重启),这对于异构、多厂商或跨集群的部署尤为重要

(2) DU RT-Update:

挑战 1:满足极高的实时性要求

新旧两个 DU 不能同时运行在同一台服务器上,否则它们会争抢 CPU 资源并破坏彼此的实时处理截止时间

而如果直接关闭旧 DU 再启动新 DU,会导致长达 25 秒以上的断网

解决方案 1:线程优先级调度

alt text

SwapRAN 识别出新 DU 启动时大部分时间消耗在 与空中接口无关的“非实时”初始化任务

利用操作系统优先调度实时线程的特性,SwapRAN 让新 DU 在后台安全地进行初始化,同时旧 DU 继续处理用户流量

直到新 DU 准备就绪,系统才执行切换,从而将黑障期(断网时间)大幅缩短至 200 毫秒以内

挑战 2:前传(Fronthaul)流量重定向

在单台服务器内进行原地更新时,由于 DU 使用内核旁路(kernel-bypass)进行低延迟数据包 I/O,无法使用 OS 内核路由,且环境中通常没有可编程交换机可用

解决方案 2:复用网卡 eSwitch

alt text

现代高速以太网卡(NIC)包含用于网络虚拟化的 eSwitch

SwapRAN 巧妙地利用了该硬件特性,通过配置相同的 MAC 地址,直接将射频单元的前传流量引导至新 DU,且不需要特殊的智能网卡

(3) CU RT-Update:

CU 与 DU 解耦

挑战:有状态连接与信令风暴

在现有的架构中,CU 与其下属的 DU 之间维持着有状态的 SCTP 控制面连接:

如果直接关闭旧 CU,会导致所有对等 DU 断开连接

这会引发成千上万的用户设备(UE)同时尝试重新入网,造成严重的信令风暴,进而导致新 CU 和核心网瘫痪

Tip
  • 有状态连接:CU 与其下层的 DU 之间维持着基于 SCTP 协议的有状态控制平面连接(F1-C 接口)
  • 极高的用户密度:一个 CU 通常聚合多达数百个 DU,管理着成千上万的活跃用户(UE)
    • 如果直接关闭旧 CU,会导致所有对其连接的 DU 断开并重置,海量用户同时尝试重新入网
    • 从而引发瘫痪性 signaling storm,这会压垮新 CU 和核心网

解决方案 1:引入 F1AP 代理进行解耦

SwapRAN 在 CU-DU 中传控制平面引入了一个轻量级且透明的代理组件(SwapRAN Midhaul Proxy)

它分别与 DU 和 CU 建立 独立的 SCTP 连接 并在两者间转发 F1AP 消息,从而将 CU 的更新过程对 DU 完全隐藏,保持底层的有状态连接不断裂

它的工作原理类似于 Web 服务中的反向代理: 掩盖了后端的 CU 更新状态,从而防止底层的有状态连接断裂

alt text

SwapRAN 的最终方案:渐进式 DU 软重置

SwapRAN 巧妙地复用了 3GPP 标准中原本用于处理 CU 局部故障的 F1AP Reset 消息

代理通过逐个向 DU 发送带有空用户列表的 Reset 消息,促使 DU 清除其内部的用户状态

随后,UE 会因为连续获取不到上行链路授权,而检测到无线电链路故障(RLF),并主动向新 CU 发起 RRC 重连

解决方案 2:渐进式 DU 迁移

为了避免瞬间产生过量的信令负载,SwapRAN 引入了一种平滑迁移机制

它复用了现有的接口管理消息,将网络中的 DU 逐个(DU-by-DU)安全、增量地迁移至新 CU

Tip

ch5 DU Updates 和 ch6 CU Updates

是上述指导思想的具体实现方式. 故省略

Implementation

用得上, 有空仔细看看人家是怎么做的实验