One of the most significant recent advances in data networking concerns its programmability.
Programmability in networking can be used to achieve higher performance, better utilization, and new capabilities.
After taking this course, students will be better equipped to understand and use the capabilities of modern network equipment.
This seminar course explores recent research and product trends in programmable networking.
The course blends tutorials on programmable networking with seminar discussions of research papers.
Students may also individually elect to work on a scoped project that
builds on ESnet's open-source Smart NIC platform.
Learning goals:
Knowledge of recent research on programmable networking.
Identification of development trends in this area.
Familiarity with techniques used in research and deployed systems.
Developing skills to analyze and discuss research results.
Instructor: Nik Sultana, Department of Computer Science, Illinois Institute of Technology
Lecture Time: MW 10:00-11:15 CT Lecture Location: Stuart Building 204 TA: Mohammad Firas Sada (msada@hawk) Office Hours: Mondays at 08:00-09:00 (: Away on 11/13) Announcements, Discussion and Q&A: On the course mailing list. Course content: This page. Grading: Participation (5%), Assignments (15%), Seminars (40%), Either Project or further Seminar Presentations (40%). Policies: See the syllabus & policies page. Books and material:
|
Color code used in the calendar below: |
|
Monday | Tuesday | Wednesday | Thursday | Friday |
Aug 21 LEC 1: Introduction & Overview |
Aug 22 |
Aug 23 LEC 2 Networking review Preparation: Read Chapter 1 of Computer Networks. |
Aug 24 |
Aug 25 |
Aug 28 PRE: Intro to Programmable Networking Reading: An Intellectual History of Programmable Networks |
Aug 29 |
Aug 30 PRE: DPDK as an Offload Engine for P4 SmartNIC Applications |
Aug 31 |
Sep 01 |
Sep 04 Labor Day -- No Classes |
Sep 05 |
Sep 06 TUT 1: Intro to ESnet platform Preparation: Ensure you can access Airfield. Assigned: First assignment. |
Sep 07 |
Sep 08 |
Sep 11 PRE: The P4 language Reading: P4: Programming Protocol-Independent Packet Processors |
Sep 12 |
Sep 13 PRE: Software-Defined WAN Reading: Managing hierarchy, partitioning, and asymmetry for availability and scale in Google's Software-Defined WAN |
Sep 14 |
Sep 15 |
Sep 18 TUT 2: Introduction to P4 Assigned: Second assignment. |
Sep 19 |
Sep 20 TUT 3: Further P4 features DUE: Assignment 1 |
Sep 21 |
Sep 22 |
Sep 25 TUT 4: Examples of P4 programs DUE: Assignment 2 Assigned: Third assignment. |
Sep 26 |
Sep 27 PRE: Edge Computing Reading: Generating P4 Code for the Application Layer |
Sep 28 |
Sep 29 |
Oct 02 PRE: Machine Learning Reading: Scaling Distributed Machine Learning with In-Network Aggregation |
Oct 03 |
Oct 04 TUT 5: More advanced P4 examples DUE: Assignment 3 |
Oct 05 |
Oct 06 |
Oct 09 Fall Break Day -- No Classes |
Oct 10 |
Oct 11 PRE: Network management Reading: Memory Management in ActiveRMT: Towards Runtime-programmable Switches |
Oct 12 |
Oct 13 |
Oct 16 PRE: Architecture Reading: Software Resolved Networks: Rethinking Enterprise Networks with IPv6 Segment Routing |
Oct 17 |
Oct 18 Project/Reading DUE: Project Proposals |
Oct 19 |
Oct 20 |
Oct 23 LEC 3: Guest lecture by Mario Baldi and Chris Neely (AMD) "P4 Applications with programmable ASICs and FPGAs: Production deployments and research" |
Oct 24 |
Oct 25 PRE: Programmability Reading: RFC 8986: SRv6 Network Programming |
Oct 26 |
Oct 27 |
Oct 30 PRE: Performance Reading: Unleashing SmartNIC Packet Processing Performance in P4 |
Oct 31 |
Nov 01 PRE: Project updates |
Nov 02 |
Nov 03 |
Nov 06 PRE: Testing Reading: Understanding the Micro-Behaviors of Hardware Offloaded Network Stacks with Lumina |
Nov 07 |
Nov 08 PRE: Offloading Reading: RingLeader: Efficiently Offloading Intra-Server Orchestration to NICs |
Nov 09 |
Nov 10 |
Nov 13 PRE: Project updates |
Nov 14 |
Nov 15 LEC 4: Guest lecture by Vladimir Gurevich (P4ica) "Interfacing with the data plane using control plane APIs" (slides) |
Nov 16 |
Nov 17 |
Nov 20 TUT 6: Using Alveo FPGA NICs in the local testbed See this VNC tutorial to access the testbed resources. |
Nov 21 |
Nov 22 Thanksgiving Break -- No Classes |
Nov 23 Thanksgiving Break -- No Classes |
Nov 24 Thanksgiving Break -- No Classes |
Nov 27 TUT 7: Using Alveo FPGA NICs on FABRIC See this tutorial on getting started with FABRIC. DUE: Project |
Nov 28 |
Nov 29 PRE: Project Presentations |
Nov 30 |
Dec 01 |