dpdk lpm

发布时间 2023-10-01 17:43:12作者: 王景迁

DPDK LPM(Longest Prefix Match)是高性能前缀路由匹配库,用于数据包转发过程中快速查找与dstIP地址最长匹配的路由表项。

LPM特点

高性能:基于前缀树算法实现快速匹配。
线程安全:多线程并发安全。
灵活配置:支持动态配置路由表,可在运行时添加、删除或修改路由表项。
内存管理:使用Memory Pool管理内存。

算法设计

两级HASH表:基于HASH算法,把32bit的IP地址分为2个部分。
tbl24(24bit):1张2^24entries的HASH表。
tbl8(8bit):最多256张2^8entries的HASH表。

查询算法

当Netmask<=24bit时,查表一次得到NextHop;否则,查2次表,该场景概率低。

接口函数

rte_lpm_create:创建路由表
rte_lpm_free:释放路由表占用的空间
rte_lpm_add:添加路由
rte_lpm_delete:删除路由
rte_lpm_delete_all:销毁路由表
rte_lpm_lookup:路由查找实现
rte_lpm_find_existing:根据名字找到路由表
rte_lpm_is_rule_present:检查是否条目存在

参考资料

https://blog.csdn.net/Jmilk/article/details/129673463