El OpenDataPlane (PAO) es un código abierto del proyecto que define las interfaces de programación de aplicaciones (API) para el alto rendimiento portátil de red del plano de datos de aplicaciones. [1] El diseño de la API de ODP permite varias estrategias de implementación sin exponer la aplicación a los detalles de implementación. Esto permite que la misma aplicación (código fuente o binario) se ejecute de manera eficiente en varias plataformas de hardware con diferentes niveles de aceleración de HW. Por ejemplo, el mismo código fuente de la aplicación se puede volver a compilar para que se ejecute en un sistema de servidor estándar o en un sistema de red especializado en un dispositivo Chip (SoC).
Autor (es) original (es) | Bootstrapping de proyectos de código abierto bajo el grupo de redes de Linaro |
---|---|
Repositorio | github |
Escrito en | C |
Licencia | BSD-3 |
Sitio web | opendataplane |
El plano de datos de red se refiere al software y hardware que reenvía paquetes / tramas de una interfaz a otra y, por lo general, realiza varias operaciones (comprobar errores, agregar / eliminar / modificar encabezados de protocolo, etc.) en paquetes de datos. Comúnmente, el software del plano de datos utiliza aceleración de hardware (por ejemplo, cálculo de suma de comprobación de protocolo) para alcanzar altas velocidades de paquetes y bits. El plano de control y el plano de gestión de redes se refieren a software que controlan y supervisan el funcionamiento del software y hardware del plano de datos.
Historia
El 29 de octubre de 2013, Linaro anunció que estaba colaborando con miembros del grupo de interés Linaro Networking para desarrollar y alojar una interfaz de programación de aplicaciones estándar abierta para aplicaciones de plano de datos. [2] Inicialmente definido por miembros del Linaro Networking Group, este proyecto está abierto a contribuciones de todas las personas y empresas que comparten un interés en promover un conjunto estándar de API para su uso en toda la gama de arquitecturas de procesadores de red disponibles.
Resumen de la tecnología
ODP consta de una especificación de API y un conjunto de implementaciones de referencia que realizan estas API en diferentes plataformas. [3] Las implementaciones van desde software puro hasta aquellas que explotan en profundidad las diversas funciones de aceleración y descarga de hardware que se encuentran en los procesadores de red modernos System-on-Chip (SoC).
El objetivo de ODP es permitir a los implementadores de la API una gran flexibilidad para explotar y optimizar la implementación. Esto está destinado a permitir una fácil portabilidad de la plataforma de modo que una aplicación escrita en la API pueda obtener ganancias de rendimiento sin necesidad de un conocimiento significativo de la plataforma cuando se transfiera.
ODP se está utilizando actualmente para desarrollar implementaciones de plataforma de referencia de Open Platform for NFV (OPNFV) [4] y las empresas lo promueven [5] [6] como parte de sus iniciativas de soporte de plano de datos.
Los productos fueron anunciados por empresas como Kalray con muchas siglas. [7] Las aplicaciones FastPath también están utilizando el marco y los modelos de ejecución de ejecución completa de OpenDataPlane para aprovechar la funcionalidad de OpenFastPath. DPDK es compatible con la versión OpenFastPath a través de la capa ODP-DPDK. La intención de OpenFastPath es permitir el enrutamiento / reenvío acelerado para IPv4 e IPv6, tunelización y terminación para una variedad de protocolos. [8]
Implementaciones
Existe una implementación de software de referencia basada en Linux de la API ODP, destinada a ser un modelo funcional para establecer el comportamiento de la API. Junto con una suite de validación, esto proporciona una base para extender las implementaciones aceleradas. Existen implementaciones actuales de ODP para varios procesadores, con diversos grados de descarga de hardware:
Implementaciones actuales de ODP
Nombre | Propietario / Mantenedor | Plataforma de destino | Arquitectura |
---|---|---|---|
odp-linux | Contribución abierta | Implementación de software puro, se ejecuta en cualquier sistema Linux. No es un objetivo de rendimiento, pero puede utilizar DPDK y Netmap. | Alguna |
odp-dpdk | Contribución abierta | Servidores Intel x86 y ARMv8 que utilizan DPDK como capa de aceleración de software | Intel x86, ARMv8 |
odp-keystone2 | Instrumentos Texas | SoC de TI Keystone II | BRAZO Cortex-A-15 |
linux-qoriq | NXP | SoC NXP QorIQ [9] | Energía y ARMv8 |
OCTEON | Cavium Networks | SoC Cavium Octeon ™ | MIPS64 |
TRUENO [10] | Cavium Networks | SoC Cavium ThunderX ™ | ARMv8 |
Kalray [11] | Kalray | Plataforma MPPA | MPPA |
odp-hisilicon [12] | Hisilicio | Plataforma Hisilicon | ARMv8 |
Lanzamientos
A continuación, se enumeran las diferentes versiones de OpenDatePlane:
Nombre de la versión | Fecha de lanzamiento |
---|---|
OpenDataPlane v1.0.0 | 27 de febrero de 2015 |
OpenDataPlane v1.0.1 | 17 de marzo de 2015 |
OpenDataPlane v1.0.2 | 27 de marzo de 2015 |
OpenDataPlane v1.0.3 | 17 de abril de 2015 |
OpenDataPlane v1.0.4 | 30 de abril de 2015 |
OpenDataPlane v1.1 | 13 de mayo de 2015 |
OpenDataPlane v1.2 | 22 de julio de 2015 |
OpenDataPlane v1.3 | 31 de agosto de 2015 |
OpenDataPlane v1.4 | 30 de septiembre de 2015 |
OpenDataPlane v1.4.1 | 13 de noviembre de 2015 |
OpenDataPlane v1.5 | 1 de diciembre de 2015 |
OpenDataPlane v1.6 | 31 de diciembre de 2015 |
OpenDataPlane v1.7 | 8 de febrero de 2016 |
OpenDataPlane v1.8 | 4 de marzo de 2016 |
OpenDataPlane v1.9 | 15 de abril de 2016 |
OpenDataPlane v1.10 | 29 de abril de 2016 |
OpenDataPlane v1.10.1 | 14 de junio de 2016 |
OpenDataPlane v1.11 | 18 de agosto de 2016 |
OpenDataPlane v1.12 | 2 de diciembre de 2016 |
OpenDataPlane v1.13 | 18 de enero de 2017 |
OpenDataPlane v1.14 | 1 de marzo de 2017 |
OpenDataPlane v1.15 | 19 de junio de 2017 |
OpenDataPlane v1.16 | 10 de noviembre de 2017 |
OpenDataPlane v1.17 | 30 de diciembre de 2017 |
OpenDataPlane v1.18 | 5 de marzo de 2018 |
OpenDataPlane v1.18.0.1 | 16 de marzo de 2018 |
OpenDataPlane v1.19 | 19 de abril de 2018 |
OpenDataPlane v1.19.0.1 | 10 de mayo de 2018 |
OpenDataPlane v1.19.0.2 | 4 de julio de 2018 |
OpenDataPlane v1.20.0.0 | 3 de diciembre de 2018 |
OpenDataPlane v1.21.0.0 | 28 de enero de 2019 |
OpenDataPlane v1.22.0.0 | 22 de agosto de 2019 |
OpenDataPlane v1.23.0.0 | 21 de noviembre de 2019 |
Ecosistema
Las siguientes organizaciones patrocinan actualmente el desarrollo de ODP.
Proyectos
Los siguientes proyectos de código abierto utilizan la API ODP como la capa de abstracción hacia el hardware del plano de datos.
- Marco de aplicación de plano de datos OpenEventMachine
- Pila OpenFastPath TCP / IP
Referencias
- ↑ ARM Connected Community (29 de octubre de 2013). "Linaro Networking Group lanza una nueva iniciativa de código abierto en torno a las API de programación del plano de datos" . ARM.com . Consultado el 29 de octubre de 2013 .
- ^ Linaro Limited (29 de octubre de 2013). "Linaro lanza el proyecto OpenDataPlane ™ (ODP) para ofrecer interoperabilidad multiplataforma de código abierto para plataformas de redes" . Linaro.org . Consultado el 29 de octubre de 2013 .
- ^ https://www.ietf.org/proceedings/90/slides/slides-90-forces-6.pdf
- ^ Enea (5 de mayo de 2015). "Enea AB: ARM y Enea demuestran plataforma de referencia de plataforma abierta para virtualización de funciones de red" . Businesswire.com . Consultado el 5 de mayo de 2015 .
- ^ Comunidad conectada ARM (18 de mayo de 2015). "La aparición del estándar OpenDataPlane" . ARM.com . Consultado el 18 de mayo de 2015 .
- ^ Marvell (23 de febrero de 2016). "Marvell amplía su familia de procesadores integrados ARMADA SoC de 32 y 64 bits con un ecosistema robusto de soluciones de software y socios para una variedad de aplicaciones" . Marvell.com . Consultado el 23 de febrero de 2016 .
- ^ Kalrayinc (9 de febrero de 2016). "Kalray para lanzar procesadores de E / S de alta velocidad" . kalrayinc.com . Consultado el 9 de febrero de 2016 .
- ^ OpenFastPath (15 de marzo de 2016). "OpenFastPath-una ruta rápida IP acelerada de código abierto" . openfastpath.org . Consultado el 15 de marzo de 2016 .
- ^ Freescale (actualmente NXP) (2015-03-03). "Freescale admite OpenDataPlane para redes definidas por software basadas en plataformas de procesamiento QorIQ" . NXP.com . Consultado el 12 de agosto de 2015 .
- ^ Cavium (2 de marzo de 2015). "Cavium rompe la barrera de rendimiento IPsec de 100 Gbps utilizando OpenDataPlane ™ en el Mobile World Congress 2015" . Cavium.com . Consultado el 2 de marzo de 2015 .
- ^ Kalray (11 de octubre de 2017). "Puerto OpenDataPlane para la plataforma MPPA" .
- ^ HiSilicon (25 de marzo de 2017). "Puerto OpenDataPlane para la plataforma Hisilicon" .
- ^ Broadcom (20 de febrero de 2014). "Broadcom anuncia plataforma de virtualización de funciones de red abierta" . broadcom.com . Consultado el 20 de febrero de 2014 .
- ^ Cavium (19 de agosto de 2016). "Linaro anuncia la primera versión LTS Monarch de OpenDataPlane" . cavium.com . Consultado el 19 de agosto de 2016 .
- ^ Enea (13 de febrero de 2015). "Enea demuestra la implementación de la máquina de eventos abierta en la arquitectura Broadcom XLP en el MWC" . enea.com . Consultado el 13 de febrero de 2015 .