Introduction

L'article présente une implémentation de l'algorithme PlanB pour la recherche de préfixes les plus longs (LPM) dans les adresses IPv6, en utilisant un arbre B+ linéarisé et les instructions AVX-512. Cette implémentation est conçue pour être portable et permissivement licenciée, permettant ainsi son utilisation dans la recherche, l'enseignement et les logiciels de production.

Contexte Technique

L'algorithme PlanB a été proposé dans un article de recherche pour améliorer les performances de la recherche de préfixes dans les adresses IPv6. Cependant, l'implémentation de référence n'était pas adaptable à d'autres projets en raison de ses dépendances spécifiques à Linux et AVX-512. L'implémentation présentée ici, appelée planb-lpm, vise à répondre à ce besoin en offrant une bibliothèque C++17 portable et testée, avec des liaisons Python et des tests de correction.

La bibliothèque planb-lpm utilise un arbre B+ linéarisé pour stocker les préfixes et les adresses IPv6, ce qui permet des recherches rapides et efficaces. L'implémentation prend en charge les instructions AVX-512 pour améliorer les performances, mais elle peut également fonctionner sans elles en utilisant un chemin scalaire.

Analyse et Implications

Les résultats des tests montrent que planb-lpm offre des performances supérieures à celles de la recherche naive basée sur un arbre radix Patricia, avec un facteur de gain d'environ 20 fois. Les tests ont également montré que l'implémentation est efficace en termes de mémoire, avec une empreinte mémoire plus faible que celle de l'arbre radix Patricia pour les petits ensembles de données.

Cependant, les tests ont également révélé que l'implémentation peut présenter des limites en termes de performances pour les grands ensembles de données, en raison de la croissance discrète de la profondeur de l'arbre B+. Cela signifie que l'implémentation peut nécessiter des optimisations supplémentaires pour les très grands ensembles de données.

Perspective

Planb-lpm offre une solution prometteuse pour la recherche de préfixes dans les adresses IPv6, avec des performances et une efficacité mémoire améliorées. Cependant, des travaux supplémentaires sont nécessaires pour optimiser l'implémentation pour les très grands ensembles de données et pour évaluer ses performances dans des scénarios réels. De plus, il serait intéressant de comparer les performances de planb-lpm avec d'autres algorithmes de recherche de préfixes pour évaluer son efficacité dans différents contextes.