Open vSwitchソースコードリーディングに向けて その2
昨日は、ファイルの行数トップ10などを確認したが、ソースコードツリーの全体をざっくと見てみることにする。
トップディレクトリ
READMEをはじめとして、まず最初に目を通しておいた方が良さそうなファイルが並んでいる。各種インストール手順はINSTALL.*に書いてある。
DESIGNは、Open vSwitchのアーキテクチャ設計が解説されているのかと思ったが、中を見てみると主にOpenFlow関係の実装方針が書かれているようである。
実は、アーキテクチャ全体の概略はPORTINGを見た方が分かるくさい。"Open vSwitch Architectural Overview"という見出しがある。
NEWSには、これまでのリリースノートと、これからのリリースの載せる機能が書かれている。Version 1.6.0までの機能追加プランとPost 1.6.0のプランが記載されている。
datapath/
名前からしてパケットフォワーディングに関係したソースコードが格納されているくさい場所。vport-*.c, vport.cとdatapath.c, datapath.hあたりが重要そう。子ディレクトリのlinuxの下にはカーネルモジュールに関係したファイルが置かれていると推測。
lib/
ファイルが大量にある。基本的なデータ構造に関係しそうな、hmapなどといったものからAES関係くさいaes128.cやら、flow, dpif, vconnなどネットワークに関わるもの、ofp-*などのOpenFlow関係のものなどいろいろ格納されている。
ovsdb/
Open vSwitchの制御プロトコル?のOVSDB関係のファイルが格納されていると推測。
test/
その名の通りテスト関連のディレクトリ。格納されているファイルの種類としては、*.pyと*.cと*.atがあるようだ。前者二つは分かるが、*.atが何だか分かっていない。
utilities/
ovs-*という実行ファイルを最終的に作るためのmain関数を含んだソースファイルが格納されている。