Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

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

Avatar for khwarizmi

khwarizmi

March 12, 2019
Tweet

More Decks by khwarizmi

Other Decks in Programming

Transcript

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

    - 春日部高校出身です! (これを言うといろんなところで先輩後輩が釣れることに最近 気が付いた) - パソコンとは無縁の生活だったが, 大学入学時, 気が付いたらパソコンをやらなけ ればいけなくなっていた. - 一緒に研究をしてくれる後輩募集中 (一人で研究をしていて寂しい)
  2. 最近やってること - NICのデバドラ開発 - NICのハードウェア機能活用による性能比較調査 - Linuxネットワークパフォーマンス調査 - XDPとnetmap *最近やりたいこと*

    - FreeBSDで性能調査(ネットワークスタック参照したりしときながら触ったことがな い) - 自作キーボード(家でやったらニッパがざこくてまだ完成してない) - FPGA(購入してLEDチカチカまでしてそのままタンスの奥にいる) - EDM作りたみがある
  3. ビルド・モジュールロード $ sudo apt install linux-headers-`uname -r` $ git clone

    https://github.com/luigirizzo/netmap.git $ cd netmap $ make $ insmod netmap.ko
  4. 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. XDP

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

    eBPF verifierによる事前静的検証 - ループを許可しない (単純なループのみ許可する方向で話が進んでいるらしい - プログラムの長さを制限 (tail call で回避可能
  7. 環境 - OS: Fedora 29-1.2 (ubuntuだと動かなかった) - kernel: 4.20.13 (

    >= 4.12) - プログラムローダ: iproute2-ss190107
  8. コンパイル&ロード $ clang -O2 -Wall -target bpf -c xdp_drop.c -o

    xdp_drop.o $ sudo ip link set dev enp0s8 xdp obj xdp_drop.o