DPDK16.11版本添加了以下性能:
改进了mbuf对offload的支持
添加了rte_raw_cksum_mbuf() 函数来对mbuf链中的数据进行校验。在mbuf中添加了新的Rx checksum标志来表示更多的状态:unknown, good, bad, or not present,这一点对虚拟驱动非常有用。这些改进针对的是IP协议和四层协议。添加了一个新的Rx LRO mbuf flag,在包被合并时使用。这个flag意味着原始包的片段大小处于已知状态。
增加了对vhost-user零拷贝技术的支持
避免了dequeue路径上的拷贝来提供性能。在VM2VM的情况下,性能的提高特别明显。包越大,性能就能得到越大的提升。但在VM2NIC的情况下,也有一些限制,性能的提升也不如VM2VM的情况明显。对于一些小包,drop现象时有发生。因此,这一功能默认不可用,在设置RTE_VHOST_USER_DEQUEUE_ZERO_COPY flag时可用。可查看Programming Guide中的VHost章节类来获取更多信息。
添加了支持vhost-user间接描述符
如果开启了indirect descriptor,guest发送的每个包在enqueue virtqueue中只占用一个slot。关闭这个feature的话,即使是64bytes的包也要在guest端的Virtio PMD中占用两个slot。
为包类型的处理添加了software parser
添加了rte_pktmbuf_read()函数从而可以在mbuf链中读取报文,并在必要时进行线性化。
添加了新函数rte_net_get_ptype() 以分析mbuf链中的以太网包并从中获取包类型。
添加了rte_get_ptype_*()函数从而将包类型转换为字符串。
添加了vhost PMD xstats
从 per port的角度,为vhost PMD添加了extended statistics。
Virtio支持的offloads
o Rx/Tx checksums.
o LRO.
o TSO.
添加了对ARM的virtio NEON 支持
更新了ixgbe base driver
o 添加了对X550em_a 10G PHY 的支持。
o 为X550em_a 1G PHY增加了流控自动协商的支持
o 添加了对X550em_a FW ALEF的支持。
o Mailbox的版本提高到了 ixgbe_mbox_api_13
o 添加了两个MAC operations 支持Hyper-V技术
为ixgbe PMD添加了管理VF的API
ixgbe PMD上增加了8个API用于VF管理。可在rte_pmd_ixgbe.h 中找到API声明。
更新了enic driver
o 现在通过中断获取链路状态,而不再是通过轮询。
o 在UCS Blade中增加了更多的flow director modes(firmware version >= 2.0(13e))。
o 增加了对MTU更新的支持。
o 增加了对rte_eth_rx_queue_count 函数的支持。
更新mlx5驱动
o 支持了RSS hash results
o 提升了一些性能
o 解决了几个bug
更新了QAT PMD
o MD5_HMAC algorithm.
o SHA224-HMAC algorithm.
o SHA384-HMAC algorithm.
o GMAC algorithm.
o KASUMI (F8 and F9) algorithm.
o 3DES algorithm.
o NULL algorithm.
o C3XXX device.
o C62XX device.
添加了openssl PMD
增加了新的crypto PMD用来提供几个ciphering和hashing算法。所有的cryptography操作基于openssl库的API实现。
更新了IPsec example
o Configuration file support
o AES CBC IV generation with cipher forward function
o AES GCM/CTR mode
添加了对gcc -march的新选项的支持
GCC 4.9的-march 参数支持intel处理器的codename。可以使用配置文件中的RTE_MACHINE 选项通过-march参数把code name传递给编译器。