How fast can you update the flow table?

advertisement
OFLOPS: An Open Framework for OpenFlow
Switch Evaluation
Haris Rotsos, Andrew W. Moore, University of Cambridge
Nadi Sarrar, T-Labs/TU Berlin
Steve Uhlig, Queen Mary University of London
Rob Sherwood,BigSwitch
SDN Revolution



Computer network evolution faces new barriers:
–
Network applications develop diverse network requirements.
–
Internet protocol ossification makes network evolution difficult.
–
“Intelligence” in the network can solve the problem.
Software Defined Networking to the rescue.
–
Decouple Control from Forwarding plane.
–
Define a new flow-centric network management abstraction.
–
Evolution of Active Network and DCAN research.
–
OpenFlow protocol currently provides such an abstraction.
What is the cost of this flexibility?
OpenFlow primitives
Flow entry
Dynamic flow definition
Nick McKeown et al, “OpenFlow, Innovation in Campus Networks”
Motivation
What are the capabilities and bottlenecks of an
OpenFlow switch implementation?
•
How do I compare OpenFlow switches from different
vendors?
•
Rapid design evaluation.
–
What is the impact of a network design to the overall
performance?
–
How slow will my switch become if there is a DoS attack
while I poll for network statistics?
OFLOPS




Fast, low overhead, multithreaded controller framework
with integrated network traffic
generator.
Modular event driven API.
Access to multiple input
measurement channels (data/ctrl
plane, SNMP).
Extensible traffic generation and
traffic capturing mechanism to
support heterogeneity and
precision.
OFLOPS Measurements
•
Using OFLOPS we try understand the
following functionalities:
– Action processing.
– Flow table update.
– Traffic monitoring.
– Message interactions.
Switches
• Using OFLOPS we test a number of representative set of
available OpenFlow switches.
Switch
CPU
Flow Table size
Switch1
PowerPC 500MHz
3072 mixed flows
Switch2
PowerPC 666MHz
1500 mixed flows
Switch3
PowerPC 828MHz
2048 mixed flows
OpenVSwitch
Xeon 3.6GHz
1M mixed flows
NetFPGA
DualCore 2.4GHz
32K exact match & 100 wildcard flows
• OFLOPS is setted up on a 4-core PC equipped with a
NetFPGA card and direct connection with the switch.
Flow Insertion Delay
•
How fast can you update the flow table?
•
2 measurement probes:
– FLOW A: UDP – 1 src to N dst. - 10Mbps/100 bytes.
– FLOW B: UDP – 1 src to 1 dst – 10Mbps/100bytes.
Flow Insertion - Barrier Reply
delay(msec)
OpenVSwitch
barrier reply
transmission delay
first packet
1000
100
10
1
0.1
0.01
1
10
100
1000
number of flows
delay(msec)
Switch 1
1000
barrier reply
transmission delay
first packet
100
10
1
0.1
0.01
1
10
100
number of flows
1000
Flow Insertion – Data Plane
switch1 - mod flow
switch1 - add flow
switch2 - mod flow
switch2 - add flow
ovs - mod flow
ovs - add flow
Insertion time (msec)
10000
1000
100
10
1
0.1
1
10
100
Number of flow entries inserted
1000
Traffic Monitoring
• Flow stats messages allows controller defined traffic monitor
–
Traffic matrix estimation, large traffic aggregates
• How do implementations handle these type of messages?
• Insert 1000 flows. Polls for flow stats while sending 100
Mbps/100 bytes traffic on data channels.
flow stats delay (msec)
Flow Statistics
switch1
switch2
switch3
netfpga
ovs
1000
100
10
1
cpu utlization
0.25
0.5
1
4
flow statistics poling rate (requests/sec)
100
Switch1
Ovs
Switch2
and paces
tries
NetFPGA
toits
reply
replies
powerful
as fast
in
CPUs
as
order
possible
to
provide
avoid
to overloading
stats
low latency
requests
its
with results
and
CPU.
minimum
in high
CPUCPU
utilisation.
switch1
switch2
netfpga
ovs
80
60
40
20
0
0.25
0.5
1
4
flow statistics poling rate (requests/sec)
Message interactions
• Dynamically adapting application and OpenFlow
– Will my load balancer app crash if I poll too fast for flow
statistics?
• Repeat the previous experiment and measure
the delay to insert 100 flows.
insertion delay (usec)
Protocol Interaction
switch1
switch2
switch3
netfpga
ovs
10000
1000
100
10
0
0.25
0.33
1
2
flow statistics polling rate (requests/sec)
What I learned using OFLOPS
• OpenFlow switch implementation is not trivial.
– Software switches provide excellent control channel
performance, but suffer in forwarding delay.
– Switch firmware are still early in their development.
– Switching fabrics are not OpenFlow-optimised.
Further improvement requires chip redesign or
abstraction redefinition.
Conclusions




OFLOPS: framework for performing OpenFlow
measurements
Advanced instrumentation: NetFPGA for packet
generation / capturing, SNMP, ...
Allows to identify bottlenecks and limitations of
OpenFlow implementations.
Tested a number of primitive OpenFlow
functionalities and discover significant
variations.
OFLOPS on the NET

Do you want to start developing your modules
–
http://www.openflow.org/wk/index.php/Oflops
–
http://github.com/crotsos/netfpga-packetgenerator-c-library/
Thank you!!!! :D
Download