1. 編譯和運行DPDK示常式序
DPDK(Data Plane Development Kit)是數據平面開發工具包,由用於加速在各種CPU架構上運行的數據包處理的庫組成。
在linux上部署DPDK的方法請參考:
在Linux(CentOS)上部署DPDK------命令行方式
該章節的內容參照自官網的 DPDK build sample apps
當DPDK的target環境創建好後(例如 x86_64-native-linuxapp-gcc ), x86_64-native-linuxapp-gcc 目錄中會包含編譯應用程序的庫和頭文件。
在編譯DPDK應用程序之前,首先需要指定兩個環境變數:
在DPDK的 examples 路徑下面有許多示例應用,這里以其中的 helloworld 為例進行編譯:
DPDK的 examples 路徑下面的應用均可以通過這種方式編譯,也可以直接在 examples 路徑下面運行 make ,將這些應用全都編譯好。
在運行應用程序之前,需要確保:
DPDK應用程序與DPDK target環境的環境抽象層EAL(Environmental Abstraction Layer )庫相關聯,該庫提供了一些通用於每個DPDK應用程序的選項。
EAL的詳細配置請參照: DPDK EAL參數
可按照下列參數運行 ./helloworld :
其中 -l 命令指定cpu cores list是EAL必須的配置;若沒有指定 --socket-mem ,則默認會按照預留的hugepages size來分配。
2. 在虛擬機編譯運行dpvs
修改:PKG_CONFIG_PATH應該謹唯悄是*.pc所在目錄,祥渣如下設置即可。
export PKG_CONFIG_PATH=/root/dpvs/dpdk/dpdklib/lib/x86_64-linux-gnu/pkgconfig
修改:安裝libnuma-dev即可。apt install libnuma-dev
修改:src/Makefile 中加上 -Wno-address-of-packed-member
CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wno-address-of-packed-member -mcmodel=medium
修改:src/Makefile 中加上 -Wno-packed-not-aligned
CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wno-address-of-packed-member -Wno-packed-not-aligned -mcmodel=medium
修改:注山困釋掉下面兩行
修改:安裝 apt-get install libpopt-dev
修改:修改dpip的makefile,添加CFLAGS += $(DEFS) -Wno-address-of-packed-member