A presentation by the P4 Language Consortium

Held at Stanford University on Wednesday, June 6, 2018

Registration

Slack

We will use Slack to make it easy for participants to ask the TAs questions.

Agenda


  • 8:00 - 8:30am

    • Registration and Breakfast

  • 8:30 - 9:00am

    • Technical Set-up for Hands-on Lab

      In order to complete the Developer Day exercises, we will distribute a virtual machine with all required software installed.


  • 9:00 - 9:10am

    • Welcome and Introductions

  • 9:10 - 10:30am

    • Introduction to Data Plane Programming

    • Language Basics

      Session 1 will provide a hand-on introduction to P4. Students will start by implementing a “Hello World”-style application to gain an understanding of P4 concepts. The lesson will progressively introduce core language features, such as header/metadata types, packet parsers, and controls. By the end of this session, students will be able to implement a basic IP router.


  • 10:30 - 11:00am

    • Break

  • 11:00 - 12:00

    • P4 Runtime

      Session 2 will cover software tools that are essential to developing P4 applications. Students will learn how to invoke the the P4 compiler, run the debugger, and start a P4 software switch. This session will also introduce the control-plane interfaces via P4 Runtime, a protocol-independent API auto-generated from the definition of a packet processing pipeline written in P4.


  • 12:00 - 1:30pm

    • Lunch

  • 1:30 - 2:00pm

    • Keynote: TBA

  • 2:00-3:00

    • Monitoring and Debugging

      Session 3 will focus on a set of labs related to network monitoring and debugging. In this session, students will gain a deeper understanding of P4 language concepts, including custom headers and intrinsic metadata. In the first exercise, students will implement Explicit Congestion Notification (ECN) to set a congestion bit in a packet header when the queue depth exceeds a threshold. In the second exercise, MRI, students will implement a simplified version of In-Band Network Telemetry to track the path that packets travel through the network.


  • 3:00 - 3:30pm

    • Break

  • 3:30 - 4:30pm

    • Advanced Data Structures

      Session 4 covers advanced data structures. In this session, students will implement two data-plane applications. In the first, source routing, end-hosts specify paths through the network by using a stack of labels in the packet header. The switch must “pop” each label and forward out the appropriate interface. In the second, students will implement a network calculator. Packets containing arithmetic expressions are sent to a switch. The switch will evaluate the expressions, and return the results back to the sender.

  • 4:30-5:30

    • Panel Discussion: TBA

  • 5:30-6:30

    • Reception