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]  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).

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

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

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

[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]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[7]  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).

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

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

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

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

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

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

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

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

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

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

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

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