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

FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6

ebiken
February 01, 2015

FPGAで作るOpenFlow Switch (FPGAエクストリーム・コンピューティング 第6回) FPGAX#6

OpenFlow Switchは従来の Layer 2/3 Switchと異なり、より柔軟なパケットマッチング・変換・転送処理を実現するため、従来のネットワーク・プロセッサとは異なる設計が必要となります。
本発表では、既存のネットワーク・プロセッサではなく、FPGAを用いた独自設計によるOpenFlow Switchの開発経験を元に、ハードウェア処理にかかわるOpenFlowの機能概要と、FPGAを用いた実現方法や課題について解説します。

イベントページ: http://connpass.com/event/10638/

ebiken

February 01, 2015
Tweet

More Decks by ebiken

Other Decks in Technology

Transcript

  1. 注意書き | Disclaimer • 本発表は 「OpenFlow Switch開発に関連した情報を一般に広める事」 を目的としています。 特定製品の設計や仕様を解説するものではありません。 •

    そのため、ハードウェア構成や機能ブロックなどは一般化してあり、 発表者の開発する製品とは異なります。 • 製品仕様の詳細に関しては、個別にお問い合わせください。 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 2
  2. 自己紹介 |Self-introduction 今 • OpenFlow Switchの開発マネジメント @某ベンチャー企業 (Riava Networks, Inc.)

    昔 • ベンチャー企業の技術系Role色々 • アジア展開や立ち上げフェーズ中心 • サポート部門統括 • 技術営業(SE) • システム設計(Solution Architect) • 製品デザイン/設計 • 開発マネジメント • Twitter: @ebiken • 技術分野も色々 • ATM / Ethernet / PPPoE / L2TP / RADIUS • Streaming / Web Proxy • Virtualization • OpenVZ / Parallels Cloud Server • Hosting Service. OSS/BSS. • Operation / Business Support System • IPv6/v4 Translation (nat64) • OpenFlow FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 3
  3. 本日の発表内容 | List of Contents 1. “OpenFlow Switch” is 何?

    (Layer 2/3 Switchと比べながら) 2. なぜFPGAを使って作るのか? 3. OpenFlow Switch の構成 4. OpenFlow Switch 設計の課題 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 4
  4. 従来のネットワークスイッチの動作 (Layer 2) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX

    2014/02/01 | @ebiken 6 MAC Address Port 00-00-5E-00-53-01 1 00-00-5E-00-53-02 2 00-00-5E-00-53-03 3 00-00-5E-00-53-04 4 Layer 2 forwarding (MAC learning) table 1 2 3 4 5 -01 -02 -03 -04 -05 Table Entry • 自習(送信元アドレス) Action (match) • Forward to Port Action (no-match) • Flooding VLAN 1 VLAN 2
  5. 従来のネットワークスイッチの動作 (Layer 3) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX

    2014/02/01 | @ebiken 7 Subnet (LPM) Gateway Port 192.168.10.0 /24 10.0.0.5 5 192.168.20.0 /24 172.16.0.1 1 ... ... ... 0.0.0.0/0 172.16.0.1 1 Layer 3 forwarding table 1 2 3 4 5 172.16.0.0/24 10.0.0.0/24 Table Entry • Routing Protocol で学習 Action (match) • Decrement TTL • Modify Destination MAC • Forward to Port Action (no-match) • Drop • Send “ICMP Dest untreachable”
  6. OpenFlow スイッチの動作 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01

    | @ebiken 8 Flow Table x N個 1 2 3 4 5 Match Field Instruction / Action MPLS Label pop MPLS label, meter 10, goto-table 4 VLAN output port 2, ... IPv4 Address, TCP port set IPv4 Address, Queue 10, goto-table 3 ... ... Table Entry • コントローラーから投入 Match Field Instruction / Action MPLS Label pop MPLS label, meter 10, goto-table 4 VLAN output port 2, ... IPv4 Address, TCP port set IPv4 Address, Queue 10, goto-table 3 ... ... Match Field Instruction / Action MPLS Label pop MPLS label, meter 10, goto-table 4 VLAN output port 2, ... IPv4 Address, TCP port set IPv4 Address, Queue 10, goto-table 3 ... ... Match Field Instruction / Action MPLS Label pop MPLS label, meter 10, goto-table 4 VLAN output port 2 IPv4 Address, TCP port set IPv4 Address, Queue 10, goto-table 3 ... ... OpenFlow Controller
  7. どのパケットを? OpenFlow Match Field : 40 Fields, 1261 bits FPGAで作るOpenFlow

    Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 9 Field Name bits OXM_OF_IN_PORT 32 OXM_OF_IN_PHY_PORT 32 OXM_OF_METADATA 64 OXM_OF_ETH_DST 48 OXM_OF_ETH_SRC 48 OXM_OF_ETH_TYPE 16 OXM_OF_VLAN_VID 12+1 OXM_OF_VLAN_PCP 3 OXM_OF_IP_DSCP 6 OXM_OF_IP_ECN 2 OXM_OF_IP_PROTO 8 OXM_OF_IPV4_SRC 32 OXM_OF_IPV4_DST 32 OXM_OF_TCP_SRC 16 Field Name bits OXM_OF_TCP_DST 16 OXM_OF_UDP_SRC 16 OXM_OF_UDP_DST 16 OXM_OF_SCTP_SRC 16 OXM_OF_SCTP_DST 16 OXM_OF_ICMPV4_TYPE 8 OXM_OF_ICMPV4_CODE 8 OXM_OF_ARP_OP 16 OXM_OF_ARP_SPA 32 OXM_OF_ARP_TPA 32 OXM_OF_ARP_SHA 48 OXM_OF_ARP_THA 48 OXM_OF_IPV6_SRC 128 Field Name bits OXM_OF_IPV6_DST 128 OXM_OF_IPV6_FLABEL 20 OXM_OF_ICMPV6_TYPE 8 OXM_OF_ICMPV6_CODE 8 OXM_OF_IPV6_ND_TARGET 128 OXM_OF_IPV6_ND_SLL 48 OXM_OF_IPV6_ND_TLL 48 OXM_OF_MPLS_LABEL 20 OXM_OF_MPLS_TC 3 OXM_OF_MPLS_BOS 1 OXM_OF_PBB_ISID 24 OXM_OF_TUNNEL_ID 64 OXM_OF_IPV6_EXTHDR 9
  8. どう処理する? OpenFlow Instruction / Action FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 10 Instruction (インストラクション) Meter Policing(Rate-Limit) パケット色分け Apply-Actions Actionの即適用 Clear-Actions Action Set 初期化 Write-Actions Action Set へ記録 Write-Metadata メタ情報をスタンプ Goto-Table <ID> テーブル(ID)検索 Action (アクション) Output <port_no> パケット転送 Group <group_id> グループ処理 Set-Queue <queue_id> Queueアサイン Push-Tag <ethertype> MPLS,PBB,VLAN Pop-Tag <ethertype> Set-Field <field_type> <value> 任意のフィールドに 値をセット Set TTL <ttl> MPLS, IP TTL (Time To Live) Decrement TTL Copy TTL out/inwards
  9. OpenFlow Pipeline FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01

    | @ebiken 11 OpenFlow Pipeline Flow Table #0 Flow Entry Flow Entry Flow Table #n Flow Entry Flow Entry Match Flow Table #1 Flow Entry Action Set (associated with each packet) Flow Entry Action Action Action Packet Ingress Match Match Goto-Table Goto-Table Packet Output Execute Action Set (1) (2) (3) (4) (5) (6) (7) (8) (9)
  10. Layer 2/3 Switch と OpenFlow Switch の違い FPGAで作るOpenFlow Switch |

    FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 12 どのパケットを どう処理する? Layer 2 MAC Address 宛先MAC Addressの ホストがいるポートへ転送 Layer 3 IP Address 宛先MAC Addressを変更 Next Hopへ転送 OpenFlow コントローラーから設定 (パケット・ヘッダ情報) コントローラーから設定 (ヘッダ変更・転送・QoS)
  11. どのパケットを どう処理する? Layer 2 MAC Address 宛先MAC Addressの ホストがいるポートへ転送 Layer

    3 IP Address 宛先MAC Addressを変更 Next Hopへ転送 OpenFlow コントローラーから設定 (パケット・ヘッダ情報) コントローラーから設定 (ヘッダ変更・転送・QoS) Layer 2/3 Switch と OpenFlow Switch の違い FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 13 マッチ・処理方法が決まっている マッチ・処理方法がプログラマブル
  12. FPGAで OpenFlow Switch を作る3つの理由 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 |

    FPGAX 2014/02/01 | @ebiken 15 従来型スイッチ用チップの仕様に縛られない プロトコル仕様の変更に対応 ユースケースを元にした継続的な改良
  13. 従来型スイッチ用チップの仕様に縛られない •OpenFlow Pipelineを実現できない •TCAM容量の不足 •既存Forwarding Tableの流用 •Table毎の使用可能なフィールドが限定的 •サポートする Instruction /

    Action の不足 •そもそも Instruction / Action が使えないTableも FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 16
  14. ユースケースを元にした継続的な改良 •OpenFlowはネットワークをプログラマブルに。 •ビジネスモデルで必要な機能・サイジングバランスが変わる • Group, Meter, QoS, Packet-in/out … どれが重要?

    •Datacenter CLOS Network? •Carrier / Provider Edge Gateway? •Security Gateway? •Wireless? FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 17
  15. プロトコル仕様の変更に対応 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 |

    @ebiken 18 2010 2011 2012 2013 2014 (Dec. 31, 2009) 1.0.0 (Jun. 7, 2012) 1.0.1 Errata (Nov. 1, 2013) 1.0.2 Errata (Apr. 13, 2012) 1.3.0 1.3.1 (Sept. 6, 2012) (Apr. 25, 2013) 1.3.2 (Mar. 27, 2014) 1.3.4 1.3.3 (Dec. 18, 2013) (Feb. 28, 2011) 1.1.0 (Dec. 5, 2011) 1.2 (Oct. 15, 2013) 1.4.0 0x01 0x02 0x04 0x05 0x03 Wire Protocol # (Jan. 9, 2015) 1.5.0 0x06 OpenFlow 仕様の変遷 2015
  16. OpenFlow Switch | Software 構成 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 20 Hardware Abstraction Layer Hardware Specific Driver Datapath PCIe Open Flow Agent Protocol Interface 管理インターフェース • Switch/Controlアドレス設定 • ステータス / 統計情報参照 • Debug, Log OF Protocol <-> Datapathのフォーマット変換 Flow Table の Datapath Layout管理(TCAM/RAM) Packet-in/out 仲介処理 PCIe Driver. FPGAボードはPCIeデバイスとしてOSから認識 Admin Interface (CLI, syslog, SNMP) CPU Board FPGA / TCAM / RAM(*) Physical Network Ports (*) RAM = SRAM/DRAM/BlockRAM etc. Controller とのプロトコル・インターフェース OpenFlowプロトコルレベルでの Flow Table管理
  17. OpenFlow Switch ~ Hardware Datapath実装パターン FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 21 Datapath (FPGA etc.) Flow Table #0 Flow Table #x Flow Table #N Software (CPU) Flow Table #0 Flow Table #x Flow Table #N Flow Table 投入 OpenFlow Agent Packet インストール型
  18. OpenFlow Switch ~ Hardware Datapath実装パターン FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 22 Datapath (FPGA etc.) Flow Cache Table Software (CPU) Flow Table #0 Flow Table #x Flow Table #N OpenFlow Agent Packet キャッシュ型 (Cache Entry 無) Flow Cache 投入 問い合わせ
  19. OpenFlow Switch ~ Hardware Datapath実装パターン FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 23 Datapath (FPGA etc.) Flow Cache Table Software (CPU) Flow Table #0 Flow Table #x Flow Table #N OpenFlow Agent Packet キャッシュ型 (Cache Entry 有)
  20. OpenFlow Switch ~ Hardware Datapath実装パターン FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 24 インストール型 キャッシュ型  同じフローのパケットは遅延が同じ  各フロー最初のパケットは遅延大  性能を予測しやすい。  Datapath/CPU間のバスボトルネック  キャッシュ溢れ時にパフォーマンス 劣化  Flow Entry毎の追加・変更が可能  Flow Entry追加・変更時にCache Flushが必要 (Multi Table)  使わないFlow Entryもハードウェア・ リソースを消費  実際に流れたFlowのみハードウェ アリソースを消費
  21. OpenFlow Switch ~ Hardware Datapath実装パターン FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 25 インストール型 キャッシュ型  同じフローのパケットは遅延が同じ  各フロー最初のパケットは遅延大  性能を予測しやすい。  Datapath/CPU間のバスボトルネック  キャッシュ溢れ時にパフォーマンス 劣化  Flow Entry毎の追加・変更が可能  Flow Entry追加・変更時にCache Flushが必要 (Multi Table)  使わないFlow Entryもハードウェア・ リソースを消費  実際に流れたFlowのみハードウェ アリソースを消費
  22. OpenFlow Switch | Software 構成 FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回

    | FPGAX 2014/02/01 | @ebiken 26 Hardware Abstraction Layer Hardware Specific Driver Datapath PCIe Open Flow Agent Protocol Interface 管理インターフェース • Switch/Controlアドレス設定 • ステータス / 統計情報参照 • Debug, Log OF Protocol <-> Datapathのフォーマット変換 Flow Table の Datapath Layout管理(TCAM/RAM) Packet-in/out 仲介処理 PCIe Driver. FPGAボードはPCIeデバイスとしてOSから認識 Admin Interface (CLI, syslog, SNMP) CPU Board FPGA / TCAM / RAM(*) Physical Network Ports (*) RAM = SRAM/DRAM/BlockRAM etc. Controller とのプロトコル・インターフェース OpenFlowプロトコルレベルでの Flow Table管理
  23. FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken

    27 CPU Board (OpenFlow Agent) Physical Ports (10Gbps / 1Gbps) PCIe Core DMA Control Host Interface MAC (XAUI / QSGMII) TCAM (Match Field) SRAM | DRAM (Instruction, Action) (Packet Buffer) Packet FIFO OpenFlow Pipeline Processor Flow Table Provider FPGA Switch / Queue PCIe Flow Entry 投入
  24. FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken

    28 CPU Board (OpenFlow Agent) Physical Ports (10Gbps / 1Gbps) PCIe Core DMA Control Host Interface MAC (XAUI / QSGMII) TCAM (Match Field) SRAM | DRAM (Instruction, Action) (Packet Buffer) Packet FIFO OpenFlow Pipeline Processor Flow Table Provider FPGA Switch / Queue PCIe Packet処理
  25. FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken

    29 OpenFlow Switch 設計の課題 (トレードオフ) 検索Key長 / TCAM Entry幅の長さ Priorityを考慮したUpdate 処理すべきパケットフィールドの多さ
  26. Layer 2 Forwarding (MAC learning) Table 検索 (CAM) FPGAで作るOpenFlow Switch

    | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 30 MAC Address (48 bit) Port 00-00-5E-00-53-FE 5 00-15-17-ED-9E-5B 3 6C-F0-49-7F-79-AA 1 00-00-5E-00-53-01 1 00-15-17-ED-9E-01 2 … … 00-00-5E-00-53-01 検索Key Port 1 へ転送 CAM (Exact Match)
  27. Layer 2 Forwarding (MAC learning) Table 検索 (Hash Table) FPGAで作るOpenFlow

    Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 31 MAC Address Port MAC Address Port MAC Address Port 0 ⇒ 00-00-5E-00-53-FE 5 1 ⇒ 00-15-17-ED-9E-00 3 00-15-17-ED-9E-2F 2 00-15-17-ED-9E-8B 4 2 ⇒ 6C-F0-49-7F-79-AA 1 3 ⇒ 00-00-5E-00-53-08 3 00-00-5E-00-53-01 1 4 ⇒ 00-15-17-ED-9E-01 2 00-00-5E-00-53-F0 4 00-15-17-ED-9E-32 8 … ⇒ … … … … … … 00-00-5E-00-53-01 検索Key Port #1 へ転送 HASH Hash Table (on SRAM)
  28. Layer 3 Forwarding Table 検索 (TCAM - Longest Prefix Match)

    FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 32 TCAM (with Don’t care bit) IPv4 Address (32 bit) Gateway 192 168 10 * 10.0.0.5 10 128 0 * 172.16.0.1 192 168 20 * 172.16.0.2 192 168 * * 10.0.0.100 ... ... ... ... ... * * * * 172.16.0.1 192.168.20.100 検索Key • LPMなのでTCAMが必要 • TCAMは上からMatch • 検索Keyは固定長(IPv6 でも 64bit) ※ 実際は bit 単位
  29. OpenFlow Flow Table (TCAM – Simple design) FPGAで作るOpenFlow Switch |

    FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 33 IN_PORT METADATA ETH_DST ETH_SRC VLAN_VID MPLS_LBL IP_PROTO IPV4_SRC … 10 * * * 1 * * 10.1.1.* … * * * * * * 6 10.1.1.1 … * * * * 10 * * * … 5 * * * 5 * * * … * 0xABAB0010 * * * * 17 * … … … … … … … … … … PORT, METADATA, ETH_DST … 検索Key (1248 bit) Instruction/ Action pop VLAN, … push vlan, goto-table 1 Output 5, … set-metadata, … set-field … … TCAM (40 Fields, 1261 bits) • 無駄が多い。 • 1261 bit 幅のTCAMが必要 ⇒ 32K Entry で約40Mbit • 各 Flow Entry でマッチしたいフィールドは数個。 • Priorityが存在 ⇒ 挿入時にEntryのシフト必要(重い処理)
  30. Search Key 幅に対する対応 (TCAM使用例) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 |

    FPGAX 2014/02/01 | @ebiken 34 参考文献:”OF-DPA Abstract Switch Specification ver1.0” by Broadcom Corporation. Simplified “Figure 2: OpenFlow OF-DPA Abstract Switch Pipeline“ https://github.com/Broadcom-Switch/of-dpa/blob/master/doc/OFDPA_OASS-ETP101-R.PDF Ingress Port Table 1 MAC Table 3 Unicast Routing Table 4a Multicast Routing Table 4b Bridge Table 4c ACL Policy Table 5 VLAN Table 2 Table毎に使用するフィールドを限定  TCAMを使用しなくて良いテーブルもあり  ANDをとったフィールド組み合わせ検索ができない (例: MAC_DST==XXX && VLAN_ID==YY) 検索 処理 CAM or SRAM TCAM
  31. Search Key 幅に対する対応 (TCAM使用例) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 |

    FPGAX 2014/02/01 | @ebiken 35 MATCHフィールドの組み合わせ毎にIDを振り、検索Keyに追加  柔軟なフィールドの組み合わせが可能  処理が複雑(検索Keyの生成、フィールド組み合わせ選択ロジック) TCAM Entry Match Bit String MAC=X|VLAN=0|…|MATCH=1 VLAN=1|MPLS=a|…|MATCH=2 MAC=*|VLAN=5|…|MATCH=1 PORT=4|IPV4_SRC=Z|…|MATCH=3 PORT=*|IPV4_SRC=Y|…|MATCH=3 … MAC|VLAN|…|MATCH-1 検索Key生成 VLAN|MPLS|…|MATCH-2 PORT|IPV4_SRC|…|MATCH-3
  32. Priorityを考慮したUpdateの効率化(TCAM使用例) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 |

    @ebiken 36 全エントリPriority順  同一マッチのみPriority順 リソース利用効率 (悪い  良い) | 管理ロジック(シンプル  複雑) Priority PORT VLAN IP Addr TCP Port 255 3 * * 80 255 1 20 10.0.0.* * 50 * * * 80 10 1 * * 443 0 * * * * Priority PORT VLAN IP Addr TCP Port 255 3 * * 80 255 1 20 10.0.0.* * 50 * * * 80 10 1 * * 443 0 * * * * Priority PORT VLAN IP Addr TCP Port 10 * 10 10.0.0.* 22
  33. パケット処理方法によるトレードオフ FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 |

    @ebiken 37 Layer 3 Switch • MAC DA 変更 • DA: Destination Address • Decrement TTL • Layer 2 処理 MAC DA MAC SA VLAN EtherType MPLS IPv4 / IPv6 / ARP TCP / UDP / ICMP Payload Layer 2 Switch • VLAN Tag Push/Pop
  34. パケット処理方法によるトレードオフ FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 |

    @ebiken 38 MAC DA MAC SA VLAN EtherType MPLS IPv4 / IPv6 / ARP TCP / UDP / ICMP Payload OpenFlow Switch • VLAN Tag Push/Pop • MPLS Push / Pop • 任意のヘッダフィールド値のセット
  35. パケット処理方法によるトレードオフ FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 |

    @ebiken 39 MAC DA MAC SA VLAN EtherType MPLS IPv4 / IPv6 / ARP TCP / UDP / ICMP Payload MAC DA MAC SA VLAN EtherType MPLS IPv4 / IPv6 / ARP TCP / UDP / ICMP Payload 全フィールド並列処理  遅延:小(1~数サイクル)  回路規模:大 各フィールド順次処理  遅延:大(数十~数百サイクル)  回路規模:小
  36. FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken

    40 試したい!という方の為に FPGAでパケット処理 楽しいですよ!
  37. • Digilent Inc. で購入可能 • Part# 410-301P-KIT • Academic:$1,695 (≒20万円)

    • 定価:$24,500(≒300万円) 試してみたい人 | How to try? • NetFPGA SUME • 研究用のNIC型ハードウェア • FPGA: Virtex-7 690T • Network: • 4 x 10Gbps (SFP+) • Memory: • 2 x 4GB DDR3 SoDIMM • 3 x 72Mbits QDR II SRAM • PCIe x8 Gen. 3 (8Gbps x8) • 2 x SATA-III FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 41 Photo from Digilent Inc. http://digilentinc.com/Products/Detail.cfm?NavPath=2,1301,1311&Prod=NETFPGA-10G-SUME
  38. 試してみたい人 | How to try? • FPGA上のOpenFlow実装 • ちょっと古いけど •

     Design Document • Block Diagram • State Machine •  Source Code • GitHub •  OpenFlow 1.0 only • Single Table (No multi-table) FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken 42 https://github.com/NetFPGA/NetFPGA-public/wiki/NetFPGA-10G-OpenFlow-Switch
  39. FPGAで作るOpenFlow Switch | FPGAエクストリーム・コンピューティング 第6回 | FPGAX 2014/02/01 | @ebiken

    43 FPGAでネットワーク ご興味あるかたは是非ご連絡を。 Let’s have fun together !! 海老澤 健太郎 | Kentaro Ebisawa Twitter: @ebiken