Gopenflow demo v1
-
Upload
hiroaki-kawai -
Category
Documents
-
view
145 -
download
2
Transcript of Gopenflow demo v1
2
gopenflow = golang + openflow
● Openflow switchの実装▫ vendor拡張を入れたかった▫ Openflow仕様の細かいところまで突っ込めるようにしておきたかった
● golang?▫ pythonよりはパフォーマンスを出したかった▫ Cよりは処理系のサポートを受けたかった▫ 流行ってるし :-)▫ 実はMIPSのサポートが弱く、openwrt …系が厳しい
● gccでgolang …を駆使している人たちはいるようだが
3
Installation
● 通常のgolangプロジェクト通り
$ export GOPATH=$HOME/golib
$ go get github.com/hkwi/gopenflow
$ go install github.com/hkwi/gopenflow/ofp4sw/trema_sw$ go install github.com/hkwi/gopenflow/ofp4sw/ofctl$ go install github.com/hkwi/gopenflow/ofp4sw/ofmon
GOPATHはgoのworkspace
必要ファイル群のツリーが出来上がります
$GOPATH/bin以下にコマンドが生成されます。
(go get では、ここまでは行われない)
4
golang TIPS
● 実行ファイル▫ 静的リンクの単一バイナリファイル▫ クロスコンパイルはGOOS, GOARCHを指定するだけ▫ WindowsでLinux向けクロスコンパイルもできる
● ただし下準備が必要● $GOPATH/src▫ ソースツリーがそのまま取得されている。▫ git pullできる
● コマンド生成▫ コマンドがある該当ディレクトリに入る▫ go build *.go で実行ファイルがその場に生成できる
5
gopenflowコマンド
● trema_sw▫ Openflow switch プログラム本体▫ trema-edgeにあるCで書かれたopenflow switchと引数が同じ感じになっている。それだけの理由。
● ofctl▫ stratosphere experimenterを扱えるように、ovs-ofctlの機能の一部を代わりに実装。
● ofmon▫ openflow packet_inを可読な文字列で出力するモニタリングプログラム。▫ ovs-ofctlのsnoopやmonitorに類似。
6
デモ構成
netdev netdev netdev
gopenflow trema_sw
twink
ofmon
ofctl
7
とりあえずデモ