Toward Super High-Level SDN Programming

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

Nanxi Kang Princeton University
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Scalable Server Load Balancing Inside Data Centers Dana Butnariu Princeton University Computer Science Department July – September 2010 Joint work with.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
1 Internet Protocol: Forwarding IP Datagrams Chapter 7.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
Software-Defined Networks Jennifer Rexford Princeton University.
M1G Introduction to Database Development 6. Building Applications.
Project Creation Review: Maple in OpenDaylight Andreas Voellmy, Y. Richard Yang, Xiao Shi, Xin Li, Reinaldo Penno December 18, 2014.
Testing. 2 Overview Testing and debugging are important activities in software development. Techniques and tools are introduced. Material borrowed here.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
SDN Management Layer DESIGN REQUIREMENTS AND FUTURE DIRECTION NO OF SLIDES : 26 1.
Chapter 4 Version 1 Virtual LANs. Introduction By default, switches forward broadcasts, this means that all segments connected to a switch are in one.
Slide 1 Simple, Flexible Programming of Data Movement Paths using Algorithmic Policies PIs: Y. Richard Yang, Robert Bjornson, Andrew Sherman Architect:
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Ch. 31 Q and A IS 333 Spring 2016 Victor Norman. SNMP, MIBs, and ASN.1 SNMP defines the protocol used to send requests and get responses. MIBs are like.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Network Virtualization Ben Pfaff Nicira Networks, Inc.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
BY: SALMAN 1.
The Holmes Platform and Applications
Progress Apama Fundamentals
SDN challenges Deployment challenges
Development Environment
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Unit Testing.
Multi-layer software defined networking in GÉANT
Essentials of UrbanCode Deploy v6.1 QQ147
BY: SALMAN.
The DPIaaS Controller Prototype
Component and Deployment Diagrams
Programming Assignment
Netscape Application Server
Key Ideas from day 1 slides
Introduction to Visual Basic 2008 Programming
Play Framework: Introduction
NOX: Towards an Operating System for Networks
Server Concepts Dr. Charles W. Kann.
MVC and other n-tier Architectures
CHAPTER 3 Architectures for Distributed Systems
Lecture 1 Runtime environments.
Hierarchical Architecture
Application Development Theory
SDN Overview for UCAR IT meeting 19-March-2014
Module 3 Building a web app.
Net 323 D: Networks Protocols
Testing REST IPA using POSTMAN
TRANSLATORS AND IDEs Key Revision Points.
Northbound API Dan Shmidt | January 2017
Software Defined Networking (SDN)
Magellan: Automatic SDN Pipelining from Algorithmic Policies
ExaO: Software Defined Data Distribution for Exascale Sciences
CIS16 Application Development – Programming with Visual Basic
INFO 344 Web Tools And Development
Fundamentals of Databases
Chapter 7 –Implementation Issues
Programmable Networks
CS 240 – Advanced Programming Concepts
ICT Gaming Lesson 2.
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Lecture 1 Runtime environments.
OpenSec:Policy-Based Security Using Software-Defined Networking
Exceptions and networking
Presentation transcript:

Toward Super High-Level SDN Programming Joint project of Caltech, Tongji, Yale May Wang Nov. 16, 2016 we are now collaborating with Caltech along with some most successful companies to operate a 100Gbps SDN network (photos here)

We know that super computing depends very much on the support from super network. And what we do is to design and implement super or say, high performance network. To be more specific, what do we do?

Issues in Current SDN Programming Issue 1: SDN programmers manually write Openflow rules; Openflow is a low level and limited computation model Openflow does not support logic negation, and hence needs priority to simulate logic negation; Openflow supports only layer 2 to layer 4, but many decisions depend on higher layers Well, in the network field, we now pay attention to SDN, which is, software defined network, that allows people to define and manage the network by writing code. ( I remember Professor Harvey from Caltech also mentioned this in yesterdays presentation. ) In this way, we can realise the central control of the whole network and don’t need to update the functions by buying new machines, however, we can write code to achieve that. However, there are still several problems. First, SDN programmers have to manually write openflow rules which is a low level and limited computation model. For more information, please contact us: supersdnprogramming@gmail.com

Issues in Current SDN Programming Issue 2: SDN programmers manually setup listeners for data changes and handle data change events Manual data tracking leads to a bug in basic system service. This code is from the l2switch project in ODL Second, programmers need to manually setup listeners for data changes and to handle data change events L2 switch project 2 parts: Setup data change listener; Implement ondadatachange function Second part will never run For more information, please contact us: supersdnprogramming@gmail.com

Issues in Current SDN Programming Issue 3: Complex, manual project lifecycle management. The state-of-the-art SDN controller is OpenDaylight, OpenDaylight programming requires: Handle project dependencies (feature.xml …) Feature/Kar install in karaf console ••• Third, programmers have to face the complex, manual project deployments. (You don’t know how much time one programmer have to spend on deployment, seriously.) For more information, please contact us: supersdnprogramming@gmail.com

What is Our Solution? Low level, limited programming model Maple FAST High-level, completely south-bound agnostic, cross-layer (L2-L7) programming Programmer sees (logically) each and every packet Integrated access control supporting per-user or role based programming Low-level, complex, limited (L2-L4) OpenFlow rule programming Programmer can define only at flow level Specific access control allowing only hosts partition FAST Raw data store Automatic execution dependency tracking Automatic cleanup, re-execution (intent ++) Host generic network functions Complex, manual tracking of execution dependency Manual cleanup, re-execute Designed directly on raw data store Web-based Integrated Dev Env (IDE) Manual programming Web-based automatic generation of projects Programmer focuses only on policy decision. Complex, manual maven programming Well, you will say, so many problems, does SDN programming really work? or is it just a concept, a game? We deploy the system to solve the problems above and we have, indeed, and successfully deployed it on the real switches ( over there ) Yes it really works!

Maple: High-level SDN Programming Language Consider each pkt as a request - Network as a single virtual server - Network functions expressed in general purpose language - Network functions (logically) invoked on each new packet, returning how net handles that request - Network decision can depend on L2 to L7 To solve the first problem, we provide a programming model, called Maple. Using Maple, you don’t need to be frustrated by the low level protocol, you write java code, to tell the switches, in this case, how you want the packet to be sent. And Shooo, it will follow your instruction to go there. For more information, please contact us: supersdnprogramming@gmail.com

Control packets with L7 info Example Network control based on high-level science data info 1. private static final String[] H12_TAP = { H1, "openflow:1:2", "openflow:2:1" }​ 2. private static final String[] H12_ONE = { H1, "openflow:1:2", "openflow:2:3", "openflow:4:1" }​ 3. private static final String[] H12_TWO = { H1, "openflow:1:3", "openflow:3:2", "openflow:4:1" } ​ 4.​void f(Packet pkt) {​ 5. int srcIP = pkt.srcIP(); int dstIP = pkt.dstIP();​ 6. String flowId = computeFlowId( srcIP, dstIP, pkt.srcPort, pkt.dstPort, pkt.protocol );​ 7. if ( srcIP == H1 && dstIP == H2 ) {​ 8. FlowMetadata fm = getFlowMetadata(flowId); ​ 9. if ( fm == null ) { ​ 10. pkt.addRoute( H12_TAP );​ 11. pkt.addRoute( H12_ONE );​ 12. } else if ( isScience( getFileName( fm ) ) ) {​ 13. pkt.addRoute( H12_TWO );​ 14. } else pkt.addRoute( H12_ONE );​ 15. } else if ( srcIP == H2 && dstIP == H1 ) {​ 16. …​ 17. } else pkt.addRoute( Route.drop );​ 18. }​ Per-packet programming model Control packets with L7 info South-bound agnostic Consider this maple application example which wants to … Maple app is a lamda function which is not increment function. What if the data changes, … (introduce FAST) For more information, please contact us: supersdnprogramming@gmail.com

Seamless L2-L4 to L7 If an MapleApp accesses L7 flow info (e.g., file name), system automatically sets up L7 inspection to extract info Controller MapleApp { … pkt.flow.fname } A packet coming in FlowMetadata Flow (L7) info Setup path to tap traffic to Bro Setup Bro function How to change the path automatically when FlowMetadata updated? Bro Network Monitor Framework Network To transfer application written by high-level language to low-level flow rules, we design the maple system. the maple system provides a per-packer …which conceptly process every-packet in the network. For more information, please contact us: supersdnprogramming@gmail.com

FAST: Function Automation System Hosting generic data-driven network functions Easy-to-use programming paradigm Automatic dependency management Track fine-grained runtime dependency Subscribe to data changes automatically Enforced data consistency Rollback outdated function instances Re-execute to keep system state up to date FAST Generic Network Function Function Instance Store Data Store Network Data Read/Write State update Listener sub Add/Remove To solve the second problem, we provide FAST, that it can automatically manage the resources, dependencies, to keep the consistency. You may not understand how complex it is for SDN programmers to adjust the dependencies, but if I mention it can automatically keep the consistency, I believe all of you will understand how important it is.… When state changes, … For more information, please contact us: supersdnprogramming@gmail.com

Web SDN IDE Controller management Network simulator Write Maple application Check the TraceTree for debugging Simplify the deployment process Show topology Check routes and flow tables Connect to multiple controllers Monitor controller state Automatically generate Mininet topology scripts Controller management Network simulator One-click deployment Development and debugging Topology and routes management Also, we provide the SDN IDE, which is much more powerful than usual IDEs. Not only to write SDN codes, you can also test them by graphically creating a network environment, in our IDE. You can directly deploy the code by clicking a button, instead of spending a lot of time to fight with ODL, which is a super complex SDN platform for programmers. For more information, please contact us: supersdnprogramming@gmail.com

Summary: New Super SDN Programming Tools User Programmer Web SDN IDE: Dev, Op, User interfaces MapleApp: A program written by java Maple Lib: Read pkt fields, add route System Maple Runtime: Record the operations (read which fields) on packets and generates rules FAST: Track runtime data dependence & re-execute when data changes happen Network Information Base: Provide network state, southbound driver Network Openflow Switch Openflow Switch Openflow Switch Therefore, to resolve these issues, we designed a series of tools to simplify sdn control programming. Control space For more information, please contact us: supersdnprogramming@gmail.com

DEMO: Control Traffic based on L7 (HTTP Info) http.bro MapleApp.java Step of Demo: Controller 1. User writes & deploys MapleApp program in Web IDE. Bro (sc9) Bro is a network monitor framework, in which we can get HTTP info for flows. S3 Server (sc8) S5 Client (sc6) S2 2. Client sends a request for science data at the Server. S1 System generates a path to forward the traffic to Bro to get HTTP info (also forward the traffic to Dst by a default path). S4 Bro will update the controller with the HTTP info. Client requests for science data (based on the info by file name in HTTP) System will compute the correct path based on HTTP info. TRUE Path: S1  S4  S5 3. Client sends a request for other type data at the Server. FALSE Path: S1  S2  S3  S5 For more information, please contact us: supersdnprogramming@gmail.com

Thank You