Berkeley Packet Filter
BPFのフィルタリング機能は、BPF仮想マシン向けの機械語のインタープリターとして実装されている。BPF仮想マシンは32ビットのマシンであり、固定長の命令、1つのアキュムレータ、1つのインデックスレジスタを備えている。この言語で書かれたプログラムでは、パケットからのデータのフェッチ、パケットのデータに対する算術演算の実行、結果に対する定数・パケット内のデータ・結果内のテストビットとの比較を行い、その結果に基づいてパケットをacceptまたはrejectすることができる。
BPFは、しばしばロード(ld)とストア(str)命令を「オーバーロード」することで拡張される。
伝統的なUnix系のBPF実装はカーネル空間用に記述されているが、ユーザー空間で使用できる。この仕組みは、プリプロセッサの条件分岐を使用して実現されている。