以太网控制器驱动(英特尔®以太网控制器E810介绍)
转载自DPDK与SPDK开源社区公众号
1.概述
英特尔® 以太网 800系列是新一代英特尔® 以太网控制器和网络适配器,采用增强的可编程报文处理引擎,可实现更深入、更多样化的报文协议头处理。这种片上功能称为动态设备个性化(DDP)。在英特尔®以太网800系列中,每台设备的驱动都可以动态加载DDP软件包。
在Windows *,ESX *,FreeBSD *和Linux *操作系统中,通用DDP包自动安装到了所有受支持的英特尔®以太网800系列驱动程序上,包括由数据平台开发套件(DPDK)提供的驱动程序。通用DDP包也称为系统缺省DDP软件包。
有关英特尔®以太网800系列产品和通用DDP技术的详情,请参阅英特尔®以太网控制器E810 DDP技术指南,链接为http://cdrdv2.intel.com/v1/dl/getContent/617015
本文档将主要介绍一款功能丰富的Comms DDP软件包,旨在满足电信客户(特别是5G解决方案提供商)的硬件加速需求。
2.Comms DDP软件包
Comms DDP包除了支持通用DDP包含的协议之外,还增加了对GTP和PPPoE协议的支持。从DPDK 19.11开始,Comms DDP包就已经得到DPDK驱动程序的支持。在不久的将来,Linux 操作系统上的英特尔® 以太网 800 系列ice驱动程序也会支持该包。Comms DDP 包可以加载到所有英特尔®以太网 800 系列设备上,也可以通过每个设备的序列号选择不同的包。
成功加载Comms DDP包后,表1中的协议就会受到支持。绿色阴影部分表示需要特定的Comms DDP包,无阴影部分表示同时受到OS默认包的支持。
表1. Comms DDP包中受支持的协议
3.使用DPDK RTE_FLOW卸载硬件
通过利用 COMM DDP 包,我们可以使用 DPDK RTE_FLOW 来使用网卡的硬件卸载功能flow filter和 RSS。下方示例演示了FDIR 对GTP TEID上进行检测,并将匹配报文发送到队列1。
testpmd> flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / ipv4 / end actions queue index 1 / end
在表2和表3中,列举了部分基于COMMs DDP所支持的协议的RSS和FDIR的高级特性:
表2. DPDK 20.08中RSS的Pattern和 Input Set
表3. DPDK 20.08中英特尔®以太网Flow Director的Pattern和Input Set
4.Comms DDP包使用示例:5G UPF
英特尔®以太网800系列DDP支持5GC UPF的许多重要报文解析特性。
- 基于常规报文和 GTP 报文的Hash值计算和散列
- 基于流的Hash 计算和散列
- 基于 QFI 的队列组映射
- 基于 DSCP 的队列组映射
- 设置标记值并散列到队列组
图1. 5G UPF VNF
5.5GC UPF 加速能力总结
DDP技术大幅提升了5GC UPF的性能,并且降低了时延。E810可以解析报文头的504字节,并实现完全卸载负载均衡模块的能力。
表4. 5G加速能力总结
6.拓展阅读
在NFV环境中,当内核驱动作为待配置的主机接口,将特定流量引导到每个VF/容器时,所有现有的网络配置工具(ethool、tc flower、ip等)都无法为PPPOE、GTPU等协议创建filter。这屏蔽了英特尔®以太网控制器E810和COMMs DDP包提供的硬件卸载功能。英特尔®设备配置功能是NFV的新基础架构,可以弥补这一缺陷。有关详细信息,请参阅DCF介绍 。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com