Programmable Abstraction of Datapath

Despite continuous developments in this area, Software Defined Networking (SDN) still seeks for a flexible way of defining a network device behaviour. The control plane needs to be able to fully utilize growing capabilities of modern networking hardware and its diversity. In this paper we propose a new hardware abstraction for various network devices (network processors, optical devices and access devices). The first goal of this proposal is to expose advanced programmability capabilities of network processors and software switches. The second goal of our proposal is to extend the concept of the network node programmability by giving a possibility to dynamically check capabilities supported by a particular network device. The third goal of this paper is to introduce programming language which use new-defined API to Programmable Abstraction of Datapath (PAD) for different kind of network devices. The presented solution ensures therefore flexibility and adaptability of the new programmable functions to specific requirements of a device. The proposed solution creates a unified way of controlling and configuring a variety of families of network devices from optical switches to x86-based appliances.