Linux/i386のパケット受信フロー

同じものを何度も書いてはいるのだが、OpenBSDの図のように共有データとロックの関係についてはあまり調べて無かったと思ったのでこちらも作ってみた。

正直、RCUがどうなっているのか未だ理解出来ていない。
恐らくロック区間でロックした時点でのバージョンのデータが読める事を保証しているのだと思うが。
RCUとは別にロックをかけている所は二つのキューなので、これは常にデータ一貫性が求められているからだろう。多分。

まぁしかし深い…これでもかなり省略したのだが。
実際にはGROとかTCPのステート処理とかパケットフォワーディングとかIPv6とかトンネリングとか描いてないものは未だ山ほどある。