OpenDataPlane

Last updated
OpenDataPlane
Original author(s) Open Source Project bootstrapping under Linaro’s Networking Group
Repository github.com/OpenDataPlane/odp
Written in C
License BSD-3
Website opendataplane.org

The OpenDataPlane (ODP) is an open-source project which defines application programming interfaces (APIs) for portable high performance networking data plane applications. [1] 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 (SoC) device.

Contents

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 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. [2] 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

The OpenDataPlane project is an open-source, cross-platform set of application programming interfaces (APIs) for the networking data plane. ODP diagram.jpg
The OpenDataPlane project is an open-source, cross-platform set of application programming interfaces (APIs) for the networking data plane.

ODP consists of an API specification and a set of reference implementations that realize these APIs on different platforms. [3] 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) [4] and is being promoted [5] [6] by companies as part of their data plane support initiatives.

Products were announced by companies such as Kalray with many acronyms. [7] 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. [8]

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

NameOwner/MaintainerTarget PlatformArchitecture
odp-linux Open contributionPure software implementation, runs on any Linux system. Not a performance target but can utilize DPDK and Netmap.Any
odp-dpdk Open contributionIntel x86 and ARMv8 servers using DPDK as a software acceleration layerIntel x86, ARMv8
odp-keystone2Texas InstrumentsTI Keystone II SoCsARM Cortex-A-15
linux-qoriqNXPNXP QorIQ SoCs [9] Power & ARMv8
OCTEONCavium NetworksCavium Octeon™ SoCsMIPS64
THUNDER [10] Cavium NetworksCavium ThunderX™ SoCARMv8
Kalray [11] KalrayMPPA platformMPPA
odp-hisilicon [12] HisiliconHisilicon platformARMv8

Releases

The following lists the different OpenDatePlane releases:

Release NameRelease Date
OpenDataPlane v1.0.0February 27, 2015
OpenDataPlane v1.0.1March 17, 2015
OpenDataPlane v1.0.2March 27, 2015
OpenDataPlane v1.0.3April 17, 2015
OpenDataPlane v1.0.4April 30, 2015
OpenDataPlane v1.1May 13, 2015
OpenDataPlane v1.2July 22, 2015
OpenDataPlane v1.3August 31, 2015
OpenDataPlane v1.4September 30, 2015
OpenDataPlane v1.4.1November 13, 2015
OpenDataPlane v1.5December 1, 2015
OpenDataPlane v1.6December 31, 2015
OpenDataPlane v1.7February 8, 2016
OpenDataPlane v1.8March 4, 2016
OpenDataPlane v1.9April 15, 2016
OpenDataPlane v1.10April 29, 2016
OpenDataPlane v1.10.1June 14, 2016
OpenDataPlane v1.11August 18, 2016
OpenDataPlane v1.12December 2, 2016
OpenDataPlane v1.13January 18, 2017
OpenDataPlane v1.14March 1, 2017
OpenDataPlane v1.15June 19, 2017
OpenDataPlane v1.16November 10, 2017
OpenDataPlane v1.17December 30, 2017
OpenDataPlane v1.18March 5, 2018
OpenDataPlane v1.18.0.1March 16, 2018
OpenDataPlane v1.19April 19, 2018
OpenDataPlane v1.19.0.1May 10, 2018
OpenDataPlane v1.19.0.2July 4, 2018
OpenDataPlane v1.20.0.0December 3, 2018
OpenDataPlane v1.21.0.0January 28, 2019
OpenDataPlane v1.22.0.0August 22, 2019
OpenDataPlane v1.23.0.0November 21, 2019

Ecosystem

The following organizations currently sponsor the development of ODP.

Projects

The following open source projects use ODP API as the abstraction layer towards data plane hardware.

Related Research Articles

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

XScale is a microarchitecture for central processing units initially designed by Intel implementing the ARM architecture instruction set. XScale comprises several distinct families: IXP, IXC, IOP, PXA and CE, with some later models designed as system-on-a-chip (SoC). Intel sold the PXA family to Marvell Technology Group in June 2006. Marvell then extended the brand to include processors with other microarchitectures, like Arm's Cortex.

Enea AB is a global information technology company with its headquarters in Kista, Sweden that provides real-time operating systems and consulting services. Enea, which is an abbreviation of Engmans Elektronik Aktiebolag, also produces the OSE operating system.

DirectSound is a deprecated software component of the Microsoft DirectX library for the Windows operating system, superseded by XAudio2. It provides a low-latency interface to sound card drivers written for Windows 95 through Windows XP and can handle the mixing and recording of multiple audio streams. DirectSound was originally written for Microsoft by John Miles.

OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfaces by offloading computationally intensive graphics processing from the CPU onto a GPU to save energy. The OpenGL ES library provides similar functionality for 3D graphics. OpenVG is managed by the non-profit technology consortium Khronos Group.

OpenMAX, often shortened as "OMX", is a non-proprietary and royalty-free cross-platform set of C-language programming interfaces. It provides abstractions for routines that are especially useful for processing of audio, video, and still images. It is intended for low power and embedded system devices that need to efficiently process large amounts of multimedia data in predictable ways, such as video codecs, graphics libraries, and other functions for video, image, audio, voice and speech.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

ARM11 is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings. The ARM11 core family consists of ARM1136J(F)-S, ARM1156T2(F)-S, ARM1176JZ(F)-S, and ARM11MPCore. Since ARM11 cores were released from 2002 to 2005, they are no longer recommended for new IC designs, instead ARM Cortex-A and ARM Cortex-R cores are preferred.

<span class="mw-page-title-main">QorIQ</span> Microprocessor range

QorIQ is a brand of ARM-based and Power ISA–based communications microprocessors from NXP Semiconductors. It is the evolutionary step from the PowerQUICC platform, and initial products were built around one or more e500mc cores and came in five different product platforms, P1, P2, P3, P4, and P5, segmented by performance and functionality. The platform keeps software compatibility with older PowerPC products such as the PowerQUICC platform. In 2012 Freescale announced ARM-based QorIQ offerings beginning in 2013.

The Multicore Association was founded in 2005. Multicore Association is a member-funded, non-profit, industry consortium focused on the creation of open standard APIs, specifications, and guidelines that allow system developers and programmers to more readily adopt multicore technology into their applications.

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library distributed under the MIT License. VDPAU is also supported by Nvidia.

Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008.

<span class="mw-page-title-main">Verilator</span>

Verilator is a free and open-source software tool which converts Verilog to a cycle-accurate behavioral model in C++ or SystemC. The generated models are cycle-accurate and 2-state; as a consequence, the models typically offer higher performance than the more widely used event-driven simulators, which can model behavior within the clock cycle. Verilator is now used within academic research, open source projects and for commercial semiconductor development. It is part of the growing body of free EDA software.

An AES instruction set is a set of instructions that are specifically designed to perform AES encryption and decryption operations efficiently. These instructions are typically found in modern processors and can greatly accelerate AES operations compared to software implementations. An AES instruction set includes instructions for key expansion, encryption, and decryption using various key sizes.

<span class="mw-page-title-main">Linaro</span> Engineering organization for open source software

Linaro is an engineering organization that works on free and open-source software such as the Linux kernel, the GNU Compiler Collection (GCC), QEMU, power management, graphics and multimedia interfaces for the ARM family of instruction sets and implementations thereof as well as for the Heterogeneous System Architecture (HSA). The company provides a collaborative engineering forum for companies to share engineering resources and funding to solve common problems on ARM software. In addition to Linaro's collaborative engineering forum, Linaro also works with companies on a one-to-one basis through its Services division.

<span class="mw-page-title-main">PandaBoard</span> Single board computer

The PandaBoard was a low-power single-board computer development platform based on the Texas Instruments OMAP4430 system on a chip (SoC). The board has been available to the public at the subsidized price of US$174 since 27 October 2010. It is a community supported development platform.

In digital communications networks, packet processing refers to the wide variety of algorithms that are applied to a packet of data or information as it moves through the various network elements of a communications network. With the increased performance of network interfaces, there is a corresponding need for faster packet processing.

Network functions virtualization (NFV) is a network architecture concept that leverages IT virtualization technologies to virtualize entire classes of network node functions into building blocks that may connect, or chain together, to create and deliver communication services.

The Data Plane Development Kit (DPDK) is an open source software project managed by the Linux Foundation. It provides a set of data plane libraries and network interface controller polling-mode drivers for offloading TCP packet processing from the operating system kernel to processes running in user space. This offloading achieves higher computing efficiency and higher packet throughput than is possible using the interrupt-driven processing provided in the kernel.

A network virtualization platform decouples the hardware plane from the software plane such that the host hardware plane can be administratively programmed to assign its resources to the software plane. This allows for the virtualization of CPU, memory, disk and most importantly network IO. Upon such virtualization of hardware resources, the platform can accommodate multiple virtual network applications such as firewalls, routers, Web filters, and intrusion prevention systems, all functioning much like standalone hardware appliances, but contained within a single hardware appliance. The key benefit to such technology is doing all of this while maintaining the network performance typically seen with that of standalone network appliances as well as enabling the ability to administratively or dynamically program resources at will.

References

  1. ARM Connected Community (2013-10-29). "Linaro Networking Group launches new open-source initiative around data plane programming APIs". ARM.com. Retrieved 2013-10-29.
  2. Linaro Limited (2013-10-29). "Linaro launches OpenDataPlane™ (ODP) project to deliver open-source, cross-platform interoperability for networking platforms". Linaro.org. Retrieved 2013-10-29.
  3. Zhen Cao. "Controlling the Data Path: Acceleration Behaviors using ForCES" (PDF). IETF .
  4. Enea (2015-05-05). "Enea AB: ARM and Enea Demonstrate Reference Platform of Open Platform for Network Function Virtualization". Businesswire.com. Retrieved 2015-05-05.
  5. ARM Connected Community (2015-05-18). "The Emergence of the OpenDataPlane Standard". ARM.com. Retrieved 2015-05-18.
  6. Marvell (2016-02-23). "Marvell Expands its 32-bit and 64-bit ARMADA SoC Family of Embedded Processors with Robust Ecosystem of Software Solutions and Partners for a Variety of Applications". Marvell.com. Retrieved 2016-02-23.
  7. Kalrayinc (2016-02-09). "Kalray To Launch High Speed I/O Processors". kalrayinc.com. Retrieved 2016-02-09.
  8. OpenFastPath (2016-03-15). "OpenFastPath-An Open Source Accelerated IP Fast Path". openfastpath.org. Retrieved 2016-03-15.
  9. Freescale (currently NXP) (2015-03-03). "Freescale Supports OpenDataPlane for Software-Defined Networking Based on QorIQ Processing Platforms". NXP.com. Retrieved 2015-08-12.
  10. Cavium (2015-03-02). "Cavium Breaks 100Gbps IPsec Throughput Barrier using OpenDataPlane™ at Mobile World Congress 2015". Cavium.com. Retrieved 2015-03-02.
  11. Kalray (2017-10-11). "OpenDataPlane port for the MPPA platform". GitHub .
  12. HiSilicon (2017-03-25). "OpenDataPlane port for the Hisilicon platform". GitHub .
  13. Broadcom (2014-02-20). "Broadcom Announces Open Network Function Virtualization Platform". broadcom.com. Retrieved 2014-02-20.
  14. Cavium (2016-08-19). "Linaro Announces First LTS Monarch Release of OpenDataPlane". cavium.com. Retrieved 2016-08-19.
  15. Enea (2015-02-13). "Enea Demonstrates Open Event Machine Implementation on Broadcom XLP Architecture at MWC". enea.com. Retrieved 2015-02-13.