diff --git a/learning_switch/learning_switch.md b/learning_switch/learning_switch.md index 271a846..73e735b 100644 --- a/learning_switch/learning_switch.md +++ b/learning_switch/learning_switch.md @@ -1,21 +1,21 @@ # Task D: Learning Switch ###################################################### -## Sending flow\_mod and packet\_out +## flow\_mod と packet\_out を送る -# Exercise: Packet Stats Info ################################################## +# 演習: 送受信パケット量を表示する ################################################## -## Launch a L2 switch controller: +## L2 スイッチコントローラ (learning_switch) を起動する: $ 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 +## 別のターミナルを開き、テストパケットを送る +## `show_stats` で送受信パケット量に関する情報を表示する $ trema send_packet --source host1 --dest host2 $ trema show_stats host1 @@ -27,12 +27,12 @@ -# 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` +## 上記のコマンドは、スイッチ 0xabc のフローテーブルを表示する @@ -40,16 +40,16 @@ -# Useful Sub-Commands ########################################################## +# 今回使用した Trema のサブコマンド ########################################################## * `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 のソースコード ################################################# @@ -71,11 +71,11 @@ # ... end -# Reads smoothly like a pseudo code!? +# 擬似コードのように簡単に読むことができるはず? -# Read It Aloud! ############################################################### +# 詳しく見ていこう ############################################################### @@@ ruby class LearningSwitch < Controller @@ -93,21 +93,22 @@ # ... 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 +* Packet In メッセージが送られてきた時に、送信元 MAC アドレス (macsa) と受信ポート (in_port) を Forwarding DB (FDB) に記録する +* 宛先 MAC アドレス (macda) から送出ポートを検索する +* もし見つかれば、スイッチのフローテーブルを更新して、パケットを Packet-Out する +* 見つからなければ、パケットを flood する -# 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`, `packet_out`, `flood` は、learning_switch のプライベートメソッドです (Trema API ではありません) + +* 適切なネーミングは、コードの可読性を高めます -# Flow-Mod ##################################################################### +# flow_mod ##################################################################### @@@ ruby class LearningSwitch < Controller @@ -117,14 +118,14 @@ send_flow_mod_add( dpid, :match => ExactMatch.from( message ), - :actions => ActionOutput.new( port_no + 1 ) + :actions => ActionOutput.new( port_no ) ) end # ... end -* Echoes the packet that exactly matches with `message` to the next port -* Short and clean +* 受信パケットからマッチ条件を作り、指定のポートに出力 +* 短くて、見通しのよいコード @@ -177,7 +178,7 @@ -# Learning Switch: Summary ##################################################### +# Learning Switch: サマリー ##################################################### -* Stats info: `trema show_stats`, `trema dump_flows` -* "Write it short" API: `ExactMatch.from`, `send_flow_mod_add` +* 内部の状態表示 : `trema show_stats`, `trema dump_flows` +* 短く書くための API: `ExactMatch.from`, `send_flow_mod_add`