DPDK: LPM(Longest Prefix Match)

321 阅读1分钟

API

函数作用
rte_lpm_create根据struct rte_lpm_config配置信息创建LPM对象
rte_lpm_add提供IP和网络掩码添加LPM规则,例如122.14.230.0/24,前者为IP后者为网络掩码(也就是Depth),并且每一条规则对应一个next_hop值作为查询的结果
rte_lpm_delete删除一条LPM规则
rte_lpm_delete_all删除所有LPM规则
rte_lpm_lookup给定一个IP,在LPM中查询最匹配的一个规则,并通过指针返回next_hop值
rte_lpm_lookupx4通过SIMD指令,一次匹配4个IP,并在hop数组中返回4个查询结果
rte_lpm_free释放LPM对象

算法原理

匹配规则数量限制

SSE2优化

struct rte_lpm_tbl_entry的大小端问题