From 33ad31319df2a28539c2bd3a37d0c0d8ec072a78 Mon Sep 17 00:00:00 2001 From: Kazuya Suzuki Date: Thu, 4 Oct 2012 13:12:50 +0900 Subject: [PATCH] first commit --- Gemfile | 4 + Gemfile.lock | 47 +++++++ README.md | 26 ++++ config.ru | 2 + hello_switch/hello_switch.md | 84 ++++++++++++ hello_switch/hello_switch.png | Bin 0 -> 43255 bytes hello_trema/hello_trema.md | 160 +++++++++++++++++++++++ hello_trema/hello_trema.png | Bin 0 -> 17156 bytes intermission/intermission.md | 2 + intro/intro.md | 42 ++++++ intro/overview.png | Bin 0 -> 52307 bytes learning_switch/dump_flows.png | Bin 0 -> 49723 bytes learning_switch/learning_switch.md | 183 +++++++++++++++++++++++++++ learning_switch/show_stats.png | Bin 0 -> 50035 bytes outro/outro.md | 76 +++++++++++ packetin_dumper/packetin_dumper.md | 123 ++++++++++++++++++ packetin_dumper/packetin_dumper1.png | Bin 0 -> 47587 bytes packetin_dumper/packetin_dumper2.png | Bin 0 -> 52433 bytes showoff.json | 14 ++ styles.css | 17 +++ traffic_monitor/traffic_monitor.md | 101 +++++++++++++++ traffic_monitor/traffic_monitor.png | Bin 0 -> 49896 bytes 22 files changed, 881 insertions(+) create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 README.md create mode 100644 config.ru create mode 100644 hello_switch/hello_switch.md create mode 100644 hello_switch/hello_switch.png create mode 100644 hello_trema/hello_trema.md create mode 100644 hello_trema/hello_trema.png create mode 100644 intermission/intermission.md create mode 100644 intro/intro.md create mode 100644 intro/overview.png create mode 100644 learning_switch/dump_flows.png create mode 100644 learning_switch/learning_switch.md create mode 100644 learning_switch/show_stats.png create mode 100644 outro/outro.md create mode 100644 packetin_dumper/packetin_dumper.md create mode 100644 packetin_dumper/packetin_dumper1.png create mode 100644 packetin_dumper/packetin_dumper2.png create mode 100644 showoff.json create mode 100644 styles.css create mode 100644 traffic_monitor/traffic_monitor.md create mode 100644 traffic_monitor/traffic_monitor.png diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..db6a6de --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source :rubygems +gem 'redcarpet' +gem 'showoff' +gem 'heroku' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..56e1cb2 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,47 @@ +GEM + remote: http://rubygems.org/ + specs: + addressable (2.2.7) + blankslate (2.1.2.4) + bluecloth (2.2.0) + gli (1.5.1) + heroku (2.21.3) + launchy (>= 0.3.2) + netrc (~> 0.7.1) + rest-client (~> 1.6.1) + rubyzip + json (1.6.5) + launchy (2.0.5) + addressable (~> 2.2.6) + mime-types (1.17.2) + netrc (0.7.1) + nokogiri (1.5.2) + parslet (1.3.0) + blankslate (~> 2.0) + rack (1.4.1) + rack-protection (1.2.0) + rack + redcarpet (2.1.0) + rest-client (1.6.7) + mime-types (>= 1.16) + rubyzip (0.9.6.1) + showoff (0.7.0) + bluecloth + gli (>= 1.3.2) + json + nokogiri + parslet + sinatra + sinatra (1.3.2) + rack (~> 1.3, >= 1.3.6) + rack-protection (~> 1.2) + tilt (~> 1.3, >= 1.3.3) + tilt (1.3.3) + +PLATFORMS + ruby + +DEPENDENCIES + heroku + redcarpet + showoff diff --git a/README.md b/README.md new file mode 100644 index 0000000..2bdfc7b --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +# Quick Start + + git clone git://github.com/trema/tutorial.git + cd tutorial + + # run the standard presentation + showoff serve + +This will launch a local Sinatra server on port 9090. Open your browser to `localhost:9090`. On a Mac you can run: + + open http://localhost:9090 + +Use arrow keys to navigate through the slides. Press '?' to see a help window with more key commands. + + +# Printing slides (PDF) + +Try this: first `gem install pdfkit`, then visit + + http://localhost:9090/pdf + + +# LICENSE +Copyright (c) 2012 Yasuhito Takamiya + +Licensed under the GPL3 license diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..b0d48a4 --- /dev/null +++ b/config.ru @@ -0,0 +1,2 @@ +require "showoff" +run ShowOff.new diff --git a/hello_switch/hello_switch.md b/hello_switch/hello_switch.md new file mode 100644 index 0000000..978a1ba --- /dev/null +++ b/hello_switch/hello_switch.md @@ -0,0 +1,84 @@ + +# Task B: Hello Switch! ######################################################## +## OpenFlow スイッチとコントローラを接続 + + + +## "OpenFlow スイッチを持っていないけど、
どうすればいい?" + + + +# 演習 : Hello Switch コントローラ ############################################ + + $ trema run hello-switch.rb -c hello-switch.conf + Password: xxxxxxxx # Enter your password here + Hello 0xabc! # Ctrl-c to quit + +* ソフトウェア版 OpenFlow スイッチ (dpid = 0xabc) を起動し、コントローラと接続します +* コントローラは `"Hello 0xabc!"` と表示します +* ソフトウェア版 OpenFlow スイッチの起動は `hello-switch.conf` に定義します + + + +![overview](hello_switch.png) + + + +# hello-switch.conf ############################################################ + + @@@ ruby + # + # Add a switch with dpid == 0xabc + # + vswitch { dpid "0xabc" } + # or + vswitch { datapath_id "0xabc" } + +* ソフトウェア版 OpenFlow スイッチが起動し、コントローラとのコネクションを確立します +* Trema は Full-stack の開発フレームワークです。ノート PC が一台あれば、物理スイッチを持っていなくても開発ができます + + + +# `hello-switch.rb` ############################################################ + + @@@ ruby + class HelloSwitch < Controller + def switch_ready dpid + info "Hello #{ dpid.to_hex }!" + end + end + +* `switch_ready` は、スイッチがコントローラに接続したときに呼ばれるハンドラです +* 引数の `dpid` には接続したスイッチの ID が格納されます +* `.to_hex` をつけることで `dpid` を 16 進数で表示します + + + +# 演習: スイッチの追加 #################################################### + + @@@ ruby + # hello-switch.conf + vswitch { dpid "0x1" } + vswitch { dpid "0x2" } + vswitch { dpid "0x3" } + ... + + + $ trema run hello-switch.rb -c hello-switch.conf + ??? + +* `hello-switch.conf` にスイッチを追加して `trema run` したとき、何が表示される? +* 注 : 各スイッチの dpid はユニークである必要があります + + + +# ここまでのサマリー ############################################################### + +## Trema は "Post-Rails" なモダンなフレームワークです + +
+ +* 書いたコードをすぐ動かせる: `trema run` +* Coding by Convention: 分かりやすく名付けられた各種メソッド +* Full-Stack: ネットワーク DSL によるエミュレーション +* 便利なサブコマンド : `trema ruby` diff --git a/hello_switch/hello_switch.png b/hello_switch/hello_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..5c86737a685aa521db2c0787b6d43d98d277457b GIT binary patch literal 43255 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 literal 0 HcmV?d00001 diff --git a/hello_trema/hello_trema.md b/hello_trema/hello_trema.md new file mode 100644 index 0000000..25afbf2 --- /dev/null +++ b/hello_trema/hello_trema.md @@ -0,0 +1,160 @@ + +# Task A: Hello Trema! ######################################################### + + + +## 演習: "Hello Trema!" を実行 ############################################# + +### 以下のコマンドを入力し、Trema を実行します : + + $ cd Tutorials/Trema + $ trema run hello-trema.rb + Hello Trema! # Ctrl-C to quit + + + +![overview](hello_trema.png) + + + +# 基本コマンド : `trema run` ############################################### + + $ trema run [controller-file] + +* 上記コマンドで、コントローラを実行します +* Ctrl-c で停止します +* `trema help run` でオプションリストを表示します + + + +# 書いたコードをすぐ動かす ################################################################# + +* `trema run` コマンドで、書いたコントローラをすぐ実行できます +* 書いたコントローラを、即座にテストできます +* 短いサイクルで "コーディング、テスト、デバッグ" を繰り返す開発スタイルを実現できます + + + +# Trema 上での コントローラの書き方 ############################################# + + + +# hello-trema.rb ############################################################### + + @@@ ruby + class HelloController < Controller + def start + info "Hello Trema!" + end + end + +* シンプルですが、これだけで完全なコントローラのコードになっています +* (ただし Hello Trema! と表示するだけのものです) + + + +# コントローラクラス ############################################################# + + @@@ ruby + class HelloController < Controller + # ... + end + +* すべてのコントローラは、クラスとして実装します (`class HelloController`) +* Trema クラスライブラリに用意されている `Controller` クラスのサブクラスとして実装します +* コントローラに必要なメソッドは、自動的に継承されます (flow-mod メッセージの送信等) + + + +# イベントハンドラ ############################################################### + + @@@ ruby + class MyController < Controller + def start # start-up event handler + # ... + end + + def packet_in dpid, msg # Packet-in received handler + # ... + end + + # ... + end + +* イベントドリブン形式で、コントローラを記述します +* 各イベントハンドラを、インスタンスメソッドとして実装します + + + +# イベントハンドラ (Floodlight の場合) ################################################# + + @@@ java + // Packet-in handling in Floodlight + public Command receive(IOFSwitch sw, ...) { + switch (msg.getType()) { + case PACKET_IN: + return this.handlePacketIn(sw, ...); + ... + private Command handlePacketIn(IOFSwitch sw, ...) { + ... + +* Floodlight では、複雑なイベント振り分けを必要とします +* おまじないが多いため、コードの見通しが悪くなります + + + +# イベントの振り分け ################################################################ + + @@@ ruby + # Packet-in handling in Trema + class MyController < Controller + def start # automatically called at startup + # ... + end + + def packet_in dpid, msg # automatically caled when receiving a packet-in + # ... + end + end + +* Trema はイベントの振り分けにリフレクションを使っています +* そのため、複雑になりがちなディスパッチやハンドラ登録を行う必要はありません + + + +# コーディングのための工夫 ####################################################### + +* 簡潔なコードを書くための工夫 + * e.g., "handler name" == "message name" +* イベントディスパッチのような、おまじないを不要に +* 楽しいプログラミングのために、お約束事やつまらない部分を削減 + + + +# 短く書く ################################################################ + +* コードの長さと生産性の間には強い相関関係 + * e.g. Arc Programming Language [Paul Graham] +* コードを短くすることで、 + * お約束コードを書く時間を最小にする + * バグ混入の可能性を少なくする + +
+ +## Trema は、実行時の効率性よりも +## プログラマーの生産性に重きをおいています + + + +# Logging API ################################################################## + + @@@ ruby + class HelloController < Controller + def start + info "Hello Trema!" # outputs an info level message + end + end + +* ロギングレベル毎に用意されたシンプルな API (debug, info, etc) +* `trema ruby` で、Logging API を含む API リファレンスを表示 + diff --git a/hello_trema/hello_trema.png b/hello_trema/hello_trema.png new file mode 100644 index 0000000000000000000000000000000000000000..1f63a010de49ba56ba67ee05e24ee81bec15926b GIT binary patch literal 17156 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 literal 0 HcmV?d00001 diff --git a/intermission/intermission.md b/intermission/intermission.md new file mode 100644 index 0000000..0623e0f --- /dev/null +++ b/intermission/intermission.md @@ -0,0 +1,2 @@ + +# Intermission (10 minutes) #################################################### diff --git a/intro/intro.md b/intro/intro.md new file mode 100644 index 0000000..ac1c01f --- /dev/null +++ b/intro/intro.md @@ -0,0 +1,42 @@ + +# 作ってわかる OpenFlow ######################################################## +## Trema チュートリアル&ハンズオン + +### 鈴木 一哉 +### 高宮 安仁 + + + +# 本日のゴール ################################################################# + +## "トラフィックモニターつき L2 スイッチ" の実装 + +* Tutorial Kit: +* "Hello World" から始め、5 つの段階を踏んで開発を行います +* Trema を使い OpenFlow コントローラの開発サイクルを体験します + + + +# Trema とは ################################################################ + +* Ruby と C 向けの OpenFlow コントローラ開発フレームワーク + * GPL2 + * +* "Post-Rails" 高い生産性を実現 + * 書いたコードをすぐ動かせる + * よくある処理を短く書ける + * 統合されたテスト環境 + + + +# Trema = ###################################################################### +## OpenFlow コントローラ向けライブラリ +## (Ruby and C) +## + +## ネットワークエミュレータ +## + +## `trema` コマンド + + + +![overview](overview.png) diff --git a/intro/overview.png b/intro/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..739bbb856b5bb8d9c0f7b84f01929e7570333f04 GIT binary patch literal 52307 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 dWUd^YI!|PNu~qK20ImU)6*T0FZ{B +# Task D: Learning Switch ###################################################### + +## Sending flow\_mod and packet\_out + + + +# Exercise: Packet Stats Info ################################################## + +## Launch a L2 switch controller: + + $ trema run learning-switch.rb -c learning-switch.conf + +
+
+ +## Send a test packet on another terminal, +## then `show_stats` to view sent/received packet stats information + + $ trema send_packet --source host1 --dest host2 + $ trema show_stats host1 + $ trema show_stats host2 + + + +![overview](show_stats.png) + + + +# Exercise: View the Flow Table #################################################### + + $ trema send_packet --source host2 --dest host1 + $ trema dump_flows 0xabc + +## The above command displays the flow-table entries stored in the switch `0xabc` + + + +![overview](dump_flows.png) + + + +# Useful Sub-Commands ########################################################## + +* `trema show_stats HOST_NAME` +* `trema dump_flows SWITCH_NAME` + +## Various stats and internal info can be displayed with one simple command + + + +# Source Code: Learning Switch ################################################# + + + +# Learning Switch ############################################################## + + @@@ ruby + class LearningSwitch < Controller + # ... + def packet_in dpid, message + @fdb.learn message.macsa, message.in_port + port_no = @fdb.lookup( message.macda ) + if port_no + flow_mod dpid, message, port_no + packet_out dpid, message, port_no + else + flood dpid, message + end + end + # ... + end + +# Reads smoothly like a pseudo code!? + + + +# Read It Aloud! ############################################################### + + @@@ ruby + class LearningSwitch < Controller + # ... + def packet_in dpid, message + @fdb.learn message.macsa, message.in_port + port_no = @fdb.lookup( message.macda ) + if port_no + flow_mod dpid, message, port_no + packet_out dpid, message, port_no + else + flood dpid, message + end + end + # ... + end + +* When a packet comes in as a packet-in message, make FDB learn its macsa and the in_port +* Look up the destination's port number from packet's macda +* If found: update switch's flow-table and do packet-out the packet +* If not-found: flood the packet + + + +# Private Methods ############################################################## + +* Actually `flow_mod`, `packet_out`, `flood` are not part of the Trema API, but defined as private methods here +* Proper use of names for private methods makes your code clean and can be read like pseudo-code + + + +# Flow-Mod ##################################################################### + + @@@ ruby + class LearningSwitch < Controller + # ... + private + def flow_mod dpid, message, port_no + send_flow_mod_add( + dpid, + :match => ExactMatch.from( message ), + :actions => ActionOutput.new( port_no + 1 ) + ) + end + # ... + end + +* Echoes the packet that exactly matches with `message` to the next port +* Short and clean + + + +# Syntactic Sugar: `ExactMatch.from()` ######################################### + + @@@ ruby + ExactMatch.from( message ) + +# vs. + + @@@ ruby + Match.new( + :in_port => message.in_port, + :nw_src => message.nw_src, + :nw_dst => message.nw_dst, + :tp_src => message.tp_src, + :tp_dst => message.tp_dst, + :dl_src => message.dl_src, + :dl_dst => message.dl_dst, + ... + ) + + + +# Trema vs. NOX Python ######################################################### + + @@@ ruby + # Trema + send_flow_mod_add( + dpid, + :match => ExactMatch.from( message ), + :actions => ActionOutput.new( port_no ) + ) + +# vs. + + @@@ python + # NOX Python + inst.install_datapath_flow( + dpid, + extract_flow(packet), + CACHE_TIMEOUT, + openflow.OFP_FLOW_PERMANENT, + [[openflow.OFPAT_OUTPUT, [0, prt[0]]]], + bufid, + openflow.OFP_DEFAULT_PRIORITY, + inport, + buf + ) + + + +# Learning Switch: Summary ##################################################### + +* Stats info: `trema show_stats`, `trema dump_flows` +* "Write it short" API: `ExactMatch.from`, `send_flow_mod_add` diff --git a/learning_switch/show_stats.png b/learning_switch/show_stats.png new file mode 100644 index 0000000000000000000000000000000000000000..0295983d79a2465126861a22b35132e54e78e8e2 GIT binary patch literal 50035 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
Eyvj=+Wf3V?=AgkrBw9ptT*>5K*oW` z+txss6~3W-LjFYWZqi2PnEpl8SA^NnA&KX-CL=#*20w6KemTCe)s+a{+M2Df@rE$v z_Ne{DePhz>aaW(n%JlX`TnUbsm-nE3@~$ip7T}Khd8T-EUeOa+#{6TVF#USOgKB>_ zNj|NJkxOSVnAi2<+qZ8In*MXNUV4q&Ov?0OQh4R5M6=yU8aa5zy@!LzJlL;#E4W19 zHtZKx0<AjU;$;aZSJ79?m%$5}Z%K;#N zwX}`*?A@Q%Z?j|J+GQ5a;fPIG3^O_@hao6NLm;)xG? zz53QJq|>^R250FeSMruZ;D~$94Vz{oH!Ag7zho&(q){YtK)T?O(O>doy-NeU3-B_( zxMFIq54%DM&uf7Lk=WSO)?Ecu3p>T%RZr-@e_dSIKv!D8Z zMJPV0)KZ3|0&r+=4?3mxDl%GG0@DK46TQc4TcpoPP*I)0#EfcMgqWE4f==+L!0=_m zy{HI(pw1wi#SP_g=QlX_+Ou?>r54H#}Hh=zVb-!NW{A;sk zrj$}(CB)ovgTrbu384QO6b)?Gv?$>CjBJ@^zO;aAq*X3f8LhYeX(JqPp-#b9-dY=o zu>jL{T)7zhNwBH5HL(^l=~0G%1BYEs*Bp;IXNY+=;{9~{%_n;A$xV%V`(9n;CyKHw zk^&Dp_+q%!5y8d9rTzfX`aIvH86H>>olrjk;Q-}zC#eD1Br zXDH64-9@El(Ar{P^vhn2Wm?$zTyJNTbFItf--cIH6%Z7rw{Q2eW)PGi-#<(@{<_08@dof^Lq9_VgC(9STsNTAG`` z1zA)R@B&@6`NIFx`tUgs(UX_?$B~KwR4T9!$4MZ~yW!L&x2&wJvU1!u8xSSV08j$t zN8}g-oHYavtSbPZ|MUR!FL3l=D(#d3c>!|l2UGS3h5K_bYiZ%FA-4Zpqlbw+upIw1 zLV}S7Qy{ZAu62LB5Jas4~{e;WPi{cocOM(08M=VRQtxw-R*fYv?u%SWee z$fO?@V@fm|gg0QGp;O7EJghAs7#{&cgXgT=Y`p>(1OJh;@gBMtnY-(Qi~-t$#!BBN zCntLvY^9{oz}GMA9UO#Gat#a&{^i96;1q!R;(AC|&CM_pe^oIi^mQLj(zO=6`DG3MPX%43F5?;pVRa8Vn zVIN`-oU8qcp;gPF2QGDd{Fx#`sTyExC=SouehqNs|3kk8Twgl}+RjTs0g(x)!1P!c zrIfI+u-aubo9j~p$fE~#Pmv-WTTMYpDT)SF+t0+z4A4fwJhZelG~;L4|B{i5&RfX{ z0UifcQ{NL4A8)~^z;g5OtZfprj&EmY{E^iF(5kD3rf(`+XDW>5=H{x7AHl50Ft*&5 zXJ=E^QSWiOLs{eK{@7l)gcB=R0Udc&)!x!SoFvNEU_3_h*D#3vfa7iR`scGSR6K?> zYO`?9%cD=f<9?r7?55{YGcq3S?5q$V0{wYUW($%{-*wfGA8v0vf6wyY<$7LW+_&Yn zKnp57e_8RR2?oW1r49=Zw{v*lXw$8Cc6T9pd97+e-!et|?`QaL+Dh(b8GrX_B{*-y z2)V|@D#>#RiKwcozJK4bzfU(s`A6Jjz;XA-F#^U{?~PFR(lw8JGsoN>>0PE0O>S*o zQ4#U;=gYQ#IAqvG z4x?56Z$5(N3!u;LaQXlGjCd`AQu)K>e_7etIj~4->iPdIlKBz|{jf;*U&-_GzT$32 zMQvf@KGddw?O_}lc}mzhGB5e>TrhQ~ijBQJ&J}lo$9q^JOhrW?l+D`e4}^(-cBi%f z?6Ol(J*FEt)Y2p*@(ID;4_lMOjYB_7$WDijA^-0qjUjZZ#Y8*9MuY#; zsD)oG?VJxZ0ZWLv{xe}Z-S>ap2Bwp@R+?D?soX;UiI!2xs+M-SpKb}-JZR0x_%k5- z|F#XmiR?nC_KGh=gw zzUt8Wf7JEGj~LoASt2MfMSn&ucQC6IAmx`{_*Zhl3?k}bO3ERhtbdg%uGX1_Jt(s( z=I_2<9E`xZpS}LOuR%c%+P!n_>j(M(`rayG@7M)al;gkU@|~`tRZGJl&G~PtvYNzT zML8IxCBgccrOwREbkDp=CT}fxKE)OB1-Q15y`=Bo33~h|)Qq~M4i69SNA>jeU#@Xi z{fwI_jh(E^fYYQyo(U=f2A#!n3k@CJP-E-r>a!B^hn13FjQ6XIeAnyP$sH!r{xan{ z^hNRxi?L`RJi4E{xd9sGvE_76UgN+Z!nHOzGdt_T#0DaspS6Sc_xHgwAHDY8dfwlr z`qp~fxpX-!*4b_S(+6G>seuo=>|`(Z)CBifl1ROUL6tOpi{XPb1K$1Iszzjmc1MfG z-uKiIxjX!_<_|@nT3Fp51 z?5`${j)F~ZO8if&KG@lrKNB&c`g^D(Wf(1IpV1F1D*k7R$UeEVsioCe<^HDyBeMjA zosr}m6#uB+UPxVCXH=B2H=oU48}dO_wNk)pLHs}MTv384|K}?BgW=|1ORS^t^!ZLZ>FcCL-vs$ z!T|xH7_eswl9F$S)bXf?+1L>e%-Pk|b?mEcwQ;gq#pLhp5sEvdk%KnC81Iz3T^=qpFfTL4!79qi$b=WF$rUes zPfgwWL9H*H%zZ9?LB#7~&#OF}z+yByg#*{LO9UA7gW&si549ix_(Ik1iQp`A^C%Z7 zfO&&61|oy){ry{8gAvAEr}I6(d9I>zu}gzW{F|7#Kwv~bAy9aDcu5n(Et`O|^K~_* zdbPPtdzns$zlAJo;n9<0043R-%gf1?(_@2z6C%TcV8>|3Nx;6KHYPnFng%W|He)%) z-o=F)JMEx=4irVv%X65b=e_Lc=#WWyOYO^BRa*LniHXdDJ_*W{phR!7^mIqIhn0)m{dCx6vbLonxJkBGJQ+=_~^gTm2KIpATGLMcQt5M6FAaA;b8{tS6yUd1gxmUsq1 z_{?cVLPVr-J$OaLeYA1OY%-V+m(|#qbnJ8G;k$!I$X*M@CnU@i49aFx(bNnDrWf+( zP}%(2JcX^KB={|X_)v-TUGsFdI*jTEb zrZqJ!C=P;3t-MfjQ#9QBH8=zUZF&}t8WlM#`r(a@{y2q^(P3X;E>UYhTCZZCufF-F$Z-)qAXP-%aQ5wQDbJ6uLuGe6;XS2+-$lA zfC1A^6YR4wNKj9zV`WuUU8?nOK=qCz?FNg45$zlvPVzunYr7Fa8PQ<_O|LcV&-`GZ z#x`N3;ket4;ltLujYPey8jsqNU&rQSE32nl^y*<56p4RohC2v~$tP`TIyqi>Z|hV@ z4yx>I+aqm;W9SC_V#Q^O#?;Jb$~$LL!bZP;{~k)n;cq7o03A{H_Pt63yi=O%vVHnv zp`G#7U=arPsG;1q5MsuW8lA`$U67Jf7eFHi)gD(sGu9{EWhZb%J#-C*H?2VVU3p%V z371o?&N5$&@vfDL<+A#$^;RUr_xSq+-D9)tNs3?9Z*WKhO}6^syA*9NWi^eZ)x;{? zndYly;d|W`cF@uy4<%+OIJ88*g#ENG+Wl;eIM%jFibc~hXFWymgrDJ~VuQsv9O7vf zV53#I*6}S}fAc;-{!3`F;mjT_Jb3ky=AzwFabsRZ@p)5I6NBu@)m5$O=FV8I z$+~2}u^4@c)lP$&&t!$Y(>Sh)g+yh?Z8dGy@@yqI>=No#Wejn4T^(J-pVj30`CZOL z2|)o;d>l$*paO=>Z*aYl0j z0`42)?8*#v-*0rQ#rzagp|NVjN-x=DD<5w<(!}G4sTY}!^MJ!J1$XGKC@Lb--LJex zdq^?ivu7G(3_-6-P^)v-Z)V_~5K(I-VXj4f=POLMoA}a18ShN-RlLIsu19Z^K44YfspnQamnl%}Am=40jlYiJ z1%qR!XWG+6Og0>DWhQulyGL9~Z{+7wUk4n%FRwH}(LQz%&&ceL_{Qz-^-f5rQXuXd z9RsE4JMmmX3(KLqqotOX_A$rp8VyM8JgY1Z#~s?|zyp*6gP31{N~Gm~TJzo0)OK5Y zP&G&Kb4(I#M^GfQNFu2(rjo_pbu^Ap7k(nvwI;;l3+hb8U`bE$Nskum(Iw)n12m|s ztE)%a{&J_;{YFkHEI~`d-<*{HahfzNZ6j*U*Mf_lL+gr_jsT3CBXv^GT2f7_hP#Yg zX6wVmk{i3#c+0*I6eT#tWiRC~`KwBNFG~pEC!0_C9boxAE-P@~xQ3a>s&}_6J+FYl znnFQ|n+ZcPi&klnMx^zvH3EJjKiM(r3H2Z(94UIEHsM`VgO$}{Na$*hMOuZvLSpKB z6J=T*4VZGZjr zy^?v;FfPd%UF=#qh2p*kiqGy#1tUkGBkAJcHa$Y#(f;g*%d>}(82zgLjaLuz`itSo zwL~O-^HxC*#ikWbgatTI;;f+1!tSO(7)jiOOFl2*zRfBKX z^fdKJZOWSFqHiU)?Yu0g>s`^9VXW3*A5OGfm{3#HsQJRna6Bh?k+VxS|4Q|?U*M^$ zhV}sajAJzhCScD5b#!#vq!8swsh?%}0RJ96BVrgaT}GjnRzVbhU-iO}Z7HD9&f25Flp4=<#R4Xa=9 zfc(;Wp)R*+T=8+aN28}2%iZNAQZVmv=rESX2g5FFrXO+{)>@fDt4MH<=X*bcYChFC zI@Oj2&)*(#y@Nw&SW`m8%1AaW{f(EC?^2G1h^MjSXL6s&2*udfOFDW8K4}qIf_qLL zGv&s_+@Qr-m#EmhOJ!LyQ*%qK-!NL;ey-opW4l#*5#O#Wd+YCuhAsIu|D)MUx7J#v z=vj=&DTKY<$>JKp%?M9GJgT@WzhK-qeWb*4h6sq=$GMCuN0Sr;m)}xbwYTX4ZO8efaiHXjQ+32do z!y7JPx*ST?NO%*mdHgLTUFb&HI-$w&S`q!=v|o-&OLKvu(}#TgWm0W$Y|pW&WF+;9 znET_5Fql^Bf6_1iP;6$OnJD#W8qP=s_J4Y?$2?UDuk-ECmis+aK+(nD?wT1I8p=%u z?w4+la}|zI-$Xe`#3v<5l1|8n90YNW!+d0U;hx)2#qlD1`eV`hPfJ``%!K|KTR{NW zDI2!C=ocyTF#q6^jwEJh{&|$fwqg4ePb8eAsJPhD*myXHYr^g>ZZ!YfiL{b`Pw5eY zeVb$$PT6V0XLxE8DXGwXEg=W&C#qjdf77FCe|-W$r!Cic|JMDSb*fO(o0LiSx=3@n z9^1xji?hj*GLE$Y?W7@fz$bd_m0H2i3=ukE%A_yc!?}mE5)esLothpi1cEfoNQzyT zvO*KqN?VR5AuB7ZmVo=cMJ-*DGJSvp_>&{LtaWwftq?68ulGi?E`*v<2PahP0<<9< z+2^9L(d_^c!7MmygxWO|yS7`*0VrFx z!Q;pKxJ^usI~JTWOM%INk%(g^)ff>KH_xl6M6-ydb|^j$xea>-C=%(BDMIFENbor; z&dCv0+i^-(J4#!W$?V}f#Bbtv$Z!bm>da8NeZRi$7pW3%CExd^s^v#}Bn9mc!56Da zW@2e~7G+`TF*Moa0m|F_M%J?A_bRP0QF=vE7GAAhLj7Nju;;JZp5uz7{~ABY@p`SU zU@ypSX=m@LN00YuUHSHndrK?s6XKad!8F()^<)sA@P&nhYzI{oa`j|U)08qW)KhKX z>Yoy}FyT-Sf4UzlJh%ph$!6+-;~~9V&pzF2a+>VK60$v;u$LUm5S6Y)qGs}w8Wh)A z>0xf^LHzlMf=6TGP4zpy`w+6&W%8s}2DwPIJ&6lF7`hT`{fNNgH@MbGi~jV6+;cM= z8l1LCyE9kq)-U}FEKt2J+^2wT*=h(>(C>(9xK>t^_&{9e08&8Q6D-b!!uyTBV$Z3e zK%GN%Wo5hs3PuKjPOa8Wm6Hn3=?^izMQyEXaHvb+=AQvjSYTJ76~qm4?p|FGZ=Rj) zj7`iUaIo|Y4}XNtNJ^(Pl2Sh)kN(IeS!G5OE3tNEZU*qwx74f zQ6rz^!ix)?)=6)T)a-1|^xZld_FOZJv3txwPR}A28QOzjbm7LYAsW-B&r1gL!mE=h zcj%iD|JD=E!D+gB4!Q>J4GX%oy&q^++WK8l0{42U0=66-_3Ir2R4va}#OmlzyXiAy z1Ak{aR@Szr^l+lNHey=ZTw}N2P%9NKK|$&hS!JpN^+t+PGTza+{k8(KWtuc>xx>U? zjbk9eqHE=pw)kd#5AyxqKG(Ib1FgG>?R4Lx<{LSYo%MBnVOJ7-d{t%Bc)kgL#}6x1 zN9yMnNa#%;fP?6N?g}Xgz~;H?d|8A zEz21kaV8GMnYB@0g(apBJ0OW%d{y@nX@5pv9WuFAgIrl!SJgNlzE~D^P@CXV82ap9 zDA*u8`oXYx)px_4U0m!23!Tt;fV*oTeuIaHw}IZs-1q8d3H*kZ@Q<7ink@bNDQQc; zBaeSk&;41U%p@z~3V~B^R|ga^uc(yKZOr9o3BEXzqVJQ!`JN$-!F>n{l- zgUnR~M3*I*F6Ceyj~40IDn-4@%bCZvzrk4;eEqe|sj)4npYzUP@ zQz86G{KmVL1Qk1IPe}T6n$F4^Wc`cFa-cwm3z>nJ;fs1@jw|xyNEMnwT0PDVHK_sZ z`H$`WaSi%iP$gS02W90cm&9yU?s!AibW?viY(4-g;m;N9?Q#i|l+^}@s8UDi$+%0E z$vXM>N8$28isaw?**&68eON5p;o}jkK~Z`fJ90B5+^s5D@-0j;A0a)ebrL1JcKfAa z#`-k$J;^GD-|OB^IX#i-oU!xtr(8ZBBOJA70Kw`4zL5Yxv z&9^wCL+0@f2b_*(2L z3Z7WSlS06_6~D`?s+$mIctJWU66qeQl+v?LR19+}iX+f@93zY7dfEByJ*o!&hiap2 zl+EUN8?ozb(|ia-T<9Dgqdg{*f1W2YJlA}ToOY})x|FQ=C4^OR0o;6Gu`G{yQ|`CM zCysAjm}551Cr{owpXwh>_!OJH zfB#-O^Y=ABY522kz|lG|bZnf?0zuD1i zp)btMNigy~kR=6Opdz!6XlOL^JXWgR=FHe0<80~1wIWhxddi5NvZk%)MWj;zLmrIC z105p=NIxEsh%zyq0M;HP3~hMxO|CV+5uH{?q-0U&8=PeN`?=0EIsB?7t53-)Opxe{ zq94a%8(V1pA?eUx9exxl>Yy1NNwmKG5$f+9f}Z^5D15LFfPqrNHkwPacBjoVDnQ z__ON>Lwh?rWQWewc&Wb83R5U>fPDs+I(0x`<>sb=0@&I_MZp?_j0ZNl#LC#%SXY-^ z%O@b^t#g!3Pg-?ytz!4d8epjm`jfQu_9{d^qUUyfT3^ZHm~!5uWkg%>Ex`090z^xP zDS_9xk-mObOACKM-KA1|adEM?H*CJe;IEHaWm^F8bl}8d0F0Y%Cg=TCcuUv|0RJw! z6qBC;<(^ipv`L&*9r&#N1G-;TN-YPmLEBs7UZ%BRqRnTPIO}SB25gILw%i@Q^WyEGpN^&kdcYKod&oYF~r` z+@^%rDvU_&naOA`e3S-DddyKU{`&qKK0! zMz#uL-3h=Tt=|q?|E4mSl0eQ`hjwAsa=|K>hC%#2$3q)2tkqYwdB+zCDAB21h4bx| zO&_(O?J|fOfI6xDUS3W^a5pzMcXM;o)z#fae8AE}+vwlie;FB(byqgC&d-daUJFoi z1t`xtL?u;T#>fw0Bb0+g809QSDtPQQD;Pi848DU&6lg~&)qQ8yvK;wRxgcJj!3gF>rkPTbMA2w)9*yex4*GTd*KQL}15-CNWG-KACi49!=W
OL9JXw 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 +# Summary ####################################################################### + + + +# Trema: "OpenFlow like Rails" ################################################## + +* Run It Quick: Tight loops of coding, run, and debug + * Virtual network DSL + * `trema {run, send_packets, show_stats, up, kill}` +* Coding by Convention: Write it short + * Auto handler dispatch by naming convention + * Class attributes: `periodic_timer_event` + * Syntactic sugars: `ExactMatch.from` + * Default options: `send_flow_mod_add` +* Useful Sub-commands + * `trema {dump_flows, ruby}` + + + +# Next Step For Developers ##################################################### + +* `[trema]/src/examples` + * Simple samples demonstrating API usage + * Good references for understanding both Ruby and C APIs +* Trema/Apps + * Practical/experimental controllers developed on top of Trema + * Good starting point for developing real-world controllers + + + +# Love Ruby? ################################################################### + + + +# Love C? ###################################################################### + + + +# Trema C ###################################################################### + +* It's your choice ... Trema provides libraries for both Ruby and C +* Trema C is also simple as Trema Ruby + +
+ + $ gcc myapp.c `trema-config -c -l` -o myapp + $ trema run myapp + + + +# Sources ###################################################################### + +* This Tutorial: +* Trema: +* Trema/Apps: +* Web Page: +* Twitter: +* Mailing List: +* Bugs: + + + +# Contributors! ################################################################ + +* Free Trema T-shirt for contributors! + * Patch (New features/apps, enhancements, bug-fixes) + * Bug report + * Documentation etc. +* Send pull-requests and get the T! + + + +# Questions? ################################################################### + + diff --git a/packetin_dumper/packetin_dumper.md b/packetin_dumper/packetin_dumper.md new file mode 100644 index 0000000..c02ac94 --- /dev/null +++ b/packetin_dumper/packetin_dumper.md @@ -0,0 +1,123 @@ + +# Task C: Packet-In Dumper ##################################################### + +## Packet-In メッセージの扱い + + + +## 演習 : Packet-In メッセージの内容を表示 ############################# + + $ trema run packetin-dumper.rb -c packetin-dumper.conf + +* Packet-In dumper コントローラを起動します +* 仮想ネットワークも同時に起動します (= 1 台の仮想スイッチと 2 台の仮想ホスト host1, host2) + + + +![overview](packetin_dumper1.png) + + + +## 演習 : Packet-In メッセージの内容を表示 ############################# + + $ trema send_packets --source host1 --dest host2 + +* 別のターミナルを開き、host1 から host2 へとパケットを送信します +* その結果、コントローラに送られた Packet In メッセージがダンプ表示されます + + + +![overview](packetin_dumper2.png) + + + +## Q: How did you do that (sending test packets)? ############################## + + + +# Virtual Host And Virtual Link ################################################ + +## Connect virtual hosts (host1, host2) to the virtual switch 0xabc + + @@@ ruby + # Add one virtual switch + vswitch { dpid "0xabc" } + # Add two virtual hosts + vhost "host1" + vhost "host2" + # Then connect them to the switch 0xabc + link "0xabc", "host1" + link "0xabc", "host2" + +## Send test packets between virtual hosts as defined above + + $ trema send_packets --source host1 --dest host2 + + + +# Network Configuration File ################################################### + +* Simple enough to configure a test environment +* Specify and construct any arbitrary network by just writing configuration statements in DSL +* And also send test packet by one simple command + + + +# Example: A More Complicated Network ############################################ + + @@@ ruby + vswitch { dpid "0x1" } + vswitch { dpid "0x2" } + ... + vhost "host1" + vhost "host2" + vhost "host3" + vhost "host4" + ... + link "0x1", "0x2 + ... + link "0x1", "host1" + link "0x1", "host2" + link "0x2", "host3" + link "0x2", "host4" + ... + + + +# Handling Packet-In ########################################################### + + + +# `PacketinDumper#packet_in` ################################################### + + @@@ ruby + # packetin-dumper.rb + class PacketinDumper < Controller + def packet_in dpid, message + info "received a packet_in" + info "dpid: #{ datapath_id.to_hex }" + info "in_port: #{ message.in_port }" + end + end + +* `packet_in`: arguments are dpid and a Packet-In message object (`message`) +* `message.attribute` for inspecting the attributes of the Packet-In message + + + +# Exercise: Inspecting Other Packet-In Attributes ############################## + + @@@ ruby + # packetin-dumper.rb + class PacketinDumper < Controller + def packet_in dpid, message + info "received a packet_in" + info "dpid: #{ datapath_id.to_hex }" + info "in_port: #{ message.in_port }" + info "total_len: #{ message.total_len }" + ... + end + end + +* Display other Packet-In attributes (total_len, macsa, macda ...) +* Hint: Use `trema ruby` for the full API reference of PacketIn class diff --git a/packetin_dumper/packetin_dumper1.png b/packetin_dumper/packetin_dumper1.png new file mode 100644 index 0000000000000000000000000000000000000000..b69d442ab4e52efc8e29436f0e6396a429ce29e7 GIT binary patch literal 47587 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�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 WmVK$9-J3!BRarqzK413Ui~j(a0$82^ literal 0 HcmV?d00001 diff --git a/packetin_dumper/packetin_dumper2.png b/packetin_dumper/packetin_dumper2.png new file mode 100644 index 0000000000000000000000000000000000000000..58ea9b29417bfc5cedce163bc3a23cb9401e74e5 GIT binary patch literal 52433 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 z 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 +# Task E: Traffic Monitor ###################################################### + +## Getting traffic data from flow_removed messages + + + +# Exercise: Displaying Traffic Data ############################################ + + $ trema run traffic-monitor.rb -c traffic-monitor.conf + + + # (On another terminal,) + $ trema send_packets --source host1 --dest host2 + $ trema send_packets --source host1 --dest host2 + $ trema send_packets --source host2 --dest host1 + +* Launch a "L2 switch with traffic monitoring" controller +* Send test packets randomly +* The controller displays and updates the traffic stats of each host + + + +![overview](traffic_monitor.png) + + + +# Getting Traffic Data ######################################################### + + @@@ ruby + class TrafficMonitor < Controller + # ... + def flow_removed dpid, message + @counter.add message.match.dl_src, message.byte_count + end + + private + + def flow_mod dpid, macsa, macda, out_port + send_flow_mod_add( + dpid, + :hard_timeout => 10, # flows lifetime = 10 seconds. + :match => Match.new( :dl_src => macsa, :dl_dst => macda ), + :actions => ActionOutput.new( out_port ) + ) + end + # ... + end + + +* Set each flow's lifetime to 10 seconds +* Handle flow\_removed messages generated when a flow timeouts +* Record the traffic amount transferred from the removed flow + + + +# Displaying Traffic Info ###################################################### + + @@@ ruby + class TrafficMonitor < Controller + periodic_timer_event :show_counter, 10 + + # ... + + private + + def show_counter + puts Time.now + @counter.each_pair do | mac, nbytes | + puts "#{ mac } #{ nbytes } bytes" + end + end + + # ... + end + +* Shows the current time and traffic data stored in `@counter` every 10 seconds + + + +# Timer Attribute ############################################################## + + @@@ ruby + class TrafficMonitor < Controller + periodic_timer_event :show_counter, 10 + + # ... + + def show_counter ... + end + +* You can define timer handlers like a class attribute +* Don't need to implement timer handling by yourself using threads etc. +* Another example of coding by convention + + + +# Traffic Monitor: Summary ##################################################### + +* Shows how to use the traffic data stored in flow_removed messages +* A practical example of learning switch controller diff --git a/traffic_monitor/traffic_monitor.png b/traffic_monitor/traffic_monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..cf9220e6552ce558013d24833a57d236194e6d30 GIT binary patch literal 49896 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
a?y%J+ySLu4=XeB#pxiLu1r2N+^D6C6!2;Uad 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 PWLpJU6`A7O51#!WQOsxq literal 0 HcmV?d00001