6WIND a annoncé le 9 avril la publication du projet dpdk, un ensemble de bibliothèques s'appuyant sur le modules UIO du noyau pour permettre un traitement optimisé des paquets réseau en espace utilisateur sur x86. Cette bibliothèque permet facilement de récupérer les paquets depuis une carte ethernet, de les manipuler et de les renvoyer avec un minimum d'overhead.
Pour rappel, UIO permet de mapper directement en user-space l'espace mémoire d'un périphérique et de traiter des IRQ avec des appels à read, write et poll.
Les bibliothèques DPDK fournissent les fonctionnalités suivantes
- Un framework de développement d'application de traitement de paquets réseau en enregistrant et en chaînant des opérations simples.
- Une bibliothèque d'accès complet aux cartes Intel permettant la récupération des buffers directement en espace utilisateur.
- Une bibliothèque d'allocation mémoire optimisée pour les paquets réseau tenant compte de la géométrie physique de la RAM pour optimiser les lectures des paquets. Cette bibliothèque s'appuie sur la fonctionnalité Huge-Page du kernel linux
- Un accès aux timers temps réel HPET pour permettre des réveils précis des tâches.
L'ensemble est bien documenté via doxygen et permet d’expérimenter facilement avec les couches basses des protocoles réseau.