DPDK – What It Means for Network Operators
Total Page:16
File Type:pdf, Size:1020Kb
DPDK – What it means for Network Operators Allan Houston Email: [email protected] What is DPDK? The Data Plane Development Kit (DPDK) is a set of data plane libraries and network interface controller drivers for fast packet processing. Originally developed by Intel , released under an open source BSD licence. DPDK gives hardware like speeds on software based appliances Brief History of Time PowerB and TILE-Gx added. DPDK.org RHEL, open source CentOS, Moved to Embryonic community Ubuntu Linux Development established support Foundation 2010 2013 2014 2015 2015 2017 Initial release First multi- ARM Support by Intel vendor CPU Hardware and NIC and Software support. accelerators Packaged in added Fedora & FreeBSD Silicon vs DPDK - Performance •Nexus •QFX5200- •7170-32C •ESXi 9316D-GX 32C •Throughput: VMXNET 32 •Throughput: •Throughput: 6.4 Tbps DPDK vCPU 6.4 Tbps 12.8 Tbps •Size: 1U •Throughput: •Size: 1U •Size: 1U ~40 Gbps Cisco Nexus Cisco Juniper QFX Juniper •Size: 2U Arista 7000 Series 7000 Arista Silicon vs DPDK Silicon DPDK • Very long R&D cycle • No requirement for • Slow uptake in kernel updates features • Two major releases • Once cast can’t be per year changed • Last month: 133 • R&D cost carried by authors pushed 842 the end user commits • 141,066 lines of code changed Projects and Products using DPDK 2010 2013 2014 2015 2015 2017 ARM uCPE – A New Hope Oct 26, 2015 – Patch 00/11 • DPDK adds armv8 architecture support ARM uCPE – A New Hope August 27, 2018 – VMWorld 2018 • VMware demonstrates ESXi on 64-bit ARM • Four logical processors, two network interfaces • VMware ESXi 6.8.2 build 16864140. ARM uCPE – A New Hope Raspberry Pi3 B+ Rockchip ROC- ODROID-XU4 • 1.4GHz 64-bit quad- RK3399-PC • Octa-core ARMv8 core ARMv8 CPU • Six-Core 64-Bit CPU • 1 GB RAM ARMv8 • 2 GB RAM • 802.11n Wireless • 4 GB RAM • GigabitEthernet LAN LAN • GigabitEthernet LAN • Price: $59 • 10/100Mbps Lan • PoE Support Speed • Price: $99 • Price: $40 ARM uCPE – A New Hope Example: FRR + VPP vRouter https://github.com/three6five-kzn/dpdk FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms which includes protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. The VPP platform provides out-of-the-box production quality switch/router functionality. It is the open source version of Cisco's Vector Packet Processing (VPP) technology: a high performance, packet-processing stack that can run on commodity CPUs. Example: FRR + VPP vRouter https://github.com/three6five-kzn/dpdk Example: FRR + VPP vRouter https://github.com/three6five-kzn/dpdk FRR receiving a full routing table: frr-dpdk# show ip bgp summ IPv4 Unicast Summary: BGP router identifier 2.2.2.2, local AS number 65535 vrf-id 0 BGP table version 685423 RIB entries 1004563, using 153 MiB of memory Peers 1, using 21 KiB of memory Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.10.100 4 65512 7629300 12676 0 0 255519 00:21:08 549508 Total number of neighbors 1 frr-dpdk# Example: FRR + VPP vRouter VMWare ESXi OVF Exports http://dpdk.ahouston.net Considerations Move from dedicated hardware to shared server infrastructure • Split operational responsibility • Hardware resource management Considerations • Routing and Switching • Linux / FreeBSD systems • Python • {REST API} • Docker Network Engineer Full Stack Engineer Full Stack Engineer • Routing • Linux / FreeBSD • YANG • Switching • {REST API} • JSON • MPLS • Python • XML • QoS • Docker • Kubernetes • Ansible / SALT Thank you!.