A method includes determining a number and placement of multiple controllers in a software defined network (SDN) such that each controller controls a different set of software controlled switches in the SDN and finding optimal forwarding paths for control traffic between the switches and controllers to minimize delay of control traffic over the software defined network.