如何将基于DPDK的应用程序移植到Netmap?

时间:2017-06-28 05:51:40

标签: c linux network-programming dpdk

我有一个基于DPDK的网络应用程序,用于基于Linux的系统。我想将其移植到netmap以克服我使用基于Intel的NIC的限制。在我的基于DPDK的应用程序中,我使用了DPDK提供的一些库(如rte_ring,rte_mempool,rte_hash等)。有什么方法我仍然可以使用它们或我必须用非DPDK库替换它们。什么是将应用程序移植到Netmap的最快捷最好的方法?

2 个答案:

答案 0 :(得分:0)

最简单的方法是保持您的应用程序不变,而是使用DPDK的半虚拟化驱动程序(即virtio-net或vmxnet3)或DPDK的纯软件PMD之一(即af_packet,tap或pcap)。

以下是DPDK网卡驱动程序文档的链接,以获取更多信息: http://dpdk.org/doc/guides/nics/index.html

答案 1 :(得分:0)

您的问题分为两部分

  1. netmap克服了我使用基于Intel的NIC的限制
  2. 基于DPDK的应用程序,我正在使用DPDK提供的一些库(例如rte_ring,rte_mempool,rte_hash等)

[Answer-1] netmap下大多数内核支持的NIC列表为 i40e, e1000, igb, ixgbe, ixgbevf, e1000e, veth, virtio_net, vmxnet3, forcedeth, r816link to github netmap。因此,non intel网卡的正式名称是mxl5。

关于端口的[Answer-2],我强烈建议选中sample netmap in DPDK 16.05。这将提供有关在使用DPDK库时如何用netmap替换RX-TX突发的线索。如果要完全删除DPDK库,请尝试使用uapi支持的链表,哈希表等。