This assignment was done as part of the COL334 course requirements. The objective of the assignment is to get familiar with the OpenFlow APIs and implement key networking policies : Hub Controller, Learning Switch, Spanning Tree, Shortest-Path Routing and Congestion-aware Shortest-Path Routing. Details of the implementation can be found in the report.