僕はDPDKをやっている人ではありません(XDP・netmap入門)

 僕はDPDKをやっている人ではありません(XDP・netmap入門)

3d2a11cc11464632384563f5192f64d4?s=128

khwarizmi

March 12, 2019
Tweet

Transcript

  1. 2.

    自己紹介 - 河原颯太(かわはらそうた) @khwarizmi6514 - 法政大学応用情報工学科 学部4年 金井(ネットワークセキュリティ)研究室所属 - 小学5年から野球を初めて高校3年までやっていた.

    - 春日部高校出身です! (これを言うといろんなところで先輩後輩が釣れることに最近 気が付いた) - パソコンとは無縁の生活だったが, 大学入学時, 気が付いたらパソコンをやらなけ ればいけなくなっていた. - 一緒に研究をしてくれる後輩募集中 (一人で研究をしていて寂しい)
  2. 3.

    最近やってること - NICのデバドラ開発 - NICのハードウェア機能活用による性能比較調査 - Linuxネットワークパフォーマンス調査 - XDPとnetmap *最近やりたいこと*

    - FreeBSDで性能調査(ネットワークスタック参照したりしときながら触ったことがな い) - 自作キーボード(家でやったらニッパがざこくてまだ完成してない) - FPGA(購入してLEDチカチカまでしてそのままタンスの奥にいる) - EDM作りたみがある
  3. 11.

    ビルド・モジュールロード $ sudo apt install linux-headers-`uname -r` $ git clone

    https://github.com/luigirizzo/netmap.git $ cd netmap $ make $ insmod netmap.ko
  4. 12.

    pkt-gen $ cd apps/pkt-gen $ make $ sudo ./pkt-gen -i

    vale0:rx -f rx $ ./pkt-gen -i vale0:tx -f tx -R 1
  5. 13.
  6. 15.

    XDP

  7. 16.

    XDPのポイント - カーネルの機能利用することができる - 透過的に現在利用しているアプリケーションに利用できる - 動的に使える - 下手するとカーネルパニック -

    eBPF verifierによる事前静的検証 - ループを許可しない (単純なループのみ許可する方向で話が進んでいるらしい - プログラムの長さを制限 (tail call で回避可能
  8. 18.

    環境 - OS: Fedora 29-1.2 (ubuntuだと動かなかった) - kernel: 4.20.13 (

    >= 4.12) - プログラムローダ: iproute2-ss190107
  9. 20.

    コンパイル&ロード $ clang -O2 -Wall -target bpf -c xdp_drop.c -o

    xdp_drop.o $ sudo ip link set dev enp0s8 xdp obj xdp_drop.o
  10. 22.
  11. 23.