dpdk安装_dpdk安装 ubuntu - CSDN
精华内容
参与话题
  • DPDK的编译安装

    千次阅读 2019-02-19 14:40:06
    最近在研究vpp+dpdk,此过程中遇到了不少问题,在此记录 刚毕业的时候接手的第一个项目就是dpdk了。虽然这个项目在不久后就黄了,但我也通过这个项目对dpdk多多少少有些了解。 以下概念借鉴了...

    最近在研究vpp+dpdk,此过程中遇到了不少问题,在此记录

    刚毕业的时候接手的第一个项目就是dpdk了。虽然这个项目在不久后就黄了,但我也通过这个项目对dpdk多多少少有些了解。

    以下概念借鉴了https://www.cnblogs.com/bakari/p/8404650.html这篇博客。

    dpdk是Intel提供个的一个开发套件。为 Intel 处理器架构下用户空间高效的数据包处理提供了库函数和驱动的支持,它不同于 Linux 系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。也就是 dpdk 绕过了 Linux 内核协议栈对数据包的处理过程,在用户空间实现了一套数据平面来进行数据包的收发与处理。在内核看来,dpdk 就是一个普通的用户态进程,它的编译、连接和加载方式和普通程序没有什么两样。我理解的dpdk就是一个驱动,可以接管网卡,使得这个网卡不归内核管理。被dpdk绑定的网卡在ifconfig命令下是看不到的。这样的好处有

    1.应用程序可以直接从网卡获取数据包,然后绕过内核协议栈,进入用户自己的协议栈。可能是开源的协议栈(ofp),也可能是商用协议栈。这些协议栈的性能要比Linux内核的协议栈性能好很多。

    2.内核接管的网卡,当有数据包到来时,会触发CPU的中断。而dpdk采用轮询的方式,当有数据包到来时不会产生中断,从而减少了中断的额外开销。

    3.dpdk采用循环队列,没有锁。还没具体的研究这个机制。。。

    dpdk 能够绕过内核协议栈,本质上是得益于 UIO 技术,通过 UIO 能够拦截中断,并重设中断回调行为,从而绕过内核协议栈后续的处理流程。UIO 设备的实现机制其实是对用户空间暴露文件接口,比如当注册一个 UIO 设备 uioX,就会出现文件 /dev/uioX,对该文件的读写就是对设备内存的读写。除此之外,对设备的控制还可以通过 /sys/class/uio 下的各个文件的读写来完成。

    1.获取dpdk源码。

    http://core.dpdk.org/download/   选择版本下载。我下载的是19.02的版本。下载解压后,假设目录是/home/dpdk-19.02,进入该目录

    2.设置巨页HugePages(巨页相关概念参考https://yq.aliyun.com/articles/566115?spm=5176.10695662.1996646101.searchclickresult.2d1f7121dDjXum

    HugePages是通过使用大页内存来取代传统的4kb内存页面,使得管理虚拟地址数变少,加快了从虚拟地址到物理地址的映射以及通过摒弃内存页面的换入换出以提高内存的整体性能

    3.设置环境变量,主要是来编译测试程序

    export RTE_SDK=<dpdk目录>

    export RTE_TARTGET=x86_64-native-linuxapp-gcc

    4.编译dpdk

    make config T=x86_64-native-linuxapp-gcc
    sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config
    make

     中途出现的错误大多数都是依赖库不匹配或者找不到。重新下载即可。

    如果出现这个错误* /lib/modules/3.10.0-693.11.6.el7.x86_64/build: No such file or directory. Stop.这类的问题,说明应该是系统没有安装内核开发包或者是安装的内核开发包版本不匹配。需要重新下载内核开发包。yum install kernel-devel。然后进入/lib/modules/3.10.0-693.11.6.el7.x86_64/,查看build连接到哪个版本的内核开发包,然后将刚才下载的软链接到这个版本的名称即可,然后执行make

    dpdk-17.11/lib/librte_eal/linuxapp/eal/eal_memory.c:56:18: fatal error: numa.h: No such file or directory

     yum install numactl-devel*x86_64

    5.安装编译生成的dpdk驱动

    在/home/dpdk-19.02目录下会有x86_64-native-linuxapp-gcc这个目录,进入该目录下的kmod文件夹,会有生成的网卡驱动。然后执行modprobe uio,insmod igb_uio.ko,insmod rte_kni.ko.完成dpdk驱动的安装。

    展开全文
  • DPDK安装示例

    千次阅读 2018-05-01 21:50:38
    配置需求 1、Kernel &gt;= 2.6.33 2、glibc &gt;= 2.7 3、gcc &... 4、libc headers: gcc-multilib (glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64 / libc6-dev for 64-bit compilation ...

    配置需求

    1、Kernel >= 2.6.33
    2、glibc >= 2.7
    3、gcc >=4.9
    4、libc headers: gcc-multilib (glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64 / libc6-dev for 64-bit compilation on Intel architecture; glibc-devel.ppc64 for 64 bit IBM Power architecture;) 如果测试主机可以联网的话,缺什么到时候装什么即可
    5、Kernel需要支持UIO、HUGETLBFS、PROC_PAGE_MONITOR

    具体安装步骤

    1、下载dpdk tar包

    #wget https://fast.dpdk.org/rel/dpdk-17.11.tar.xz
    

    2、解压,并进入dpdk根目录

    #tar -xf dpdk-17.11.tar.xz
    #cd dpdk-17.11
    

    3、添加环境变量 RTE_SDK

    #export RTE_SDK=<dpdk根目录>
    

    4、执行dpdk安装脚本

    #cd usertools  
    #./dpdk-setup.sh  
    

    4.1、根据根基环境选择dpdk编译环境进行编译
    例如:x86_64-native-linuxapp-gcc(会在dpdk根目录下生成对应文件夹,存放编译好的内容)
    4.2、选择安装的dpdk驱动,(igb_uio, vfio_pci, kni)
    4.3、设置hugepage

    5、检查dpdk驱动是否安装完成
    lsmod可以显示对应模块,/sys/bus/pci/drivers/下会有对应的dpdk驱动

    #lsmod |grep <XXX>
    

    Github-blog
    CSDN-blog

    展开全文
  • DPDK install安装配置

    千次阅读 2019-04-26 17:47:17
    DPDK编译完成之后,默认情况下执行make install会将目标文件安装到系统的/usr/local目录下。通过查看DPDK安装Makefile文件mk/rte.sdkinstall.mk,可知其将prefix指向了/usr/local目录。 ifdef T # defaults ...

    在DPDK编译完成之后,默认情况下执行make install会将目标文件安装到系统的/usr/local目录下。通过查看DPDK的安装Makefile文件mk/rte.sdkinstall.mk,可知其将prefix指向了/usr/local目录。

    ifdef T # defaults with T= will install an almost flat staging tree
    export prefix ?=
    kerneldir   ?= $(prefix)/kmod
    else
    ifeq ($(RTE_EXEC_ENV),linuxapp)
    kerneldir   ?= /lib/modules/$(shell uname -r)/extra/dpdk
    else
    kerneldir   ?= /boot/modules
    endif
    prefix      ?=     /usr/local
    endif

    安装install完成之后,/usr/local目录如下,DPDK的目标文件主要安装在了4个大目录下:/usr/local/bin、/usr/local/lib、/usr/local/sbin和/usr/local/share目录。
     

    $ ls /usr/local/bin
    dpdk-pdump  dpdk-pmdinfo  dpdk-procinfo  dpdk-test-compress-perf  dpdk-test-crypto-perf  dpdk-test-eventdev
    $ ls /usr/local/include/
    dpdk
    $ ls /usr/local/lib
    libdpdk.a              librte_eal.a            librte_kvargs.a          librte_net.a
    $
    $ ls /usr/local/sbin
    dpdk-devbind
    $
    $ ls /usr/local/share/
    applications  dpdk  info  man
    $
    $ ls /usr/local/share/applications/
    $ ls /usr/local/share/dpdk/
    build  buildtools  examples  mk  usertools

    如果要更改默认的安装路径,只需要在make install时指定prefix即可。如将/usr/local修改为指定目录/home/build,命令如下:

    $ make install prefix=/home/build

    继续查看mk/rte.sdkinstall.mk文件,如下。如果需要更细致的控制DPDK安装路径,以下的参数都可以在install命令行指定。如指定exec_prefix路径可更改DPDK的bin、sbin和lib的安装目录。当然也可单独为每一项指定安装目录,参数分别为bindir、sbindir和libdir。

    exec_prefix ?=      $(prefix)
    bindir      ?= $(exec_prefix)/bin
    sbindir     ?= $(exec_prefix)/sbin
    libdir      ?= $(exec_prefix)/lib
    includedir  ?=      $(prefix)/include/dpdk
    datarootdir ?=      $(prefix)/share
    docdir      ?=       $(datarootdir)/doc/dpdk
    datadir     ?=       $(datarootdir)/dpdk
    mandir      ?=       $(datarootdir)/man
    sdkdir      ?=                $(datadir)
    targetdir   ?=                $(datadir)/$(RTE_TARGET)

    关于内核模块,默认情况下编译出来的内核模块安装在/boot/modules,可通过指定kerneldir变量的值进行修改。


    另外一个修改安装顶层目录的方法是,指定DESTDIR变量。文件mk/rte.sdkinstall.mk在定义的最终安装目录规则为:$(DESTDIR)/$(prefix)。如下指定DESTDIR=/home,prefix=test/dpdk:

    $ make install DESTDIR=/home prefix=test/dpdk

    安装完成之后,DPDK目标文件安装到了/home/test/dpdk目录下:

    $ ls /home/test/dpdk/
    bin  include  lib  sbin  share

    DPDK的examples示例编译的目标程序文件,由mk/rte.app.mk控制安装。默认情况下安装在$(RTE_OUTPUT)/app目录下,即相应example的build/app目录下,如l3fwd示例程序,其安装目录位于:examples/l3fwd/build/app/。

    #
    # install app in $(RTE_OUTPUT)/app
    #
    $(RTE_OUTPUT)/app/$(APP): $(APP)
        @echo "  INSTALL-APP $(APP)"
        @[ -d $(RTE_OUTPUT)/app ] || mkdir -p $(RTE_OUTPUT)/app
        $(Q)cp -f $(APP) $(RTE_OUTPUT)/app

    示例程序l3fwd编译如下:

    root@ubcontainer:~/dpdk-19.02/examples/l3fwd# make
      CC main.o
      CC l3fwd_lpm.o
      CC l3fwd_em.o
      LD l3fwd
      INSTALL-APP l3fwd
      INSTALL-MAP l3fwd.map
    root@ubcontainer:~/dpdk-19.02/examples/l3fwd#

    最后,将DPDK的编译和安装在一条命令执行,如下。指定T目标变量。由以上文件mk/rte.sdkinstall.mk可知,在指定了T之后,prefix为空,即其默认值不再时/usr/local,所以如下的命令相当于在不指定T的情况下,将prefix指定为空的效果:make install DESTDIR=/home/test/dpdk prefix=。

    root@ubcontainer:~/dpdk-19.02# make install DESTDIR=/home/test/dpdk  T=x86_64-native-linuxapp-gcc

     

    展开全文
  • DPDK环境搭建(史上最全、最细版)一、DPDK安装前准备工作二、配置内存大业以及bios设置三、接收端配置四、发送端配置 本人配置DPDK数十次、特别是centOS7.2 、7.6版本,根据走过的坑总结以下内容。 一、DPDK安装前...


    本人配置DPDK数十次、特别是centOS7.2 、7.6版本,根据走过的坑总结以下内容。

    一、DPDK安装前准备工作

    1 确认网卡型号

    lspci -vvv|grep Ethernet
    

    在这里插入图片描述
    2 确认网卡是否被DPDK支持
    登录网址直接进行搜索型号信息
    link
    3 确认系统型号

    cat /etc/redhat-release
    

    4 根据版本型号确定要下载的DPDK版本
    同样上官网查询适合版本

    二、配置内存大业以及bios设置

    1 配置内存大业

    vim /etc/grub2.cfg
    

    在第一个menuentry中,UTF-8后添加:

    hpet=enable default_hugepagesz=1G hugepagesz=1G hugepages=40
    

    配置完成后重启同时配置bios
    在这里插入图片描述
    2 bios配置
    NUMA:开启
    3 重启后配置大业信息

    echo 20 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
    echo 20 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
    

    4 查看大业是否配置成功

    cat /proc/meminfo | grep Huge
    

    在这里插入图片描述
    5 设置CPU最佳性能

    cpupower frequency-set -g performance
    

    查看性能是否最佳

    cpupower frequency-info
    

    在这里插入图片描述

    三、接收端配置

    1 官网下载
    link
    2 解压文件

    xz -d dpdk-17.11.4.tar.xz
    tar -xvf dpdk-17.11.4.tar
    

    3 进入目录配置环境变量

    cd dpdk-stable-17.11.4
    echo "export RTE_SDK=`pwd`" >> /etc/profile
    echo "export RTE_TARGET=x86_64-native-linuxapp-gcc" >> /etc/profile
    echo "export EXTRA_CFLAGS='-O0 -g'" >> /etc/profile
    source /etc/profile
    

    4 编译
    注意网卡为Mellanox-cx5或者cx4在编译前需要打开PMD,否则运行pktgen或者testpmd时会找不到驱动

    make install T=x86_64-native-linuxapp-gcc
    cd dpdk-stable-17.11.4/x86_64-native-linuxapp-gcc
    vim .config
    

    (1) 如果网卡是Mellanox-cx5修改以下选项

    CONFIG_RTE_LIBRTE_MLX5_PMD=y
    CONFIG_RTE_LIBRTE_MLX5_DEBUG=y
    CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8
    

    (2) 如果想使用pdump(DPDK内抓包工具),修改以下选项

    CONFIG_RTE_LIBRTE_PMD_PCAP=y 
    CONFIG_RTE_LIBRTE_PDUMP=y 
    

    修改完以上设置后,保存

    make
    

    退回到dpdk-17.11.4目录下并进行如下编译

    cd app
    make
    

    5 网卡绑定
    Mellanox网卡不需要绑定,Intel && Broadcom需要绑定,Intel && Broadcom需要使用DPDK驱动,绑定成功后在“ip a”下不可见
    (1)安装lspci

    yum install -y pciutils
    

    (2)网卡绑定
    机器每次重启需要重新进行网卡绑定
    进入dpdk-17.11.4文件进行网卡绑定

    lspci | grep -i eth #查看网卡对应的PCIE地址,例如:af:00.0 af:00.1】
    modprobe uio
    insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
    ifdown ethX #绑定前需要改变网卡状态
    ./usertools/dpdk-devbind.py -b igb_uio 0000:06:00.0 #此处需要填写PCIE对应的地址
    

    查询网卡绑定情况

    ./usertools/dpdk-devbind.py --status
    

    网卡解绑

    ./usertools/dpdk-devbind.py -u 0000:06:00.0 #解绑
    解绑网卡重新绑定回Kernel driver 需要执行reboot命令
    

    6 找到可执行脚本testpmd

    find -name testpmd
    脚本在 dpdk-stable-17.11.4/app/build/app/
    

    7 执行命令

    ./testpmd –l 10-19 –n 4 -- -i --rxq=4 --txq=4 --rxd=4096 --txd=4096 –nb-cores=8 –nb-ports=2
    

    四、发送端配置

    1 下载pktgen
    link
    本人使用版本为pktgen-3.4.9.zip
    2 解压

    unzip pktgen-3.4.9.zip
    cd pktgen-3.4.9/
    

    3 设置环境变量
    如果接收端设置过不用在设置

    export RTE_SDK=/root/dpdk/dpdk-stable-17.11.4/
    export RTE_TARGET=x86_64-native-linuxapp-gcc
    

    4 编译【编译前安装依赖项,否则会报错】

    yum install -y libpcap-devel
    make
    

    5 绑定网卡
    6 找到可执行脚本pktgen

    find -name pktgen
    脚本在/pktgen-3.4.9/app//x86_64-native-linuxapp-gcc/
    

    7 执行命令

    ./pktgen -l 0,24-30 -n 1  -- -T –p 0x1 -m "[24:25-30].0" 
    
    展开全文
  • DPDK安装与简单使用

    万次阅读 2019-02-06 12:52:33
    DPDK安装与简单使用 1.dpdk安装 0)为确保DPDK安装成功,程序正常编译使用,安装前应执行如下命令,安装程序依赖 yum update yum install libpcap-devel kernel* 之后关闭虚拟机再新添加一个网卡。 1)下载...
  • DPDK安装部署

    千次阅读 2020-06-18 12:37:39
    文章目录目录环境软件依赖安装测试hellowroldPMD 测试 环境 Intel x86 CentOS7 NUMA node >= 1 Memory >= 4GB NICs >= 2 Kernel >= 2.6.33(支持 UIO、HUGETLBFS、PROC_PAGE_MONITOR) HPET...
  • dpdk编译安装

    千次阅读 2015-01-05 17:06:51
    原文地址:...dpdk版本:dpdk-1.7.0 下载地址:http://www.dpdk.org/browse/dpdk/snapshot/dpdk-1.7.0.tar.gz 操作系统:Centos 6.4 内核版本:2.6.32 x86_64 编译过程:tar -xzvf dpdk-1.7.0
  • DPDK安装步骤详细说明

    2020-07-30 23:33:25
    DPDK安装步骤详细说明,DPDK安装步骤详细说明,DPDK安装步骤详细说明
  • 基于DPDK的OVS安装与配置

    千次阅读 热门讨论 2017-09-19 08:52:54
    本文主要描述一下ovs和dpdk如何安装,与简单的配置。
  • DPDK 之ubuntu安装

    千次阅读 2015-09-21 10:00:42
    主要讲解如何在虚拟机下安装DPDK开发环境步骤1.安装VM-Workstation处理器数量至少2个核一个用于DPDK报文处理一个用于内核处理,2个网络适配器一个用于DPDK报文处理一个用于内核处理。就用默认的NAT模式即可。2.进入...
  • DPDK入门,安装,编译

    千次阅读 2018-08-03 09:55:53
    参考:DPDK官网 https://software.intel.com/zh-cn/networking/dpdk 版本:dpdk-stable-17.08.1 http://dpdk.org/download 1.下载源代码: wget https://fast.dpdk.org/rel/dpdk-17.08.1.tar.xz 2.解压: xz ...
  • DPDK在虚拟机上的安装和使用

    千次阅读 2015-12-29 09:19:03
    DPDK安装与使用
  • Pktgen-DPDK使用说明

    万次阅读 2015-04-17 20:38:29
    Pktgen-DPDK是6wind基于intel dpdk开发的一个发包工具;用于测试dpdk的包转发能力。
  • DPDK学习笔记<2>DPDK安装部署

    千次阅读 2017-04-07 16:45:36
    DPDK安装和部署 下载和解压: (centos下sudo可能不能使用sudo如果不知道如何配置建议使用root)  创建DPDK目录:sudo mkdir /home/DPDK  进入DPDK目录:cd /home/DPDK/  下载稳定版16.11.1:sudo wget  ...
  • 基于DPDK的OVS环境搭建及验证

    千次阅读 2017-01-19 17:15:22
    目 录 1. 前言 3 2. 实验环境 3 2.1. ONOS环境 3 2.1.1. 环境依赖 3 ...2.2. DPDK和OVS编译安装 4 2.2.1. 安装DPDK 4 2.2.2. 安装OVS 4 2.2.3. 配置hugepage 5 2.2.4. 使用DPDK绑定网卡 5 2.
  • DPDK编译安装与配置方法

    千次阅读 2019-03-12 10:42:43
    dpdk版本:dpdk-17.11.3 1.安装依赖库m4、bison、flex 和eal_memory支持:到对应版本的iso镜像文件中找rpm包 rpm -ivh m4-1.4.16-10.el7.x86_64.rpm rpm -ivh bison-2.7-4.el7.x86_64.rpm rpm -ivh flex-2.5.37-...
  • dpdk的编译

    千次阅读 2019-02-11 14:48:18
    第一步下载dpdk源码和安装依赖包 git clone git://dpdk.org/dpdk yum install kernel-headers libpcap-devel numactl-devel dpdk的编译可以通过两种方式来编译 第一种是通过下载的dpdk目录下的usertools/dpdk-setup...
  • DPDK中文-DPDK工具(pdump)

    千次阅读 2017-02-28 23:21:25
    翻译自:...是DPDK提供给我们意secondary方式运行程序捕获dpdkport报文的app;一句话就是dpdk抓包的工具; 注意: pdump只能是主dpdk程序准备OK了; pdump依赖基于PMD的libpcap。这个选项默
  • 【Intel DPDK】网卡无法绑定的错误

    千次阅读 2013-12-20 13:42:23
    2、dpdk对不同的内核版本支持的不好,提示如下,如fedora19无法绑定多块网卡,目前属于dpdk的bug,所以实验时采用fedora 18版本,目前1.5.1r1版本未修复。 dpdk can't bind igb_uio can't open ..
  • yum install numactl yum install numactl-libs yum install numactl-devel
1 2 3 4 5 ... 20
收藏数 1,340
精华内容 536
关键字:

dpdk安装