Weitere ähnliche Inhalte
Ähnlich wie Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版) (20)
Ryuの遊び方(pica8も併せてもっと楽しく)(2014/1/23修正版)
- 2. 自己紹介 ( 及び会社紹介 )
OpenFlow スイッチ「 Pica8 」売ってます
Trema 、 Ryu 、 VNC を使って
色々やってます
個人的には Trema(Ruby) 好きです
- 4. What is Ryu ?
Ryu の公式ページ
作っている人
対応機能
要するに Python ベースの OFC フレームワーク
- 5. ☆ OF1.0 、 OF1.3 のどちらもサポート
☆ NetConf とか、 OF-Config とかにも対応
※ 僕は試してません。
☆ OpenStack のプラグインもある
※ これもまだ試せてません。。。ごめんなさい。
- 17. ofproto や ofproto_parser はどこに?
ryu/ryu/ofproto 内にソースがある
内容は OpenFlow の各定数とかメッセージに
沿ったクラスとかがあります。
各メッセージの生成方法等が知りたいならここを読んで、
でも、ドキュメントはまだ色々あるんで最後でまた紹介しま
す
- 18. 例: L1 のスイッチを作ってみよう!
from ryu.base
import app_manager
from ryu.ofproto
import ofproto_v1_0
from ryu.controller
import dpset
from ryu.controller.handler import set_ev_cls
必要なモジュールを
import
class TestController(app_manager.RyuApp):
OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION]
_CONTEXTS = { "dpset" : dpset.DPSet }
def __init__(self, *args, **kwargs):
super(TestController, self).__init__(*args, **kwargs)
@set_ev_cls(dpset.EventDP, dpset.DPSET_EV_DISPATCHER)
def handler_datapath(self, ev):
dp=ev.dp
if ev.enter:
match = dp.ofproto_parser.OFPMatch()
port = dp.ofproto.OFPP_FLOOD
actions = [ dp.ofproto_parser.OFPActionOutput( port ) ]
mod = dp.ofproto_parser.OFPFlowMod(
dp, match=match, cookie=0, actions=actions )
dp.send_msg(mod)
スイッチ接続のハ
ンドラ定義
L1 用のマッチ条件と
アクション定義して
フロー送信
- 20. トポロジ管理使い方
from ryu.topology import switches
動作させるアプリ
をここに指定
class TestController(app_manager.RyuApp):
_CONTEXTS = { “topology" : switches.Switches}
def __init__(self, *args, **kwargs):
super(TestController, self).__init__(*args, **kwargs)
self.topology = kwargs[“topology”]
引数の kwargs に _CONTEXTS で指定し
たクラスによるインスタンスが渡される
- 23. REST API の定義
各ルートの制御をするアクションは、
このコントローラ内にて定義している
URI とメソッド (GET とか POST とか ) を指定して、
呼び出すメソッドをアクションとして定義する
mapper.connect(route, uri,
controller=MessageController,
action = "index",
conditions=dict(method=['GET']) )
例えば、 uri が” /ofc” として定義したなら、
http://( ホスト ):8080/ofc に get でアクセスすると
「 index 」が呼ばれる。
※ 追加のルートを付けたい場合は submapper を定義する
- 24. ドキュメント
Ryu の正式ページに Wiki がある
https://github.com/osrg/ryu/wiki
NCLC のホームページで色々情報発信し
ている (Trema もあり )
来年頭頃に、 Ryu-Book という日本語本を
出す予定らしい