Skip to main content
Menu

Programmable Hardware: P4Pi

P4Pi: P4 on Raspberry Pi for Networking Education

P4Pi: P4 on Raspberry Pi for Networking Education

A P4 Education workgroup project

A collaboration between the Computing Infrastructure Group (Oxford), Sándor Laki, Dávid Kis, Péter Vörös (ELTE) and Robert Soulé (Yale).

 

What is P4Pi?

P4Pi is a low cost, open source platform for computer networks teaching and research.

The platform is based on the Raspberry Pi board and uses the P4 programming language.

Why P4Pi?

Teaching computer networks should be cool and exciting.

For students to engage with networking, we want to provide hands-on experience and hardware based projects. Unlike software-based solutions, running on actual platforms provides realism, as well as a cool factor.

Existing programmable hardware solutions are too expensive, and don't allow educators to build labs of 20+ devices, nor for students to purchase one themselves. With P4Pi, we provide a platform that is cheaper than an academic book.

Who is P4Pi for?

P4Pi is aimed at networking educators, hobbyists and researchers.

The education materials are design for multiple university courses: from undergraduate introduction to networking course, to postgraduate advanced networking.

How do you pronounce P4Pi?

P4Pi is pronounced papi. In British pronunciation, this sounds like puppy, thus the cute logo!

Who runs P4Pi?

P4Pi is a project of the P4 Education Workgroup at https://p4.org/

How do you use P4Pi?

At Oxford, P4Pi was used to teach an introductory 32-hours hands-on module (course-work module) on computer networks - A5 Programmable Network Devices CWM.

Read our paper to learn how to use P4Pi to run a class project of Building an Internet Router!

P4Pi is also used by a range of research projects, such as P4Edge, P4Pir and Planter.

Let us know how you have used P4Pi!

Reference

Please use the following reference to cite P4Pi:

"P4Pi: P4 on Raspberry Pi for Networking Education". Sándor Laki, Radostin Stoyanov, Dávid Kis, Robert Soulé, Péter Vörös and Noa Zilberman.
ACM SIGCOMM Computer Communication Review, Volume 51, Number 3, July 2021

Acknowledgements

In the Computer Infrastructure Group, the following people (present and past members) have contributed to the project: Noa Zilberman, Damu Ding, Radostin Stoyanov, Changgang Zheng, Xinpeng Hong. We also got lots of help in the course's setup from our IT team, especially Kat Sturgess and Tom King!

Our collaborators and contributors are Robert Soulé (Yale), Sándor Laki, Dávid Kis, Péter Vörös (ELTE), Adam Wolnikowski (Humatics), Fernando Ramos (Lisbon), Mingyuan Zang (DTU), and Salvatore Signorello (FCUL). 

We thank support from the Network Programming Initiative (NPI).