Slide 1 Simple, Flexible Programming of Data Movement Paths using Algorithmic Policies PIs: Y. Richard Yang, Robert Bjornson, Andrew Sherman Architect:

Slides:



Advertisements
Similar presentations
2 Introduction A central issue in supporting interoperability is achieving type compatibility. Type compatibility allows (a) entities developed by various.
Advertisements

Proposal: Model-Driven SAL for the OpenDaylight Controller
Heng Pan , Hongtao Guan, Junjie Liu (ICT, CAS)
SDN Controller Challenges
Software-defined networking: Change is hard Ratul Mahajan with Chi-Yao Hong, Rohan Gandhi, Xin Jin, Harry Liu, Vijay Gill, Srikanth Kandula, Mohan Nanduri,
Frenetic: A High-Level Language for OpenFlow Networks Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, David Walker.
Nanxi Kang Princeton University
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
OpenSketch Slides courtesy of Minlan Yu 1. Management = Measurement + Control Traffic engineering – Identify large traffic aggregates, traffic changes.
An Overview of Software-Defined Network Presenter: Xitao Wen.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
Asa MacWilliams Lehrstuhl für Angewandte Softwaretechnik Institut für Informatik Technische Universität München Dec Software.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Exploring OpenDaylight
An Overview of Software-Defined Network
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 MESCAL Application Modeling and Mapping: Warpath Andrew Mihal and the MESCAL team UC Berkeley.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Oakkar Fall The Need for Decision Engine Automate business processes Implement complex business decision logic Separation of rules and process Business.
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
Software-Defined Networks Jennifer Rexford Princeton University.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
VeriFlow: Verifying Network-Wide Invariants in Real Time
Languages for Software-Defined Networks Nate Foster, Michael J. Freedman, Arjun Guha, Rob Harrison, Naga Praveen Katta, Christopher Monsanto, Joshua Reich,
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
Ahmed M. Gamal, J2EE Mohamed Maaty, Information hp INTRODUCING JBPM.
Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
A survey of SDN: Past, Present and Future of Programmable Networks Speaker :Yu-Fu Huang Advisor :Dr. Kai-Wei Ke Date:2014/Sep./30 1.
Aaron Gember, Theophilus Benson, Aditya Akella University of Wisconsin-Madison.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Extending OVN Forwarding Pipeline Topology-based Service Injection
Improving Network Management with Software Defined Network Group 5 : z Xuling Wu z Haipeng Jiang z Sichen Wu z Aparna Sanil.
P4 Amore! ( Or, How I Learned to Stop Worrying and Love P4) Jennifer Rexford Princeton University.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
Forwarding Programming in Protocol- Oblivious Instruction Set Author : Jingzhou Yu, Xiaozhong Wang, Jian Song, Yuanming Zheng, Haoyu Song Conference: 2014.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
SUPA Proposition Maxim Klyus, NetCracker John Strassner, Huawei Technologies July, 2015.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Instructor Materials Chapter 7: Network Evolution
CS434/534: Topics in Networked (Networking) Systems High-Level Programming for Programmable Networks: A Blackbox Approach Yang (Richard) Yang Computer.
SDN challenges Deployment challenges
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Multi-layer software defined networking in GÉANT
University of Maryland College Park
Toward Super High-Level SDN Programming
NOX: Towards an Operating System for Networks
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
Working at a Small-to-Medium Business or ISP – Chapter 6
A Novel Framework for Software Defined Wireless Body Area Network
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Magellan: Automatic SDN Pipelining from Algorithmic Policies
ExaO: Software Defined Data Distribution for Exascale Sciences
CS434/534: Topics in Networked (Networking) Systems High-Level Programming for Programmable Networks Yang (Richard) Yang Computer Science Department.
ClosedFlow: OpenFlow-like Control over Proprietary Devices
Programmable Networks
An Introduction to Software Defined Networking and OpenFlow
Backbone Traffic Engineering
CS434/534: Topics in Network Systems High-Level Programming for Programmable Networks Yang (Richard) Yang Computer Science Department Yale University.
OpenSec:Policy-Based Security Using Software-Defined Networking
An Introduction to Software Defined Networking and OpenFlow
Presentation transcript:

Slide 1 Simple, Flexible Programming of Data Movement Paths using Algorithmic Policies PIs: Y. Richard Yang, Robert Bjornson, Andrew Sherman Architect: Andreas Voellmy

Slide 2 Context: Types of Devices in a Network Cyberinfrastructure Source: [Sherry, et. al. SIGCOM’12] Small: 1k hosts; Medium: 1-10k; Large: k; Very large: >= 100k.

Slide 3 Goals of Select Data Movement Paths in Complex Networks Satisfy CI app need Maximize resource util. Satisfy CI policies Adapt to state changes

Slide 4 Our Approach A programming framework to allow highly flexible control of data movement paths. Key goal: general, but extremely simple programming.

Slide 5 Project Context: SDN

Slide 6 Focus of Current SDN Systems: Data Store Network View NE Datapath Service/ Policy NE Datapath logically centralized data store

Slide 7 Example: Architecture of OpenDaylight

Slide 8 What is Missing? Network View NE Datapath Service/ Policy NE Datapath logically centralized data store Program

Slide 9 Why is “Bridging” Hard? Low-level, limited, flow table computation models Evolving, increasingly complex forwarding models (e.g., OF1.0, OF1.3, P4)

Slide 10 Example: A Simple ScienceNet Controller badSrc = 100 // policy topo = {…} // netview def onPacketIn(p): // policy+netvw->DP if badSrc == p.ip_src: return drop else: return mySNAlg(topo, p.ip_dst) def mySNAlg(topo, dst-ip): if dtn.ip == dst-ip: return alg1(topo, dst-ip) else: return alg2(topo, dst-ip) D (dtn) A B

Slide 11 Complexity: Controller Program => Flow Table badSrc = 100 // policy topo = {…} // netview def onPacketIn(p): // policy+netvw->DataPath if badSrc == p.ip_src: return drop installRule({‘match':{’ip_src’:badSrc}, ‘action’:[]}) else: return myAlg(topo, p.ip_dst) installRule({‘match’: {‘ip_dst’:p.ip_dst, ’ip_src’!=badSrc}, ‘action’:[myAlg(topo, p.ip_dst)]}) DataPath action does not support logical negation!

Slide 12 Complexity: Controller Program => Flow Table badSrc = 100 // policy topo = {…} // netview def onPacketIn(p): // policy+netvw->DataPath if badSrc == p.ip_src: return drop installRule({‘priority’:1, ‘match':{’ip_src’:badSrc}, ‘action’:[]}) else: return myAlg(topo, p.ip_dst) installRule({‘priority’:1, ‘match':{’ip_src’:badSrc}, ‘action’:?}) installRule({‘priority’:0, ‘match’: {‘ip_dst’:p.ip_dst, ‘action’:[myAlg(topo, p.ip_dst)]})

Slide 13 Complexity: Controller Program => Flow Table badSrc = 100 // policy topo = {…} // netview def onPacketIn(p): // policy+netvw->DataPath if badSrc == p.ip_src: return drop installRule({‘priority’:1, ‘match':{’ip_src’:badSrc}, ‘action’:[]}) else: return myAlg(topo, p.ip_dst) installRule({‘priority’:1, ‘match':{’ip_src’:badSrc}, ‘action’:[]}) installRule({‘priority’:0, ‘match’: {‘ip_dst’:p.ip_dst, ‘action’:[myAlg(topo, p.ip_dst)]})

Slide 14 End Result: Flow Table Table has many wildcard entries => inefficient. D A B

Slide 15 More Efficient Flow Tables using OF 1.3 Table 1 Table 2 D A B

Slide 16 Problem: Handling Platform Diversity badSrc = 100 // policy topo = {…} // netview def onPacketIn(p): // policy+netvw->DP if badSrc == p.ip_src: return drop … else: return myAlg(topo, p.ip_dst) if (switch_supports pipeline) installRule for two tables else: installRule for one table D A B

Slide 17 Our Project: Datapath Oblivious Programming Switches Programmer level Under the hood Network OS (NOS) Step 1. Make Decisions Step 2. Generate DataPath Make Decisions Switches Network OS (NOS) Step 2. Generate DataPath current our project

Slide 18 Our Programming Abstraction Control application expressed in a general purpose language that describes how a packet should be moved across a network, not how flow tables are configured –Written in a familiar language such as Java, Python, or Haskell. Conceptually invoked on every packet entering the network; may also access network environment state

Slide 19 Example Program in Java Route onPacketIn(Packet p) { if (p.tcpDstIs(22)) return null(); else { Switch srcSw = macTable.get(p.ethSrc()); Switch dstSw = macTable.get(p.ethDst()); return myRoutingAlg(srcSw, dstSw); } Does not specify anything on data path!

Slide 20 Key Challenge Route onPacketIn(Packet p) { 1. Switch srcSw = macTable.get(p.ethSrc()); 2. Switch dstSw = macTable.get(p.ethDst()); 3. return myRoutingAlg(srcSw, dstSw); } Challenge: How to convert a general program into device data (flow tables)?

Slide 21 Key Insight: Flow Tables are Memorization Tables Route onPacketIn(Packet p) { 1. Switch srcSw = macTable.get(p.ethSrc()); 2. Switch dstSw = macTable.get(p.ethDst()); 3. return myRoutingAlg(srcSw, dstSw); } Line 1 ethSrc srcSw Line 2 ethDst dstSw Line 3 route

Slide 22 Key Insight: Flow Tables are Memorization Tables Route onPacketIn(Packet p) { 1. Switch srcSw = macTable.get(p.ethSrc()); 2. Switch dstSw = macTable.get(p.ethDst()); 3. return myRoutingAlg(srcSw, dstSw); } Line 1 ethSrc srcSw Line 2 ethDst dstSw Line 3 route Table 1 Table 2 Table 3

Slide 23 Main Components and Workflow IR Compile Analyze & Design Code Gen static compile time Explorer Graph Explorer dynamic run time Packets Notifications Rules Table Graph onPacket DB Openflow switch P4 switch P4 Pipeline Northbound FlowRule Compile

Slide 24 Status Two implementations 24 Maple A reactive (dynamic-tracing) blackbox approach that demonstrated the basic feasibility of automating programming Code will become openly available in OpenDaylight as part of CCIIE Test deployment at Yale ScienceNet Magellan (aka Maple 2.0) A general view that a centralized algorithmic policy (AP) is a stream processing function A whitebox approach where distributed network flow tables are memorization tables implementing algorithmic policies In active design and implementation phase

Slide 25 Thank you! Welcome collaboration. Please contact me: