我想创建一个现有rte_lpm结构的副本。似乎DPDK中没有可用的函数直接执行此操作。
文档:https://doc.dpdk.org/api/rte__lpm_8h.html
有什么办法可以手动克隆它吗?
答案 0 :(得分:0)
不幸的是,没有这样的功能。此外,也没有迭代规则的功能。但是选项很少:
我们可以沿LPM结构保留原始路由表。例如,一个简单的列表。此列表将用于向用户显示路由表。
DPDK中的示例很少,请查看l3fwd
:https://doc.dpdk.org/guides/sample_app_ug/l3_forward.html
因此,我们无需创建LPM的深层副本,而只需创建一个新副本,并使用此列表中的规则填充它即可。
我们可以创建两个LMP,也可以创建两个LMP,并为其添加规则。这可能会减慢添加/删除规则的过程,但是一旦您需要一个副本,便可以始终拥有它。
另一个缺点是您将只有一个副本,也就是说,如果您需要一些副本,那么这一切都将无效。
因此,我们没有创建LPM的深层副本,而是始终保留两个表。