PA3 asks students to implement a simplified version of the Distance Vector routing protocol running as an application over simulated routers (Linux servers) in a simulated Software-Defined Networking (SDN) setting. Both TCP and UDP socket programming are involved. Students are provided with detailed protocol specifications for the communication between routers on the control and data plane as well as for the communication between a router and a controller. The controller binary is also provided to students for testing, but not the source code; students have to ensure that they follow exactly the protocol specifications to enable communication between the routers and the controller.
In order for students to be able to complete PA3, they need to be provided with: