目录
功能详细信息:
基于ACL的转发
安全组的ACL
地址解析协议
邻接
双向转发检测
位索引显式复制
粘接
缓冲区元数据更改跟踪器
对静态http或https服务器的内置URL支持
警察
分类
数据平面对象
动态主机配置协议
GPRS隧道协议
通用路由封装
IP邻居数据库
IP安全
IP隧道中的IP
IPFIX探针
英特尔IPSecMB库提供的IPSec加密引擎
Openssl库提供的IPSec加密引擎
本机实现提供的IPSec加密引擎
IPv6邻居发现
互联网组管理协议
L2TPv3
第2层转发
第三层交叉连接
链路聚合控制协议
链路层发现协议
负载均衡器
定位器ID分离协议控制平面
定位器ID分离协议通用协议扩展
地址和端口的映射
多协议标签交换
NSH
Netmap设备
网络地址解读
网络延迟模拟器
PG
PPPoE
管道装置
QUIC协议
服务质量
SRv6-服务链接动态代理
SRv6-服务链接伪装代理
SRv6-服务链接静态代理
SRv6 Mobuile
IPv6的分段路由(SRv6)
MPLS的分段路由
会话层
源VRF选择
静态HTTP https服务器
TLS OpenSSL
点按设备
基于时间范围的MAC地址过滤器
传输控制协议
传输层安全
隧道基础设施
用户数据报协议
VNET GSO
VPP通讯库
Virtio PCI设备
虚拟路由器冗余协议
虚拟可扩展局域网
局域网
主机接口设备AF_PACKET
rdma设备驱动程序
vlib / unix
vmxnet3设备驱动程序
VPP版本:v20.09-rc0-77-g5bb3e81e7
维护者:Neale Ranns nranns@cisco.com
基于策略的路由ACL匹配要转发的流量ACL中的每个规则都有一个关联的“路径”,该路径确定如何转发流量。该路径被描述为FIB路径,因此使用ABF可以进行基本L3转发的任何可能(输出MPLS标签除外)ACL分为策略策略中的ACL优先级确定优先匹配的流量策略附加到接口。ABF在L3路径中作为输入功能运行功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/abf
维护者:Andrew Yourtchenko ayourtch@gmail.com
ACL插件允许在IP地址所有权级别(通过通过MACIP ACL锁定IP-MAC关联)以及在入站和出站ACL中使用网络和传输级别策略来实施访问控制策略。对于非初始片段,仅在网络层上进行匹配。有状态ACL中的会话状态按接口维护(例如,出站接口ACL创建会话,而入站ACL匹配会话),这简化了设计和操作。对于TCP处理,会话处理跟踪“已建立”(同时看到SYN段和可见的ACK)和“瞬态”(所有其他TCP状态)会话。
入站MACIP ACL
过滤源IP:MAC地址静态配置的绑定无状态入站和出站ACL
根据其L3 / L4信息允许/拒绝数据包有状态的入站和出站ACL
根据出站流量创建入站会话,反之亦然功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/acl
维护者:Neale Ranns nranns@cisco.com
如RFC826中所述的地址解析协议(ARP)的实现
ARP响应者功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/arp
维护者:Neale Ranns nranns@cisco.com
邻接表示到达直接连接的邻居所需的下一跳信息。
邻接表示如何向对等方发送不同的流量类型邻接的原则属性是接口和重写。重写将在数据包通过接口转发之前进行。重写由接口类型提供。它可以从固定接口属性(即P2P隧道上的src,dst IP地址)或解析协议(如以太网链路上的ARP)构造。如果存在重写,则称邻接关系是完整的,如果没有重写,则邻接关系是不完整的,在DPO图中作为叶的邻接是终端/正常(即在物理接口上)。如果不是终端,则称为中间链(即虚拟接口上的一个,例如GRE隧道)。中链邻接可以堆叠/加入到描述后续转发(即如何发送GRE隧道的目标地址)的DPO图上。Glean邻接关系描述了如何将数据包广播到子网中功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/adj
维护者:Klement Sekera ksekera@cisco.com
双向转发检测(BFD)的实现。
BFD协议实现功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/bfd
维护者:Neale Ranns nranns@cisco.com
位索引显式复制(BIER)的实现
使用位索引显式复制进行多播(https://tools.ietf.org/html/rfc8279)MPLS和非MPLS网络中的位索引显式复制(BIER)封装(https://tools.ietf.org/html/rfc8296)功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/bier
维护者:Steven Luong sluong@cisco.com
绑定实施
具有以下选项的接口绑定支持-模式活动备份-模式lacp-负载平衡l2 | l23 | l34-仅限于numa-模式xor-负载平衡l2 | l23 | l34-模式循环-模式广播功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/bonding
维护者:Dave Barach dave@barachs.net
缓冲区元数据更改跟踪器(mdata)使用图形节点之前/之后的主循环性能回调挂钩捕获缓冲区元数据,然后比较和总结每个节点的结果。回答问题“特定图形节点会更改哪些缓冲区元数据?” 通过直接观察。启用前对性能的影响为零。
缓冲区元数据更改跟踪器功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/mdata
维护者:Dave Barach dave@barachs.net
(builtinurl)插件将一组URL添加到静态http / https服务器。当前URL,所有URL返回.json fmt中的数据:/version.json-vpp版本信息 /interface_list.json-接口列表 / interface_stats-通过HTTP POST的单个接口 / interface_stats-通过HTTP GET的所有intfcs。
静态http / https服务器的内置URL功能成熟度级别:开发 支持:API CLI MULTITHREAD 源代码:https ://git.fd.io/vpp/tree/src/plugins/builtinurl
维护者:Dave Barach dbarach@cisco.com
一个非常简单/快速的源地址白名单功能
v4,v6非默认FIB src地址查找丢弃未达到接收邻接关系的数据包没有广泛使用功能成熟度级别:实验 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/cop
维护者:Dave Barach dbarach@cisco.com
掩码/匹配包分类器
瑞士军刀面罩匹配引擎,用于对数据包进行分类使用128位SIMD向量运算来提高性能许多用例,包括数据包跟踪/ pcap捕获过滤功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/classify
维护者:Neale Ranns nranns@cisco.com
数据平面对象(DPO)
DPO是对象的通用术语(又称抽象基类),它对数据平面中的数据包执行[一组]操作DPO类型的具体示例是;邻接,mpls-imposition,复制。DPO堆叠/合并以形成一个处理图,数据包将遍历该处理图以描述数据包应经历的全部操作。DPO图可以植根于VLIB图中的任何点-值得注意的例子是L3 FIB查找,ABF,L3XC。功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/dpo
维护者:Dave Barach dave@ barachs.net,Neale Ranns nranns@cisco.com
动态主机配置协议(DHCP)客户端的实现
DHCP客户端(v4 / v6)DHCPv6前缀委托DHCP代理/选项82功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/dhcp
维护者:倪洪军hongjun.ni@intel.com
GPRS隧道协议的实现
GTPU解封装GTPU封装功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/gtpu
维护者:Neale Ranns nranns@cisco.com
通用路由封装(GRE)的实现
L3隧道,IPv4和IPv6的所有组合Encap / Decap标志用于控制DSCP,ECN,DF从覆盖图到参考图的复制,反之亦然。L2隧道功能成熟度级别:生产 支持:API CLI MULTITHREAD
尚未实施: -GRE密钥
源代码:https : //git.fd.io/vpp/tree/src/vnet/gre
维护者:Neale Ranns nranns@cisco.com
独立于IP协议的邻居数据库(也称为对等数据库)限制同行数量,回收和老化功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/ip-neighbor
维护者:Neale Ranns nranns@cisco.com
IPSec的实现
IPSec(https://tools.ietf.org/html/rfc4301)认证标题(https://tools.ietf.org/html/rfc4302)封装安全有效载荷(https://tools.ietf.org/html/rfc4303)功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/ipsec
维护者:Ole Troan ot@cisco.com
如RFC2473中所述,通过IP {v4,v6}隧道实现IP {v4,v6}。该模块还实现了6RD(RFC5969)的边界中继。
IPv4 / IPv6上的IPv4 / IPv6封装
碎片与重组可配置的MTU内到外交通等级/ TOS副本可配置的流量等级/ TOSICMPv4 / ICMPv6代理
6RD(RFC5969)
边境接力功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -隧道PMTUD-跟踪隧道状态的FIB状态-IPv6扩展标头(“隧道封装限制”选项)
源代码:https : //git.fd.io/vpp/tree/src/vnet/ipip
维护者:Ole Troan ot@cisco.com
IPFIX流量探头。适用于L2或IP输入功能路径。
L2输入功能IPv4 / IPv6输入功能记录L2,L3和L4信息功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -输出路径-通过IPv6导出-通过TCP / SCTP导出
源代码:https : //git.fd.io/vpp/tree/src/plugins/flowprobe
维护者:Neale Ranns nranns@cisco.com
SHA(1,224,256,384,512)CBC(128、192、256)GCM(128、192、256)功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/crypto_ipsecmb
维护者:Damjan Marion damarion@cisco.com
SHA(1,224,256,384,512)CBC(128、192、256)GCM(128、192、256)点阅率(128,192,256)DES,3DESMD5功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https ://git.fd.io/vpp/tree/src/plugins/crypto_openssl
维护者:Damjan Marion damarion@cisco.com
本机加密引擎的实现
CBC(128、192、256)GCM(128、192、256)功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/crypto_native
维护者:Neale Ranns nranns@cisco.com
如RFC4861和RFC4862中所述的IPv6邻居发现协议的实现。
邻居发现。ND自动地址配置多播侦听器发现-仅作为发送广告的主机角色路由器广告功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/ip6-nd
维护者:Neale Ranns nranns@cisco.com
Internet组管理协议(IGMP)的实现
仅限IGMPv3。功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/igmp
维护者:未维护
L2TPv3(RFC3931)的初始和不完整实施。
通过IPv6的L2TPv3功能成熟度级别:试验性 支持:API CLI 源代码:https://git.fd.io/vpp/tree/src/vnet/l2tp
维护者:John Lo loj@cisco.com
第2层桥接和交叉连接支持
两个接口的第2层(L2)交叉连接(xconnect)第2层(L2)桥接域(BD)中多个接口的桥接
通过报文的目的MAC地址转发在BD或每个接口上启用/禁用MAC学习具有指定的老化间隔的MAC老化启用/禁用接口关闭,BD删除或用户发现的MAC的MAC刷新用户添加了不会老化的静态MAC,也不会被MAC学习覆盖用户添加的MAC不会老化,但可以被MAC学习覆盖单播转发启用/禁用未知单播洪泛启用/禁用启用/禁用多播/广播泛洪ARP终止以避免ARP请求泛洪启用/禁用ARP请求的单播而不是泛洪BVI(桥接虚拟接口),用于从BD或向BD进行IP转发在BD中设置接口以发送未知的单播数据包而不是泛洪在BD接口上支持水平分割组(SHG)在L2桥接或xconnect接口上重写VLAN标记
功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/l2
维护者:Neale Ranns nranns@cisco.com
将L3接口上的所有入口流量交叉连接到输出FIB路径。该路径可以描述任何输出(MPLS标签除外)通过为表使用专用的VRF并添加具有相同路径的默认路由,可以实现相同的功能。但是,L3XC在内存和CPU上效率更高功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/l3xc
维护者:Steven Luong sluong@cisco.com
链路聚合控制协议实现(LACP)
支持LACP版本1规范,包括标记协议功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/lacp
维护者:Klement Sekera ksekera@cisco.com
链路层发现协议(LLDP)实施
链路层发现协议实现功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/lldp
维护人员:Pfister ppfister@cisco.com,倪洪军hong hongjun.ni@intel.com
GRE隧道模式NAT模式L3DSR模式一致的哈希连接轨迹功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/lb
维护者:Florin Coras fcoras@cisco.com
定位器ID分离协议控制平面(LISP)的实现
ITR,ETR和RTR操作模式多租户多宿主源/目标地图缓存查找RLOC探测支持以太网,IPv4,IPv6和NSH EID(有效载荷)映射解析器故障转移算法功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/lisp-cp
维护者:Florin Coras fcoras@cisco.com
定位器ID分离协议通用协议扩展(LISP-GPE)的实现
ITR,ETR和RTR模式支持以太网,IPv4,IPv6和NSH EID(有效载荷)源/目的地转发IPv4和IPv6 RLOC功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/lisp-gpe
维护者:Ole Troan ot@cisco.com
地址和端口映射(MAP):IPv4作为一种服务机制。隧道或转换IPv4地址,IPv4子网或共享的IPv4地址。在共享IPv4地址模式下,仅支持UDP,TCP和受限的ICMP。
LW46 BR(RFC7596)
碎片与重组MAP-E BR(RFC7597)
MAP-T BR(RFC7599)
功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/map
维护者:Neale Ranns nranns@cisco.com
多协议标签交换(MPLS)的实现
标签拼版/处置-管道和统一模式隧道-单向功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/mpls
维护者:倪洪军 hongjun.ni @ intel.com,Vengada venggovi@cisco.com
证监会的NSH
NSH分类器NSH转发器NSH SFNSH代理NSH OAMNSH元数据功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/nsh
维护者:Damjan Marion damarion@cisco.com
创建一个netmap接口,这是一个高速用户空间接口,该接口允许VPP在不使用DPDK的情况下修补到linux名称空间,linux容器或物理NIC。
L4校验和卸载功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -API转储
源代码:https : //git.fd.io/vpp/tree/src/deprecated/netmap
维护人员:Ole Troan ot @ cisco.com,Filip Varga fivarga@cisco.com
网络地址转换(NAT)插件提供了多种地址转换功能。这些可以用于多种不同的情况。CPE,CGN等
NAT44
1:1 NAT1:1 NAT与端口VRF意识多个内部接口发夹IPFIX系统日志端点相关的NATTCP MSS夹紧本地旁路(DHCP)CGN-确定性NAT
NAT64
NAT66
DS-lite
464XLAT
功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/nat
维护者:Dave Barach dave@barachs.net
引入了可配置的网络延迟和丢失
网络延迟和损耗分数模拟器功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/nsim
维护者:Dave Barach dbarach@cisco.com
高速包发生器
高速数据包生成数据包定义CLI支持pcap捕获重放多线程数据包生成数据包注入到任意图节点被“ make test”大量使用功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/pg
维护者:倪洪军hongjun.ni@intel.com
以太网上的PPP
PPPoE控制平面数据包分派PPPoE解封装PPPoE封装功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/pppoe
维护者:Damjan Marion damarion@cisco.com
创建一个管道设备接口,该接口可以将数据包在管道的一侧双向传递到管道的另一侧。尽管行为与UNIX管道相似,但它不是基于主机的管道。
L4校验和卸载功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -不使用硬件地址-不支持标记流量-通过sw_if_index进行API转储过滤
源代码:https : //git.fd.io/vpp/tree/src/vnet/devices/pipe
维护者:Aloys Augustin aloaugus@cisco.com
IETF QUIC协议实施
通过会话层进行主机堆栈集成基于Quicly库:https://github.com/h2o/quicly功能成熟度级别:实验 支持:API CLI STATS MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/quic
维护者:Neale Ranns nranns@cisco.com
服务质量(QoS)的保证
记录-从数据包标题中提取QoS位并写入元数据Mapp-定义往返于每个数据包层的QoS位的简单转换标记-将[映射的] QoS位写入数据包头存储-在数据包元数据中写入固定的QoS值功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/qos
维护者:Francois Clad fclad@cisco.com
SRv6动态代理
SRv6-动态服务链代理(draft-ietf-spring-sr-service-programming-01)功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/srv6-ad
维护者:Francois Clad fclad@cisco.com
SRv6伪装代理
SRv6-伪装服务链代理(draft-ietf-spring-sr-service-programming-01)功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/srv6-am
维护者:Francois Clad fclad@cisco.com
SRv6静态代理
SRv6-静态服务链代理(draft-ietf-spring-sr-service-programming-01)功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/srv6-as
维护者:村上哲也tetsuya.mrk@gmail.com
SRv6移动端功能。支持GTP4.D,GTP4.E,GTP6.D,GTP6.D.Di和GTP6.E。
GTP4.DGTP4.EGTP6.DGTP6DGTP6.E功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/srv6-mobile
维护者:Pablo Camarillo pcamaril@cisco.com
完整的SRv6网络编程实现
支持SRv6网络编程(draft-ietf-spring-srv6-network-programming-07)SR头端行为(H.Encaps,H.Encaps.Red,H.Encaps.L2,H.Encaps.L2.Red)具有PSP支持的中间TE的SR端点行为(End,End.X,End.T)用于覆盖创建的SR端点行为(End.DX4,End.DX6,End.DT4,End.DT6,End.DX2)BindingSID实例化的SR端点行为(End.B6.Encaps.Red)支持SRH插入(draft-filsfils-spring-srv6-net-pgm-insertion-01)SR柜台SR政策实施(draft-ietf-spring-segment-routing-policy-02)基于IP前缀/ L2接口分类的SR导向功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/srv6
维护者:Pablo Camarillo pcamaril@cisco.com
SR-MPLS
SR政策支持自动转向(基于NextHop / Color的SR转向)功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/srmpls
维护者:Florin Coras fcoras@cisco.com
会话层促进了北向应用程序和南向传输协议之间的交互。为此,会话层通过应用程序接口子层向北,公开API供应用程序与抽象通信单元(即会话)进行交互。向南,通过传输协议接口,它公开了API,这些API允许传输协议与应用程序交换数据和事件(ctrl和io),而实际上并不知道该通信是如何进行的。
管理会话的分配和跟踪(六元组查找表)限制应用程序访问网络资源的应用程序名称空间在传输协议和应用程序之间传送数据和通知(Ctrl和io)传输协议接口
提供通用的传输协议模板在数据的传输和应用程序表示之间转换安排发送会话/连接应用界面
维持每个应用程序的状态管理用于在应用程序和传输之间交换数据的共享内存资源的分配分别为内置和外部应用程序公开本机C和二进制API功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/session
维护者:Neale Ranns nranns@cisco.com
根据源IP地址确定输入的VRF /表路由被添加到表中。使用数据包的源地址执行路由查找使用该表对路由进行编程,在该表中将执行后续的目标地址查找表绑定到接口。SVS在L3路径中作为输入功能运行功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/svs
维护者:Dave Barach dave@barachs.net
一个简单的静态静态http / https服务器缓存内置的vpp主机堆栈应用程序。支持HTTP GET和HTTP POST方法。
具有缓存的可扩展静态http / https服务器功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/http_static
维护者:Florin Coras fcoras@cisco.com,俞平ping.yu@intel.com
用于VPP主机堆栈的TLS OpenSSL插件
TLS的OpenSSL引擎TLS异步框架为加密卸载启用QAT功能成熟度级别:实验 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/tlsopenssl
维护人员:damarion@cisco.com sluong@cisco.com sykazmi@cisco.com
创建一个Tap V2设备接口,该接口连接到主机系统上的Tap接口。
维蒂奥坚持不懈附加到主机上的现有水龙头使用索引索引SW过滤数据包转储输出功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/devices/tap
维护者:Dave Barach dave@barachs.net
设备输入/输出弧驱动器级别MAC过滤器。检查是否允许流量往返于给定的MAC地址,并采取适当的措施。适用于家庭网关用例,其中按位计费WAN流量。
基于静态/时间范围/数据配额的MAC地址过滤器功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/plugins/mactime
维护者:Florin Coras fcoras@cisco.com
高速和大规模传输控制协议(TCP)实现
核心功能(RFC793,RFC5681,RFC6691)高性能扩展(RFC7323)拥塞控制扩展(RFC3465,RFC8312)丢失恢复扩展(RFC2018,RFC3042,RFC6582,RFC6675,RFC6937)检测和防止虚假重传(RFC3522)防御欺骗和泛洪攻击(RFC6528)部分实现的功能(RFC1122,RFC4898,RFC5961)投放速度估算(草稿-iccrg投放速度估算)功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/tcp
维护人员:Florin Coras fcoras@cisco.com,俞平ping.yu@intel.com
传输层安全性(TLS)协议实现,由一组充当现有TLS实现的包装器的引擎组成,例如OpenSSL,Picotls和MbedTLS,以及将引擎集成到VPP主机堆栈的框架
支持可插拔TLS引擎的框架OpenSSL,Picotls和MbedTLS引擎功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/vnet/tls
维护者:Neale Ranns nranns@cisco.com
隧道基础设施
IP隧道的常见类型和功能功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/tunnel
维护者:Florin Coras fcoras@cisco.com
用户数据报协议(UDP)实现
通过会话层进行主机堆栈集成每个端口调度程序独立于隧道协议功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/udp
维护者:ayourtch@gmail.com sykazmi@cisco.com
通用细分卸载
基本的GSO支持GSO用于VLAN标记的数据包用于VXLAN隧道的GSOIP-IP隧道的GSOIPSec隧道的GSO提供内联函数以获取标头偏移功能成熟度级别:实验 支持:API CLI
尚未实施: -全面测试,GRE,日内瓦
源代码:https : //git.fd.io/vpp/tree/src/vnet/gso
维护者:Florin Coras fcoras@cisco.com
VPP通信库(VCL)通过公开与POSIX兼容但不兼容POSIX的API,简化了与会话层的应用交互。
将vpp主机堆栈会话抽象为整数会话句柄公开自己的异步通信功能,即epoll,select,poll支持多工应用会话不能在多个线程/进程之间共享VCL锁定的会话(VLS)
通过锁定确保一次仅一个线程访问一个会话将派生的进程检测并注册为新的VCL工作者。它不会将线程注册为新工作线程。LD_PRELOAD垫片(LDP)
拦截系统调用并将其注入VLS。支持的应用程序可以与VCL一起使用,并且可以隐式与VPP的主机堆栈一起使用,而无需更改任何代码它不支持所有系统调用和系统调用选项功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vcl
维护人员:sykazmi@cisco.com sluong@cisco.com
Virtio实施
驱动程序模式可模拟从主机接口提供给VPP的PCI接口。模拟从来宾VM呈现给VPP的vhost-用户界面的设备模式。支持多队列,GSO,校验和卸载,间接描述符,巨型帧和压缩环。在vhost中支持virtio 1.1压缩环功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -通过sw_if_index进行API转储过滤
源代码:https : //git.fd.io/vpp/tree/src/vnet/devices/virtio
维护者:马修·史密斯mgsmith@netgate.com
虚拟路由器冗余协议实施(VRRPv3)
适用于IPv4和IPv6的VRRPv3(RFC 5798)
信号/广告和选举主人回复ARP,NS对虚拟路由器地址的请求VRRP虚拟MAC地址支持
DPDK通过rte_eth_dev_mac_addr_add(),rte_eth_dev_mac_addr_del()与PMD支持多个MAC地址的接口设置为混杂模式的其他接口可能会起作用VRRP虚拟路由器的支持接口类型
硬件接口VLAN子接口绑定接口RFC 5798中未指定的其他功能
允许将广告发送到单播对等方,而不是组播允许根据上游接口的状态调整虚拟路由器的优先级。在RFC 8347中提到作为“跟踪接口或网络”的配置选项。功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/vrrp
维护者:John Lo loj@cisco.com
虚拟可扩展LAN(VXLAN)隧道支持跨越L3网络的L2覆盖网络
VXLAN隧道,用于支持L2覆盖/虚拟网络(RFC-7348)支持IPv4或IPv6底层网络VTEP如果BD中的所有VXLAN隧道均为单播,则通过头端复制进行泛洪可以将多播VXLAN隧道添加到BD,以通过IP多播进行泛洪VXLAN封装具有散列的源端口,可实现更好的底层IP负载平衡通过底层接口上的vxlan-bypass IP功能对VXLAN进行decap优化在Intel Fortville NIC上使用带有DPDK的Flow Director对VXLAN进行硬件卸载功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/vxlan
维护者:倪洪军hongjun.ni@intel.com
VxLAN-GPE隧道处理
VxLAN-GPE解封装VxLAN-GPE封装功能成熟度级别:生产 支持:API CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vnet/vxlan-gpe
维护者:Damjan Marion damarion@cisco.com
创建一个主机接口,该接口将连接到veth对的一侧的linux AF_PACKET接口。veth对必须已经存在。创建后,新的主机接口将在VPP中存在,名称为“ host-',在哪里'是指定的veth对的名称。使用“ show interface”命令显示主机接口详细信息。
L4校验和卸载功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD
尚未实现: -sw_if_index和名称以外的API转储详细信息
源代码:https : //git.fd.io/vpp/tree/src/vnet/devices/af_packet
维护者:BenoîtGanne bganne@cisco.com
rdma设备驱动程序支持
为Mellanox的ConnectX- RDMA驱动器4 / 5的适配器功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/rdma
维护者:Dave Barach dbarach@cisco.com
特定于Linux的支持例程
基于epoll的文件I / O支持Linux信号处理Syslog支持启动配置处理,日志记录配置调试CLI寻呼机,横幅,主循环轮询间隔每线程堆栈分配,保护页面设置功能成熟度级别:生产 支持:CLI MULTITHREAD 源代码:https://git.fd.io/vpp/tree/src/vlib/unix
维护者:Steven Luong sluong@cisco.com
vmxnet3设备驱动程序支持
vmxnet3设备驱动程序,用于连接到ESXi服务器,VMWare Fusion和VMWare Workstation功能成熟度级别:生产 支持:API CLI STATS MULTITHREAD 源代码:https : //git.fd.io/vpp/tree/src/plugins/vmxnet3