Flexibility vs. Scalability
in SDN Data Plane
Chengchen Hu
ERCIM Postdoc@NTNU Assoc. Prof. @XJTU
Mar. 19, 2015
Why SDN/OpenFlow
•
Internet is a remarkable story•
But we need rethink•
Closed equipment•
Over specified•
Few people can innovate•
network are hard to manageWhat is SDN/OpenFlow
•
Separate Control and Data•
Abstraction•
Global viewAPI (abstraction) to the data plane!
(e.g., OpenFlow)! Logically-centralized control! Switches! Smart,! slow! Dumb,! fast! 15年3月19⽇日星期四
SDN vs. OpenFlow
OpenFlow SDN
History
Openflow/SDN Architecture/ specifica6on Prototyping/ Tes6ng;Network Real; deployment More;Flexible,; Dependable,; Scalable,;secure; and;more;apps. Y2006 Openflow/ SDN concept GENI, Internet2 Y2009 OpenFlow V1.0 Y2012 Google B4, VMWare Nicira VN We;are;now; considering;; Y2013-2014 Spanish/China Mobile Telecom/ AT&T/ Huawei built SDN-based IPRAN for testingY2013 Microsoft SWAN for Inter-DC scheduling 15年3月19⽇日星期四
SDN Players
Academia Vendor Content Provider ISP 15年3月19⽇日星期四SDN Players
Academia Vendor Content Provider ISP 15年3月19⽇日星期四SDN Players
Academia Vendor Content Provider ISP 15年3月19⽇日星期四SDN Players
Academia Vendor Content Provider ISP 15年3月19⽇日星期四SDN Players
Academia Vendor Content Provider ISP 15年3月19⽇日星期四SDN Players
Academia Vendor Content Provider ISP App. Dev. ??? http://opensourcesdn.org 15年3月19⽇日星期四SDN is moving forward
Towards more flexible SDN
OpenFlow is evolving
•
Openflow 2.0•
doesn’t formally exist yet•
but one possible shape — a more flexible take on packet switching — is starting to form.POF: Protocol Oblivious Forwarding
OFPAT_COPY_TTL_OUT OFPAT_COPY_TTL_IN OFPAT_SET_MPLS_TTL OFPAT_DEC_MPLS_TTL OFPAT_PUSH_VLAN OFPAT_POP_VLAN OFPAT_PUSH_MPLS OFPAT_POP_MPLS OFPAT_SET_NW_TTL OFPAT_DEC_NW_TTL OFPAT_PUSH_PBB OFPAT_POP_PBBand on and on and on …
POFAT_SET_FIELD POFAT_ADD_FIELD POFAT_DELETE_FIELD POFAT_MOD_FIELD Period. ~40 matching header fields defined yet still
many uncovered protocols/headers
{offset, length} covers
any frame based formats
Packet field parsing and handling are abstracted as generic instructions to enable flexible and future proof forwarding elements. This is simple yet has profound implications to SDN.
Match
Action
Current OpenFlow POF
! Table search keys are
defined as {offset, length} tuples
! Instructions/Actions
access packet data or metadata using
{offset, length} tuples
! Include other math,
logic, move,
branching, and jump instructions
Haoyu Song, Protocol-Oblivious Forwarding: Unleash the Power of SDN through a Future-Proof
Forwarding Plane, HotSDN 2013
POF
Programming Languages
Compiler
Flow Instruction Set
Application API
• Programmable
• Network
optimized
• Runtime & Remote reprogrammable
• Table driven & protocol blind
• Flow instruction set
• Flexible • Generic • Standard • Low level instruction set NPU CPU • High performance Flex Flow Processor ASIC Protocol Specific Application Protocol Agnostic Tables/Instructions Controller Flow Tables POF Instructions
POF Data Path
OpenFlow+ Hardware
Abstraction Layer Driver
C o n tr o lle r F o rw ar d in g El em en ts 15年3月19⽇日星期四
P4: Programming
Protocol-Independent Packet Processors
Goals -Protocol independence -Target independence -Reconfigurability Proposed by -Nick McKeown -Jennifer Rexford -Amin Vahdat -George Varghese
"P4: Programming Protocol-Independent Packet Processors," ACM Sigcomm Computer
Communications Review (CCR). Volume 44, Issue #3 (July, 2014)
FAST
Masoud Moshref, Apoorv Bhargava, Adhip Gupta, Minlan Yu, Ramesh Govindan, Flow-level State Transition as a New Switch Primitive for SDN, HotSDN 2014
Remarks
• Computer system components are decoupled from the vertical integration model
• Openflow is on the track to mimic computer system, but currently still doesn’t embrace this model to the full extent
• Towards a more flexible Openflow2.0, it follows the way how computer system does SDN Computer System API Sys. Call Driver Instruction Set Service Controller Forwarding Element Application Operating System CPU system Peripheral 15年3月19⽇日星期四
Why not make data-plane
programmable?
•
OpenFlow evolving, SDNs emerging•
Better and more efficient use of data-plane resource•
we need a full programmable SDN platformONetSwitch: All programmable SDN Switch ONetCard 2012 Aug PCIe Card ONetSwitch 45 4*10G, 4*GE, wifi 2013 Aug ONetSwitch 20 4*GE, with ZEDboard
2013 Dec
ONetSwitch 30 wifi/storage, 5*GE
2014 Dec.
300+ ONetSwitches over 20+ users in China, US, Europe
ONetSwitch: All programmable SDN Switch
Chengchen Hu, Ji Yang, Hongbo Zhao, and Jiahua Lu. “Design of all programmable innovation platform for software defined networking”. Open Networking Summit (ONS) 2014, Santa Clara, CA, US, 2014
Chengchen Hu, Ji Yang, Zhimin Gong, Shuoling Deng, Hongbo Zhao. “DesktopDC: Setting All
Programmable Data Center Networking Testbed on Desk”, Poster&Demo at SIGCOMM 2014, Chicago, IL, US, 2014
Emerging (scalability)
challenges
for more flexible SDN
Scalability Issues happen...
Message&Processing&
Router& Conf.&& Mgt.&
Parser& Matching& Ac5ons&
Control&
Data&
Abstrac5on/API&
Not only in controller
So many issues we need to rethink the data plane
Shifting nature of Openflow
protocol
•
OpenFlow 1.3/1.4 defined 41 fields•
A lot•
Too many to include all in hardware•
But still not enough•
Still missing tons of protocols, eg., L7COPY
COntent Parsing methodologY
Hao Li, Chengchen Hu, Junkai Hong, Xiyu Chen, Yuming Jiang, Parsing Application Layer Protocol with Commodity Hardware for SDN, in the proceeding of ACM/IEEE ANCS
2015, Oakland, USA, May 7-8, 2015.
With fast but small
matching table ...
Controller( ( (Switch( Flow(Table( PC( OpenFlow( Protocol( SSL( hw( sw( Data(plane( Control(plane(Flow Table overflow!
Buffer overflow Channel Overflow
Seek help from neighbors
•
Borrow neighbors’ buffer•
“loop routing” under control•
Borrow neighbors’ flow table•
Offload to neighbor A Def-‐Ctroller Rule2→C Rule1→B 70% 30% empty 0-‐106 107-‐159 160-‐255 Hash Tag ModuleAdd a byte 0-‐255
Mismatched
Matched
Forward to Ctroller Ruled by Rule1 Ruled by Rule2
Network traffic P(spread) 1.0 Max P minthresh maxthresh Avg depth 15年3月19⽇日星期四
Challenges: Mice flows
Yue Zhang, Kai Zheng, Chengchen Hu, Kai Chen, Yi Wang, Athanasios Vasilakos, CoSwitch: A Cooperative Switching Design for Software Defined Data Center Networking. HotData, 2014 ( best paper award)
Problem with Rule
update
• Flowtable update bottleneck
• 10s to 100s of rule edits per second
• Full refresh of 5K entries takes minutes Pattern' Priority' <1,$2>$ 3$ <*,$2>$ 2$ <*,$*>$ 1$ Pattern' Priority' <1,$2>$ 5$ <2,$*>$ 4$ <1,$*>$ 3$ <*,$2>$ 3$ <3,$*>$ 2$ <*,$*>$ 1$
Old$
New$
Modified$fields$Unmodified$fields$ Priority$Updates$
3 rule adds + 2 priority updates
Try to minimize the
update
Co-work with Northwestern University (US) submitted to SIGCOMM 2015
When forcing actions...
Flow pipe
Flow based actions
Data Plane Verification
Kickstarter Project
•
https://www.kickstarter.com/projects/onetswitch/onetswitch-open-source-hardware-for-networking
Thank you