본문 바로가기

Dev/OVS(DPDK)

[DPDK] DPDK 설치 및 예제 실행

2018.04.09 최신버전으로 새로 작성



DPDK 지원하는 NIC 확인

$sudo ethtool -i eth0

http://dpdk.org/doc/nics 에서 NIC 확인


Hugepage 설정은 서버사양에 따라 다름

$ vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="hugepagesz=1G hugepage=8 iommu=pt intel_iommu=on"

$ update-grub

$ vi /etc/sysctl.conf

vm.nr_hugepages=4096

$ sysctl -p

$ reboot


DPDK 설치

$ wget http://fast.dpdk.org/rel/dpdk-17.05.1.tar.xz 
$ tar xf dpdk-17.05.1.tar.xz 
$ export DPDK_DIR=/usr/src/dpdk-stable-17.05.1 
$ cd $DPDK_DIR 

환경변수 추가
$ export DPDK_TARGET=x86_64-native-linuxapp-gcc 
$ export DPDK_BUILD=$DPDK_DIR/$DPDK_TARGET
$ export RTE_SDK=$DPDK_DIR
$ export RTE_TARGET=$DPDK_TARGET

DPDK 컴파일
$ make install T=$DPDK_TARGET DESTDIR=install
 
$ export LD_LIBRARY_PATH=$DPDK_DIR/x86_64-native-linuxapp-gcc/lib

디바이스 드라이버 추가

$ modprobe uio

$ insmod $DPDK_DIR/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko

$ lsmod | grep uio 


NIC 확인

$ $DPDK_DIR/usertools/dev_debind.py --status

Network devices using DPDK-compatible driver => DPDK 드라이버 사용 중

Network devices using kernel driver => Kernel Driver 사용 중



바인딩

$ ifconfig eth1 0.0.0.0

$ $DPDK_DIR/usertools/dev_debind.py --dev-bind=igb_uio eth1


바인딩 확인

$ $DPDK_DIR/usertools/dev_debind.py --status


예제 실행

$ cd $DPDK_DIR/examples/helloworld

/usr/src/$DPDK_DIR/examples/helloworld$ make

/usr/src/$DPDK_DIR/examples/helloworld$ cd build/app

/usr/src/$DPDK_DIR/examples/helloworld/build/app$ ./helloworld -l 1-2 -n 4







'Dev > OVS(DPDK)' 카테고리의 다른 글

[OVS] OVS-DPDK 설치  (0) 2018.04.10
[DPDK] Pktgen 설치 및 실행  (0) 2018.04.09
[DPDK] DPDK 실행 및 예제  (0) 2018.04.06
[DPDK] DPDK 설치 (Ubuntu 16.04.1)  (0) 2018.04.05
[DPDK] DPDK-PKTGEN 사용하기  (0) 2017.09.16