Open vSwitchのソースコードを読む(5) ovs-vswitchd の main loop
前回はovs-vswitchdのmain関数のloopの前まで見たので、今回はloopの中を見ていきます。
main loopの中身
existing という変数でループを抜けるかどうか判定しています。existingの変数はunixctlでexitコマンドが送られてきたときにtrueにセットされます。 あとは初期化していたいろんなものを順次走らせています。
exiting = false;
while (!exiting) {
worker_run();
if (signal_poll(sighup)) {
vlog_reopen_log_file();
}
memory_run();
if …
Open vSwitchのソースコードを読む(4) ovs-vswitchdの初期化
Open vSwitchのソースコードを読む(2) Kernel Module
最初にKernel moduleを読んでいきます。パケットの転送をするのですから、パケットの入力の部分、転送ルールを検索し適用する部分、パケットの出力をする部分があるはずです。また、ovs-vswitchdと通信している部分もあるはずです。それらがどのように処理されているのかを探していくところから始めます。
ソースコードを読む前に
datapath/READMEがあるので、これを一通り読みます。datapathはbridgeのようなもの、vportsはdatapathにつながるポート(たぶんインターフェイスと対応付けられるんだと思います)で、それぞれのdatapathにはflow tableがあって、flow …
read moreOpen vSwitchのソースコードを読む(1) 読み始める
最近、Open vSwitchのソースコードを読んで処理を追っているので、そのメモを書いていこうと思います。転送するパケットとOpenFlowプロトコルがどう処理されるのかを知りたくて読んでいるので、そのあたりが中心です。細かいところを追うときに、いちいち最初から読むのではなく、どこらへんから追えばよいのか分かる、程度を目指しています。
対象は現段階で最新版の1.10.0です。
Open vSwitchとは
Open vSwitchはソフトウェアスイッチの一つで、サーバ仮想化環境のHypervisorで動くソフトウェアスイッチとしてよく使われているのではないかと思います。CitrixのXenServerはOpen …
read moreBlogを書くことにしました
blogを書くことにしました。 研究を進める上でいろんなことを調べるんですが、調べたものを自分やごく限られた人にしか公開しないのはもったいないなぁと感じていました。研究に問題ない範囲で公開できればよいなぁと思っています。
最近は、自分でblogを管理するツールを入れるならWordpressを使うのが主流だと思うんですが(独断と偏見に基づいてます)、今回は静的にページを生成するPelicanを使ってみることにしました。コメントとトラックバックのような機能をTwitterやその他のサービスに任せると割り切れば、生成されるhtmlが変化するタイミングは自分がコンテンツを更新したときだけです。それなら静的にページを生成してくれたほうがサーバの負荷に優しいですし、脆弱性が出たときのツールのアップデートもしばらく放置できるはずです^^;
PelicanはPythonで作られている静的サイト生成ツールです。Rubyで書かれたものだと …
read more