Brian O'Connor 3d4a2f5748 Adding starter code and solution for p4runtime exercise (#81)
Summary of changes:
- Adding the p4runtime starter code and solution.
- Adding NO_P4, BMV2_SWITCH_EXE and P4C_ARGS to utils/Makefile
- Updated p4runtime/Makefile to use variables
- Adding conversion functions for match and action param values
- Separating P4Info and P4Runtime libraries
- Updating global README and adding p4runtime/README.md
- Disabling screen saver on VM GUI
- Adding desktop icons for Terminal, Wireshare and Sublime Text
- Updating topo.pdf -> png for Markdown viewing in basic_tunnel and
  p4runtime READMEs
2017-11-07 07:54:58 -08:00

50 lines
1.5 KiB
Markdown

# P4 Tutorial
## Introduction
Welcome to the P4 Tutorial!
We've prepared a set of exercises to help you get started with P4
programming, organized into four modules:
1. Introduction and Language Basics
* [Basic Forwarding](./basic)
* [Basic Tunneling](./basic_tunnel)
2. P4 Runtime and the Control Plane
* [P4 Runtime](./p4runtime)
3. Monitoring and Debugging
* [Explicit Congestion Notification](./ecn)
* [Multi-Hop Route Inspection](./mri)
4. Advanced Data Structures
* [Source Routing](./source_routing)
* [Calculator](./calc)
5. Dynamic Behavior
* [Load Balancing](./load_balance)
## Obtaining required software
If you are starting this tutorial at the Fall 2017 P4 Developer Day, then we've already
provided you with a virtual machine that has all of the required
software installed.
Otherwise, to complete the exercises, you will need to either build a
virtual machine or install several dependencies.
To build the virtual machine:
- Install [Vagrant](https://vagrantup.com) and [VirtualBox](https://virtualbox.org)
- `cd vm`
- `vagrant up`
- Log in with username `p4` and password `p4` and issue the command `sudo shutdown -r now`
- When the machine reboots, you should have a graphical desktop machine with the required
software pre-installed.
To install dependencies by hand, please reference the [vm](../vm) installation scripts.
They contain the dependencies, versions, and installation procedure.
You can run them directly on an Ubuntu 16.04 machine:
- `sudo ./root-bootstrap.sh`
- `sudo ./user-bootstrap.sh`