In-Switch Fronthaul Middlebox¶
本部分详细介绍了Slingshot如何在可编程交换机上实现前传流量的管理和实时故障检测
-
基于可编程交换机的动机:
- 前传流量(RU与PHY之间的数据)具有超高带宽和极低延迟的要求
- Slingshot选择在边缘数据中心的可编程交换机上实现该中间件,因为它可以自然地检查所有前传数据包,且几乎不增加延迟
-
软件中间件的劣势:传统的基于软件的中间件方法存在三个主要缺陷:
- 增加前传延迟(从而缩减基站的物理覆盖半径)
- 增加额外的CPU开销
- 增加额外的数据跳跃而使每台服务器的网卡带宽需求翻倍
-
中间件的三大关键功能:
- 将来自RU(无线电单元)的上行数据包精确引导至当前的主PHY
- 拦截并丢弃来自备用PHY的下行控制平面数据包
- 必须能在精确的TTI边界切换活动的PHY,防止RU收到来自两个PHY的混合数据而崩溃
5.1 RU-to-PHY mapping in the data plane¶
为了在交换机内部实时、精准地切换流量,Slingshot提出了以下创新技术:
-
虚拟PHY地址机制:
- 打破了传统的静态映射,允许RU使用一个固定的“虚拟PHY地址”发送数据,由交换机负责将其动态转换为当前活动PHY的真实物理地址
-
利用数据包头字段作为时间触发器:
- 由于交换机的控制平面速度太慢,而数据平面又缺乏与vRAN系统的时间同步
- 因此,交换机通过解析前传数据包的头部字段(如帧、子帧和时隙号/slot number)来识别TTI边界,并以此作为触发规则更新的信号
-
引入间接数据结构(Indirection Layer):
- 可编程交换机无法支持处理MAC地址冲突的复杂哈希表
- 因此,Slingshot引入了简短的逻辑ID(如8位的RU ID和PHY ID)作为间接层,实现了在数据平面可以快速更新的无冲突地址映射目录
前传迁移控制流程

软件中间件(Orion)会预先发送一个带有特定时隙号的 migrate_on_slot 命令给交换机
交换机将其存入“迁移请求存储(Migration request store)”中
当交换机收到的前传数据包的时隙号与存储的请求匹配时,数据平面会瞬间更新RU到PHY的映射表,从而完成迁移
5.2 In-switch RAN failure detection¶
Slingshot摒弃了传统的“心跳包(heartbeat)”探测机制,设计了一种透明、快速且无CPU开销的硬件级故障检测方案:
-
实时数据包流作为天然“心跳”:
- 健康的实时vRAN层(如PHY)在每个TTI都必须向下行发送前传数据包
- 交换机将这些正常的数据流视为天然的存活指示器,通过监控下行数据包的到达间隙(inter-packet gap)来判断PHY是否宕机,完全无需修改PHY的源代码
-
基于数据包生成器的模拟计时器:
- 由于目前的商用可编程交换机没有内部计时器,Slingshot利用交换机内置的数据包生成器(packet generator)周期性地注入检测数据包,以此模拟“时钟滴答”
-
检测逻辑:交换机为每个PHY维护一个计数器!
- 正常下行数据包到达时会将计数器清零
- 模拟时钟数据包每次会使计数器加一
- 如果某个PHY发生故障,计数器会不断累加直到触发阈值(例如约450微秒未收到数据),时钟数据包就会发现异常并立刻生成故障通知包发给上层的软件中间件以触发迁移