Twhs
18 October 2014
twhs
mininet + OpenFlowコントローラのフラームワークである Ryu を使用して、Ryuのチュートリアルにあるスイッチングハブの実装・動作を確認してみようと思います。
参考にするURLは以下になります。
mininet と Ryu のインストール
mininet は以下の手順でインストール出来ます。
$ git clone git://github.com/mininet/mininet
$ cd minine
$ ./util/install.sh -nfv
Ryu のインストールは以下です。
$ pip install ryu
$ ryu-manager --version
3.13
mininetのインストールで入る、Open vSwitchのバージョンは1.4.6ということで、OpenFlow1.3に対応しおらず、1.3のOpenFlowなスイッチの動作は確認出来ませんでした。。orz
ソースコード確認
確認したのは、1.3のスイッチハブ実装です。
流れ的には、
- SwitchFeatures リクエスト受信
- add_flowでデフォルトのflowを追加
- Datapath.send_msg()が呼ばれて、FlowModメッセージ送信
- Packet-inメッセージが来たら、macアドレステーブルを更新
- 転送先ポートの判定。対応するポートがあれば5へ。なければフラッディングして、6へ
- add_flowで対応するflowを追加
- 3に戻る
- OFP_VERSIONSでOpenFlowのバージョン指定
- set_ev_clsデコレータで各OpenFlowメッセージごとのイベントハンドラを指定
- set_ev_clsにはイベントクラスとOpenFlowスイッチのステートを指定
- DatapathクラスがOFスイッチとの通信を制御している
- Flowテーブルのマッチ条件は、OFPMatchクラスで指定
参考にしたサイト
blog comments powered by Disqus