P4-CoDel: Experiences on Programmable Data Plane Hardware

Fixed buffer sizing in computer networks, especially the Internet, is a compromise between latency and bandwidth. A decision in favor of high bandwidth, implying larger buffers, subordinates the latency as a consequence of constantly filled buffers. This phenomenon is called Bufferbloat. Active Queue Management (AQM) algorithms such as CoDel or PIE, designed for the use on software based hosts, offer a flow agnostic remedy to Bufferbloat by controlling the queue filling and hence the latency through subtle packet drops. In previous work, we have shown that the data plane programming language P4 is powerful enough to implement the CoDel algorithm. While legacy software algorithms can be easily compiled onto almost any processing architecture, this is not generally true for AQM on programmable data plane hardware, i.e., programmable packet processors. In this work, we highlight corresponding challenges, demonstrate how to tackle them, and provide techniques enabling the implementation of such AQM algorithms on different high speed P4-programmable data plane hardware targets. In addition, we provide measurement results created on different P4-programmable data plane targets. The resulting latency measurements reveal the feasibility and the constraints to be considered to perform Active Queue Management within these devices. Finally, we release the source code and instructions to reproduce the results in this paper as open source to the research community.

[1]  Nick McKeown,et al.  The P4->NetFPGA Workflow for Line-Rate Packet Processing , 2019, FPGA.

[2]  Fred Baker,et al.  PIE: A lightweight control scheme to address the bufferbloat problem , 2013, 2013 IEEE 14th International Conference on High Performance Switching and Routing (HPSR).

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

[4]  Jennifer Rexford,et al.  Fine-grained queue measurement in the data plane , 2019, CoNEXT.

[5]  Boris Koldehofe,et al.  Microbursts in Software and Hardware-based Traffic Load Generation , 2020, NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium.

[6]  Ralf Steinmetz,et al.  P4-CoDel: Active Queue Management in Programmable Data Planes , 2018, 2018 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN).

[7]  Van Jacobson,et al.  Controlled Delay Active Queue Management , 2018, RFC.

[8]  Boris Koldehofe,et al.  OpenBNG: Central office network functions on programmable data plane hardware , 2020, Int. J. Netw. Manag..

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

[10]  Koen De Schepper,et al.  PI2 for P4: An Active Queue Management Scheme for Programmable Data Planes , 2019, CoNEXT Companion.

[11]  Laurent Vanbever,et al.  SP-PIFO: Approximating Push-In First-Out Behaviors using Strict-Priority Queues , 2020, NSDI.

[12]  Bob Briscoe,et al.  PI2: A Linearized AQM for both Classic and Scalable TCP , 2016, CoNEXT.

[13]  QUTdN QeO,et al.  Random early detection gateways for congestion avoidance , 1993, TNET.

[14]  Ming Liu,et al.  Approximating Fair Queueing on Reconfigurable Switches , 2018, NSDI.

[15]  Boris Koldehofe,et al.  P4STA: High Performance Packet Timestamping with Programmable Packet Processors , 2020, NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium.

[16]  Guido Appenzeller,et al.  Sizing router buffers , 2004, SIGCOMM '04.

[17]  J Gettys,et al.  Bufferbloat: Dark Buffers in the Internet , 2011, IEEE Internet Computing.

[18]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[19]  Ming Liu,et al.  Programmable Calendar Queues for High-speed Packet Scheduling , 2020, NSDI.