Towards Programmable Packet Scheduling

Packet scheduling in switches is not programmable; operators only choose among a handful of scheduling algorithms implemented by the manufacturer. In contrast, other switch functions such as packet parsing and header processing are becoming programmable [10, 3, 6]. This paper presents a programmable packet scheduler that allows operators to program a variety of scheduling algorithms. Our design exploits the insight that any scheduling algorithm can be deconstructed into two decisions: in what order packets depart and when they depart. The algorithms only differ in how the order and departure times are computed. We show how these decisions map to two well-understood abstractions: priority and calendar queues [11]. Priority and calendar queues can then be composed together to realize a broad range of sophisticated scheduling algorithms. Further, both abstractions can be realized using the same mechanism: a programmable push-in first-out queue (PIFO) that allows a packet to push itself into an arbitrary location in a queue by programming a packet field. A PIFO is feasible in hardware. Preliminary synthesis indicates that an unoptimized hardware design meets timing at 1 GHz on a 16 nm technology node and occupies only 5% additional die area relative to existing merchant-silicon switching chips.

[1]  George Varghese,et al.  Efficient fair queueing using deficit round-robin , 1996, TNET.

[2]  Domenico Ferrari,et al.  Rate-Controlled Service Disciplines , 1994, J. High Speed Networks.

[3]  George Varghese,et al.  Design principles for packet parsers , 2013, Architectures for Networking and Communications Systems.

[4]  Joseph Y.-T. Leung,et al.  A new algorithm for scheduling periodic, real-time tasks , 1989, Algorithmica.

[5]  I. Stoica,et al.  FairCloud: sharing the network in cloud computing , 2011, CCRV.

[6]  George Varghese,et al.  Efficient fair queueing using deficit round robin , 1995, SIGCOMM '95.

[7]  Hari Balakrishnan,et al.  No silver bullet: extending SDN to the data plane , 2013, HotNets.

[8]  Bill Lin,et al.  Fast and scalable priority queue architecture for high-speed network switches , 2000, Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064).

[9]  Ion Stoica,et al.  Efficient coflow scheduling with Varys , 2014, SIGCOMM.

[10]  Antony I. T. Rowstron,et al.  Decentralized task-aware scheduling for data center networks , 2014, SIGCOMM.

[11]  George C. Polyzos,et al.  SCED: A Generalized Scheduling Policy for Guarantee* Quality-of-Service , 1999 .

[12]  Gautam Kumar,et al.  FairCloud: sharing the network in cloud computing , 2011, CCRV.

[13]  R. Shreedhar,et al.  Efficient Fair Queuing Using Deficit Round - , 1997 .

[14]  George Varghese,et al.  Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN , 2013, SIGCOMM.

[15]  Nick McKeown,et al.  Matching output queueing with a combined input output queued switch , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[16]  IoannouAggelos,et al.  Pipelined heap (priority queue) management for advanced scheduling in high-speed networks , 2007 .

[17]  Nick McKeown,et al.  NetFPGA: A Tool for Network Research and Education , 2006 .

[18]  Scott Shenker,et al.  Universal Packet Scheduling , 2015, NSDI.

[19]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[20]  Manolis Katevenis,et al.  Pipelined heap (priority queue) management for advanced scheduling in high-speed networks , 2007, IEEE/ACM Trans. Netw..

[21]  Linus Schrage,et al.  The Queue M/G/1 with the Shortest Remaining Processing Time Discipline , 1966, Oper. Res..

[22]  S. Jamaloddin Golestani A Stop-and-Go Queueing Framework for Congestion Management , 1990, SIGCOMM.

[23]  Hui Zhang,et al.  Hierarchical packet fair queueing algorithms , 1996, SIGCOMM '96.

[24]  Parag Agrawal,et al.  The case for RAMCloud , 2011, Commun. ACM.

[25]  Albert G. Greenberg,et al.  EyeQ: Practical Network Performance Isolation at the Edge , 2013, NSDI.

[26]  Randy Brown,et al.  Calendar queues: a fast 0(1) priority queue implementation for the simulation event set problem , 1988, CACM.

[27]  Scott Shenker,et al.  Analysis and simulation of a fair queueing algorithm , 1989, SIGCOMM '89.

[28]  D.C. Verma,et al.  Delay jitter control for real-time communication in a packet switching network , 1991, Proceedings of TRICOMM `91: IEEE Conference on Communications Software: Communications for Distributed Applications and Systems.

[29]  Nick McKeown,et al.  pFabric: minimal near-optimal datacenter transport , 2013, SIGCOMM.

[30]  Harrick M. Vin,et al.  Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks , 1996, SIGCOMM '96.

[31]  P. McKenney Stochastic Fairness Queuing , 1991 .

[32]  Domenico Ferrari,et al.  Rate-controlled static-priority queueing , 1993, IEEE INFOCOM '93 The Conference on Computer Communications, Proceedings.

[33]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .