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 manage
What is SDN/OpenFlow Separate Control and Data Abstraction Global view Smart,! slow! Logically-centralized control! API (abstraction) to the data plane! (e.g., OpenFlow)! Switches! Dumb,! fast!
SDN vs. OpenFlow OpenFlow SDN
History Y2006 Openflow/ SDN concept GENI, Internet2 Y2012 Google B4, VMWare Nicira VN We;are;now; considering;; Openflow/SDN Architecture/ specifica6on Prototyping/ Tes6ng;Network Real; deployment More;Flexible,; Dependable,; Scalable,;secure; and;more;apps. Y2009 OpenFlow V1.0 Y2013-2014 Spanish/China Mobile Telecom/ AT&T/ Huawei built SDN-based IPRAN for testing Y2013 Microsoft SWAN for Inter-DC scheduling
SDN Players Academia Content Provider Vendor ISP
SDN Players Academia Content Provider Vendor ISP
SDN Players Academia Content Provider Vendor ISP
SDN Players Academia Content Provider Vendor ISP
SDN Players Academia Content Provider Vendor ISP
SDN Players Academia Content Provider Vendor App. Dev.??? http://opensourcesdn.org ISP
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! 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 Match Action ~40 matching header fields defined yet still many uncovered protocols/headers 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_PBB and on and on and on Current OpenFlow {offset, length} covers any frame based formats POFAT_SET_FIELD POFAT_ADD_FIELD POFAT_DELETE_FIELD POFAT_MOD_FIELD Period. POF 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. Haoyu Song, Protocol-Oblivious Forwarding: Unleash the Power of SDN through a Future-Proof Forwarding Plane, HotSDN 2013
POF Protocol Specific Application Programming Languages Application API Protocol Agnostic Tables/Instructions Flow Tables Controller POF Instructions POF Data Path OpenFlow+ Programmable Network optimized High performance NPU ASIC Compiler Flow Instruction Set Hardware Abstraction Layer Flex Flow Processor Runtime & Remote reprogrammable Table driven & protocol blind Flow instruction set CPU Driver Flexible Generic Standard Low level instruction set Controller Forwarding Elements
P4: Programming Protocol- Independent Packet Processors Proposed by -Nick McKeown -Jennifer Rexford -Amin Vahdat -George Varghese Goals -Protocol independence -Target independence -Reconfigurability "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 Service Controller Forwarding Element API Sys. Call Driver Instruction Set Application Operating System CPU system Peripheral SDN Computer System
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 platform
ONetSwitch: 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... Not only in controller So many issues we need to rethink the data plane Control& Router& Conf.&& Mgt.& Message&Processing& Abstrac5on/API& Data& Parser& Matching& Ac5ons&
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., L7
COPY 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... sw( ( (Switch( Control(plane( OpenFlow( Protocol( SSL( Controller( PC( hw( Data(plane( Flow(Table( Channel Overflow Flow Table overflow! Buffer overflow
Seek help from neighbors Borrow neighbors buffer loop routing under control Borrow neighbors flow table Offload to neighbor 1.0 Max P P(spread) Hash Tag Module Add a byte 0-255 minthresh A Network traffic Mismatched maxthresh 70% 30% 0-106 107-159 160-255 Forward to Ctroller empty Rule1 B Rule2 C Def- Ctroller Avg depth Ruled by Rule1 Ruled by Rule2 Matched
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' Pattern' Priority' <1,$2>$ 3$ <*,$2>$ 2$ <*,$*>$ 1$ Old$ <1,$2>$ 5$ <2,$*>$ 4$ <1,$*>$ 3$ <*,$2>$ 3$ <3,$*>$ 2$ <*,$*>$ 1$ New$ Priority$Updates$ 3 rule adds + 2 priority updates Unmodified$fields$ Modified$fields$
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-sourcehardware-for-networking
Thank you