美文网首页linux相关
编译和运行DPDK示例程序

编译和运行DPDK示例程序

作者: 古埃尔公园 | 来源:发表于2019-08-28 16:05 被阅读0次

    DPDK(Data Plane Development Kit)是数据平面开发工具包,由用于加速在各种CPU架构上运行的数据包处理的库组成。

    在Linux上部署DPDK的方法请参考:
    在Linux(CentOS)上部署DPDK------命令行方式

    1.DPDK 应用程序编译


    该章节的内容参照自官网的DPDK build sample apps

    当DPDK的target环境创建好后(例如x86_64-native-linuxapp-gcc),x86_64-native-linuxapp-gcc目录中会包含编译应用程序的库和头文件。

    在编译DPDK应用程序之前,首先需要指定两个环境变量:

    • RTE_SDK - 指定为DPDK安装路径
    • RTE_TARGET - 指定为DPDK target路径

    在DPDK的examples路径下面有许多示例应用,这里以其中的helloworld为例进行编译:

    cd /home/dpdk-stable-18.11.2/examples/helloworld/
    export RTE_SDK=/home/dpdk-stable-18.11.2
    export RTE_TARGET=x86_64-native-linuxapp-gcc
    
    make
      CC main.o
      LD helloworld
      INSTALL-APP helloworld
      INSTALL-MAP helloworld.map
    

    DPDK的examples路径下面的应用均可以通过这种方式编译,也可以直接在examples路径下面运行make,将这些应用全都编译好。

    2.DPDK 应用程序运行


    在运行应用程序之前,需要确保:

    • Hugepages设置完成。
    • 任何需要使用的内核驱动都已经加载好。
    • 如果有需要,应用程序使用的端口应绑定到相应的内核驱动程序。

    DPDK应用程序与DPDK target环境的环境抽象层EAL(Environmental Abstraction Layer )库相关联,该库提供了一些通用于每个DPDK应用程序的选项。

    ./helloworld [-c COREMASK | -l CORELIST] [-n NUM] [-b <domain:bus:devid.func>] \
              [--socket-mem=MB,...] [-d LIB.so|DIR] [-m MB] [-r NUM] [-v] [--file-prefix] \
              [--proc-type <primary|secondary|auto>]
    

    EAL的详细配置请参照:DPDK EAL参数

    可按照下列参数运行./helloworld

    ./build/helloworld -l 0-3 -n 4
    

    其中-l命令指定cpu cores list是EAL必须的配置;若没有指定--socket-mem,则默认会按照预留的hugepages size来分配。

    相关文章

      网友评论

        本文标题:编译和运行DPDK示例程序

        本文链接:https://www.haomeiwen.com/subject/oygpectx.html