Eiffel: Efficient and Flexible Software Packet Scheduling
Ahmed Saeed, Yimeng Zhao, Nandita Dukkipati, Mostafa Ammar, Ellen, Zegura, Khaled Harras, Amin Vahdat

TL;DR
Eiffel is a flexible, high-performance software packet scheduling system that leverages integer ranks and novel data structures to outperform existing solutions significantly in various deployment scenarios.
Contribution
The paper introduces Eiffel, a programmable packet scheduler using efficient priority queues and abstractions, achieving substantial performance improvements over current systems.
Findings
Eiffel outperforms existing schedulers by 3-40x in core utilization or flow handling.
It supports a wide range of scheduling policies through novel abstractions.
Eiffel is effective in both kernel and userspace environments.
Abstract
Packet scheduling determines the ordering of packets in a queuing data structure with respect to some ranking function that is mandated by a scheduling policy. It is the core component in many recent innovations to optimize network performance and utilization. Our focus in this paper is on the design and deployment of packet scheduling in software. Software schedulers have several advantages over hardware including shorter development cycle and flexibility in functionality and deployment location. We substantially improve current software packet scheduling performance, while maintaining flexibility, by exploiting underlying features of packet ranking; namely, packet ranks are integers and, at any point in time, fall within a limited range of values. We introduce Eiffel, a novel programmable packet scheduling system. At the core of Eiffel is an integer priority queue based on the Find…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Cloud Computing and Resource Management
