SlideShare a Scribd company logo
1 of 7
gopenflow demo v1
Hiroaki Kawai
<kawai@stratosphere.co.jp>
gopenflow = golang + openflow
●
Openflow switchの実装
▫ vendor拡張を入れたかった
▫ Openflow仕様の細かいところまで突っ込めるように
しておきたかった
●
golang?
▫ pythonよりはパフォーマンスを出したかった
▫ Cよりは処理系のサポートを受けたかった
▫ 流行ってるし :-)
▫ 実はMIPSのサポートが弱く、openwrt …系が厳しい
●
gccでgolang …を駆使している人たちはいるようだが
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 では、ここまでは行われない)
golang TIPS
●
実行ファイル
▫ 静的リンクの単一バイナリファイル
▫ クロスコンパイルはGOOS, GOARCHを指定するだ
け
▫ WindowsでLinux向けクロスコンパイルもできる
●
ただし下準備が必要
●
$GOPATH/src
▫ ソースツリーがそのまま取得されている。
▫ git pullできる
●
コマンド生成
▫ コマンドがある該当ディレクトリに入る
▫ go build *.go で実行ファイルがその場に生成できる
gopenflowコマンド
●
trema_sw
▫ Openflow switch プログラム本体
▫ trema-edgeにあるCで書かれたopenflow switchと引
数が同じ感じになっている。それだけの理由。
●
ofctl
▫ stratosphere experimenterを扱えるように、ovs-ofctl
の機能の一部を代わりに実装。
●
ofmon
▫ openflow packet_inを可読な文字列で出力するモニタ
リングプログラム。
▫ ovs-ofctlのsnoopやmonitorに類似。
デモ構成
netdev netdev netdev
gopenflow trema_sw
twink
ofmon
ofctl
とりあえずデモ

More Related Content

What's hot

Google App Engine で ChatOps やっていき
Google App Engine で ChatOps やっていきGoogle App Engine で ChatOps やっていき
Google App Engine で ChatOps やっていきSatoru Takanami
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方Takeshi Mikami
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)TatsuyaKatayama
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんかAtsuhiro Takiguchi
 
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)TatsuyaKatayama
 

What's hot (8)

Google App Engine で ChatOps やっていき
Google App Engine で ChatOps やっていきGoogle App Engine で ChatOps やっていき
Google App Engine で ChatOps やっていき
 
Laravel環境構築
Laravel環境構築Laravel環境構築
Laravel環境構築
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
Jenkins tips 20161014
Jenkins tips 20161014Jenkins tips 20161014
Jenkins tips 20161014
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
 
Gitを使ってみませんか
Gitを使ってみませんかGitを使ってみませんか
Gitを使ってみませんか
 
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
 

Viewers also liked

The twelve months of merch
The twelve months of merchThe twelve months of merch
The twelve months of merchladdin1
 
ISEAL Impacts: Short Course On Indicator Selection
ISEAL Impacts: Short Course On Indicator SelectionISEAL Impacts: Short Course On Indicator Selection
ISEAL Impacts: Short Course On Indicator SelectionISEAL Alliance
 
Gopenflow demo v1 (english)
Gopenflow demo v1 (english)Gopenflow demo v1 (english)
Gopenflow demo v1 (english)Hiroaki Kawai
 
Metro Style Dev #01 IMAP Client
Metro Style Dev #01 IMAP ClientMetro Style Dev #01 IMAP Client
Metro Style Dev #01 IMAP ClientHiroaki Kawai
 
Work Personality
Work PersonalityWork Personality
Work Personalitysmoser3039
 
Trade Adjustment Assistance 2015
Trade Adjustment Assistance 2015Trade Adjustment Assistance 2015
Trade Adjustment Assistance 2015Timothy Theberge
 
Sneeuwklassen 2009 Terugkomdag Vol
Sneeuwklassen 2009 Terugkomdag VolSneeuwklassen 2009 Terugkomdag Vol
Sneeuwklassen 2009 Terugkomdag Volsint.al.jo
 
6. Planning In-Person Training
6. Planning In-Person Training6. Planning In-Person Training
6. Planning In-Person TrainingISEAL Alliance
 
So You Want Be An ISEAL Member?
So You Want Be An ISEAL Member?So You Want Be An ISEAL Member?
So You Want Be An ISEAL Member?ISEAL Alliance
 
Myspace and Indie Music
Myspace and Indie MusicMyspace and Indie Music
Myspace and Indie Musicnimasnimas
 
Support & Service in Governance IT environments
Support & Service in Governance IT environmentsSupport & Service in Governance IT environments
Support & Service in Governance IT environmentsAdi Farkash
 
中金关于金融危机的分析
中金关于金融危机的分析中金关于金融危机的分析
中金关于金融危机的分析sqhuang0328
 
FutureIT Investor Presentation March 09
FutureIT Investor Presentation March 09FutureIT Investor Presentation March 09
FutureIT Investor Presentation March 09RDV Systems
 
Sunrise Solutions Inc.
Sunrise Solutions Inc.Sunrise Solutions Inc.
Sunrise Solutions Inc.Jeff Pollard
 
Rapid Response Are you down with data?
Rapid Response   Are you down with data?Rapid Response   Are you down with data?
Rapid Response Are you down with data?Timothy Theberge
 

Viewers also liked (20)

The twelve months of merch
The twelve months of merchThe twelve months of merch
The twelve months of merch
 
ISEAL Impacts: Short Course On Indicator Selection
ISEAL Impacts: Short Course On Indicator SelectionISEAL Impacts: Short Course On Indicator Selection
ISEAL Impacts: Short Course On Indicator Selection
 
Gopenflow demo v1 (english)
Gopenflow demo v1 (english)Gopenflow demo v1 (english)
Gopenflow demo v1 (english)
 
Metro Style Dev #01 IMAP Client
Metro Style Dev #01 IMAP ClientMetro Style Dev #01 IMAP Client
Metro Style Dev #01 IMAP Client
 
Work Personality
Work PersonalityWork Personality
Work Personality
 
Trade Adjustment Assistance 2015
Trade Adjustment Assistance 2015Trade Adjustment Assistance 2015
Trade Adjustment Assistance 2015
 
Sneeuwklassen 2009 Terugkomdag Vol
Sneeuwklassen 2009 Terugkomdag VolSneeuwklassen 2009 Terugkomdag Vol
Sneeuwklassen 2009 Terugkomdag Vol
 
6. Planning In-Person Training
6. Planning In-Person Training6. Planning In-Person Training
6. Planning In-Person Training
 
So You Want Be An ISEAL Member?
So You Want Be An ISEAL Member?So You Want Be An ISEAL Member?
So You Want Be An ISEAL Member?
 
Myspace and Indie Music
Myspace and Indie MusicMyspace and Indie Music
Myspace and Indie Music
 
Support & Service in Governance IT environments
Support & Service in Governance IT environmentsSupport & Service in Governance IT environments
Support & Service in Governance IT environments
 
WI State Budget 101
WI State Budget 101WI State Budget 101
WI State Budget 101
 
中金关于金融危机的分析
中金关于金融危机的分析中金关于金融危机的分析
中金关于金融危机的分析
 
Islam Denounces Terrorism
Islam Denounces TerrorismIslam Denounces Terrorism
Islam Denounces Terrorism
 
FutureIT Investor Presentation March 09
FutureIT Investor Presentation March 09FutureIT Investor Presentation March 09
FutureIT Investor Presentation March 09
 
Kalkhedon' 2010 kasim
Kalkhedon' 2010 kasimKalkhedon' 2010 kasim
Kalkhedon' 2010 kasim
 
26us
26us26us
26us
 
Sunrise Solutions Inc.
Sunrise Solutions Inc.Sunrise Solutions Inc.
Sunrise Solutions Inc.
 
Rapid Response Are you down with data?
Rapid Response   Are you down with data?Rapid Response   Are you down with data?
Rapid Response Are you down with data?
 
2010' kasim izmit
2010' kasim izmit2010' kasim izmit
2010' kasim izmit
 

Similar to Gopenflow demo v1

組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)Tetsuyuki Kobayashi
 
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Sho A
 
Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 
10分で作るScala開発環境 using vim
10分で作るScala開発環境 using vim10分で作るScala開発環境 using vim
10分で作るScala開発環境 using vimGeorge Okada
 
PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!do_aki
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話雄也 日下部
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggugkimukou_26 Kimukou
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovyirof N
 
Python東海GAEやってみた
Python東海GAEやってみたPython東海GAEやってみた
Python東海GAEやってみたMori Shingo
 
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるにはChrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるにはYosuke HASEGAWA
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#Yoshifumi Kawai
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るYoshio Hanawa
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんKazuhiro Hara
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選Takuya Ueda
 

Similar to Gopenflow demo v1 (20)

組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
 
Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]Let’s translate FuelPHP docs! [RELOADED]
Let’s translate FuelPHP docs! [RELOADED]
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
10分で作るScala開発環境 using vim
10分で作るScala開発環境 using vim10分で作るScala開発環境 using vim
10分で作るScala開発環境 using vim
 
PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!
 
GoでEPC作って本番運用している話
GoでEPC作って本番運用している話GoでEPC作って本番運用している話
GoでEPC作って本番運用している話
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
こんにちはGroovy
こんにちはGroovyこんにちはGroovy
こんにちはGroovy
 
Python東海GAEやってみた
Python東海GAEやってみたPython東海GAEやってみた
Python東海GAEやってみた
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
Chrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるにはChrome-eject がこの先生きのこるには
Chrome-eject がこの先生きのこるには
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
PSGIへの誘い
PSGIへの誘いPSGIへの誘い
PSGIへの誘い
 

More from Hiroaki Kawai

Wireless openflow (english)
Wireless openflow (english)Wireless openflow (english)
Wireless openflow (english)Hiroaki Kawai
 
Play gopenflow (english)
Play gopenflow (english)Play gopenflow (english)
Play gopenflow (english)Hiroaki Kawai
 
Wireless openflow with stratosphere experimenter
Wireless openflow with stratosphere experimenterWireless openflow with stratosphere experimenter
Wireless openflow with stratosphere experimenterHiroaki Kawai
 
Openflow - Reactive? Proactive?
Openflow - Reactive? Proactive?Openflow - Reactive? Proactive?
Openflow - Reactive? Proactive?Hiroaki Kawai
 
できる!trema-switch
できる!trema-switchできる!trema-switch
できる!trema-switchHiroaki Kawai
 
Cloudstack networking2
Cloudstack networking2Cloudstack networking2
Cloudstack networking2Hiroaki Kawai
 
Cloudstack networking の内側
Cloudstack networking の内側Cloudstack networking の内側
Cloudstack networking の内側Hiroaki Kawai
 
Python geohash 紹介
Python geohash 紹介Python geohash 紹介
Python geohash 紹介Hiroaki Kawai
 

More from Hiroaki Kawai (14)

Openflow超解釈
Openflow超解釈Openflow超解釈
Openflow超解釈
 
Wireless openflow (english)
Wireless openflow (english)Wireless openflow (english)
Wireless openflow (english)
 
Play gopenflow (english)
Play gopenflow (english)Play gopenflow (english)
Play gopenflow (english)
 
Play gopenflow
Play gopenflowPlay gopenflow
Play gopenflow
 
Wireless openflow with stratosphere experimenter
Wireless openflow with stratosphere experimenterWireless openflow with stratosphere experimenter
Wireless openflow with stratosphere experimenter
 
Openflow - Reactive? Proactive?
Openflow - Reactive? Proactive?Openflow - Reactive? Proactive?
Openflow - Reactive? Proactive?
 
できる!trema-switch
できる!trema-switchできる!trema-switch
できる!trema-switch
 
Cloudstack networking2
Cloudstack networking2Cloudstack networking2
Cloudstack networking2
 
Cloudstack networking の内側
Cloudstack networking の内側Cloudstack networking の内側
Cloudstack networking の内側
 
Python geohash 紹介
Python geohash 紹介Python geohash 紹介
Python geohash 紹介
 
Webteko mysqlftppc
Webteko mysqlftppcWebteko mysqlftppc
Webteko mysqlftppc
 
Skype Api
Skype ApiSkype Api
Skype Api
 
mysqlftppc 紹介
mysqlftppc 紹介mysqlftppc 紹介
mysqlftppc 紹介
 
Php File Upload
Php File UploadPhp File Upload
Php File Upload
 

Gopenflow demo v1

  • 1. gopenflow demo v1 Hiroaki Kawai <kawai@stratosphere.co.jp>
  • 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