DPDK Release 17.08

0?wx_fmt=png

DPDK Release 17.08

0?wx_fmt=png
0?wx_fmt=png
0?wx_fmt=png

17.08新功能

1

x86 ISA的最低版本要求增加到SSE4.2。

从17.08开始,DPDK要求在x86上运行的最低版本是SSE4.2。旧版本的最低要求是SSE3。

2

增加了Service Core功能。

EAL新增的Service Core功能允许DPDK在没有应用程序手动运行的情况下在lcores上运行诸如软件PMD之类的服务。 Service core基础架构使得DPDK在同一个 service lcore上运行多个服务时保持灵活性,并为应用程序提供了强大的API来配置从service lcore到service的映射。

3

新增Generic Receive Offload API。

新版支持Generic Receive Offload (GRO)API ,能够重组TCP/IPv4数据包。GRO API假定所有输入数据包都具有正确的校验和。GRO API不会更新合并数据包的校验和。如果输入数据包是IP分片的, GRO API会假定它们是完整的数据包(即具有L4包头)。

4

新增Fail-Safe PMD。

新增Fail-Safe PMD 这种虚拟装置允许应用程序支持设备的无缝热插拔。驱动详情请参阅《Fail-Safe 轮询模式驱动库指南》。(http://dpdk.org/doc/guides/nics/fail_safe.html) 

5

Generic flow API (rte_flow) 新增对igb 网卡的支持。

该API提供了一种通用的硬件配置方法来匹配特定的入口或出口流量,用户可以自定义规则(数量不限)来修改其行为并查询相关的计数器。

为有QUEUE处理的以太网,IPv4,UDP,TCP和RAW模式类型条目添加generic flow API 支持。igb上有四种过滤器能支持这种功能。

6

为enic添加 generic flow API (rte_flow) 支持。

新版 flow API 可支持在入口流量有QUEUE, MARK, FLAG and VOID处理的外部以太网,VLAN,IPv4, IPv6, UDP, TCP,SCTP,VxLAN 和内部以太网 VLAN, IPv4, IPv6, UDP , TCP等项目。

7

添加Chelsio T6系列适配器支持。

更新CXGBE PMD来运行Chelsio T6系列适配器。

8

缩短了cxgbe的延迟时间并提高了性能

对cxgbe中的Tx和Rx路径进行改进以提高其性能,另外低速流也减少了延迟。

9

更新了bnxt PMD。

更新了bnxt PMD。主要改进包括:

  • 支持MTU修改。

  • 添加LRO支持。

  • 添加VLAN过滤和剥离功能支持。

  • 增加更多dev_ops支持。

  • 增加PMD专用API主要来从PF控制VF.

  • 更新HWRM版本到1.7.7

10

增加mlx4驱动Rx中断支持。

Rx队列现在可以配置一个中断,在下一个数据包到达时触发。

11

更新mlx5驱动。

对mlx5驱动做出以下更新:

  • 为x86添加了矢量化的Rx / Tx突发。

  • 增加了对flow API隔离模式的支持。

  • 重新设计了硬件分类器中执行的flow drop操作。

  • 改善了Rx中断管理。

12

更新了szedata2 PMD。

增加了每个物理端口对装配有多个以太网端口的固件的支持。

13

更新了dpaa2 PMD。

更新了dpaa2 PMD。主要改进包括:

  • 增加了MAC过滤器配置支持。

  • 增加了对Segmented Buffers的支持。

  • 添加VLAN过滤和剥离功能支持。

  • 改进后支持更多dev_ops

  • 优化了数据包接收路径。

14

调整对称crypto操作结构。

crypto操作(rte_crypto_sym_op)调整如下:

  • 删除 rte_crypto_sym_op_sess_type 字段。

  • 用crypto操作开始时的偏移量替换了IV指针和物理地址。

  • 将crypto IV的长度和偏移量移动到rte_crypto_cipher_xform。

  • 删除“附加认证数据” (AAD)长度。

  • 删除摘要长度。

  • 从 auth 结构中删除了AAD指针和物理地址。

  • 增加了 aead 结构,包括AEAD算法的参量。

15

调整crypto操作结构。

Crypto操作 (rte_crypto_op)调整如下:

  • 添加 rte_crypto_op_sess_type 字段。

  • 枚举rte_crypto_op_status 和 rte_crypto_op_type的值,修改为 uint8_t类型。

  • 删除了 opaque_data字段。

  • 指向rte_crypto_sym_op的指针已被替换为零长度数组。

16

调整crypto对称会话结构。

Crypto对称会话结构(rte_cryptodev_sym_session)做了以下调整:

  • 删除dev_id 字段。

  • 删除driver_id 字段。

  • 删除mempool  指针mp。

  • 用私有数据会话sess_private_data代替private指针数组标记。

17

更新cryptodev库。

  • 增加AEAD算法专用函数和结构,不再需要使用加密与认证结合的结构。

  • 为crypto设备驱动程序识别添加了帮助函数。

  • 增加多设备会话支持,单个设备可用于多个驱动中。

  • 增加了新的函数来初始化并释放同一个会话中单个驱动上的私有数据。

18

更新了dpaa2_sec crypto PMD。

增加AES-GCM和AES-CTR支持。

19

更新了AESNI MB PMD。

更新AESNI MB PMD,能够提供以下额外支持:

除了以前的16字节IV,还能够支持AES计数器模式下的12字节IV。

20

更新了AES-NI GCM PMD。

AES-NI GCM PMD从ISA-L库迁移到Multi Buffer库,因为后者现在可获得Scatter Gather List支持。该迁移需要另外增加192位密钥支持。

21

更新了Cryptodev Scheduler PMD。

增加了一个基于多核的分发模式,可以将入队crypto操作在多个slave上进行分发,以运行在不同逻辑内核上。

22

增加NXP DPAA2 Eventdev PMD。

为NXP DPAA2设备增加了新的dpaa2 eventdev驱动。此驱动详情请见“Event 设备驱动”文档。

23

增加dpdk-test-eventdev测试应用程序。

dpdk-test-eventdev工具是一个数据平面开发套件(DPDK)应用程序,可以运行各种eventdev用例。该应用程序具有通用框架,可添加新的基于eventdev的测试用例,以验证DPDK eventdev设备的功能和性能参数。

0?wx_fmt=png

已知问题

从17.08版本开始,需要使用libnuma来编译dpdk。

0?wx_fmt=png

API 变化

  • 改进了ethdev库中的_rte_eth_dev_callback_process功能

  • 将旁路函数从rte_ethdev库转移到ixgbe PMD

  • 改编了rte_cryptodev库

0?wx_fmt=png

ABI 变化

  • 把rte_pci_addr中的domain字段类型改为uint32_t以遵循PCI标准

  • 在rte_bus结构内增加了新的rte_bus实验性API

  • 让rte_devargs 结构表示的内部设备一般化来为 bus-agnostic EAL做准备

  • 重组crypto操作结构

  • 重组crypto对称会话结构

  • 重组rte_crypto_sym_cipher_xform结构

  • 重组rte_crypto_sym_auth_xform结构

  • 在rte_cryptodev_info 和 rte_cryptodev 结构中用uint8_t driver_id替代了dev_type枚举

  • 把 session_mp 从 rte_cryptodev_config.中移除

0?wx_fmt=png

共享程序库版本

此版本中加入了带加号的代码库。

librte_acl.so.2

  librte_bitratestats.so.1

  librte_cfgfile.so.2

  librte_cmdline.so.2

+ librte_cryptodev.so.3

  librte_distributor.so.1

+ librte_eal.so.5

+ librte_ethdev.so.7

+ librte_eventdev.so.2

+ librte_gro.so.1

  librte_hash.so.2

  librte_ip_frag.so.1

  librte_jobstats.so.1

  librte_kni.so.2

  librte_kvargs.so.1

  librte_latencystats.so.1

  librte_lpm.so.2

  librte_mbuf.so.3

  librte_mempool.so.2

  librte_meter.so.1

  librte_metrics.so.1

  librte_net.so.1

  librte_pdump.so.1

  librte_pipeline.so.3

  librte_pmd_bond.so.1

  librte_pmd_ring.so.2

  librte_port.so.3

  librte_power.so.1

  librte_reorder.so.1

  librte_ring.so.1

  librte_sched.so.1

  librte_table.so.2

  librte_timer.so.1

  librte_vhost.so.3

DPDK

文章精选系列

DPDK开源社区

最权威的DPDK社区

0?wx_fmt=jpeg

长按二维码关注

点击阅读原文

——查看完整版DPDK17.08 Release 

0?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值