The promise of software-defined networking (SDN) is to create an infrastructure that is much more agile and flexible through ‘sdn automation’ to create programmable networks. Through SDN automation and SDN programmability, SDN programming should drive network automation and orchestration that better supports the ever-changing demands of users, as well as the devices and data accessing the network. One of the ways SDN delivers this agility and flexibility is by making the network more automatic and programmable, however, that can mean different things to different organizations.
Three use cases defining need for SDN programmability and SDN programming:
- SDN Programming to adjust network flows – This use case focuses on protocols — such as OpenFlow — that enable SDN Controllers to interact with routers and switches in the forwarding plane so adjustments can be made as to how the traffic flows through SDN networks. This helps SDN networks automatically respond to changing demands.
- SDN programmability enables automated networking via SDN automation – This use case focuses on SDN networks doing what they are supposed to do without interference from a network administrator. When something changes, the network should figure out how to address the change automatically.
Much of the SDN automation and programmability of the network relies on the northbound and southbound open application programmable interfaces (APIs) communications between the SDN Controller and the applications and switches/routers, respectively. Regardless of which camp an organization fits into, additional programmability of the network can enable better bandwidth utilization, improved application performance, and maximum operational efficiency.