如何复制rte_lpm?

时间:2018-09-20 05:29:52

标签: dpdk

我想创建一个现有rte_lpm结构的副本。似乎DPDK中没有可用的函数直接执行此操作。

文档:https://doc.dpdk.org/api/rte__lpm_8h.html

有什么办法可以手动克隆它吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,没有这样的功能。此外,也没有迭代规则的功能。但是选项很少:

  1. 我们可以沿LPM结构保留原始路由表。例如,一个简单的列表。此列表将用于向用户显示路由表。

    DPDK中的示例很少,请查看l3fwdhttps://doc.dpdk.org/guides/sample_app_ug/l3_forward.html

    因此,我们无需创建LPM的深层副本,而只需创建一个新副本,并使用此列表中的规则填充它即可。

  2. 我们可以创建两个LMP,也可以创建两个LMP,并为其添加规则。这可能会减慢添加/删除规则的过程,但是一旦您需要一个副本,便可以始终拥有它。

    另一个缺点是您将只有一个副本,也就是说,如果您需要一些副本,那么这一切都将无效。

    因此,我们没有创建LPM的深层副本,而是始终保留两个表。