Slide 1

Slide 1 text

語るっ! Zodiac FX ! Kawai, Hiroaki

Slide 2

Slide 2 text

ZodiacFX ● Kickstarter で始まった – “affordable” openflow hardware switch ● 普通に売ってるやつは、お試しするには高すぎる – 過去にも ONetSwitch という FPGA を使ったプロ ジェクトはあった ● 期限ギリギリに達成! – 正直ヒヤヒヤした…

Slide 3

Slide 3 text

現在 ● Kickstarter 枠も順番に配布が終わった ● ファームウェアは絶賛開発中 ^^; ● Northbound Networks (Australia) から直販 – $99.00 AUD(送料込み・諸経費除く) 実機をお分けできるように持ってきました

Slide 4

Slide 4 text

配送 ● 安心のFedEx – 発注 5/25 – 発送 5/25 – 着荷 5/30 AU JP CN

Slide 5

Slide 5 text

Architecture Atmel 4e ARM SoC Micrel Ethernet Switch 電源 兼 Serial SPI Debug JTAG Cortex-M 120MHz

Slide 6

Slide 6 text

使い方 デフォルトでは 4 番がコントローラへの接続 Switch は 10.0.1.99 を名乗っている Controller は tcp:10.0.1.8:6633 を期待している Openflow port 1, 2, 3 となる スイッチの設定は USB Serial でできるほか、 Telnet で入れるようになる予定(0.64?)

Slide 7

Slide 7 text

CLI ● Debug コマンドがある – register と出てくるのは、Switch のもの。 – Micrel KSZ8795CLX のドキュメントと対応。 ● ドキュメントの読み方にコツがある ● レジスタ番号が特定できれば勝ち – trace コマンドはそこそこ便利

Slide 8

Slide 8 text

ファームの書き込み ● SAM-BAでUSB シリアル経由で書き込み – 電源を切る – ERASE ジャンパをオンにする – 電源を入れて10秒ほど待つ – 電源を切る – ERASE ジャンパを開放に戻す – SAM-BA で書き込み(LOCKはしない) 昔のバージョンから 上げたときは Factory Reset が必要なことも (EEPROM)

Slide 9

Slide 9 text

Kickstarter Beta tester枠 ● 腕に自信のある人限定でお願い!という案内 ● Beta board が先に届く キタコレ!

Slide 10

Slide 10 text

Beta tester でやったこと ● Forum に beta アカウントで入れた – ファームやドキュメントがダウンロードできた ● 不具合報告したり…というか、ほとんど動かない… – だいぶ後になってソースコードもダウンロードできるよ うになった。 ● 最初は zip ファイルだった ● Github に出して欲しいなーとか、そのタイミングでお願いをし たり ● 実は大して作業できず(むしろ今からが本番)

Slide 11

Slide 11 text

Beta & Production 認証 認証取得の模様は: https://www.kickstarter.com/projects/northboundnetworks/zodiac-fx-the-worlds-smallest-openflow-sdn-switch/posts/1469205

Slide 12

Slide 12 text

開発環境 ● Atmel IDE (free) – 現行バイナリのビルドには 6.2 を使用 – バージョンを上げると内部の gcc が変わる ● Atmel ICE debugger (事実上必須) – USB 接続の箱 – SoC に接続して IDE から step 実行したりできる – ≪ 超便利 ≫ 私はdigikeyで 買いました

Slide 13

Slide 13 text

開発の始め方 # git clone https://github.com/NorthboundNetworks/ZodiacFX and open

Slide 14

Slide 14 text

Branch ● 一般的な流儀と異なるので注意 – 最新Release版 → master – 次期開発版 → Dev_064 ● Github で時期開発版に PR 出す – 「折れる心」と「折れない心」が重要 ● OSS運営はよちよち歩きなので生暖かく眺める感じで – 仲間募集中!

Slide 15

Slide 15 text

開発時の注意点 3.12 cm 電源を信号線に 近づけない 動作中に 触らない ノイズのせいで バイナリ転送が 遅くなったり 失敗したりします Ethernet portが 明らかに挙動不審に なります

Slide 16

Slide 16 text

Software ● ARM SoC 環境がターゲット – Atmel にサンプルコードがある – 今は Arduino みたいに loop が回る構成 ● いわゆる OS はない ● 一番最初は FreeRTOS 使おうかなと言っていた ● 主に次の二つのドキュメントを引くことになる – Atmel SAM4E Datasheet – Micrel KSZ8795CLX

Slide 17

Slide 17 text

in logical view Atmel 4e ARM SoC Micrel Ethernet Switch 電源 兼 Serial SPI Debug JTAG 1 2 3 4 5 eth SPI 電源投入直後のレジスタは 普通のスイッチングハブとして 動作するようになっています。 起動後にすべて5番に 吸い上がるように レジスタを設定しています。 5 – eth の間は ethernet フレームの最後に 1 byte 追加でポート番号が 入るようになっています。

Slide 18

Slide 18 text

hkwi voyager 版 ● Openflow を行けるところまで実装してみた版 – 一気に作って、オリジナルをほとんど書き換えたの で、本家にはマージされず – プロプラ製品との接続性がテストできない?問題 ● HP?のコントローラとの接続性?に問題? ● こちらで追試できないんだよな… – lwIP 2.0.0RC1 に置き換え ● IPv6 対応

Slide 19

Slide 19 text

hkwi voyager 版 ● (バースト)スループットが出にくい – Loop 処理の構造上の問題か? ● FreeRTOS版の loop も見てみないと – なので、meter は未実装 ● 自分でビルドする人は: – まずは gcc -O0 でビルドすべし – 正に「闇」

Slide 20

Slide 20 text

Ryu certificate ● hkwi/ZodiacFX_RyuCert – ログを置いてます – 対向スイッチは trema-switch (trema-edge)

Slide 21

Slide 21 text

Another aspect: ● ZodiacFX is 4 port “white box switch” ● 極論するとOpenflowじゃなくてもいい ● Micrel switch + ARM な GPL ソースコード ● Northbound Networksがハードを供給 – MAC アドレスも 1 つついてくる ひょっとしてOpenWRTよりも簡単…?

Slide 22

Slide 22 text

Zodiac FX やろうぜ! 円高のうちに買っちゃおうぜ!