PacketMill is a system for optimizing software packet processing. It grinds the whole packet processing stack, from the high-level network function configuration file to the low-level userspace network drivers, to mitigate inefficiencies and produce a customized binary for a given network function.
PacketMill is composed of three main components:
X-Change is an optimization to DPDK, which uses customized buffers rather than the generic rte_mbuf.
PacketMill modifies FastClick's source code based on the available information in a network function configuration.
PacketMill exploits LLVM optimization passes to reorder FastClick's data structures.
PacketMill achieves a better performance than other packet processing frameworks.
We present PacketMill, a system for optimizing software packet processing, which (i) introduces a new model to efficiently manage packet metadata and (ii) employs code-optimization techniques to better utilize commodity hardware. PacketMill grinds the whole packet processing stack, from the high-level network function configuration file to the low-level userspace network (specifically DPDK) drivers, to mitigate inefficiencies and produce a customized binary for a given network function. Our evaluation results show that PacketMill increases throughput (up to 36.4 Gbps - 70%) & reduces latency (up to 101us - 28%) and enables nontrivial packet processing (e.g., router) at ~100 Gbps, when new packets arrive >10× faster than main memory access times, while using only one processing core.
Read Paper• Check Slides• Watch Video
Doctoral Student at KTH Royal Institute of Technology.
Post-Doctoral Researcher at KTH Royal Institute of Technology.
Industrial Doctoral Student at KTH/Ericsson Research.
Professor at KTH Royal Institute of Technology.
Professor at KTH Royal Institute of Technology.