In this project-based course, students will work in teams to develop a fully functional IP router. Students will design the control plane in Python on a linux host and will design the data plane in the new P4 language, and deploy on actual networking hardware. Teams must demonstrate that their routers can interoperate with the other teams by building a small topology utilizing everyone’s router. At the end of the course, teams will participate in an open-ended design challenge. Due to the scarcity of hardware resources, enrollment in this course may be capped.