pktgenとパケットキャプチャとLinux kernel 4.4

Posted on 2017/01/05(Thu) 03:05 in technical • Tagged with linux_kernel, pktgen, tcpdump

Linuxにパケットジェネレータ機能を提供するpktgenは、非常に高速にパケット送信を行うことができるカーネルモジュールである。

pktgen自体については PCとpktgenで行くショートパケットワイヤレートの旅 を参照。

pktgenで送信中のパケットがtcpdumpで確認できないという話があったため、その説明のため簡単にコールスタックを追った結果を残しておく。

賢明な諸氏のことなので、図を見れば説明は不要なことと思う。

0105a_pktgen_tcpdump_001.png

Figure 1. Linux kernel 4.4におけるパケット送信時のコールスタック(一部省略)


Continue reading

Open vSwitch kernel moduleの実装からLinux kernel network stackに寄り道する

Posted on 2014/05/21(Wed) 20:25 in technical • Tagged with openvswitch, linux_kernel

Open vSwitch kernel moduleの実装を読みつつ、よくわかんないので 結果的にLinux kernelも読みに行くことになってしまったメモです。

Open vSwitchでVXLANを使ってみたりしたけど、VLANと一緒に使ったときの扱いとか、 細かいところを気にするとやっぱりコード読んだ方が良いんじゃないかと思ったので、 処理経路の整理も兼ねてコードを追ってみることにしたのです。

およそ、この辺に触れる。

  • Linux-kernel-3.11のNetwork stack

    • dev.c

    • ip_input.c

    • ip_output.c

    • udp.c

  • openvswitch-2.1.0のKernel module


Continue reading