No 1 principle of SDN is to separate the devices abstraction that transport the network traffic (forwarding plane) from control plane abstraction, in such a way that it enables to control the network functions by the means of software layer. In practice it can be systems, web applications, and scripts.