2. 2Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Software Defined Networking (SDN)
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Network OS
OpenFlow API
Network OS vs. Controller (or is it just OF Driver?)
Can controller ensure correct programming behavior?
Are there any missing pieces?
Controller
3. 3Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
OpenFlow Protocol – Quick Overview
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Network OS
OpenFlow API
Connection:
Logically Centralized?
# of Switches/Controllers
Setup (TCP/TLS) / Interruption
Inband/Out-of-band
Message Types:
Controller-to-switch
Asynchronous
Symmetric
Message Handling:
Delivery
Processing
Ordering
Controller
4. 4Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Programming Challenges
Consistency
Correctness
Optimization
Performance
Heterogeneous
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Network OS
OpenFlow API
Controller
Match Fields Attributes Instructions
* priority = 0 Drop
10.0.0.1 priority = 100 Output:2
5. 5Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Consistency
Fail secure mode:
– Packets to controller -
DROPPED
Fail standalone mode:
– Switch acts as a legacy
Ethernet switch or router Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Network OS
OpenFlow API
Controller
✕
Retain existing flows
– Does not break forwarding
– Might be Inconsistent
– Query entire flow state
Delete all flows
– Breaks forwarding
– Can restore to consistent state
– Re-compute logic or maintain local
copy?
Reconnection
Interruption
6. 6Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Correctness
Violations (e.g., conflicting
actions) (FortNOX)
Misconfigurations
(e.g., incorrect flow attributes)Controller
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
OpenFlow API
Security App 2 App 3
Match Fields Attributes Instructions
* priority DROP
conflicting flow updates
• If controller acts just like an OF-Driver, will applications talk OpenFlow? What is the right
abstraction?
• How to verify correct programming updates?
7. 7Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Optimization
Size
– Flow duration (idle/hard timeouts): Reducing timeouts reduce flow
table size (DevoFlow)
– Single Flow Table: Cartesian Explosion Issue (Can be solved by Multi-
table)
Aggregation
– One flow entry covers large groups of flows, can be one entry per
category of flows
– Wildcard flow entries
– Key: How to optimize flow updates from controller as well as retain
correct logic?
8. 8Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Performance
Proactive programming when possible
– Controller pre-populates flow table in switch
– Zero additional flow setup time
Leverage hardware features
– Number of Connections (OF auxiliary channels)
Controller
Packet
Forwarding
(1) Flow Lookup Miss
(2)
(3) Processing
Time Flow Setup Time: Flow Lookup Miss +
OF Channel RTT +
Controller Processing Time +
Flow Table Update time
(5) Flow Table
Update Time
(4)
9. 9Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Heterogeneous
Switch capabilities
– Software switches
More features, lower
performance
– Hardware switches
Less features, better
performance
Does controller and Apps
write customized code for
each switch?
Another Issue:
– Different OF Versions
OVS
Vendor X
Vendor X
Softswitch
Network OS
OpenFlow 1.0
Controller
• Need for portable API that can abstract low-level heterogeneity
OpenFlow 1.3
10. 10Copyrights 2013 NTT Innovation Institute, Inc. All rights reserved.
Possible Missing Pieces
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
OpenFlow API
Controller
Portable API Run-time system
Abstraction Layer
Correctness
Heterogeneous Consistency
Optimization