The OpenDataPlane (ODP) is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project which defines
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
s (APIs) for portable high performance networking
data plane
In routing, the forwarding plane, sometimes called the data plane or user plane, defines the part of the router architecture that decides what to do with packets arriving on an inbound interface. Most commonly, it refers to a table in which the ...
applications. ODP API design enables various implementation strategies without exposing the application to implementation details. This allows the same application (source code or binary) to run efficiently on various hardware platforms with different levels of HW acceleration. For example, the same application source code may be re-compiled to run on a standard server system or a specialized networking
System on a Chip
A system on a chip or system-on-chip (SoC ; pl. ''SoCs'' ) is an integrated circuit that integrates most or all components of a computer or other electronic system. These components almost always include a central processing unit (CPU), memory ...
(SoC) device.
Networking data plane refers software and hardware that forwards packets/frames from one interface to another, and usually performs various operations (check errors, add/remove/modify protocol headers, etc) on packet data. Commonly, data plane software utilizes hardware acceleration (e.g. protocol checksum calculation) to reach high packet and bit rates. Networking
control plane and
management plane
In computer networking, the management plane of a networking device is the element of a system that configures, monitors, and provides management, monitoring and configuration services to, all layers of the network stack and other parts of the sys ...
refer to softwares that control and monitor data plane software and hardware operation.
History
On October 29, 2013 Linaro announced that it was collaborating with members of the Linaro Networking interest Group to develop and host an open standard application programming interface for data plane applications. Initially defined by members of the Linaro Networking Group, this project is open to contributions from all individuals and companies who share an interest in promoting a standard set of APIs to be used across the full range of network processor architectures available.
Technology Overview

ODP consists of an API specification and a set of reference implementations that realize these APIs on different platforms. Implementations range from pure software to those that deeply exploit the various hardware acceleration and offload features found on modern networking
System-on-Chip (SoC) processors.
ODP's goal is to allow implementers of the API great flexibility to exploit and optimize the implementation. This is intended to enable easy platform portability such that an application written to the API can pick up performance gains without needing significant platform knowledge when ported.
ODP is currently being used to develop reference platform implementations of
Open Platform for NFV (OPNFV) and is being promoted by companies as part of their data plane support initiatives.
Products were announced by companies such as Kalray with many acronyms. The OpenDataPlane run to completion execution models and framework are also being used by FastPath applications to leverage OpenFastPath functionality. DPDK is supported in the OpenFastPath release through the ODP-DPDK layer. The intent of OpenFastPath is to enable accelerated routing/forwarding for IPv4 and IPv6, tunneling and termination for a variety of protocols.
Implementations
There is a
Linux based reference software implementation of the ODP API, intended to be a functional model to establish the API behavior. In conjunction with a validation suite, this gives a base for accelerated implementations to extend.
Current ODP implementations exist for several processors, with varying degrees of hardware offload:
Current ODP Implementations
Releases
The following lists the different OpenDatePlane releases:
Ecosystem
The following organizations currently sponsor the development of ODP.
*
ARM
*
Broadcom
*
Cavium
*
Cisco
*
ENEA AB
*
Ericsson
*
HiSilicon
*
Linaro
*
MontaVista
*
Nokia
*
NXP
*
Texas Instruments
*Wind - formerly
Wind River Systems
*
ZTE
Projects
The following open source projects use ODP API as the abstraction layer towards data plane hardware.
OpenEventMachinedata plane application framework
OpenFastPathTCP/IP stack
References
{{reflist
Application programming interfaces
Free software programmed in C
Software using the BSD license