Cisco VPP 运行

原文地址:https://blog.csdn.net/u010827484/article/details/79389711

VPP运行

配置DPDK运行环境

DPDK编译完成后会在build-root目录输出编译出来的文件,包括DPDK相关文件,编译出的DPDK源码文件路径:

build-root/build-vpp_debug-native/dpdk/dpdk-17.11

加载DPDK网络接口驱动:

  • 加载uio驱动:modpro uio
  • 加载igb_uio驱动:insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko

配置DPDK网络接口:

  • 可使用DPDK usertools目录里面的工具dpdk-devbind.py绑定网络接口

    dpdk-devbind.py -s查看网络接口状态
    Cisco VPP 运行_第1张图片
    根据PCI设备号解绑网络接口驱动
    dpdk-devbind.py -u 0000:02:06.0
    dpdk-devbind.py -u 0000:02:07.0
    Cisco VPP 运行_第2张图片
    根据PCI设备号绑定DPDK igb_uio驱动
    dpdk-devbind.py -b igb_uio 0000:02:06.0
    dpdk-devbind.py -b igb_uio 0000:02:07.0
    Cisco VPP 运行_第3张图片

  • 也可以使用dpdk-setup.sh工具设置DPDK需要的大页内存和网络接口绑定

    Cisco VPP 运行_第4张图片
    根据引导进行相关设置:

    • step1:设置DPDK编译时使用的编译工具
    • step2:设置DPDK运行时的环境(加载uio驱动,加载igb_uio驱动,设置大页内存等)
    • step3:DPDK测试demo
    • step4:查看DPDK大页内存环境
    • step5:清理DPDK运行时需要的环境

设置大页内存:
Cisco VPP 运行_第5张图片
查看大页内存:
Cisco VPP 运行_第6张图片

如果宿主机运行在VMware并且使用DPDK igb_uio驱动,需要修改DPDK源码,不然会出现“EAL : Input/output error on DPDK”这样的错误:
Cisco VPP 运行_第7张图片
对应补丁 DPDK Patch。

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index d1ca26e..c46a00f 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -505,14 +505,11 @@  igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
        }
        /* fall back to INTX */
    case RTE_INTR_MODE_LEGACY:
-       if (pci_intx_mask_supported(dev)) {
-           dev_dbg(&dev->dev, "using INTX");
-           udev->info.irq_flags = IRQF_SHARED;
-           udev->info.irq = dev->irq;
-           udev->mode = RTE_INTR_MODE_LEGACY;
-           break;
-       }
-       dev_notice(&dev->dev, "PCI INTX mask not supported\n");
+       dev_dbg(&dev->dev, "using INTX");
+       udev->info.irq_flags = IRQF_SHARED;
+       udev->info.irq = dev->irq;
+       udev->mode = RTE_INTR_MODE_LEGACY;
+       break;
        /* fall back to no IRQ */
    case RTE_INTR_MODE_NONE:
        udev->mode = RTE_INTR_MODE_NONE;

打上补丁后需要重新编译DPDK igb_uio驱动,并重新加载。

运行VPP

在VPP源码目录执行make run,VPP就运行起来了:
Cisco VPP 运行_第8张图片
make run命令启动VPP参数可以通过VPP源码根目录Makfile修改:
Cisco VPP 运行_第9张图片
也可以使用vpp启动配置文件启动vpp,具体配置参考官方文档:
VPP启动配置

你可能感兴趣的:(FD.io,VPP,FD.IO,VPP)