Software Defined Networking

FastClick and Beyond: A Look at High-Speed Software Dataplanes and Their Upcoming Challenges

Click here to build your 100-Gbps router, load-balancer, firewall, NAT, DPI, and more!
In this talk, we first show how to prototype high-speed network functions with FastClick, an open-source packet processing framework, which comes with hundreds of pre-built building blocks and leverages DPDK or Netmap to build 100-Gbps-capable firewalls, load-balancers, NATs, or IDSes. We then review the history of high-speed software dataplanes. We explain the evolution of graph-based (software) network packet processing from the early 2000s with the emergence of the Click Modular Router, and continue up to today's ecosystem, where many similar systems, such as VPP, BESS, and FastClick, coexist. We analyze the upcoming challenges to process packets at multi-hundred-gigabit-per-second rates. We argue that multi-hundred-gigabit networks should prevent performing memory accesses, as the interarrival time of packets is shrinking to a few nanoseconds, i.e., smaller than L3 cache access time. For instance, a 100-Gbps NIC could receive a minimal-sized frame every 6.72ns while operating at its maximum rate. To address these challenges, we propose PacketMill, our latest work, where we discuss other efforts/optimizations required to improve the performance of packet processing. PacketMill's ideas are directly applied to FastClick, so it comes for free. More specifically, we develop/use a better integration of DPDK to minimize the memory footprint of the high-speed software dataplanes. Furthermore, we propose a pipeline to reduce the number of instructions required for processing packets by using new data structures directly derived from the graph of network functions and compiler optimization techniques.

Additional information

Type devroom

More sessions

2/7/21
Software Defined Networking
Maciek Konstantynowicz
D.sdn
Overview of fully automated open-source FD.io benchmarking (per patch, daily/weekly trending, per release) with focus on network data plane (VPP, DPDK). Quick walk through HW systems with CI'ed calibration and testing (Xeon, Atom, Cortex, EPYC, 10/25/40/100GE, QAT) and stateless / stateful network test methodologies using TRex. Implemented benchmark and analytics strategies / algorithms for high volume non-stop CI benchmarks: i) optimized throughput rate discovery, ii) self-guiding soak tests, ...
2/7/21
Software Defined Networking
Srivats P
D.sdn
While the Ostinato traffic generator can import, edit and replay packets from PCAP files, most users prefer to craft packets from scratch using the Ostinato GUI which has support for common protocols out of the box. To add more protocols quickly and easily, Ostinato has a Protocol Builder framework using which new protocols can be added. In this talk, Ostinato creator Srivats P shows you how to add a new protocol using this framework.
2/7/21
Software Defined Networking
Marco Spaziani Brunella
D.sdn
I present a solution to run Linux’s eXpress Data Path programs written in eBPF on FPGAs, using only a fraction of the available hardware resources while matching the performance of high-end CPUs. The iterative execution model of eBPF is not a good fit for FPGA accelerators.
2/7/21
Software Defined Networking
Akihiro Suda
D.sdn
Setting up multi-cluster and multi-cloud container networking for dev environments has been too harder than it needs to be. NoRouter is a novel instant networking stack to overcome this difficulty, by transferring IP packets over stdio streams (aka "shell connections"). NoRouter works with any container, any VM, and any baremetal machine, on anywhere, as long as the shell connection is available from your laptop, e.g. kubectl exec, docker exec, or ssh. NoRouter heavily focuses on dev UX and does ...
2/7/21
Software Defined Networking
Lori Jakab
D.sdn
Kubernetes is becoming the platform of choice for more and more application developers. As applications become more complex and more distributed, they may span multiple Kubernetes clusters, or a combination of Kubernetes and on-premise workloads. While internal traffic within a Kubernetes cluster is handled by the CNI plugin, the external traffic between these workloads, or from workloads to end users, is often carried over a Software Defined Wide Area Network (SD-WAN), which is used for traffic ...
2/7/21
Software Defined Networking
D.sdn
There’s a fast-growing industry trend in the adoption of eBPF to accelerate Kubernetes infrastructure (Cilium, Calico …). AFXDP is a new type of socket that is optimized for high performance packet processing based on eBPF and eXpress Data Path-XDP. XDP allows you to attach an eBPF program to a lower-level hook inside the kernel (aka the NIC Driver). It offers some very promising performance increases for microservices while allowing them to adhere to cloud native design principles. There ...
2/7/21
Software Defined Networking
D.sdn
There are classes of workloads that are notoriously hungry when it comes to networking. Think big data, storage, analytics, 5G, virtual network functions, then encrypt it all at 40Gbps line rates. Kubernetes and the Kubernetes network model are increasingly seen as essential to help manage these workloads at scale. But the cost of containerization and container networking can be hard to swallow for workloads that are often used to having dedicated NICs and physical hardware. Our novel solution ...