tags: Ryu
REST API
REST: Representational State Transfer
Purpose: 觀察 Controller packet in
- 先 Ping 再 GET 查看 MAC 位址表
- 先 PUT 更新 MAC 位址表 再 Ping
Step 1:
- 開啟 Mininet 後(左圖)
- 切到 ryu/ryu/app(Ready for 執行Ryu)(右圖)
- 設定 OpenFlow 版本
Step 2-1: 由 ping 更新
MAC 位址表
- 開啟 Ryu
- [Optional] GET (可用於觀察MAC位址表變化)
- mininet>h1 -c 1 h2 //ping
- GET
Step 2-2: 由 PUT 更新
MAC 位址表
- 重啟 Mininet&Ryu 設版本
- PUT 設定 MAC 對應的 Port (如下圖)
- [Optional]GET
- mininet>h1 -c 1 h2 // ping
結果
- 理論上:
- 依照 Ryubook 1.0 說明文件:
- Packet In x 3 ~
ARP
~ 先Ping版本
- h1 發出 broadcast
- h2 回應 h1 說 here (我在這)
- h1 知道了 送到 h2 所在的 port
- Packet In x 1 ~ 先PUT版本
- 我的想法:
- 實際上:
- 不符合 Ryubook 1.0 說明
文件
說的情況
也不Match我想的情況...
- 有多出來的 Packet in
- 依文件:
- 第一次 以 broadcast
- 仍會出現 接連的封包交換
這時候交換器中已經存在著 Flow Entry。 Packet-In 只會發生在當 h1 到 h2 的 ARP 出現且沒有接連發生的封包交換時。
Reference: