Linuxにおける利用が急速に増えている「Berkeley Packet Filter(BPF)」について、基礎から応用まで幅広く紹介する連載「Berkeley Packet Filter(BPF)入門」。前回までは、BPFの基本やBPFのプログラムの作成方法を説明しました。今回から、「LinuxのBPFで何ができるのか」について詳しく見ていきます。 なお本稿では、Linux 5.3のソースコードを参照しています。 BPFでできること BPFプログラム実行の流れをおさらいしましょう。 ユーザーはBPFプログラムを作成し、システムコールを利用してそれをLinuxカーネル内に登録します(図の【1】)。そうして登録されたBPFプログラムは、対応するイベントが発生すると、Linuxの中で引数が1つ、戻り値も1つの関数として実行されます(図の【2】)。BPFプログラムは実行中にカーネル内のヘルパー関
![LinuxのBPFで何ができるのか? BPFの「プログラムタイプ」とは](https://cdn-ak-scissors.b.st-hatena.com/image/square/71cea44bba7ce57f05b1a4c95fdbda398f75b987/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fait%2Farticles%2F1910%2F07%2Fcover_news008.png)