DPDK環境搭建和測試

2021-07-07 06:14:07 字數 3294 閱讀 1495

gnumake

coreutils:cmp, sed, grep, arch

gcc:versions  >= 4.5.x

libcheaders (glibc-devel.i686 / libc6-dev-i386; glibc-devel.x86_64 for 64-bitcompilation)

linuxkernel headers or sources required to build kernel modules. (kernel- devel.x86_64)

additionalpackages required for 32-bit compilation on 64-bit systems are: glibc.i686,libgcc.i686, libstdc++.i686 and glibc-devel.i686

python,version 2.6 or 2.7

指令碼在tools子目錄中,用於自動化建立dpdk執行環境。

指令碼在tools子目錄中,允許使用者完成以下任務:

1)構建intel dpdk 庫環境。

2)插入和移除intel dpdk igb_uio、

vfio、kni核心模組。

3)為numa和非numa體系結構建立和刪除大葉表(hugpage)。

4)檢視網絡卡狀態和為dpdk應用預定網絡卡。

5)為非root使用者提供使用vfio的許可權。

6)執行test和testpmd程式。

7)檢視大葉表的記憶體資訊。

8)檢視/mnt/huge葉表。

9)移除intel dpdk的庫環境。

補充說明:

igb_uio:自英特爾

®dpdk 1.7

版本提供了

vfio

支援,igb_uio

模組的編譯和使用已成為可選的平台

,支援使用

vfio

。必須載入項,用如下命令進行載入:

sudo modprobe uio

sudo insmod kmod/igb_uio.ko

uio(userspace i/o)是執行在使用者空間的i/o技術。linux系統中一般的驅動裝置都是執行在核心空間,而在使用者空間用應用程式呼叫即可,而uio則是將驅動的很少 一部分執行在核心空間,而在使用者空間實現驅動的絕大多數功能!使用uio可以避免裝置的驅動程式需要隨著核心的更新而更新的問題

kni: (k nativeinte***ce) sun在發布的kvm源**中其實就已經提供kni(k native inte***ce)這套比較標準的api擴充套件輔助庫

總共分為5步,每一步操作提供一些選項供使用者去建立執行環境。分別簡單介紹每乙個步驟完成的任務。

1)建立dpdk庫環境

首先,使用者必須選擇正確的物件目標和編譯環境。並且,使用者的安裝環境必須有前面建議的安裝環境。

2)安裝環境

使用者配置linux 執行環境來使用dpdk應用程式。支援nump和非nump體系結構。屬主環境中存在的大葉表都將被刪除。這一步會載入相應的核心模組,並且會為dpdk應用繫結相應的網絡卡(port)。

3)執行應用程式

一旦以上步驟完成,使用者可以執行自帶的測試程式(test)。test應用允許使用dpdk的一些相關函式。testpmd支援傳送和接收資料報。

4)檢查系統環境

這一步提供一些工具檢視hugepage資訊。

5)系統環境清理

可以恢復系統到原來的狀態。

如下列子是演示如何使用setup.sh指令碼。應該source命令去執行指令碼。

用root使用者執行指令碼。

說明:測試程式執行過程是在虛擬機器下完成。

4.1虛擬機器的搭建

4.1.1建立虛擬機器

安裝虛擬機器和centos6.5。

4.1.2新增兩張inetl 千兆網絡卡

在安裝目錄f:\centos_vm\centos.vmx檔案下新增:

ethernet1.virtualdev ="e1000" 

ethernet1.present = "true"

ethernet2.virtualdev ="e1000" 

ethernet2.present = "true"

並設定為host only。開啟虛擬機器檢視是否新增成功,使用如下命令進行查詢:lspci  | grep ethernet  

4.2.1新增環境變數

exportrte_sdk=『pwd『

由於我的是32虛擬機器,所以我選擇i686,將x86_64那行環境變數注釋掉;

4.2.2執行setup.sh

./tools/setup.sh  

rte_sdkexported as /home/pym/dpdk-1.7.0

step 1: selectthe dpdk environment to build

[8] insert igb uio module

[9] insert vfio module

[10] insert kni module

[13] display current ethernet device settings

[14] bind ethernet device to igb uio module

[15] bind ethernet device to vfio module

[16] setup vfio permissions

step 4: othertools

[19] list hugepage info from /proc/meminfo

step 5:uninstall and system cleanup

[20] uninstall all targets

[21] unbind nics from igb uio driver

[22] remove igb uio module

[23] remove vfio module

[24] remove kni module

[26] exit script

4.2.3根據系統型別選擇

測試環境選擇1

4.2.4安裝igb_uio

選擇8

4.2.5設定hugepage

選擇11

有讓你輸入預留記憶體大小的 我輸入的是 64  ,   64  乘以 2m  可以128m 做個簡單的測試夠了。

4.2.6進行網絡卡bind

選擇14

讓你輸入pci的位址, 你只要將0000:02:06.0 中的,0000冒號後面的幾位輸入就行了, 如  02:06.0   記得標點也要輸。

4.2.7選擇對應的程式進行測試

選擇17

dpdk環境搭建

步驟一 yum update yum install libpcap devel kernel 安裝程式依賴 config rte librte vhost numa y改為 config rte librte vhost numa n config rte kni kmod y改為 config ...

dpdk環境搭建之命令搭建

我使用的是centos7和dpdk16.07,centos7剛搭建完成後會有一些安裝一些工具,還有一些在配置過程中會出現的其它的錯誤在這篇文章中我就不重複說了,可以看我的 dpdk環境搭建 文章。用於交流學習,如果有錯,希望大家可以指出。1 先修訂dpdk的bug 否則在測試的時候會報錯 2.igb...

Appnium環境搭建和定位

1 環境搭建 設定各種環境變數 開啟開發人員選項 usb除錯 第乙個移動自動化程式 coding gbk fromimport webdriver import time desired caps driver webdriver.remote desired caps time.sleep 5 d...