Advanced Topics in Computer Networks (2022/1)


In this course we will address the programmability of the data plane in computer networks. We will use the P4 language for implementation of small solutions including Basic Forwarding, Monitoring, Load Balancing and Stateful Packet Processing. We will use a virtual machine (VM) available previously and widely used in tutorials (eg. Sigcomm 2018) to carry out our learning and experiments. The course will initially consist of reading articles and presentations. After that, we’ll do small activities using the P4 language and we will test in the VM-emulated environment. A final work should be implemented and presented by the students.


Introduction, concepts and history.

Introduction to P4. Here you will find the link to download the VM.

Introduction to counters and registers.

Task 1 – Source Routing

Task 2 – Load Balancer

Task 3 – Counters & Registers

Final Work

Papers to read:

Enabling Edge-Cloud Video Analytics for Robotics Applications
HULA: Scalable Load Balancing Using Programmable Data Planes
SQR: In-network Packet Loss Recovery from Link Failures for Highly Reliable Datacenter Networks
BurstRadar: Practical Real-time Microburst Monitoring for Datacenter Networks
P4KP: QoS-Aware Top-K Best Path Using Programmable Switch
DeltaINT: Toward General In-band Network Telemetry with Extremely Low Bandwidth Overhead
Continuous In-Network Round-Trip Time Monitoring
In-Network Velocity Control of Industrial Robot Arms
QoSTCP: Provide Consistent Rate Guarantees to TCP flows in Software Defined Networks
P4-Enabled Bandwidth Management
An incrementally-deployable P4-enabled architecture for network-wide heavy-hitter detection
Implementing AES Encryption on Programmable Switches via Scrambled Lookup Tables
BurstRadar: Practical Real-time Microburst Monitoring for Datacenter Networks