Jump to content

OpenDataPlane

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 196.22.243.102 (talk) at 12:00, 23 October 2019 (Technology Overview). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
OpenDataPlane
Original author(s)Open Source Project bootstrapping under Linaro’s Networking Group
Repositorygithub.com/OpenDataPlane/odp
Written inC
LicenseBSD-3
Websiteopendataplane.org

The OpenDataPlane (ODP) is an open-source project which defines application programming interfaces (APIs) for the networking data plane.[1]

Networking by functionality can be defined as:

  • Data plane refers to all the functions and processes that forward packets/frames from one interface to another.
  • Control plane refers to all the functions and processes that determine which path to use. Routing protocols, spanning tree, ldp, etc. are examples.
  • Management plane is all the functions you use to control and monitor devices.

And data plane can be:

  • Software
  • Hardware
  • Software defined

OpenDataPlane set of API allows to write effective software defined data plane implementations which describe network hardware System on Chips (network SoCs) capabilities. Application built on top of ODP library are hardware agnostic, portable and use as much hardware accelerators as implementer of ODP can provide.

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 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

Name Owner/Maintainer Target Platform Architecture
odp-linux Open contribution, maintained by LNG Pure software implementation, runs on any Linux kernel. Not a performance target but has Netmap support Any
odp-dpdk Open contribution, developed by LNG Intel x86 using DPDK as a software acceleration layer Intel x86
odp-keystone2 Texas Instruments TI Keystone II SoCs ARM Cortex-A-15
linux-qoriq NXP NXP QorIQ SoCs[9] Power & ARMv8
OCTEON Cavium Networks Cavium Octeon™ SoCs MIPS64
THUNDER[10] Cavium Networks Cavium ThunderX™ SoC ARMv8
Kalray[11] Kalray MPPA platform MPPA
odp-hisilicon[12] Hisilicon Hisilicon platform ARMv8

Releases

The following lists the different OpenDatePlane releases:

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

Ecosystem

The following organizations currently sponsor the development of ODP.

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. ^ https://www.ietf.org/proceedings/90/slides/slides-90-forces-6.pdf
  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".
  12. ^ HiSilicon (2017-03-25). "OpenDataPlane port for the Hisilicon platform".
  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.