一句话:从编程语言视角为 PIFO 树建立操作语义,并提出跨拓扑编译算法,使逻辑调度行为可在不同拓扑上实现。
软件定义网络早期模型关注转发控制,而分组调度与排队等性能特性尚缺形式化。PIFO 树是可编程分组调度的灵活原语,可表达严格优先级、加权公平排队等算法,但其语义性质不明。本文从编程语言视角给出 PIFO 树的语法与操作语义,将调度策略与树拓扑解耦;并基于此提出编译算法,把面向一种拓扑的 PIFO 树行为翻译到另一种拓扑,以优化实现或在固定硬件拓扑上实现逻辑 PIFO 树。作者还实现软件模拟器,并用标准与自定义算法案例研究展示行为。
Early programming models for software-defined networking (SDN) focused on basic features for controlling network-wide forwarding paths, but more recent work has considered richer features, such as packet scheduling and queueing, that affect performance. In particular,PIFO trees, proposed by Sivaraman et al., offer a flexible and efficient primitive forprogrammablepacket scheduling. Prior work has shown that PIFO trees can express a wide range of practical algorithms including strict priority, weighted fair queueing, and hierarchical schemes. However, the semantic properties of PIFO trees are not well understood.This paper studies PIFO trees from a programming language perspective. We formalize the syntax and semantics of PIFO trees in an operational model that decouples the scheduling policy running on a tree from the topology of the tree. Building on this formalization, we develop compilation algorithms that allow the behavior of a PIFO tree written against one topology to be realized using a tree with a different topology. Such a compiler could be used to optimize an implementation of PIFO trees, or realize a logical PIFO tree on a target with a fixed topology baked into the hardware. To support experimentation, we develop a software simulator for PIFO trees, and we present case studies illustrating its behavior on standard and custom algorithms.
@article{paperbot1873,
title = {Formal Abstractions for Packet Scheduling},
author = {Anshuman Mohan and Yunhe Liu and Nate Foster and Tobias Kappé and Dexter Kozen},
journal = {Proceedings of the ACM on Programming Languages},
volume = {7},
number = {OOPSLA2},
year = {2023},
doi = {10.1145/3622845}
}