Release notes for VPP 21.06

Release notes for VPP 21.06

本次发布比上次发布新增了787个提交,其中包括364个修复。

发布亮点

本次发布添加了许多新功能,在此特别介绍其中几个特色功能。

Linux控制平面(linux-cp)插件

Linux 控制平面 (linux-cp) 插件是本次发布的一项重要新功能。linux 控制平面 (linux-cp)插件将VPP接口镜像到Linux内核的TUN或TAP设备,实现VPP与主机控制平面的近乎无缝集成。

VPP接口接收的所有重定向数据包都会传送到Linux相应设备,反之,Linux内核发出的数据包也会传输出VPP接口。这一插件使VPP与外部软件集成更容易。

性能监控插件(perfmon)

性能监控插件(perfmon)也是本次发布的一大亮点。此插件能以单个节点为基础,收集详细的底层CPU统计数据。若特定节点的性能与设定不一致,此插件能有效充当高级故障排除工具。

注意:正确运行此插件可能需要更改/proc/sys/kernel/perf_event_paranoid设置,才能正常访问性能计数器。

移除API CRC替换表

此内容本身并非新功能,而是一项说明。此版本API变更表的部分消息出现了一个新标记:“消息CRC32修复”。上次出现类似问题是在2020年夏季,有很长一段时间(几个月)API消息的CRC计算都是错误的。除了首个用户自定义类型以外,其他的消息都没有计算在内。简而言之,最后可能会导致客户端和VPP内存的消息分布完全不同。

最初发现问题时,API变更还未受到影响。但修复问题就会导致大约一半VPP API消息的CRC被无故更改,对VPP消费者造成很多的麻烦。对任意使用者而言,消息CRC只是一个模糊的数字,唯一价值在于,等值CRC消息在线路上有同样的分布,并且确定性较高。

此项修复的另一个价值是定义被消息更改时,会自动进行“正确”CRC32计算,而非使用表中的插槽。替换表会随时间推移逐渐收缩,减少过渡期的痛苦,同时保留了对受影响消息的完整性检查。若有任何字段变更,CRC则不匹配“新”值,不进行替换。CRC32选择只是一个执行细节,对用户来说并非直接可见,因此该修复是避免VPP消费者负担过重的一种合理方法。

    功能    

适用于Python的Binary API编译器

o API文件的消息定义支持autoendian关键词

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9302cfea9)

构建系统

o 可选rpath

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2c91922eb)

基础架构库

o 添加使用libexecinfo的选项

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=67d7acd05)

o 添加带32字节密钥的bihash

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f613a4402)

o 添加缺失的o 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=04a14133c)

插件

o ARPing CLI

添加arping命令

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a77ae4708)

o AVF设备驱动程序

添加AVF流框架 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ffe9a5489)

o CNat

添加maglev算法支持 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4d237874e)

添加输入特征节点

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=cc9a1a0d3)

添加calico/k8s源策略 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=516b0adf6)

o 加密–ipsecmb

添加AES CTR支持 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fe7ff320b)

o DPDK

重置cryptodev引擎到DPDK 20.11

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=25f371ee0)

允许配置单个VMBUS设备 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=982272974)

实现中断模式 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=19ff0c369)

o IPv6分段路由基于流的动态代理

SRv6基于流的动态代理 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ed7c62a30)

o 互联网密钥交换(IKEv2)协议

使用新的计数器数据模型,添加计数器

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fab5e7f39)

添加per SA统计

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=68d275356)

支持响应者的主机名

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=af2cc6425)

o NAT

1:1策略NAT 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=18327be5d)

Pnat拷贝和清除字节指令

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ab3151c52)

o QUIC协议

更新Quicly v0.1.2 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2e4523816)

Quicly更新至v0.1.3

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=db36fda74)

o RDMA (ibverb)驱动程序

添加RSS配置支持 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f5a45680e)

o SRTP

在libsrtp2基础上基本实现SRTP

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6621abf49)

o TCP MSS限制

TCP MSS限制插件 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=bf55e9931)

o Linux-cp

用于控制平面集成的Linux接口镜像 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=44db1caef)

o Memif设备驱动程序

适应新的接收队列框架 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=755941865)

o 性能计数器

新的perfmon插件

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8b60fb0fe)

VPP API 绑定Python

o 暴露vpp papi版本号给用户 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b552ff2e9)

SVM库

o 允许mq附着在任意的地址偏移

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b46241889)

o 每个app接收消息队列 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=41d5f541d)

统计段

o 在统计段添加节点和接口的符号链接 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=db0238090)

o 内存堆计数器

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a606d9210)

VNET

o Crypto Infra

添加对aes-ctr+sha-1链的支持 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=40ee2003b)

支持散列操作

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=06111a837)

对ipsecmb添加chacha20-poly1305支持 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=106e24bd9)

o FIB

允许在API创建新源 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=976b259be)

o 流

对IP4/IP6, IP4_VXLAN/IP6_VXLAN添加API实现

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c7e7819ad)

o IPIP

支持 MPLS over IP

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e294de6f8)

o IPSec

支持 MPLS over IPSec[46] 接口

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4a58e49cf)

为AES CTR添加支持

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=490b92738)

改进udp port封装的CLI

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=048189e7a)

使用新的隧道API类型,支持流标签和TTL拷贝

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c7eaa711f)

支持每个SA的异步模式

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f16e9a550)

o IPv4 LPM

添加API获取IPv6链路层地址

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=58a1915b5)

流哈希加入路由器ID

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3d5f08a82)

路径MTU

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8f5fef2c7)

为异常数据包扩展punt CLI 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=45723b8d3)

扩展IP重组配置的显示命令

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=74a4a70ef)

o 通用接口

API的RX/TX方向类型

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6a999d67d)

在API添加开/关混杂模式

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fd0b399ff)

o L2

添加每个桥域的学习条目限制

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=5f93e3b7f)

从want_l2_macs_events分离扫描延迟和学习限制,作为独立的API 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0f8d10035)

o 会话层

支持中断模式的基本功能 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=7da8829d8)

更新连接属性API 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=04ae8273f)

o TLS和TLS引擎插件

Dtls初始实现 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4b47ee26c)

o Vhost用户驱动程序

为驱动程序添加中断通知的事件索引 

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=27ba5008a)

o 隧道

支持将拷贝TTL和流标签从内部拷贝到外部

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=a91cb4590)

VPP 通信库

o 扩展连接/监听配置

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4ac258497)

Libmemif

o 设置下一个空闲缓冲区

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=47e68de22)

o 设置memif缓冲区的数据偏移

(https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=af2cc6425)

通过下面的链接,可以获取最新的Release Package:

https://packagecloud.io/app/fdio/release/search?q=20.09 

详细的Release Notes,请参考或点击阅读原文

https://docs.fd.io/vpp/20.09/de/d1e/release_notes_2009.html 

感兴趣的小伙伴们还在等什么?赶紧加入吧!

VPP项目主页:https://wiki.fd.io/view/VPP

VPP邮件列表:[email protected]

加入VPP邮件列表:https://lists.fd.io/g/vpp-dev

Release notes for VPP 21.06_第1张图片

转载须知

DPDK与SPDK开源社区

公众号文章转载声明

推荐阅读

2020中国峰会系列六 | 基于SPDK的

高性能企业级分布式存储

SPDK中常用的性能测试工具

ZTE 5G UPF 性能白皮书

Release notes for VPP 21.06_第2张图片

Release notes for VPP 21.06_第3张图片

点点“赞”“在看”,给我充点儿电吧~

你可能感兴趣的:(Release notes for VPP 21.06)