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
转载须知
DPDK与SPDK开源社区
公众号文章转载声明
推荐阅读
2020中国峰会系列六 | 基于SPDK的
高性能企业级分布式存储
SPDK中常用的性能测试工具
ZTE 5G UPF 性能白皮书
点点“赞”和“在看”,给我充点儿电吧~