The need to support new services, having stringent and heterogeneous performance requirements, has pushed the evolution of the new generation of network infrastructures toward an unprecedented level of flexibility in operation, control and management functionalities. These goals have been achieved thanks to the massive adoption of software solutions and programmable devices in the lower layers of the TCP/IP stack.

This big change in the architecture (and philosophy) of the network infrastructures has also deeply changed the skills required to the new generation of network engineers, which are asked to have a high level of software design and development, as well as a good knowledge of the technologies and protocols needed to operate a truly programmable network.

This subject introduces the concepts of control and data plane programmability and provides an overview of  the new architecture and technology for the support of the softwarized networks.