💾 Archived View for gemini.bortzmeyer.org › fosdem › event-11102.gmi captured on 2023-03-21 at 01:04:51. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-17)
-=-=-=-=-=-=-
Tom Barbette and Alireza Farshin
Type devroom
Click here to build your 100-Gbps router, load-balancer, firewall, NAT, DPI, and more!
Starts on day 2 (2021-02-07) at 13:00 (Brussels time, UTC+1) in room Sdn (duration 00:20)
Matrix room #sdn:fosdem.org
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.