Skip to content

P4Pi Hackathon SIGCOMM22

signorello edited this page Aug 26, 2022 · 25 revisions

Welcome to the P4Pi Hackathon at SIGCOMM 2022!

A half day, in-person hackathon for P4 educators, enthusiasts and newcomers.

Information will be sent by email to registered participants, as well as posted here. The Slack channel SIGCOMM #sigcomm22-hackathon will be used before and during the hackathon. Post your questions there!

Time and Location

Friday, August 26, 2022 13:30-18:00 CET

Beurs van Berlage conference venue, Amsterdam Details

The room is Graanbeurszaal.

Agenda

Time CET Session
13:30 - 13:45 Introduction - (slides1, slides2)
13:45 - 14:00 Projects brainstorming and forming groups
14:00 - 17:00 Hacking!
17:00 - 17:45 Project presentations
17:45 - 18:00 Closing

Audience Expectations and Prerequisites

This hackathon is suitable for both P4 newcomers and existing practitioners. We expect the audience to have at least basic knowledge in computer networking, programming skills, and UNIX-based operating system.

If you are new to P4, we will provide you with the necessary assitance. Still, we strongly advise you to check the resources available on the P4 Learn page before the hackathon.

The following four short videos by Stephen Ibanez are also recommended:

In addition, it is helpful to go through the tutorial exercises on Github.

Getting Started with P4Pi: Equipment & P4Pi Image

The hackathon requires participants to bring and use their own laptop.

It is recommended (but not mandatory) to have a Raspberry Pi platform ready for the tutorial. Please refer to our Required Equipment page.

We strongly recommend preparing a microSD card with the latest P4Pi image prior to the hackathon, as downloading the image and copying it can take significant time. To do so, follow the instructions on the Installing P4Pi page.

The P4Pi videos playlist provides an introduction to P4Pi, and shows how to use it.

If you don't have a Raspberry Pi, but you want to participate in the hackathon, we recommend you to start with p4app. p4app is a docker-based tool that can be used to develop, run, debug, and test P4 programs. It is easy to install and simple to use. p4app uses a software switch to run the developed P4 program, and mininet can be used for testing in an emulation environment.

Our team has prepared two p4app examples that will help you to quickly get started. The instructions related to p4app are available here.

Tracks and Projects

Tracks

As P4Pi is useful to different groups of users, there will be 3 project tracks:

  • Contributors - for participants with previous knowledge in P4 who want to port their code to P4PI or to develop better tools, more applications or other target specific projects.
  • Educators - for participants who aim to use P4PI in their classroom and that will use the hackathon to practice using the platform and develop additional contents.
  • Hackers - for participants with expert knowledge in P4 who wish to use the platform for research and development purposes, explore new use cases and come up with cool ideas.

A hackathon project can belong to one or more of the tracks above. No restrictions!

Proposed Projects

Some proposed project ideas (contact us to suggest more!):

Track Topic
Contributors Network configuration
Contributors P4Pi platform enhancements (e.g., enable table manipulation via the web interface)
Contributors / Hackers Port P4 examples to P4Pi
Educators Teaching enhancements
Hackers P4-based games (e.g., Tic-tac, Wordle)
Hackers Network monitoring
Hackers IoT use cases (we have a box with light sensor and an acuator with leds)
... ...

FAQs

  • Q: I don't have a group. Can I still participate?

    A: Yes! we will be forming groups during the hackathon

  • Q: I am only starting with P4. Can I still participate?

    A: Yes! beyond the tutorials mentioned above, we will have mentors that will help during the hackathon. The best way to learn P4 is through hands-on experience.

  • Q: Is P4Pi just for teaching P4 or networking at large?

    A: We envision P4Pi as a platform for teaching networking at large, and it was already used this way in course. As P4Pi is still a puppy, the examples are focused on P4.

References

Please reference the following papers when citing 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

  • "Building an Internet Router with P4Pi". Radostin Stoyanov, Adam Wolnikowski, Robert Soulé, Sándor Laki, and Noa Zilberman. 4th P4 Workshop in Europe (EuroP4) 2021, December 2021.

Organizers

The following have contributed to the organization of this hackathon (in alphabetic order):

Damu Ding (Oxford), Xinpeng Hong (Oxford), Sandor Laki (ELTE), David Kis (ELTE), Fernando Ramos (IST Lisbon), Salvatore Signorello (FCUL Lisbon), Robert Soulé (Yale), Mingyuan Zang (DTU), Noa Zilberman (Oxford).

Clone this wiki locally