DPDK19.05 已发布,新版本都有哪些新功能和变化?

640?wx_fmt=jpeg

DPDK 19.05版本发布,

新功能和变化等你来Get!

640?wx_fmt=gif

▌ 新功能 

1.    新增了armv8 machine target

新增的armv8 machine target包括:

  • BlueField (Mellanox)

  • OcteonTX2 (Marvell)

  • ThunderX2 (Marvell)

2.    增加了Windows支持

Windows可支持搭建Hello World示例应用。

3.    添加了栈库

新增了栈库、配置用的API和有界指针堆栈。API可提供多线程的安全进、退栈操作,每次操作可在一个或多个指针上进行。

该库支持两种堆栈的实现:标准的(基于锁的)和无锁的。

但无锁的实现现在仅限于x86-64的平台。

4.    添加了无锁堆栈 Mempool Handler

新增的无锁堆栈handler使用的是新增的栈库。

5.    添加了RCU库

加入的RCU库支持基于静止状态的内存回收方式。

该库可帮助识别读者线程的静止状态,让写者得以释放和锁无关数据结构相关的内存。

6.    更新了KNI模块和PMD

更新了KNI内核模块,可根据给定的初始MTU大小设置max_mtu,在没有设置的情况下,最大的MTU为1500。

更新了KNI PMD驱动,可基于给定的mb-pool设置mbuf_size和MTU,如果mb-pool包含一个合适的buffer大小,设置之后就可以传递巨型帧。

7.    添加了AF_XDP PMD

为AF_XDP增加了一个Linux特定的 PMD驱动。此PMD可创建一个AX_XDP socket,并将其绑定到特定的netdev队列。DPDK应用会绕过内核网络堆栈,通过该socket接收和发送原始数据包,以实现高性能的包处理。

8.    添加了一个net PMD NFB

为Netcope NFB卡新增了nfbnet驱动。详情请查看NFB轮询模式驱动库NIC指南。

9.    添加了IPN3KE net PMD

为Intel® FPGA PAC (Programmable Acceleration Card)新增了网络驱动ipn3ke,详情请查看IPN3KE轮询模式驱动库NIC指南。

10.  更新了Solarflare network PMD

更新的Solarflare驱动sfc_efx包含以下变化:

  • 增加了对次级进程中Rx 描述符状态和相关API的支持

  • 增加了对次级进程中Tx 描述符状态和相关API 的支持

  • 增加了对次级过程中RSS RETA以及hash配置读取API的支持

  • 增加了对次级进程中Rx包类型列表的支持

  • Added Tx prepare to do Txoffloads checks.

  • 增加了对封装了的VXLAN和GENEVE的TSO的支持

11.  更新了Mellanox mlx4驱动

更新的Mellanox mlx4驱动包含以下的新功能和改进:

  • 增加了固件版本读取

  • 支持次级进程

  • 支持每进程设备寄存器;不再需要保留相同的VA空间

  • 支持组播地址列表接口

12.  更新了Mellanox mlx5驱动

更新的Mellanox mlx5驱动包含以下的新功能和改进:

  • 增加了固件版本读取

  • 支持representor的新命名方案

  • 支持新PCI设备DMA map/unmap API

  • 支持多端口InfiniBand设备

  • 内核控制excessive memory pinning

  • 次级进程支持DMA内存寄存器

  • 支持每进程设备寄存器;不再需要保留相同的VA空间

  • 支持对E-Switch和网卡的跳跃动作

  • 支持网卡steering中的多rte_flow组

  • 重新设计的流程引擎支持大范围部署,包括:

  • 支持数百万卸载流规则

  • 快速的流插入和删除,可快至每秒1M流更新

13.  将avf重新命名为iavf

将Intel以太网自适应虚拟化功能驱动avf重新命名为iavf,其中包含了目录名、库名、文件名、编译文件、文档、宏、函数、结构体类型和代码中其他的字符串。

14.  更新了enic 驱动

更新的enic驱动包含以下新功能和改进:

  • 修复了几个与MARK、 SCTP 、VLAN、 VXLAN和内部包匹配相关的flow(director)问题

  • 增加了对RAW限制性的支持

  • 增加了对RSS限制性的支持

  • 增加了对PASSTHRU限制性的支持

15.  更新了ixgbe驱动

更新的ixbge驱动可为VF支持混杂模式。

16.  更新了ice驱动

更新的ice驱动包含以下新功能和改进:

  • 支持Rx和Tx路径中SSE和AVX2指令

  • 支持包下载

  • 支持安全模式

  • 支持UPD/TCP/SCTP+IPV4/IPV6包的RSS功能

17. 更新了i40e驱动

i40e中PF的新功能包括:

  • 支持VXLAN-GPE包

  • 支持VXLAN-GPE分类

18. 更新了ENETC驱动

  • 更新的ENETC驱动包含以下新功能和改进:

  • 支持物理寻址模式

  • 支持SXGMII接口

  • 支持基础统计

  • 支持混杂模式和全组播模式

  • 支持MTU更新

  • 支持巨型帧

  • 添加了队列的启动/停止

  • 支持CRC卸载

  • 支持Rx校验卸载验证

19. 更新了atlantic PMD

添加了MACSEC硬件卸载实验性的API

20. 更新了IntelQuickAssistTechnology (QAT) compression PMD

更新了IntelQuickAssist Technology (QAT) compressionPMD,可简化并让对含有超过16个segment的Scatter Gather Lists(SGLs)的处理更稳健。

21.  更新了QuickAssist Technology (QAT)对称加密PMD

支持128和256 bit AES keys的AES-XTS。

22.  为非对称加密添加了Intel QuickAssist Technology PMD

新增了一个QAT 加密 PMD,可提供不对称的加密算法。在此次的版本中添加了模块化的求幂和模块化的乘法逆算法。

23.  更新了AESNI-MB PMD

支持外部变换操作。

24.  更新了IPsec库

更新的IPsec库支持AES-CTR和3DES-CBC 密码算法。同时也添加了相关的ipsec-secgw测试脚本。

25.  更新了testpmd应用

提高了在ARM平台上testpmd应用的性能。在转发模式macswap下,现使用NEON intrinsic交换分区来节省CPU周期。

26.  更新了电源管理库

支持Intel Speed Select Technology - Base Frequency (SST-BF)。rte_power_get_capabilities结构体类型现在在其被返回的掩码中有一个比特,可表示它是否是一个高频核。

27.  更新了distributor示例应用

支持Intel SST-BF功能,如果可获取高频核,distributor核可以固定过去。

640?wx_fmt=gif

▌ API变化 

1.eal:函数rte_service_attr_get()的参数attr_value的类型已经从uint32_t *变为uint64_t *.

2.meter:用19.02版本增加的新定义rte_color代替meter库中的enum rte_meter_color。在很多像是rte_mtr.h和rte_tm.h的地方已经进行了这样包含rte_color值的替换,来合并多种颜色定义。

3.vfio:rte_vfio_container_dma_map和rte_vfio_container_dma_unmap函数扩增了一个选项,可选择要求映射或非映射到默认的vfio容器fd。

4.power: rte_power_set_env和rte_power_unset_env函数已经修改为线程安全。

5.timer:已引入可创建多个timer列表实体的函数。另外,现在它们在共享内存中被分配。新函数在timer被启动、停止和管理的时候可允许挑选特定的timer列表。

640?wx_fmt=gif

▌ ABI变化 

1.ethdev:在rte_eth_dev_info中增加的字段。rte_eth_dev_info结构体中已加入了两个额外的字段min_mtu和max_mtu,每个都是uint16_t类型。这些字段值的设置由于PMD驱动支持设备的不同而不同。

2.crytodev:在18.08版本中引入了一个新的结构体rte_crypto_asym_op,包含在rte_crypto_op中。由于rte_crypto_asym_op结构体是缓存对齐方式定义的,导致rte_crypto_op结构体布局和对齐方式不可预测的变化。移除对rte_crypto_asym_op的缓存行对齐,可恢复预期的rte_crypto_op布局和对齐。

3.timer: rte_timer_subsystem_init成功或失败返回以表示能否分配内存。


640?wx_fmt=gif

▌ 已知问题 

1. 在x86平台上,因为binutils 2.31,不支持AVX512。因为binutils 2.31中的一个缺陷,不支持AVX512。

DPDK 缺陷:

https://bugs.dpdk.org/show_bug.cgi?id=249

GCC 缺陷:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90028

2. 无软件AES-XTS实现

现有的cryptodev 软件 PMD不支持AES-XTS算法实现,所以此功能只能在有兼容性硬件和有关联的PMD的支持下使用。



点击底部阅读全文  640?wx_fmt=gif 

查看完整版DPDK 19.05 Release Notes

http://doc.dpdk.org/guides/rel_notes/release_19_05.html

640?wx_fmt=jpeg

 相关阅读 

640?wx_fmt=jpeg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值