eCCA: Deploying In-Network Congestion Control Algorithms in Practice with eBPF
Abstract
In-network congestion control algorithms (CCAs) are essential for emerging datacenter applications to achieve high throughput and low tail latency. Deploying these CCAs in production requires preserving the existing, highly optimized network datapath as much as possible, since rebuilding or modifying the datapath demands substantial engineering effort to regain performance. Although eBPF enables flexible kernel programmability, deploying in-network CCAs through it remains challenging due to semantic misalignment across kernel hooks, compatibility issues with existing mechanisms, and instability across kernel versions. We present eCCA, an eBPF-based framework that enables the deployment of in-network CCAs in the standard Linux kernel without intrusive code modifications. To address the above challenges, eCCA introduces unified context management, functionally correct hook orchestration, and deployment-adaptive abstractions, which are derived from our practical deployment experiences. We demonstrate the practicality of eCCA by deploying CAQM across multiple NIC models and Linux kernel versions with minimal requirements. Evaluations show that CAQM on eCCA preserves native CAQM’s control behavior with less than 3% throughput loss, while reducing tail latency by 96% compared to CUBIC at the same throughput.