https://docs.fd.io/vpp/20.05/index.html
FD.io VPP
▼Vector Packet Processing
▼User Documentation
Intel AVF device plugin for VPP(Intel® Ethernet Adaptive Virtual Function Specification)
BFD module(BFD是Bidirectional Forwarding Detection的缩写,它是一个用于检测两个转发点之间故障的网络协议,在RFC 5880有详细的描述。BFD协议原理与配置随着网络应用的广泛部署,如果网络发生中断,可能会影响业务正常运行并造成重大损失。)
VPP IPSec implementation using DPDK Cryptodev API(DPDK Crypto Device Driver documentation)
DHCPv6 prefix delegation
IPFIX flow record plugin(IPFIX 是基于“流”的概念,一个流是指,来自相同的子接口,有相同的源和目的IP 地址,协议类型,相同的源和目的协议端口号,以及相同ToS 的报文,通常为5 元组。IPFIX 会记录这个流的统计信息,包括:时间戳,报文数,总的字节数。)
VPP Inband OAM (iOAM)(In-Band OAM)(In-band:频内,指那些数据控制已经被固定的网络协议,In-band 控制的控制数据通常和主要的传输数据公用用同样的连接链路(以太网通道),属于应用层管理。Out-band:频外,又被称为熄灯(Lights out Mangement,LOM)管理,弥补了In-band的缺点,是指那些数据传输信道独立于正常的网络传输,被管理设备即使在关机状态甚至故障的状态下,都可以进行修复重开机或是日志监控等管理作业。)
VPP Link Aggregation Control Protocol (LACP) implementation(基于IEEE802.3ad标准的LACP(链路汇聚控制协议)是一种实现链路动态汇聚的协议。LACP协议通过LACPDU(链路汇聚控制协议数据单元)与对端交互信息。启用某端口的LACP协议后,该端口将通过发送LACPDU向对端通告自己的系统优先级、系统MAC地址、端口优先级、端口号和操作Key。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,从而双方可以对端口加入或退出某个动态汇聚组达成一致。)
Load Balancer plugin for VPP(Improve Performance of Kube-proxy and GTP-U using VPP:https://schd.ws/hosted_files/ossna2017/1e/VPP_K8S_GTPU_OSSNA.pdf)
VPP Link Layer Discovery Protocol (LLDP) implementation(链路层发现协议(LLDP)是一个厂商无关的二层协议,它允许网络设备在本地子网中通告自己的设备标识和性能。它提供了一种标准的链路层发现方式。LLDP协议使得接入网络的一台设备的主要能力,管理地址,设备标识,接口标识等信息发送给同一个局域网的其他设备,当一个设备从网络中接收到其它设备的信息时,就将这些信息以MIB的形式存储起来。)
VPP MAP and Lw4o6 implementation(MAP-E虚拟重组:MAP-E实现支持处理IPv4片段以及IPv4-in-IPv6内部和外部片段。之所以称为虚拟重组,是因为片段实际上并未重组。而是保留一些有关第一个片段的元数据,并将其重新用于后续片段。Lw4o6:面向IPv6平滑过渡的IPv4服务方案)
Marvel device plugin for VPP( How-to: Build VPP FD.IO with Mellanox DPDK PMD on top CentOS 7.7 with inbox drivers.)
MTU Introduction(最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。是包或帧的最大长度,一般以字节记。如果MTU过大,在碰到路由器时会被拒绝转发,因为它不能处理过大的包。如果太小,因为协议一定要在包(或帧)上加上包头,那实际传送的数据量就会过小,这样也划不来。大部分操作系统会提供给用户一个默认值,该值一般对用户是比较合适的)
Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers(目前属于IPV6过渡阶段,NAT64是一种实现IPV4和IPV6之间网络互访的技术。NE40E支持IPV4和IPV6双协议栈,NAT64可以用于IPV4主动访问IPV6,也可以用于IPV6主动访问IPV4,这两个在产品手册中都有配置案例。https://support.huawei.com/enterprise/zh/knowledge/EKB1100016358)
Active-Passive NAT HA(HA高可用群集NAT模式lvs部署-系统,安全)
QoS Hierarchical Scheduler(QoS分层调度程序:)
RDMA (ibverb) Ethernet driver(RDMA(Remote Direct Memory Access)技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。)
SELinux - VPP Custom SELinux Policy(SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。)
VPP SPAN implementation(Switched Port Analyzer (SPAN):SPAN技术主要是用来监控交换机上的数据流,大体分为两种类型,本地SPAN和远程SPAN. ----Local Switched Port Analyzer (SPAN) and Remote SPAN (RSPAN),实现方法上稍有不同。 利用SPAN技术我们可以把交换机上某些想要被监控端口(以下简称受控端口)的数据流COPY或MIRROR一 份,发送给连接在监控端口上的流量分析仪,比如CISCO的IDS或是装了SNIFFER工具的PC. 受控端口和 监控端口可以在同一台交换机上(本地SPAN),也可以在不同的交换机上(远程SPAN))
SR-MPLS: Segment Routing for MPLS(多协议标签交换(英语:Multi-Protocol Label Switching,缩写为MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。Segment routing is a network technology focused on addressing the limitations of existing IP and Multiprotocol Label Switching (MPLS) networks in terms of simplicity, scale, and ease of operation. It is a foundation for application engineered routing as it prepares the networks for new business models where applications can control the network behavior.)
►SRv6: Segment Routing for IPv6(SRv6: Segment Routing for IPv6,SR(Segment Routing)是源路由技术的一种,SRv6即SR技术在IPv6网络平面的应用。SRv6技术在IPv6报文中新增SRH(Segment Routing Header)报头,用于存储128bit IPv6地址格式的SRv6 SID(segment ID)列表。128位SRv6 SID主要由三部分组成,标识节点位置的LOC字段(IPv6前缀格式,可路由)、标识服务和功能的FUNC字段(本地识别)以及存储相关参数的ARG字段(见图1)。一个标准的SRv6 SID可以定义特定节点的路径信息及服务和功能信息。由基本的SRv6定义,我们可以看到SRv6的几个特征:SID可路由、通过SID可同时定义节点路径和功能服务信息。SRv6 Network Programming (draft-filsfils-spring-srv6-network-programming) )
vcl-ldpreload: a LD_PRELOAD library that uses the VPP Communications Library (VCL).(User can LD_PRELOAD any application that uses POSIX socket API. NOTE: The sources have been moved to .../vpp/src/vcl and libvcl_ldpreload.so is built with VPP and can be found in .../vpp/build-root/install-vpp[_debug]-native/vpp/lib,https://docs.fd.io/vpp/20.05/d6/dcf/vcl_ldpreload_doc.html)
VMWARE vmxnet3 device driver plugin(VMXNET3卡看起来像一个10 Gbit的物理设备。注意:还有两个过时的半虚拟化适配器称为VMXNET和VMXNET2(有时是增强的VMXNET),但是只要虚拟机至少有硬件版本7,就应该只使用VMXNET3适配器。)
▼Developer Documentation
Test Framework Documentation(Test framework documentation for VPP 20.05,https://docs.fd.io/vpp/20.05/vpp_make_test/html/)
Sample plugin for VPP(This is the VPP sample plugin demonstrates how to create a new plugin that integrates with VPP. The sample code implements a trival macswap algorithim that demonstrates plugin runtime integration with the VPP graph hierachy, api and cli.这是VPP示例插件,演示了如何创建与VPP集成的新插件。 该示例代码实现了一个简单的macswap算法,该算法演示了插件运行时与VPP图形hierachy,api和cli的集成。)
Binary API support(VPP提供了一种二进制API方案,以允许各种各样的客户端代码对数据平面表进行编程。 在撰写本文时,有数百种二进制API。消息在* .api文件中定义。 如今,大约有50个api文件,随着人们添加可编程功能,更多文件将陆续到来。 API文件编译器源位于src / tools / vppapigen中。)
VPP API module
ACL plugin constant-time lookup design
Multicore support for ACL plugin
Lookup contexts aka "ACL as a service"
►Shared Memory Packet Interface (memif) Library
Syslog protocol support
IPFIX support
Statistics
VPP interface stats client
VPP API Language
Handoff queue demo plugin
Code coverage analysis with lcov
Buffer metadata change tracker
►Release Notes
►Debug CLI
►Startup Configuration
Node Identifiers
►Modules
►Namespaces
►Data Structures
►Source