DPDK ===== setup ------ ビルドツールがmakeからmeson & ninjaに変わっていた(とりあえず確認 2020-09-22 DPDK 20.08.0) :: $ sudo apt install meson ninja-build とりあえずライブラリのインストールはこれで良さげ? $ cd $RTE_SDK $ meson build $ cd build $ ninja $ sudo ninja install $ sudo ldconfig これにより、ビルドサブディレクトリに DPDK がコンパイルされ、結果として得られたライブラリ、ドライバ、ヘッダファイルがシステム上にインストールされます (通常は /usr/local)。DPDK 用のパッケージ設定ファイル libdpdk.pc もインストールされ、コンパイルやアプリケーションとのリンクが容易になります。 フラグの管理?にpkg-configを使ってるみたい $ sudo apt install pkgconf これで多分以前まで設定してた環境変数とかがいらなくなる感じ? いやこれ別にそう言う話ではない.て言うか以前から使われていて,pkgconfがいないマシンで普通に動いてたんだけどなんだこれ. このあと,helloworld動かすときに,なんかmeson.buildを編集する必要があった. $ cd examples/helloworld $ vim meson.build + project('dpdk-app', 'c') + dpdk = dependency('libdpdk') + sources = files('main.c') + executable('dpdk-app', sources, dependencies: dpdk) ※めんどいからサンプル丸投げしてるけど,本当ならちゃんと書き直すべき. $ meson build $ cd build $ ninja これでとりあえずビルドして実行までできた. 依然としてmakeもできるみたいだが,どうもできないような気がする...? そもそもTOPのMakefileのallターゲットが,meson&ninja使えよっていう文を出力してるだけになってるから 普通に無理じゃね? https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html#installation-of-dpdk-target-environment-using-make また,将来は廃止されることが明記されていて,makeを利用した方法は推奨されていない. 以前のsetup ----------- envs ~~~~ :: $ echo "export RTE_SDK=$HOME/dpdk" >> $HOME/.bashrc $ echo "export RTE_TARGET=x86_64-native-linuxapp-gcc" >> $HOME/.bashrc packages ~~~~~~~~ :: $ sudo apt install -y libpcap-dev python linux-headers-`uname -r` build-essential git libnuma-dev clone and build DPDK ~~~~~~~~~~~~~~~~~~~~~~~~ :: $ git clone http://dpdk.org/git/dpdk $RTE_SDK $ cd $RTE_SDK $ make install T=$RTE_TARGET setup Hugepages ~~~~~~~~~~~~~~~ :: $ sudo vim /etc/default/grub - GRUB_CMDLINE_LINUX="" + GRUB_CMDLINE_LINUX="hugepages=1024" $ sudo grub-mkconfig -o /boot/grub/grub.cfg $ sudo mkdir -p /mnt/huge $ sudo vim /etc/fstab + nodev /mnt/huge hugetlbfs defaults 0 0 $ reboot helloworld ~~~~~~~~~~ :: $ cd $RTE_SDK/examples/helloworld $ make $ sudo ./build/helloworld bind NIC ~~~~~~~~~ comming soon useage ~~~~~~ skelton with tap ```````````````` :: $ sudo ./build/basicfwd --vdev=net_tap0,iface=tap0 --vdev=net_tap1,iface=tap1 pktgen ``````` dpdk v16.11 :: $ git clone https://github.com/slankdev/pktgen $ sudo ./app/x86_64-native-linuxapp-gcc/pktgen -- -P -m "[1-7].0,[16-23].0,[8-15].1,[24-31].1" command ++++++++ *再表示* :: redisplay