CSE 4/589 Programming Assignments

Description of the programming assignments used at the University at Buffalo (UB)'s CSE 4/589: Modern Networking Concepts course.

View My GitHub Profile

Programming Assignment 3 (PA3)


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.

Suggested workload/time

5 weeks

Quick Checklist: Instructors/Course Staff

In order for students to be able to complete PA3, they need to be provided with:

  1. Link to the assignment handout
  2. List of the five grading hosts and path to the student work/test directory
  3. Notification that they need to input their SSH credentials in Grader’s configuration (grader.cfg) file