Packet scheduling is a fundamental networking task that recently received renewed attention in the context of programmable data planes. Programmable packet scheduling systems such as those based on Push-In First-Out (PIFO) abstraction enabled flexible scheduling policies, but are too resource-expensive for large-scale line rate operation. This prompted research into practical programmable schedulers (e.g., SP-PIFO, AIFO) approximating PIFO behavior on regular hardware. Yet, their scalability remains limited due to extensive number of memory operations. To address this, we design an effective yet resource-efficient packet scheduler, Range-In First-Out (RIFO), which uses only three mutable memory cells and one FIFO queue per PIFO queue. RIFO is based on multi-criteria decision-making principles and uses small guaranteed admission buffers. Our large-scale simulations in Netbench demonstrate that despite using fewer resources, RIFO generally achieves competitive flow completion times across all studied workloads, and is especially effective in workloads with a significant share of large flows, reducing flow completion time up to 4.91x in datamining workload compared to state-of-the-art solutions. Our prototype implementation using P4 on Tofino switches requires only 650 lines of code, is scalable, and runs at line rate.
翻译:数据包调度是一项基础网络任务,近期在可编程数据平面背景下重新受到关注。基于后入先出(PIFO)抽象的可编程数据包调度系统虽能实现灵活的调度策略,但其资源开销过大,难以支持大规模线速运行。这促使了对实用可编程调度器(如SP-PIFO、AIFO)的研究,这些调度器能在常规硬件上近似实现PIFO行为。然而,由于大量内存操作的存在,其可扩展性仍受限。为此,我们设计了一种高效且资源节约的数据包调度器——范围优先队列(RIFO),该调度器每个PIFO队列仅使用三个可变存储单元和一个FIFO队列。RIFO基于多准则决策原理,并采用小型保障准入缓冲区。我们在Netbench中的大规模仿真表明:尽管使用更少资源,RIFO在所有研究负载中普遍获得具有竞争力的流完成时间,尤其在大流量占比显著的工作负载中表现优异,在数据挖掘负载中较现有最优方案将流完成时间最高降低4.91倍。基于Tofino交换机采用P4语言的原型实现仅需650行代码,具备可扩展性且支持线速运行。