SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
コマンドラインでお手軽SDN	
  

            空閑洋平	
  
      sora@haeena.net	
  
                   	
  
  Trema	
  Day	
  #1	
  (2013/1/26)	
  
今日の概要
•  スイッチハードウェアをFPGAで自作	
  
	
  
•  今日はHWとOS間のインタフェースの話	
  
元々は…
•  自作デバイス検証用にネットワークテスタがほしい	
  
 –  個人で買うには高い	
  +	
  すぐに必要だった	
  
 ⇛	
  RFC2544を参考にしたFPGA回路	
  
       •  Throughput,	
  PPS,	
  Latency	
  (8ns単位)の計測	
  
       •  64	
  byte	
  +	
  line-­‐rateなパケット送受信機能	
  

 –  キャプチャしたトラフィックデータの送受信機能	
  
     •  Pcapを簡単にFPGAから送受信したい	
  
     	
  
     ↑を作っていました	
  
できたもの
               Ethernet frame

Packet capture                      Packet generate

          /dev/ethpip        /dev/ethpip

                        OS
                      PCI Bus

                      FPGA
              Port0             Port1
Ether frame                                Ether frame
使い方




 #	
  cp	
  /dev/ethpipe	
  tap.dump	
  	
  
使い方

ふつうのUnixコマンド	
             パケットをキャプチャ	


  #	
  cp	
  /dev/ethpipe	
  tap.dump	
  	
  


           キャラクタデバイス	
  
フォーマットを見てみる


#	
  od	
  -­‐x	
  /dev/ethpipe	
  	
  
0000000	
  d555	
  20b6	
  ba8b	
  0048	
  ffff	
  ffff	
  ffff	
  f8e0	
  
0000020	
  1847	
  xxxx	
  0008	
  0045	
  2c00	
  6b43	
  0000	
  1140	
  
0000040	
  b921	
  XXXX	
  XXXX	
  YYYY	
  YYYY	
  a5c8	
  a421	
  1800	
  
0000060	
  4960	
  4a50	
  424e	
  0101	
  0000	
  0000	
  0000	
  0000	
  
0000100	
  0000	
  0000	
  6f30	
  406b	
  0000	
  0100	
  0000	
  0000	
  
^C	
  
Counter	
  (8ns単位)	

  Magic	
  code	
  (debug用)	
                                                 Frame	
  length	

#	
  od	
  -­‐x	
  /dev/ethpipe	
  	
  
0000000	
  d555	
  20b6	
  ba8b	
  0048	
  ffff	
  ffff	
  ffff	
  f8e0	
  
0000020	
  1847	
  xxxx	
  0008	
  0045	
  2c00	
  6b43	
  0000	
  1140	
  
0000040	
  b921	
  XXXX	
  XXXX	
  YYYY	
  YYYY	
  a5c8	
  a421	
  1800	
  
0000060	
  4960	
  4a50	
  424e	
  0101	
  0000	
  0000	
  0000	
  0000	
  
0000100	
  0000	
  0000	
  6f30	
  406b	
  0000	
  0100	
  0000	
  0000	
  
^C	
  
                    Frame
  Counter length

    32h         16h                           48h
キャラクタデバイス型ネットワークIO


write()                      read()


          send     receive



           /dev/ethpipe
パケットのキャプチャと生成

Unixフレンドリなトラフィック操作	
  

Packet	
  capture	
  	
  
	
  #	
  dd	
  if=/dev/ethpipe	
  of=pkt.dump	
  
	
  
Packet	
  generator	
  
	
  #	
  dd	
  if=pkt.dump	
  of=/dev/ethpipe	
  
パケット解析
PcapNg	
  
   これで保存できれば,色々解析ツールで使える	
  
     •  Wireshark,	
  libpcapなどでほぼ対応	
  
   OpXonを使用	
  {	
  Ethernet	
  FCS,	
  nsec	
  Xmestamp	
  }	
  

Packet	
  capture	
  
   #	
  ./ethdump	
  <	
  /dev/ethpipe	
  >	
  of=tap.ntar	
  
   	
  
Packet	
  generator	
  
   #	
  ./ethgen	
  <	
  tap.ntar	
  >	
  /dev/ethpipe	
  
Wireshark画面




          http://wiki.wireshark.org/Development/PcapNg
応用例
•  もしかして:	
  計測用途以外でも便利かも	
  

•  別の視点からみたら	
  
   –  PacketIn/PacketOut	
  ぽい	
  
   –  パイプとコマンドでトラフィック操作できて超楽しい	
  
   –  ポートごとにデバイス化したらブリッジできる	

EX)	
  ポート0からポート1にブリッジ	
  
	
  #	
  dd	
  if=/dev/ethpipe/0	
  of=/dev/ethpipe/1	
  
EthPIPE adapter (仮)
•  PCI	
  Expressの”PIPE	
  IF”単純なNetwrok	
  IO	
  
•  Unix“パイプ”によるトラフィックのFiltering操作	
  

•  Linuxフレンドリなデータプレーン実装	
  
  –  Ether	
  frameをデバドラ経由で直接open/close	
  
  –  キャラクタデバイスによるread/write	
  
  –  密なハードウェア連携	
  
データフォーマット (案)




      Counter[64bit]:	
  IEEE1588v2互換	
  
Option Field
•  ユーザ指定可能な32bit固定のフィールド	
  
  –  ソフトウェアの一部処理をOffloadingしたり,マル
     チコア処理を補助する目的	
  


•  たとえば	
  
  –  5-­‐tupleハッシュ値	
  #RSS的な用途	
  
     •  LB,IDS,解析ツールのフロー識別を補助	
  
  –  任意のヘッダフィールドの外出し	
  (DPI処理)	
  
     •  L2,	
  L3,	
  L4,	
  L7の特定フィールド	
  
コマンドラインSDN
DstMACの書き換え	
  
dd	
  if=/dev/ethpipe/0	
  |	
  ethtr	
  "xx:xx:xx:xx:xx"	
  
  "yy:yy:yy:yy:yy"	
  |	
  dd	
  of=/dev/ethpipe/1	
  

Command	
  line	
  filtering	
  
dd	
  if=/dev/ethpipe/0	
  |	
  ethgrep	
  -­‐-­‐multicast	
  |	
  dd	
  
  of=/dev/ethpipe/1	
  



※ もしかして: MTUとかCheck sumがおかしくなる
⇛ そこはHWが得意なので,HW側がよしなに対応予定
こんなことも
sshオーバーレイトンネル	
  
(IPマルチキャストパケットだけ転送とか)	
  
	
  
#	
  dd	
  if=/dev/ethpipe/0	
  |ssh	
  
haeena.net	
  dd	
  of=/dev/ethpipe/0	
  

Ethernet	
  frame	
  over	
  SMTP	
  	
  	
  #	
  DTN的なサムシング	
  

#	
  dd	
  if=/dev/ethpipe/0	
  bs=1MB	
  |	
  sendmail	
  
その他の機能: 送受信タイミング調整
•  受信:	
  各フレームのハードウェアカウンタを64	
  
   bitに拡張	
  
 –  Intel	
  i350/82580などで可能	
  
•  送信:	
  受信フレーム到達タイミングを再生	
  
 –  Linux	
  tc用途を想定	
  
	
  
•  パケット受信タイミングの再現や遅延エミュ
     レーションに利用	
  
その他の機能: 送受信タイミング調整


           EtherPIPE adapter



      nanosecond       timestampを見て
   timestampを付与            waiting




    受信ポート                送信ポート
まとめ
•  Linuxフレンドリなデータプレーンの設計	
  
    –  コマンド1行でトラフィックを色々いじって遊べます	
  
    –  使ってて楽しい	
  
    	
  
•  今後の予定	
  
    –  ポートステータス,テスタ機能のマージ	
  
    –  HW	
  Ingress	
  filter	
  +	
  ポート間直接Forwarding	
  
         •  ApplicaXon	
  switching	
  
         •  Soiware	
  switchのHW	
  D-­‐plane	
  
さいごに
•  開発FPGAボード	
  
   –  Lajce	
  ECP3	
  versa	
  kit	
  
        •  $99	
  -­‐>	
  $299,	
  PCIe1.1	
  x1,	
  1000BASE-­‐T	
  x2	
  
   –  NetFPGA-­‐1G	
  (サポート予定)	
  
        •  $699	
  (academic),	
  PCI-­‐X,	
  1000BASE-­‐T	
  x4	
  
•  Repository	
  
   –  テスタ回路	
  (あとで一部マージ)	
  
        •  hops://github.com/Murailab-­‐arch/magukara	
  
   –  EtherPIPE	
  adapter	
  
        •  hops://github.com/sora/xxxx	
  
•  HW側のスライド:	
  hop://www.slideshare.net/
   ykuga/ovshw	
  
補助スライド
IO memory address: global status


  Address	
     Size	
  (Byte)	
     Permission	
     Port	
  
  00	
          1	
                  rw	
                        Slot	
  status	
  
  04-­‐07	
     4	
                  rw	
                        Global	
  
                                                                 counter	
  

  08-­‐0B	
     4	
                  rw	
                        Global	
  
                                                                 counter	
  




  ポートごとのPPS, Throughtput, etcを導入
  ケーブルテスタ,ネットワークテスタ機能 (see RFC2544)
IO memory address: Frame slots


  Address	
         Size	
  (Byte)	
     Permission	
     Port	
  
  4000-­‐5FFF	
     8K	
                 r	
              RX0	
      Recv	
  frame	
  
  6000-­‐7FFF	
     8K	
                 w	
              TX0	
      Send	
  frame	
  	
  
  8000-­‐9FFF	
     8K	
                 r	
              RX1	
      Recv	
  frame	
  	
  
  A000-­‐BFFF	
     8K	
                 w	
              TX1	
      Send	
  frame	
  	
  




  ※ 現在はスロット1つでやってます

Contenu connexe

Tendances

Tendances (20)

nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
High speed-pc-router 201505
High speed-pc-router 201505High speed-pc-router 201505
High speed-pc-router 201505
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
Hydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違いHydrogen → Helium での Linux kernel の違い
Hydrogen → Helium での Linux kernel の違い
 
Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
 
MPSoCのPLの性能について
MPSoCのPLの性能についてMPSoCのPLの性能について
MPSoCのPLの性能について
 
Wiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラムWiresharkで検出できないチャットプログラム
Wiresharkで検出できないチャットプログラム
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)
 
Running lagopus on Xeon D
Running lagopus on Xeon DRunning lagopus on Xeon D
Running lagopus on Xeon D
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
Bird in show_net
Bird in show_netBird in show_net
Bird in show_net
 
Fpgax 20130604
Fpgax 20130604Fpgax 20130604
Fpgax 20130604
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
Richard high performance fuzzing ja
Richard  high performance fuzzing jaRichard  high performance fuzzing ja
Richard high performance fuzzing ja
 

Similaire à Trema day 1

Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
Masakazu Asama
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
Akira Kanaoka
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 

Similaire à Trema day 1 (20)

FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
MAP 実装してみた
MAP 実装してみたMAP 実装してみた
MAP 実装してみた
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...Yet another Intel Chipset Internal SMBus device’s driver: ismt(4)(and spdmem...
Yet another Intel Chipset Internal SMBus device’s driver: ismt(4) (and spdmem...
 
20150715 xflow kikuta_final
20150715 xflow kikuta_final20150715 xflow kikuta_final
20150715 xflow kikuta_final
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
Kernel vm-2014-05-25
Kernel vm-2014-05-25Kernel vm-2014-05-25
Kernel vm-2014-05-25
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
 
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
[bladeRF + MATLAB/Simulink] SDRデバイス利用の手引き
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
 

Trema day 1

  • 1. コマンドラインでお手軽SDN   空閑洋平   sora@haeena.net     Trema  Day  #1  (2013/1/26)  
  • 2. 今日の概要 •  スイッチハードウェアをFPGAで自作     •  今日はHWとOS間のインタフェースの話  
  • 3. 元々は… •  自作デバイス検証用にネットワークテスタがほしい   –  個人で買うには高い  +  すぐに必要だった   ⇛  RFC2544を参考にしたFPGA回路   •  Throughput,  PPS,  Latency  (8ns単位)の計測   •  64  byte  +  line-­‐rateなパケット送受信機能   –  キャプチャしたトラフィックデータの送受信機能   •  Pcapを簡単にFPGAから送受信したい     ↑を作っていました  
  • 4. できたもの Ethernet frame Packet capture Packet generate /dev/ethpip /dev/ethpip OS PCI Bus FPGA Port0 Port1 Ether frame Ether frame
  • 5. 使い方 #  cp  /dev/ethpipe  tap.dump    
  • 6. 使い方 ふつうのUnixコマンド パケットをキャプチャ #  cp  /dev/ethpipe  tap.dump     キャラクタデバイス  
  • 7. フォーマットを見てみる #  od  -­‐x  /dev/ethpipe     0000000  d555  20b6  ba8b  0048  ffff  ffff  ffff  f8e0   0000020  1847  xxxx  0008  0045  2c00  6b43  0000  1140   0000040  b921  XXXX  XXXX  YYYY  YYYY  a5c8  a421  1800   0000060  4960  4a50  424e  0101  0000  0000  0000  0000   0000100  0000  0000  6f30  406b  0000  0100  0000  0000   ^C  
  • 8. Counter  (8ns単位) Magic  code  (debug用) Frame  length #  od  -­‐x  /dev/ethpipe     0000000  d555  20b6  ba8b  0048  ffff  ffff  ffff  f8e0   0000020  1847  xxxx  0008  0045  2c00  6b43  0000  1140   0000040  b921  XXXX  XXXX  YYYY  YYYY  a5c8  a421  1800   0000060  4960  4a50  424e  0101  0000  0000  0000  0000   0000100  0000  0000  6f30  406b  0000  0100  0000  0000   ^C   Frame Counter length 32h 16h 48h
  • 10. パケットのキャプチャと生成 Unixフレンドリなトラフィック操作   Packet  capture      #  dd  if=/dev/ethpipe  of=pkt.dump     Packet  generator    #  dd  if=pkt.dump  of=/dev/ethpipe  
  • 11. パケット解析 PcapNg   これで保存できれば,色々解析ツールで使える   •  Wireshark,  libpcapなどでほぼ対応   OpXonを使用  {  Ethernet  FCS,  nsec  Xmestamp  }   Packet  capture   #  ./ethdump  <  /dev/ethpipe  >  of=tap.ntar     Packet  generator   #  ./ethgen  <  tap.ntar  >  /dev/ethpipe  
  • 12. Wireshark画面 http://wiki.wireshark.org/Development/PcapNg
  • 13. 応用例 •  もしかして:  計測用途以外でも便利かも   •  別の視点からみたら   –  PacketIn/PacketOut  ぽい   –  パイプとコマンドでトラフィック操作できて超楽しい   –  ポートごとにデバイス化したらブリッジできる EX)  ポート0からポート1にブリッジ    #  dd  if=/dev/ethpipe/0  of=/dev/ethpipe/1  
  • 14. EthPIPE adapter (仮) •  PCI  Expressの”PIPE  IF”単純なNetwrok  IO   •  Unix“パイプ”によるトラフィックのFiltering操作   •  Linuxフレンドリなデータプレーン実装   –  Ether  frameをデバドラ経由で直接open/close   –  キャラクタデバイスによるread/write   –  密なハードウェア連携  
  • 15. データフォーマット (案) Counter[64bit]:  IEEE1588v2互換  
  • 16. Option Field •  ユーザ指定可能な32bit固定のフィールド   –  ソフトウェアの一部処理をOffloadingしたり,マル チコア処理を補助する目的   •  たとえば   –  5-­‐tupleハッシュ値  #RSS的な用途   •  LB,IDS,解析ツールのフロー識別を補助   –  任意のヘッダフィールドの外出し  (DPI処理)   •  L2,  L3,  L4,  L7の特定フィールド  
  • 17. コマンドラインSDN DstMACの書き換え   dd  if=/dev/ethpipe/0  |  ethtr  "xx:xx:xx:xx:xx"   "yy:yy:yy:yy:yy"  |  dd  of=/dev/ethpipe/1   Command  line  filtering   dd  if=/dev/ethpipe/0  |  ethgrep  -­‐-­‐multicast  |  dd   of=/dev/ethpipe/1   ※ もしかして: MTUとかCheck sumがおかしくなる ⇛ そこはHWが得意なので,HW側がよしなに対応予定
  • 18. こんなことも sshオーバーレイトンネル   (IPマルチキャストパケットだけ転送とか)     #  dd  if=/dev/ethpipe/0  |ssh   haeena.net  dd  of=/dev/ethpipe/0   Ethernet  frame  over  SMTP      #  DTN的なサムシング   #  dd  if=/dev/ethpipe/0  bs=1MB  |  sendmail  
  • 19. その他の機能: 送受信タイミング調整 •  受信:  各フレームのハードウェアカウンタを64   bitに拡張   –  Intel  i350/82580などで可能   •  送信:  受信フレーム到達タイミングを再生   –  Linux  tc用途を想定     •  パケット受信タイミングの再現や遅延エミュ レーションに利用  
  • 20. その他の機能: 送受信タイミング調整 EtherPIPE adapter nanosecond timestampを見て timestampを付与 waiting 受信ポート 送信ポート
  • 21. まとめ •  Linuxフレンドリなデータプレーンの設計   –  コマンド1行でトラフィックを色々いじって遊べます   –  使ってて楽しい     •  今後の予定   –  ポートステータス,テスタ機能のマージ   –  HW  Ingress  filter  +  ポート間直接Forwarding   •  ApplicaXon  switching   •  Soiware  switchのHW  D-­‐plane  
  • 22. さいごに •  開発FPGAボード   –  Lajce  ECP3  versa  kit   •  $99  -­‐>  $299,  PCIe1.1  x1,  1000BASE-­‐T  x2   –  NetFPGA-­‐1G  (サポート予定)   •  $699  (academic),  PCI-­‐X,  1000BASE-­‐T  x4   •  Repository   –  テスタ回路  (あとで一部マージ)   •  hops://github.com/Murailab-­‐arch/magukara   –  EtherPIPE  adapter   •  hops://github.com/sora/xxxx   •  HW側のスライド:  hop://www.slideshare.net/ ykuga/ovshw  
  • 24. IO memory address: global status Address   Size  (Byte)   Permission   Port   00   1   rw   Slot  status   04-­‐07   4   rw   Global   counter   08-­‐0B   4   rw   Global   counter   ポートごとのPPS, Throughtput, etcを導入 ケーブルテスタ,ネットワークテスタ機能 (see RFC2544)
  • 25. IO memory address: Frame slots Address   Size  (Byte)   Permission   Port   4000-­‐5FFF   8K   r   RX0   Recv  frame   6000-­‐7FFF   8K   w   TX0   Send  frame     8000-­‐9FFF   8K   r   RX1   Recv  frame     A000-­‐BFFF   8K   w   TX1   Send  frame     ※ 現在はスロット1つでやってます