概述
Intel近期发布了其新一代E810网络适配器,该适配器提供了一种DDP(Dynamic Device Personalization, 动态设备个性化)能力可以有效加速多种协议报文的处理。本文将以FD.io VPP为例,介绍怎么利用Intel E810网卡的这种能力加速GTP-U报文的处理。
Intel E810网卡及DDP简介
英特尔® 以太网 800系列是新一代英特尔® 以太网控制器和网络适配器,采用增强的可编程报文处理引擎,可实现更深入、更多样化的报文协议头处理。这种片上功能称为动态设备个性化(DDP)。在英特尔®以太网800系列中,每台设备的驱动都可以动态加载DDP软件包。Comms DDP包除了支持通用DDP包含的协议之外,还增加了对GTP和PPPoE协议的支持。本文中加速GTP-U报文所使用的就是这种Comms DDP包。
关于该网卡和DDP的具体介绍参见: 英特尔®以太网控制器E810介绍:面向5G核心网络
VPP简介
开源项目VPP(Vector Packet Processing)是由cisco贡献给FD.io社区的核心项目。VPP是一个运行于用户态的高性能可扩展报文处理框架。VPP的报文处理建立在各种graph node上。通过组织这些node的顺序,VPP可以高效灵活地组织各种基础组件和plugins来处理特定的业务逻辑,而不需要修改核心代码。
更多VPP详细信息请见:VPP/What is VPP?
(链接为https://wiki.fd.io/view/VPP/What_is_VPP%3F)
VPP从19.04版本开始支持Intel E800系列网卡,在即将发布的VPP 20.09版本中,很多高级DDP特性已经支持。在后面的章节中我会介绍怎么利用E810的DDP功能来加速GTP-U报文处理。
VPP vnet/flow infrastructure简介
VPP提供了vnet/flow infrastructure 来利用硬件网卡的卸载能力。当使用DPDK plugin作为基础IO插件时, dpdk plugin使用rte_flow来支持这些flow类型。
vnet/flow支持的flow类型有:
Ethernet_type,
- <