Upgrade to Pro — share decks privately, control downloads, hide ads and more …

語るっ!Zodiac FX

kwi
July 02, 2016

語るっ!Zodiac FX

せっかくなのでZodiacFX のこれまでの知見をまとめました。開発へのお誘いです~

kwi

July 02, 2016
Tweet

More Decks by kwi

Other Decks in Technology

Transcript

  1. ZodiacFX • Kickstarter で始まった – “affordable” openflow hardware switch •

    普通に売ってるやつは、お試しするには高すぎる – 過去にも ONetSwitch という FPGA を使ったプロ ジェクトはあった • 期限ギリギリに達成! – 正直ヒヤヒヤした…
  2. 現在 • Kickstarter 枠も順番に配布が終わった • ファームウェアは絶賛開発中 ^^; • Northbound Networks

    (Australia) から直販 – $99.00 AUD(送料込み・諸経費除く) 実機をお分けできるように持ってきました
  3. 使い方 デフォルトでは 4 番がコントローラへの接続 Switch は 10.0.1.99 を名乗っている Controller は

    tcp:10.0.1.8:6633 を期待している Openflow port 1, 2, 3 となる スイッチの設定は USB Serial でできるほか、 Telnet で入れるようになる予定(0.64?)
  4. CLI • Debug コマンドがある – register と出てくるのは、Switch のもの。 – Micrel

    KSZ8795CLX のドキュメントと対応。 • ドキュメントの読み方にコツがある • レジスタ番号が特定できれば勝ち – trace コマンドはそこそこ便利
  5. ファームの書き込み • SAM-BAでUSB シリアル経由で書き込み – 電源を切る – ERASE ジャンパをオンにする –

    電源を入れて10秒ほど待つ – 電源を切る – ERASE ジャンパを開放に戻す – SAM-BA で書き込み(LOCKはしない) 昔のバージョンから 上げたときは Factory Reset が必要なことも (EEPROM)
  6. Beta tester でやったこと • Forum に beta アカウントで入れた – ファームやドキュメントがダウンロードできた

    • 不具合報告したり…というか、ほとんど動かない… – だいぶ後になってソースコードもダウンロードできるよ うになった。 • 最初は zip ファイルだった • Github に出して欲しいなーとか、そのタイミングでお願いをし たり • 実は大して作業できず(むしろ今からが本番)
  7. 開発環境 • Atmel IDE (free) – 現行バイナリのビルドには 6.2 を使用 –

    バージョンを上げると内部の gcc が変わる • Atmel ICE debugger (事実上必須) – USB 接続の箱 – SoC に接続して IDE から step 実行したりできる – ≪ 超便利 ≫ 私はdigikeyで 買いました
  8. Branch • 一般的な流儀と異なるので注意 – 最新Release版 → master – 次期開発版 →

    Dev_064 • Github で時期開発版に PR 出す – 「折れる心」と「折れない心」が重要 • OSS運営はよちよち歩きなので生暖かく眺める感じで – 仲間募集中!
  9. Software • ARM SoC 環境がターゲット – Atmel にサンプルコードがある – 今は

    Arduino みたいに loop が回る構成 • いわゆる OS はない • 一番最初は FreeRTOS 使おうかなと言っていた • 主に次の二つのドキュメントを引くことになる – Atmel SAM4E Datasheet – Micrel KSZ8795CLX
  10. 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 追加でポート番号が 入るようになっています。
  11. hkwi voyager 版 • Openflow を行けるところまで実装してみた版 – 一気に作って、オリジナルをほとんど書き換えたの で、本家にはマージされず –

    プロプラ製品との接続性がテストできない?問題 • HP?のコントローラとの接続性?に問題? • こちらで追試できないんだよな… – lwIP 2.0.0RC1 に置き換え • IPv6 対応
  12. hkwi voyager 版 • (バースト)スループットが出にくい – Loop 処理の構造上の問題か? • FreeRTOS版の

    loop も見てみないと – なので、meter は未実装 • 自分でビルドする人は: – まずは gcc -O0 でビルドすべし – 正に「闇」
  13. Another aspect: • ZodiacFX is 4 port “white box switch”

    • 極論するとOpenflowじゃなくてもいい • Micrel switch + ARM な GPL ソースコード • Northbound Networksがハードを供給 – MAC アドレスも 1 つついてくる ひょっとしてOpenWRTよりも簡単…?