跳到主要内容

vpp适配ptp方案

vpp主要在5G小基站侧基于dpdk用于收发包处理。而中国移动对基站侧的ptp协议实现要求如下:

  • 应支持OC,可选支持BC
  • 支持BMC状态信息提取,但不强制要求支持状态决策算法和选源算法
  • 基站设备应支持PTP端口应可设置为Enable和Disable,并应可配置Slave_Only功能使能和不使能
  • PTP报文封装应支持PTP over IEEE Std 802.3/Ethernet方式,可选支持 PTP over UDP over IPv4方式,可选支持VLAN功能
  • 支持组播,单播可选支持
  • 支持one-step模式,two-step模式可选
  • 支持支持E2E延时机制,P2P延时机制可选
  • 支持时延不对称补偿设置功能,补偿范围+/-100us,补偿步长不大于10ns

当前dpdk实现了ptpclient,支持如下功能:

  • 仅支持slaver
  • 仅支持E2E
  • 仅支持做oc
  • 不支持BMC算法,使用第一个发现的master作为主时钟
  • 支持one-step模和two-step模式
  • 支持组播
  • PTP报文封装仅支持PTP over IEEE Std 802.3/Ethernet方式

按照当前功能分析对比,ptpclient能满足中国移动对基站侧的ptp协议实现要求。

以下两个配置要添加实现也较简单,不影响核心功能。

  • 基站设备应支持PTP端口应可设置为Enable和Disable,并应可配置Slave_Only功能使能和不使能
  • 支持时延不对称补偿设置功能,补偿范围+/-100us,补偿步长不大于10ns

实现

基于vpp的dpdk插件实现,dpdk在收到报文后,先过滤ptp报文,对ptp报文进行处理,处理完成后再交由下一步流程处理。

配置

在dpdk插件中添加 ptpclient 1来开启和添加ptpclient,使用ptpclient-time-sync来控制是否同步系统时间。配置样例如下:

dpdk {
## Change default settings for all intefaces
huge-dir /mnt/hugepages
no-pci
num-mem-channels 1
kni 1
ptpclient 1
dev default {
## Number of receive queues, enables RSS
## Default is 1
num-rx-queues 1
num-rx-desc 40960
#num-rx-desc 81920
rss { ipv4 }

## Number of transmit queues, Default is equal
## to number of worker threads or 1 if no workers treads
num-tx-queues 1
num-tx-desc 8192
}
proc-type primary
log-level 7
}

reference

主要参考文档为1588v2时间接口规范 QB-B-017-2010.doc,以及dpdk ptpclient源码样例。