Repository logo
 

The P4->NetFPGA Workflow for Line-Rate Packet Processing

Accepted version
Peer-reviewed

Type

Conference Object

Change log

Authors

Ibanez, Stephen 
Brebner, Gordon 
McKeown, Nick 

Abstract

P4 has emerged as the de facto standard language for describing how network packets should be processed, and is becoming widely used by network owners, systems developers, researchers and in the classroom. The goal of the work presented here is to make it easier for engineers, researchers and students to learn how to program using P4, and to build prototypes running on real hardware. Our target is the NetFPGA SUME platform, a 4x10 Gb/s PCIe card designed for use in universities for teaching and research. Until now, NetFPGA users have needed to learn an HDL such as Verilog or VHDL, making it off limits to many software developers and students. Therefore, we developed the P4->NetFPGA workflow, allowing developers to describe how packets are to be processed in the high-level P4 language, then compile their P4 programs to run at line rate on the NetFPGA SUME board. The P4->NetFPGA workflow is built upon the Xilinx P4-SDNet compiler and the NetFPGA SUME open source code base. In this tutorial paper, we provide an overview of the P4 programming language and describe the P4->NetFPGA workflow. We also describe how the workflow is being used by the P4 community to build research prototypes, and to teach how network systems are built by providing students with hands-on experience working with real hardware.

Description

Keywords

46 Information and Computing Sciences, 4612 Software Engineering

Journal Title

FPGA '19 Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays

Conference Name

27th ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA'19)

Journal ISSN

Volume Title

Publisher

Association for Computing Machinery
Sponsorship
Leverhulme Trust (ECF-2016-289)
Isaac Newton Trust (1608(as))
Leverhulme Trust Isaac Newton Trust TBD others