Articulo de referencia

Kit de desarrollo del plano de datos

{{cite web\n | url = http://core.dpdk.org/download/\n | title = DPDK\n | website = core.dpdk.org\n}} "},"operating_system":{"wt":"[[Linux]], [[FreeBSD]], [[Windows]]"},"genre":{...

El kit de desarrollo del plano de datos ( DPDK ) es un proyecto de software de código abierto gestionado por la Fundación Linux . Proporciona un conjunto de bibliotecas del plano de datos y controladores de interfaz de red en modo de sondeo para descargar el procesamiento de paquetes TCP del núcleo del sistema operativo a procesos que se ejecutan en el espacio de usuario . Esta descarga logra una mayor eficiencia computacional y un mayor rendimiento de paquetes que el procesamiento basado en interrupciones que ofrece el núcleo.

DPDK proporciona un marco de programación para procesadores x86 , ARM y PowerPC y permite un desarrollo más rápido de aplicaciones de redes de paquetes de datos de alta velocidad. [ 2 ] [ 3 ] Se escala desde procesadores móviles, como Intel Atom , hasta procesadores de grado servidor, como Intel Xeon . Admite arquitecturas de conjuntos de instrucciones como Intel, IBM POWER8 , EZchip y ARM . [ 4 ] Se proporciona y admite bajo la licencia de código abierto [ 5 ] BSD .

DPDK fue creado por el ingeniero de Intel Venky Venkatesan, conocido cariñosamente como "El padre de DPDK". Falleció en 2018 tras una larga lucha contra el cáncer. [ 6 ]

Descripción general

El marco DPDK crea un conjunto de bibliotecas para entornos de hardware/software específicos mediante la creación de una capa de abstracción de entorno (EAL). [ 7 ] [ 8 ] La EAL oculta las especificidades del entorno y proporciona una interfaz de programación estándar para las bibliotecas, los aceleradores de hardware disponibles y otros elementos de hardware y del sistema operativo (Linux, FreeBSD). Una vez creada la EAL para un entorno específico, los desarrolladores se conectan a la biblioteca para crear sus aplicaciones. Por ejemplo, la EAL proporciona los marcos para admitir Linux , FreeBSD , Intel IA de 32 o 64 bits , IBM POWER9 y ARM de 32 o 64 bits.

El EAL también proporciona servicios adicionales, como referencias de tiempo, acceso genérico al bus , funciones de rastreo y depuración, y operaciones de alarma.

Mediante las bibliotecas DPDK se puede implementar un modelo de ejecución completa de bajo consumo , en pipeline o por etapas, basado en eventos o híbrido completamente en el espacio de usuario, eliminando el kernel y la copia del kernel al usuario. El hardware ayuda desde NIC/Regex/Aceleradores , y las bibliotecas mejoradas para aprovechar la aceleración de almacenamiento inteligente (ISA) [ 9 ] para un rendimiento masivo y el acceso a dispositivos mediante sondeo también ayuda a eliminar la sobrecarga de rendimiento de las interrupciones . Se utilizan páginas grandes para la asignación de grandes grupos de memoria, para disminuir la cantidad de búsquedas y la gestión de páginas. [ 10 ]

El DPDK también incluye ejemplos de software que destacan las mejores prácticas para la arquitectura de software, consejos para el diseño y almacenamiento de estructuras de datos, utilidades para la creación de perfiles de aplicaciones y la optimización del rendimiento, y consejos para abordar las deficiencias comunes en el rendimiento de la red.

Bibliotecas

El DPDK incluye bibliotecas de plano de datos y controladores de interfaz de red (NIC) optimizados para lo siguiente: [ 11 ]

  • Un gestor de colas implementa colas sin bloqueo.
  • Un gestor de búferes preasigna búferes de tamaño fijo.
  • Un gestor de memoria asigna grupos de objetos en la memoria y utiliza un anillo para almacenar los objetos libres; garantiza que los objetos se distribuyan equitativamente en todos los canales DRAM.
  • Los controladores en modo de sondeo (PMD) están diseñados para funcionar sin notificaciones asíncronas, lo que reduce la sobrecarga.
  • Un marco de paquetes: un conjunto de bibliotecas que ayudan a desarrollar el procesamiento de paquetes.

Todas las bibliotecas se almacenan en los directorios dpdk/lib/librte_*.

Plugins

El DPDK incluye controladores para muchos tipos de hardware. [ 12 ] En el pasado hubo algunos controladores de complementos adicionales fuera del árbol, que ahora se consideran obsoletos.

  • librte_pmd_vmxnet3.so : proporciona una capa Ethernet PMD compatible con la NIC paravirtualizada Vmxnet3; reemplazada por la compatibilidad completa con VMXNET3 en DPDK nativo. 
  • librte_pmd_memnic_copy.so : proporciona una capa Ethernet PMD virtual a través de memoria compartida basada en 2 copias de memoria de paquetes. 

Ambiente

El DPDK fue diseñado originalmente para ejecutarse en modo bare-metal, que actualmente está obsoleto. La versión EAL del DPDK ofrece soporte para aplicaciones de espacio de usuario de Linux o FreeBSD .

EAL se puede ampliar para admitir cualquier procesador.

Ecosistema

DPDK es ahora un proyecto de código abierto bajo la Fundación Linux , respaldado por muchas empresas. DPDK está gobernado por una Junta Directiva. Las actividades técnicas son supervisadas por una Junta Técnica. [ 13 ] Además de Intel , que es un contribuyente a DPDK, varios otros proveedores también respaldan DPDK dentro de sus productos y algunos ofrecen capacitación, soporte y servicios profesionales adicionales. La lista de proveedores que han anunciado soporte para DPDK incluye: 6WIND , [ 14 ] ALTEN Calsoft Labs, [ 15 ] [ 16 ] Advantech, [ 17 ] Brocade, [ 18 ] Big Switch Networks, Mellanox Technologies , [ 19 ] Radisys , [ 20 ] Tieto, [ 21 ] Wind River , [ 22 ] Lanner Inc. [ 23 ] y NXP . [ 24 ]

Proyectos

El proyecto pfSense publicó una hoja de ruta el 25 de febrero de 2015, en la que el desarrollador Jim Thompson anunció la reescritura del núcleo de pfSense —incluyendo pf , reenvío y modelado de paquetes de red , enlace de enlaces , IPsec— utilizando DPDK: "Tenemos el objetivo de poder reenviar, con filtrado de paquetes a velocidades de al menos 14,88  Mpps. Esta es la 'velocidad de línea' en una  interfaz de 10 Gbps. Simplemente no hay forma de usar las pilas en el kernel de FreeBSD (o Linux) actuales para este tipo de carga." [ 25 ]

Open vSwitch (OVS) cuenta con un conjunto limitado de funciones que se ejecutan en el espacio de usuario y que pueden utilizarse para eludir el procesamiento de OVS del kernel de Linux. Este caso de uso de OVS con el espacio de usuario DPDK se conoce generalmente como OVS-DPDK. Suele implementarse con OpenStack Neutron, pero presupone que muchas funciones y capacidades de redes definidas por software (SDN) de OpenStack están deshabilitadas. Por ejemplo, al usar OVS-DPDK, Neutron ofrece un nivel de seguridad inferior al que proporciona el kernel de OVS (sin firewall con estado, con menos grupos de seguridad).

La plataforma FD.IO VPP es un marco extensible que proporciona funcionalidad de conmutador/enrutador de calidad de producción lista para usar. Es la versión de código abierto de la tecnología Vector Packet Processing (VPP) de Cisco: una pila de procesamiento de paquetes de alto rendimiento que puede ejecutarse en CPU estándar y aprovechar los controladores de modo de sondeo tanto para NIC como para hardware y bibliotecas de aceleración criptográfica. [ 26 ] VPP admite y utiliza la biblioteca DPDK. [ 27 ]

TRex es un generador de tráfico de código abierto que utiliza DPDK. Genera tráfico L4-7 basado en el preprocesamiento y la reproducción inteligente de plantillas de tráfico reales. TRex amplifica el tráfico tanto del lado del cliente como del servidor y puede escalar hasta 200  Gbit/s con una UCS que utiliza Intel XL710. TRex también admite múltiples flujos, la capacidad de cambiar cualquier campo de paquete y proporciona estadísticas por flujo, latencia y fluctuación. [ 28 ]

DTS (DPDK Test Suite) es un marco de trabajo basado en Python para pruebas funcionales y de rendimiento. Es un proyecto de código abierto, iniciado en 2014, y está alojado en dpdk.org. Admite tanto generadores de tráfico de software como Scapy y dpdk-pktgen, como un generador de tráfico de hardware como Ixia . [ 29 ]

DPDK admite varios controladores de red SRIOV , lo que permite crear una PF (función física) y VF, y también iniciar máquinas virtuales (como máquinas virtuales QEMU ) y asignarles VF mediante PCI Passthrough [ 30 ].

DDP (Personalización Dinámica de Dispositivos) es una de las nuevas funciones avanzadas implementadas con DPDK. Permite cargar el firmware de un dispositivo de forma dinámica, sin reiniciar el host. [ 31 ]

Véase también

Referencias

  1. "DPDK" . core.dpdk.org .
  2. Simon Stanley, Todo cambia para el procesamiento de paquetes. Archivado el 21 de agosto de 2016 en Wayback Machine , Heavy Reading, 2013
  3. Shamus McGillicudy, DPDK, los diseños de referencia de conmutadores y servidores impulsan el ecosistema SDN. Archivado el 18 de septiembre de 2015 en Wayback Machine , SearchSDN, abril de 2013.
  4. "DPDK: Kit de desarrollo del plano de datos: qué es" . dpdk.org . Consultado el 29 de marzo de 2016 .
  5. Simon Stanley, DPDK se vuelve de código abierto , Intel Embedded Community, mayo de 2013
  6. "En memoria de: Venky Venkatesan, "El padre del DPDK"" . DPDK . Consultado el 12 de mayo de 2022 .
  7. Documentación de DPDK, Kit de desarrollo del plano de datos: Guía del programador , septiembre de 2017
  8. "¿Cómo puede DPDK acceder a los dispositivos desde el espacio de usuario?" . CodiLime . 22 de agosto de 2019 . Consultado el 28 de agosto de 2019 .
  9. "¡Cómo DPDK puede reducir el tamaño de tus datos! | SNIA" . www.snia.org . Consultado el 21 de junio de 2021 .
  10. PANTHEON.tech (9 de enero de 2020). "VPP 105: Gestión de memoria y API de DPDK" . PANTHEON.tech . Consultado el 21 de junio de 2021 .
  11. División de Infraestructura de Comunicaciones de Intel, Descripción general del kit de desarrollo del plano de datos , diciembre de 2012
  12. " NIC compatibles "
  13. Junta Técnica de DPDK
  14. PRWeb, 6WIND extiende el software portátil de procesamiento de paquetes para admitir el kit de desarrollo del plano de datos. Archivado el 26 de marzo de 2016 en Wayback Machine , septiembre de 2011.
  15. Calsoft Labs ofrecerá servicios profesionales y soporte para Data Plane Development Kit , ALTEN Calsoft Labs, 18 de febrero de 2014, archivado del original el 4 de marzo de 2016 , consultado el 28 de octubre de 2014.
  16. "Biblioteca de documentos: arquitecturas de referencia, documentos técnicos, resúmenes de soluciones" . Intel® Industry Solution Builders . Consultado el 18 de octubre de 2025 .
  17. COTS Journal, ATCA Blade ofrece el procesador Xeon E5-2600 Archivado el 4 de marzo de 2016 en Wayback Machine , junio de 2012
  18. Brocade vRouter
  19. Tecnologías, Mellanox. "Kit de desarrollo del plano de datos (DPDK) | Controlador de modo de sondeo (PMD)" . Mellanox . Consultado el 10 de febrero de 2021 .
  20. MarketWatch, Radisys presenta el primer kit de desarrollo de plano de datos con solución de 40G del sector , septiembre de 2012
  21. Tieto, Tieto ofrece servicios de software profesionales y soporte para el kit de desarrollo del plano de datos. Archivado el 27 de agosto de 2021 en Wayback Machine , febrero de 2012.
  22. Reuters, Wind River ofrece soporte y servicios para el kit de desarrollo del plano de datos para el procesamiento de paquetes de alto rendimiento , mayo de 2012
  23. Empiece a volar con el kit de desarrollo Data Plane , Lanner Electronics Inc., 20 de febrero de 2013, archivado del original el 6 de diciembre de 2015 , consultado el 11 de julio de 2013.
  24. Compatibilidad con la plataforma NXP en el kit de desarrollo del plano de datos
  25. Thompson, Jim (25 de febrero de 2015). "Más allá (una hoja de ruta para pfSense)" . blog.pfsense.org . Electric Sheep Fencing LLC . Recuperado el 21 de abril de 2015 .
  26. "VPP fd.io" . wiki.fd.io. Linux Foundation . Consultado el 29 de diciembre de 2016 .
  27. PANTHEON.tech (9 de enero de 2020). "VPP 105: Gestión de memoria y API de DPDK" . PANTHEON.tech . Consultado el 21 de junio de 2021 .
  28. "TRex" . Cisco Systems . Consultado el 29 de diciembre de 2016 .
  29. Rami Rosen, Aceleración de red con DPDK , lwn.net, julio de 2017
  30. Rami Rosen, Redes en el espacio de usuario con DPDK , Linux Journal, abril de 2018.
  31. Rami Rosen, DPDK en profundidad , Kernel TLV, agosto de 2018