SlideShare a Scribd company logo
1 of 16
Download to read offline
FPGA based 10G Performance Tester for HW OpenFlow Switch
Yutaka Yasuda, Kyoto Sangyo University
Why (data plane) Performance Test needs for HW OpenFlow switch?
• There are some “Conformance Test” activities
• RYU Certification
• ONF PlugFest
• How about “Performance Test” ?
• Lack of it, you may fall into the pitfall.
• “It works, but too slow”
Typical Story : Here is a Flow Entry on the OpenFlow HW Switch…
• 2 possibilities to handle it, by Hardware (ASIC) or Software (CPU).
• It is the same functionally, but 1000 times difference in latency. ( μsec vs msec )
• It is not always documented. (basically, no reason to confess it for vendors)
• Features reply is not enough.
• May be depends on the version of the firmware and NOS of the switch.
• No easy & straight way to know it.
• Imagine, what happen when you update your firmware, NOS or OF App…..
Real Example? Here is.
OpenFlow
Controller
Pica8 3290
Spirent
port#1 port#2
Dev. 2 Dev. 3
port#3
#1
#2 #3
1. Spirent sends 64B length packets.
2. Pica8 has a flow entry to forward it from #2 to #3.
3. Spirent checks the latency.
Pica8 + Spirent experiment
In Simple and Basic configuration
• Just forwarding here to there (see below)
• Succeed to forward in wire speed. (1Gbps)
• Latency : Avg. 4.26, Min 4.13, Max 4.28 (usec)
cookie=0x0, duration=1379.649s, table=0, n_packets=0, n_bytes=0,
idle_age=1379, in_port=1,dl_src=00:10:94:00:00:05 actions=output:2
Example of the flow entry:
looks fine!
Good! and Boom! results
• Good results
• MAC rewrite : no additional latency, no degradation of throughput.
• ToS rewrite : same as above
• Bad and Unexpected result
• IP rewrite : deadly slow. Avg. 140ms, Min 0.8ms, Max 350ms (boom!)
• over 1000 times slow throughput
cookie=0x0, duration=3.402s, table=0, n_packets=0, n_bytes=0, idle_age=3,
ip,in_port=1,nw_src=192.85.1.5 actions=mod_nw_dst:192.85.1.16,output:2
Example of the flow entry:
Features Reply?
• It looks only VLAN, MAC treatment are available.
• In fact….
• ToS modification runs on the hardware.
• IP modification will fall back to the software.
• You never know if you never have a go.
root@PicOS-OVS#ovs-ofctl show br0
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000000000111
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS STP ARP_MATCH_IP
actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP SET_DL_SRC SET_DL_DST ENQUEUE
………
You can test by yourself : several options
• Buy Ixia or Spirent : very accurate but super expensive, just overkill
• PC + 10G NIC + Software : cheap but inaccurate
• not easy to tune and calibrate enough. yes you can, but not for everyone.
• FPGA + 10G I/F : not super-cheap but accuracy guaranteed
• time-stamped by hardware, in clock cycle. (8ns currently)
• all time-sensitive components run independently with PC as mothership.
• easy setup. just put the board and run controller app.
My project : FPGA based solution
Xilinx Kintex-7, 125MHz
10G (SFP+) x4
Hardware TCP/UDP implement
PCIe gen2 x1 (just for control)
enough external memory
4x10G ports
no need to use
SAS this time
test scenario
........
........
test scenario
........
........
Host PC
Target Switch
FPGA +
10G I/Fs
monitor
controller
RYU+
custom App
set packet
pattern to FPGA
Operator's Browser
test scenario
........
........
HTTP POST
result
oputput
includes :
packet generate pattern
+ flow entries configuration
REST API
10G Ethernet
OpenFlow 1.x protocol
System Console
(JavaScript App)
load
OF Controller
System Structure
packet generation/send/
receive/counting will be
done in FPGA board
detail data
send packets
&
observe latency
Experiment #1 : 10G/1G stable forwarding measurement
IP DST mod
Match pattern Action
In-port X
Figure 1. 2. shows "ASIC" powered result. Every switch has different
distributions, but all done in sub-micro seconds. Switch A did around 2.7μ in
very steep. C has 9μ or around cause it is 1G switch.
0
20
40
60
80
100
120
140
160
180
200
2728
2736
2744
2752
2760
2768
2776
2784
2792
2800
2808
2816
2824
2832
2840
2848
2856
2864
2872
2880
packets
latency (ns)
Figure 1. Switch A (10G) latency distribution
0"
20"
40"
60"
80"
100"
120"
8448"
8576"
8704"
8832"
8960"
9088"
9216"
9344"
9472"
9600"
9728"
9856"
9984"
packets(
latency((ns)(
Figure 2. Switch B (1G) latency distribution.
(as a proof of the accuracy)
Experiment #2 : Unexpected show forwarding (software fallback)
IP DST mod
Match pattern Action
IP SRC
Only add an IP SRC matching added, the Switch did "software fallback". (Fig
3) Around 350-500μ. But still 2.7% packets exist on the outside of the graph,
far right. The slowest one over 10ms. And this case, 1000 times slower
forwarding.
0
20
40
60
80
100
120
362496
372736
382976
393216
403456
413696
423936
434176
444416
454656
464896
475136
485376
495616
505856
516096
526336
536576
546816
557056
567296
577536
587776
598016
608256
618496
628736
638976
649216
659456
669696
679936
690176
700416
710656
720896
731136
741376
751616
761856
772096
782336
792576
packets
latency (ns)
Figure 3. Switch B (1G) latency distribution, in software fallback situation
continue to right more...
In this case, the maximum throughput is only 16Kpps.
As 100Byte length packets, it means 12.8Mbps.
Experiment #3 : When it will go slow?
In switch B case;
IP matching and IP mod are able to handle by ASIC separately.
But if you specify them at once, it will be slow.
BUT IP matching and ToS mod are able to specify both at once!
Totally unexpected.... (sigh)
Use Case #1
Hunt the “killer entry” - unexpected slow processing order you may have
• OF Apps set the flow entries as their needs, but they don’t care about the performance.
• When your service has performance degradation, you need to make sure that “no killer
entry” exists.
OF switch
flow entries
OF switch
flow entries
OF switch
flow entries
OF switch
flow entries
Your OpenFlow Network
flow entries
testbed switch
packet pattern
packet generator
observe latency
Performance Tester
send packets
set
visualize
collect
(w counter info)
Use Case #2

Comparison “before & after” about the update of SW driver or NOS
• Need to check the performance degradation BEFORE you apply the update to
REAL network.
• For the future, need to see what happen if the flow entries and traffic will go double.
OF switch
flow entries
OF switch
flow entries
OF switch
flow entries
OF switch
flow entries
Your OpenFlow Network
flow entries X
flow entries Y
collect
before the update
after the update
flow entries
testbed switch
packet pattern
packet generator
observe latency
Performance Tester
send packets
set
result X
result Y
test & record
compare
Watch the “Killer Entry”.
To protect yourself from unexpected performance plunge,
monitor your switches healthiness on your site.

More Related Content

What's hot

Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonSeungmo Koo
 
[114] DRC hubo technical review
[114] DRC hubo technical review[114] DRC hubo technical review
[114] DRC hubo technical reviewNAVER D2
 
TRex Realistic Traffic Generator - Stateless support
TRex  Realistic Traffic Generator  - Stateless support TRex  Realistic Traffic Generator  - Stateless support
TRex Realistic Traffic Generator - Stateless support Hanoch Haim
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingScyllaDB
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptablesKernel TLV
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersJim St. Leger
 
Make Your Own Developement Board @ 2014.4.21 JuluOSDev
Make Your Own Developement Board @ 2014.4.21 JuluOSDevMake Your Own Developement Board @ 2014.4.21 JuluOSDev
Make Your Own Developement Board @ 2014.4.21 JuluOSDevJian-Hong Pan
 
Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networkingStephen Hemminger
 
Dead Lock Analysis of spin_lock() in Linux Kernel (english)
Dead Lock Analysis of spin_lock() in Linux Kernel (english)Dead Lock Analysis of spin_lock() in Linux Kernel (english)
Dead Lock Analysis of spin_lock() in Linux Kernel (english)Sneeker Yeh
 
Network Programming With Anyevent
Network Programming With AnyeventNetwork Programming With Anyevent
Network Programming With AnyeventPedro Melo
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniquesamiable_indian
 
The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014Jian-Hong Pan
 
Scanning with nmap
Scanning with nmapScanning with nmap
Scanning with nmapcommiebstrd
 

What's hot (20)

Nmap scripting engine
Nmap scripting engineNmap scripting engine
Nmap scripting engine
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
[114] DRC hubo technical review
[114] DRC hubo technical review[114] DRC hubo technical review
[114] DRC hubo technical review
 
TRex Realistic Traffic Generator - Stateless support
TRex  Realistic Traffic Generator  - Stateless support TRex  Realistic Traffic Generator  - Stateless support
TRex Realistic Traffic Generator - Stateless support
 
New Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using TracingNew Ways to Find Latency in Linux Using Tracing
New Ways to Find Latency in Linux Using Tracing
 
Understanding iptables
Understanding iptablesUnderstanding iptables
Understanding iptables
 
Nmap tutorial
Nmap tutorialNmap tutorial
Nmap tutorial
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
DPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al SandersDPDK Summit 2015 - HP - Al Sanders
DPDK Summit 2015 - HP - Al Sanders
 
Make Your Own Developement Board @ 2014.4.21 JuluOSDev
Make Your Own Developement Board @ 2014.4.21 JuluOSDevMake Your Own Developement Board @ 2014.4.21 JuluOSDev
Make Your Own Developement Board @ 2014.4.21 JuluOSDev
 
NMAP by Shrikant Antre & Shobhit Gautam
NMAP by Shrikant Antre & Shobhit GautamNMAP by Shrikant Antre & Shobhit Gautam
NMAP by Shrikant Antre & Shobhit Gautam
 
Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networking
 
Dead Lock Analysis of spin_lock() in Linux Kernel (english)
Dead Lock Analysis of spin_lock() in Linux Kernel (english)Dead Lock Analysis of spin_lock() in Linux Kernel (english)
Dead Lock Analysis of spin_lock() in Linux Kernel (english)
 
Network Programming With Anyevent
Network Programming With AnyeventNetwork Programming With Anyevent
Network Programming With Anyevent
 
Introduction to Perf
Introduction to PerfIntroduction to Perf
Introduction to Perf
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniques
 
Understanding NMAP
Understanding NMAPUnderstanding NMAP
Understanding NMAP
 
The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014The Simple Scheduler in Embedded System @ OSDC.TW 2014
The Simple Scheduler in Embedded System @ OSDC.TW 2014
 
Scanning with nmap
Scanning with nmapScanning with nmap
Scanning with nmap
 
Nmap
NmapNmap
Nmap
 

Viewers also liked

Lake Crest について調べてみた
Lake Crest について調べてみたLake Crest について調べてみた
Lake Crest について調べてみたYutaka Yasuda
 
Tues. Dec. 20th Pine River Announcements
Tues. Dec. 20th Pine River Announcements  Tues. Dec. 20th Pine River Announcements
Tues. Dec. 20th Pine River Announcements Pine River
 
mruby を C# に 組み込んでみる
mruby を C# に 組み込んでみるmruby を C# に 組み込んでみる
mruby を C# に 組み込んでみるRyosuke Akiyama
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けーTanUkkii
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要かHiromasa Oka
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJOTakashi J OZAKI
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由axsh co., LTD.
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Takuya ASADA
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜Mikiya Okuno
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書くmametter
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?Maciej Lasyk
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 
September 2015 - Market Snapshot - Santa Clara County
September 2015 - Market Snapshot - Santa Clara CountySeptember 2015 - Market Snapshot - Santa Clara County
September 2015 - Market Snapshot - Santa Clara CountyMLSListings Inc
 
it Salud comunitaria y sociedad
it Salud comunitaria y sociedadit Salud comunitaria y sociedad
it Salud comunitaria y sociedadbibliopsicouy
 
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...Insight Technology, Inc.
 

Viewers also liked (20)

Lake Crest について調べてみた
Lake Crest について調べてみたLake Crest について調べてみた
Lake Crest について調べてみた
 
Tues. Dec. 20th Pine River Announcements
Tues. Dec. 20th Pine River Announcements  Tues. Dec. 20th Pine River Announcements
Tues. Dec. 20th Pine River Announcements
 
mruby を C# に 組み込んでみる
mruby を C# に 組み込んでみるmruby を C# に 組み込んでみる
mruby を C# に 組み込んでみる
 
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフトーScalaから見る関数型と並列性時代の幕開けー
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
Simple perceptron by TJO
Simple perceptron by TJOSimple perceptron by TJO
Simple perceptron by TJO
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 
краєзнавчий бібліо Pr
краєзнавчий бібліо Prкраєзнавчий бібліо Pr
краєзнавчий бібліо Pr
 
September 2015 - Market Snapshot - Santa Clara County
September 2015 - Market Snapshot - Santa Clara CountySeptember 2015 - Market Snapshot - Santa Clara County
September 2015 - Market Snapshot - Santa Clara County
 
it Salud comunitaria y sociedad
it Salud comunitaria y sociedadit Salud comunitaria y sociedad
it Salud comunitaria y sociedad
 
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
[db tech showcase Tokyo 2014] B13: PCIe SSDを用いたMySQL 5.6と5.7 のパフォーマンス対決!~MySQ...
 

Similar to FPGA based 10G Performance Tester for HW OpenFlow Switch

SDN/OpenFlow #lspe
SDN/OpenFlow #lspeSDN/OpenFlow #lspe
SDN/OpenFlow #lspeChris Westin
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center supportKrunal Shah
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Jorisimec.archive
 
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...arnaudsoullie
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchJim St. Leger
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at ScaleSean Zhong
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Fwdays
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownScyllaDB
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?salv_orlando
 
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus SDN/OpenFlow switch
 
AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)Amazon Web Services
 
Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3Adam McConnell
 
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdfBRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdfssusercbaa33
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorialopenflow
 
Van jaconson netchannels
Van jaconson netchannelsVan jaconson netchannels
Van jaconson netchannelsSusant Sahani
 

Similar to FPGA based 10G Performance Tester for HW OpenFlow Switch (20)

SDN/OpenFlow #lspe
SDN/OpenFlow #lspeSDN/OpenFlow #lspe
SDN/OpenFlow #lspe
 
Cisco data center support
Cisco data center supportCisco data center support
Cisco data center support
 
20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris20081114 Friday Food iLabt Bart Joris
20081114 Friday Food iLabt Bart Joris
 
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
 
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitchDPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
DPDK Summit - 08 Sept 2014 - NTT - High Performance vSwitch
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
 
OpenFlow Tutorial
OpenFlow TutorialOpenFlow Tutorial
OpenFlow Tutorial
 
Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...Anton Moldovan "Building an efficient replication system for thousands of ter...
Anton Moldovan "Building an efficient replication system for thousands of ter...
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance Showdown
 
Can you trust Neutron?
Can you trust Neutron?Can you trust Neutron?
Can you trust Neutron?
 
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
 
Exam viewer2
Exam viewer2Exam viewer2
Exam viewer2
 
AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)
 
Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3
 
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdfBRKRST-3068  Troubleshooting Catalyst 2K and 3K.pdf
BRKRST-3068 Troubleshooting Catalyst 2K and 3K.pdf
 
OpenFlow tutorial
OpenFlow tutorialOpenFlow tutorial
OpenFlow tutorial
 
Van jaconson netchannels
Van jaconson netchannelsVan jaconson netchannels
Van jaconson netchannels
 

More from Yutaka Yasuda

課題提出日の傾向から見る締切の期間設定
課題提出日の傾向から見る締切の期間設定課題提出日の傾向から見る締切の期間設定
課題提出日の傾向から見る締切の期間設定Yutaka Yasuda
 
ジェンガブロックの押しにくさを推定する試み
ジェンガブロックの押しにくさを推定する試みジェンガブロックの押しにくさを推定する試み
ジェンガブロックの押しにくさを推定する試みYutaka Yasuda
 
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうか
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうかDomain Specific Architecture は今どこまで来ていて、これからどこに向かうか
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうかYutaka Yasuda
 
力のある情報系学生をうまく採用して欲しいのです
力のある情報系学生をうまく採用して欲しいのです力のある情報系学生をうまく採用して欲しいのです
力のある情報系学生をうまく採用して欲しいのですYutaka Yasuda
 
RISC-V の現況と Esperanto Technologies のアプローチ
RISC-V の現況と Esperanto Technologies のアプローチRISC-V の現況と Esperanto Technologies のアプローチ
RISC-V の現況と Esperanto Technologies のアプローチYutaka Yasuda
 
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime AttributesSegue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime AttributesYutaka Yasuda
 
教育側から見たセキュリティ人材教育の「明日はどっちだ」
教育側から見たセキュリティ人材教育の「明日はどっちだ」教育側から見たセキュリティ人材教育の「明日はどっちだ」
教育側から見たセキュリティ人材教育の「明日はどっちだ」Yutaka Yasuda
 
セキュリティ人材育成 最初の一步
セキュリティ人材育成 最初の一步セキュリティ人材育成 最初の一步
セキュリティ人材育成 最初の一步Yutaka Yasuda
 
京都産業大学におけるセキュリティ人材育成の考え方
京都産業大学におけるセキュリティ人材育成の考え方京都産業大学におけるセキュリティ人材育成の考え方
京都産業大学におけるセキュリティ人材育成の考え方Yutaka Yasuda
 
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望京都産業大学AO入試「情報」試験 – 実施報告と今後の展望
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望Yutaka Yasuda
 
A proposal of the OpenFlow controller development support tool
A proposal of the OpenFlow controller development support tool A proposal of the OpenFlow controller development support tool
A proposal of the OpenFlow controller development support tool Yutaka Yasuda
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案Yutaka Yasuda
 

More from Yutaka Yasuda (12)

課題提出日の傾向から見る締切の期間設定
課題提出日の傾向から見る締切の期間設定課題提出日の傾向から見る締切の期間設定
課題提出日の傾向から見る締切の期間設定
 
ジェンガブロックの押しにくさを推定する試み
ジェンガブロックの押しにくさを推定する試みジェンガブロックの押しにくさを推定する試み
ジェンガブロックの押しにくさを推定する試み
 
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうか
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうかDomain Specific Architecture は今どこまで来ていて、これからどこに向かうか
Domain Specific Architecture は今どこまで来ていて、これからどこに向かうか
 
力のある情報系学生をうまく採用して欲しいのです
力のある情報系学生をうまく採用して欲しいのです力のある情報系学生をうまく採用して欲しいのです
力のある情報系学生をうまく採用して欲しいのです
 
RISC-V の現況と Esperanto Technologies のアプローチ
RISC-V の現況と Esperanto Technologies のアプローチRISC-V の現況と Esperanto Technologies のアプローチ
RISC-V の現況と Esperanto Technologies のアプローチ
 
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime AttributesSegue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
Segue, Landscape, Touch events, Alpha and User Defined Runtime Attributes
 
教育側から見たセキュリティ人材教育の「明日はどっちだ」
教育側から見たセキュリティ人材教育の「明日はどっちだ」教育側から見たセキュリティ人材教育の「明日はどっちだ」
教育側から見たセキュリティ人材教育の「明日はどっちだ」
 
セキュリティ人材育成 最初の一步
セキュリティ人材育成 最初の一步セキュリティ人材育成 最初の一步
セキュリティ人材育成 最初の一步
 
京都産業大学におけるセキュリティ人材育成の考え方
京都産業大学におけるセキュリティ人材育成の考え方京都産業大学におけるセキュリティ人材育成の考え方
京都産業大学におけるセキュリティ人材育成の考え方
 
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望京都産業大学AO入試「情報」試験 – 実施報告と今後の展望
京都産業大学AO入試「情報」試験 – 実施報告と今後の展望
 
A proposal of the OpenFlow controller development support tool
A proposal of the OpenFlow controller development support tool A proposal of the OpenFlow controller development support tool
A proposal of the OpenFlow controller development support tool
 
OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案OpenFlowコントローラ開発支援ツールの提案
OpenFlowコントローラ開発支援ツールの提案
 

Recently uploaded

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxMario
 
Cybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesCybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesLumiverse Solutions Pvt Ltd
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119APNIC
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxNIMMANAGANTI RAMAKRISHNA
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxAndrieCagasanAkio
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxmibuzondetrabajo
 

Recently uploaded (9)

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptx
 
Cybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best PracticesCybersecurity Threats and Cybersecurity Best Practices
Cybersecurity Threats and Cybersecurity Best Practices
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptx
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptx
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptx
 

FPGA based 10G Performance Tester for HW OpenFlow Switch

  • 1. FPGA based 10G Performance Tester for HW OpenFlow Switch Yutaka Yasuda, Kyoto Sangyo University
  • 2. Why (data plane) Performance Test needs for HW OpenFlow switch? • There are some “Conformance Test” activities • RYU Certification • ONF PlugFest • How about “Performance Test” ? • Lack of it, you may fall into the pitfall. • “It works, but too slow”
  • 3. Typical Story : Here is a Flow Entry on the OpenFlow HW Switch… • 2 possibilities to handle it, by Hardware (ASIC) or Software (CPU). • It is the same functionally, but 1000 times difference in latency. ( μsec vs msec ) • It is not always documented. (basically, no reason to confess it for vendors) • Features reply is not enough. • May be depends on the version of the firmware and NOS of the switch. • No easy & straight way to know it. • Imagine, what happen when you update your firmware, NOS or OF App…..
  • 4. Real Example? Here is. OpenFlow Controller Pica8 3290 Spirent port#1 port#2 Dev. 2 Dev. 3 port#3 #1 #2 #3 1. Spirent sends 64B length packets. 2. Pica8 has a flow entry to forward it from #2 to #3. 3. Spirent checks the latency. Pica8 + Spirent experiment
  • 5. In Simple and Basic configuration • Just forwarding here to there (see below) • Succeed to forward in wire speed. (1Gbps) • Latency : Avg. 4.26, Min 4.13, Max 4.28 (usec) cookie=0x0, duration=1379.649s, table=0, n_packets=0, n_bytes=0, idle_age=1379, in_port=1,dl_src=00:10:94:00:00:05 actions=output:2 Example of the flow entry: looks fine!
  • 6. Good! and Boom! results • Good results • MAC rewrite : no additional latency, no degradation of throughput. • ToS rewrite : same as above • Bad and Unexpected result • IP rewrite : deadly slow. Avg. 140ms, Min 0.8ms, Max 350ms (boom!) • over 1000 times slow throughput cookie=0x0, duration=3.402s, table=0, n_packets=0, n_bytes=0, idle_age=3, ip,in_port=1,nw_src=192.85.1.5 actions=mod_nw_dst:192.85.1.16,output:2 Example of the flow entry:
  • 7. Features Reply? • It looks only VLAN, MAC treatment are available. • In fact…. • ToS modification runs on the hardware. • IP modification will fall back to the software. • You never know if you never have a go. root@PicOS-OVS#ovs-ofctl show br0 OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000000000111 n_tables:254, n_buffers:256 capabilities: FLOW_STATS TABLE_STATS PORT_STATS STP ARP_MATCH_IP actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP SET_DL_SRC SET_DL_DST ENQUEUE ………
  • 8. You can test by yourself : several options • Buy Ixia or Spirent : very accurate but super expensive, just overkill • PC + 10G NIC + Software : cheap but inaccurate • not easy to tune and calibrate enough. yes you can, but not for everyone. • FPGA + 10G I/F : not super-cheap but accuracy guaranteed • time-stamped by hardware, in clock cycle. (8ns currently) • all time-sensitive components run independently with PC as mothership. • easy setup. just put the board and run controller app.
  • 9. My project : FPGA based solution Xilinx Kintex-7, 125MHz 10G (SFP+) x4 Hardware TCP/UDP implement PCIe gen2 x1 (just for control) enough external memory 4x10G ports no need to use SAS this time
  • 10. test scenario ........ ........ test scenario ........ ........ Host PC Target Switch FPGA + 10G I/Fs monitor controller RYU+ custom App set packet pattern to FPGA Operator's Browser test scenario ........ ........ HTTP POST result oputput includes : packet generate pattern + flow entries configuration REST API 10G Ethernet OpenFlow 1.x protocol System Console (JavaScript App) load OF Controller System Structure packet generation/send/ receive/counting will be done in FPGA board detail data send packets & observe latency
  • 11. Experiment #1 : 10G/1G stable forwarding measurement IP DST mod Match pattern Action In-port X Figure 1. 2. shows "ASIC" powered result. Every switch has different distributions, but all done in sub-micro seconds. Switch A did around 2.7μ in very steep. C has 9μ or around cause it is 1G switch. 0 20 40 60 80 100 120 140 160 180 200 2728 2736 2744 2752 2760 2768 2776 2784 2792 2800 2808 2816 2824 2832 2840 2848 2856 2864 2872 2880 packets latency (ns) Figure 1. Switch A (10G) latency distribution 0" 20" 40" 60" 80" 100" 120" 8448" 8576" 8704" 8832" 8960" 9088" 9216" 9344" 9472" 9600" 9728" 9856" 9984" packets( latency((ns)( Figure 2. Switch B (1G) latency distribution. (as a proof of the accuracy)
  • 12. Experiment #2 : Unexpected show forwarding (software fallback) IP DST mod Match pattern Action IP SRC Only add an IP SRC matching added, the Switch did "software fallback". (Fig 3) Around 350-500μ. But still 2.7% packets exist on the outside of the graph, far right. The slowest one over 10ms. And this case, 1000 times slower forwarding. 0 20 40 60 80 100 120 362496 372736 382976 393216 403456 413696 423936 434176 444416 454656 464896 475136 485376 495616 505856 516096 526336 536576 546816 557056 567296 577536 587776 598016 608256 618496 628736 638976 649216 659456 669696 679936 690176 700416 710656 720896 731136 741376 751616 761856 772096 782336 792576 packets latency (ns) Figure 3. Switch B (1G) latency distribution, in software fallback situation continue to right more... In this case, the maximum throughput is only 16Kpps. As 100Byte length packets, it means 12.8Mbps.
  • 13. Experiment #3 : When it will go slow? In switch B case; IP matching and IP mod are able to handle by ASIC separately. But if you specify them at once, it will be slow. BUT IP matching and ToS mod are able to specify both at once! Totally unexpected.... (sigh)
  • 14. Use Case #1 Hunt the “killer entry” - unexpected slow processing order you may have • OF Apps set the flow entries as their needs, but they don’t care about the performance. • When your service has performance degradation, you need to make sure that “no killer entry” exists. OF switch flow entries OF switch flow entries OF switch flow entries OF switch flow entries Your OpenFlow Network flow entries testbed switch packet pattern packet generator observe latency Performance Tester send packets set visualize collect (w counter info)
  • 15. Use Case #2
 Comparison “before & after” about the update of SW driver or NOS • Need to check the performance degradation BEFORE you apply the update to REAL network. • For the future, need to see what happen if the flow entries and traffic will go double. OF switch flow entries OF switch flow entries OF switch flow entries OF switch flow entries Your OpenFlow Network flow entries X flow entries Y collect before the update after the update flow entries testbed switch packet pattern packet generator observe latency Performance Tester send packets set result X result Y test & record compare
  • 16. Watch the “Killer Entry”. To protect yourself from unexpected performance plunge, monitor your switches healthiness on your site.