logo资料库

VPP软件架构和实现介绍(VPP design and implementation overview).pdf

第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
资料共43页,剩余部分请下载后查看
VPP overview fd.io Foundation
Agenda • Overview • Structure, layers and features • Anatomy of a graph node Integrations • • FIB 2.0 • Future Directions • New features • Performance • Continuous Integration and Testing • Summary fd.io Foundation
Introducing VPP: the vector packet processor fd.io Foundation
Introducing VPP (the vector packet processor) Accelerating the dataplane since 2002 Fast, Scalable and Determinisic • 14+ Mpps per core • Tested to 1TB • Scalable FIB: supporting millions of entries • 0 packet drops, ~15µs latency Optimized • DPDK for fast I/O • ISA: SSE, AVX, AVX2, NEON .. • IPC: Batching, no mode switching, no context switches, non-blocking • Multi-core: Cache and memory efficient Netconf/Yang REST ... Management Agent Packet Processing: VPP vhost-user- input af-packet- input dpdk-input mpls-input lldp-input arp-inputcdp-input ethernet- input l2-input ip4-input ip6-input ...-no- checksum ip4-lookup ip4-lookup- mulitcast mpls-policy- encap ip4-load- balance ip4-rewrite- transit ip4- midchain interface- output Network I/O fd.io Foundation
Introducing VPP Extensible and Flexible modular design • Implement as a directed graph of nodes • Extensible with plugins, plugins are equal citizens. • Configurable via CP and CLI Developer friendly • Deep introspection with counters and tracing facilities. • Runtime counters with IPC and errors information. • Pipeline tracing facilities, life-of-a-packet. • Developed using standard toolchains. fd.io Foundation Netconf/Yang REST ... Management Agent Packet Processing: VPP vhost-user- input af-packet- input dpdk-input mpls-input lldp-input arp-inputcdp-input ethernet- input l2-input ip4-input ip6-input ...-no- checksum ip4-lookup ip4-lookup- mulitcast mpls-policy- encap ip4-load- balance ip4-rewrite- transit ip4- midchain interface- output Network I/O
Introducing VPP Fully featured • L2: VLan, Q-in-Q, Bridge Domains, LLDP ... • L3: IPv4, GRE, VXLAN, DHCP, IPSEC … • L3: IPv6, Discovery, Segment Routing … • L4: TCP, UDP … • CP: API, CLI, IKEv2 … Integrated • Language bindings • Open Stack/ODL (Netconf/Yang) • Kubernetes/Flanel (Python API) • OSV Packaging fd.io Foundation Netconf/Yang REST ... Management Agent Packet Processing: VPP vhost-user- input af-packet- input dpdk-input mpls-input lldp-input arp-inputcdp-input ethernet- input l2-input ip4-input ip6-input ...-no- checksum ip4-lookup ip4-lookup- mulitcast mpls-policy- encap ip4-load- balance ip4-rewrite- transit ip4- midchain interface- output Network I/O
VPP: structure, layers and features fd.io Foundation
VPP: VPP Layering Layer [2, 3, 4] VNET VPP networking source • Devices • • Session Management • Overlays • Control Plane • Traffic Management Plugins • Plugins can be in-tree: Plugins VNET VLIB VPP Infra fd.io Foundation SNAT, Policy ACL, Flow Per Packet, ILA, IOAM, LB, SIXRD, VCGN • Separate fd.io project: NSH_SFC VLIB VPP application management • buffer, buffer management graph node, node management • tracing, counters • • threading • CLI and most importantly … • main() VPP INFRA Library of function primitives, for • memory management • memory operations • • • • vectors rings hashing timers
分享到:
收藏