Network programmability or Software Defined Networking (SDN), as the name implies, moves the brains of the network from individual hardware devices that use IOS to a centralized controller that uses open source code. This provides a central point of management for all devices on the network, which leads to greater automation and more efficient orchestration of devices. Other benefits of SDN include the ability to scale faster, adapt to bandwidth spikes, secure automation, eliminate manual configuration and easily integrate third party applications and products.
7.7.a Function of a controller
7.7.b Separation of control plane and data plane
7.7.c Northbound and southbound APIs