CS434/534: Topics in Networked (Networking) Systems

Size: px
Start display at page:

Download "CS434/534: Topics in Networked (Networking) Systems"

Transcription

1 CS434/534: Topics in Networked (Networking) Systems High-Level Language for Programmable Networks: A Blackbox Approach Yang (Richard) Yang Computer Science Department Yale University 208A Watson yry@cs.yale.edu

2 Outline Admin and recap Datapath programming 2

3 Recap: Datapath Model A fundamental data structure of networking systems devices is lookup tables What are potential lookup attributes matchattr1 matchattr2 matchattrn out What are values of lookup attributes? 3

4 Recap: Datapath Model Low-level TCAM based computing model with limited resources 4

5 Recap: Populating Datapath (Tables) Traditional network Distributed protocols Vendor manual configuration Programmable network Controller setup 5

6 Outline Admin and recap Datapath model content programming 6

7 Programmable Network logically centralized data store Program Network View Service/ Policy NE Datapath NE Datapath 7

8 Discussion How one may automate the generation of datapath model content? 8

9 Outline Admin and recap Datapath model content programming Higher-level logic driven user programming 9

10 An Example Higher-Level Logic badport = 22 // policy hosttbl = {A:1,B:2, C:3,D:4} // net view def onpacketin(p): if badport == p.tcp_dst: drop else: forward([hosttbl(p.eth_dst)]) Logic: - Assume only packets to A,B,C,D can appear - Block traffic to SSH (port 22) A B C D 10

11 Higher-Level Logic with Datapath Generation hosttbl = {A:1,B:2,C:3,D:4} def onpacketin(p): if 22 == p.tcp_dst: drop installrule({ match':{'tcp_dst':22}, action :[]}) else: forward([hosttbl(p.eth_dst)]) match does not support logic negation installrule({ match : { eth_dst :p.eth_dst, tcp_dst!=22}, action :[hosttbl(p.eth_dst)]}) 11

12 Higher-Level Logic with Datapath Generation hosttbl = {A:1,B:2,C:3,D:4} def onpacketin(p): if 22 == p.tcp_dst: drop installrule({ priority :1, match :{'tcp_dst':22}, action :[]}) else: forward([hosttbl(p.eth_dst)]) installrule({ priority :0, match : { eth_dst :p.eth_dst}, action :[hosttbl(p.eth_dst)]}) 12

13 Does the Program Work? Switch EthDst:A, TcpDst:80 {`priority`:0, match :{ eth_dst :A},'action':[1]} A security bug! EthDst:A, TcpDst:22 def onpacketin(p): if 22 == p.tcp_dst: // drop Controller installrule({`priority`:1, match :{ tcp_dst':22},'action':[]}) else: installrule({`priority`:0, match :{ eth_dst :p.eth_dst}, 'action':[hosttbl(p.eth_dst)]}) // forward([hosttbl(p.eth_dst)]) 13

14 Outline Admin and recap Datapath model content programming Higher-level logic driven user programming Higher-level logic driven automatic programming 14

15 Goal Programmers write only the logic (=> data path independent) code: def onpacketin(p) if 22 == p.tcp_dst: drop else: forward([hosttbl(p.eth_dst)]) System automatically generate correct, highlyoptimized data path 15

16 Programming Model: Programmer s View Conceptually programmer s network control function f is invoked on every packet entering the network. f expressed in an existing, general purpose language (e.g., Java, Python), describing how a packet should be routed, not how data path flow tables are configured f: packet route 16

17 Discussion: How to turn this program automatically into datapath flow rules? Route f(packet p) { if (p.tcpdstis(22)) return null(); else { Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); Route path = myroutingalg(topology(), sloc,dloc); return path; } } Route myroutingalg(topology topo, Location sloc, Location dloc) { if ( issensitive(sloc) issensitive(dloc) ) return secureroutingalg(topo, sloc, dloc); else return standardroutingalg(topo, sloc, dloc); } Example High-level Program Does not specify anything on flow tables! 17

18 Two Types of Approaches Compiler based Blackbox Although the decision function f does not specify how flow tables are configured, if for a given decision (e.g., drop), we know the dependency of the decision, we can construct the flow tables (aka, memorization tables). 18

19 Basic Idea Only requirement: Program f uses a simple library to access pkt attributes: Library provides both convenience and more importantly, decision dependency! 19

20 Policy EthSrc:1, EthDst:2, TcpDst:80 Route f(packet p) { if (p.tcpdstis(22)) Assert: TcpDst==22 return null(); false else { Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); EthSrc 1 EthDst } } Route path = myroutingalg( topology(),sloc,dloc); return path; 2 path1 Q: What rules do we generate for this execution? 20

21 Policy EthDst:1, TcpDst:22 Route f(packet p) { if (p.tcpdstis(22)) Assert: TcpDst==22 Assert: TcpDst==22 true return null(); null true false else { Location sloc = hosttable(p.ethsrc());? EthSrc Location dloc = hosttable(p.ethdst()); 1 EthDst } Route path = myroutingalg( topology(),sloc,dloc); return path; 2 path1 21

22 Policy Trace Tree EthDst:1, TcpDst:22 Route f(packet p) { if (p.tcpdstis(22)) Assert: TcpDst==22 return null(); else { true false Location sloc = hosttable(p.ethsrc()); null EthSrc Location dloc = hosttable(p.ethdst()); 1 EthDst } Route path = myroutingalg( topology(),sloc,dloc); return path; 2 path1 22

23 Blackbox Program->Trace Tree true Assert: TcpDst==22 false A tree w/ 4 types of nodes T node: assertion on packet attributes V node: multi-way branching on a packet attribute L node: leaf node labeled w/ action? node: unknown? EthSrc 1 EthDst 2 path1 TT correctness: if TT records an answer for a given packet, the answer is the same as the original algorithm 23

24 Trace Tree => Datapath tcpdst ==22 True False drop match:{tcpdst==22} 2 ethdst 4 drop match:{tcpdst!=22, ethdst:2} ethsrc 6 port 30 match:{tcpdst!=22, ethdst:4,ethsrc:6} 24

25 Trace Tree => Datapath tcpdst ==22 True False drop match:{tcpdst==22} 2 ethdst 4 barrier rule: match:{tcpdst==22} action:tocontroller Priority drop match:{tcpdst!=22, ethdst:2} ethsrc 6 port 30 match:{tcpdst!=22, ethdst:4,ethsrc:6} 25

26 Trace Tree => Datapath Simple, classical inorder tree traversal generates datapath! 3 True tcpdst ==22 False 1 drop 2 ethdst match:{tcpdst==22} 2 4 barrier rule: match:{tcpdst==22} action:tocontroller Priority drop match:{tcpdst!=22, ethdst:2} ethsrc 6 port 30 match:{tcpdst!=22, ethdst:4,ethsrc:6} 26

27 Trace Tree => Datapath Potential inefficiencies? tcpdst ==22 True False drop Pri: 3 match:{tcpdst==22} 2 ethdst 4 barrier rule: Pri: 2 match:{tcpdst==22} action:tocontroller Priority drop Pri: 1 match:{tcpdst!=22, ethdst:2} ethsrc 6 port 30 Pri:0 match:{tcpdst!=22, ethdst:4,ethsrc:6} 27

28 Outline Admin and recap Datapath model content programming Higher-level logic driven user programming Higher-level logic driven automatic programming Basic idea Remove inefficiencies 28

29 Problem: How to Handle User Inefficiency, such as Redundant Trace? 29

30 Example: Trace Reduction 30

31 31

32 32

33 33

34 34

35 35

36 Problem: Simple In-order Traversal Generates Unstable Rules disjoint, could use same priority. 36

37 Solution: Minimizing Priority Levels: Increasing at T Nodes Only 37

38 Minimizing Priority Levels: Increasing at T Nodes Only 38

39 Anatomy of a Network Control Function Map<MAC, Location> hosttable; List<ACLItem> acls; Route f(packet p) { External process may change the states state hosttable.put(p.ethsrc(), p.ingressport()); if (!permit(p, acls) ) return drop; Location src = p.ingressport(); Location dst = hosttable.get( p.ethdst() ); Has f uses physical states f uses policy state Route path = myroutingalg(topology(), src, dst); return path; } 39

40 Implication A general AP is a general function of the form: f: (packet, state) (route, new-state, act) When state changes, decision may change too. If f() takes non-switch-implementable actions (e.g., causes state changes, sends packets), the packet should be punted back to the controller. 40

41 Outline Admin and recap Datapath model content programming Higher-level logic driven user programming Higher-level logic driven automatic programming Basic idea Remove inefficiencies Handle dynamism 41

42 Existing Approaches on Handling State Dependency Floodlight Wait for timeout of existing rules Problem: long delay; may not even be correct Pyretic Completely rerun (a declarative) program and then compare the differences Problem: extreme low efficiency 42

43 43 Simple Design Only requirement: Control program f uses simple library wrappers to access state variables Reason: Provides both convenient data structures and importantly, again, decision dependency!

44 44 Policy EthSrc:1, EthDst:2, TcpDst:80 Route f(packet p) { if (p.tcpdstis(22)) return null(); Assert: TcpDst==22 false else { Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); EthSrc 1 (hosttable, 1) Dependency table (aka inverted index) Component Traces } } Route path = myroutingalg( topology(),sloc,dloc); return path;

45 45 Policy EthSrc:1, EthDst:2, TcpDst:80 Route f(packet p) { if (p.tcpdstis(22)) return null(); Assert: TcpDst==22 false else { Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); EthSrc 1 (hosttable, 1) Dependency table (aka inverted index) Component Traces } } Route path = myroutingalg( topology(),sloc,dloc); return path; (hosttable,1) [false, 1]

46 46 Policy EthSrc:1, EthDst:2, TcpDst:80 Route f(packet p) { if (p.tcpdstis(22)) Assert: TcpDst==22 return null(); false else { } } Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); Route path = myroutingalg( topology(),sloc,dloc); return path; EthSrc EthDst 1 (hosttable, 1) 2 (hosttable, 2) Dependency table (aka inverted index) Component Traces (hosttable,1) [false, 1] (hosttable,2) [false, 1,2]

47 47 Policy EthSrc:1, EthDst:2, TcpDst:80 Route f(packet p) { if (p.tcpdstis(22)) return null(); Assert: TcpDst==22 false else { } } Location sloc = hosttable(p.ethsrc()); Location dloc = hosttable(p.ethdst()); Route path = myroutingalg( topology(),sloc,dloc); return path; EthSrc EthDst path1 1 (hosttable, 1) 2 (hosttable, 2) topology Dependency table (aka inverted index) Component Traces (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] topology [false,1,2]

48 Example Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) 48

49 Tradeoffs Between Tracking Overhead and Precision true Assert: TcpDsd==22 false host 1 link[1]: 1 link[2]: 2? EthSrc 1 (hosttable, 1) 3 link[3]: 1 link[4]: 2 EthDst 2 (hosttable, 2) 2) (links, (topology()) {1,2,3}) path1 EthDst 4 path2 host 2 Assume Dijkstra. Dijkstra will visit only 3 links. There is no dependency on link[4]. 49

50 Using Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) host 4 changes location => - Uses dependency table to locate dependent entries 50

51 Using Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) host 4 changes location => - Uses dependency table to locate dependent entries 51

52 Using Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) host 4 changes location => - Uses dependency table to locate dependent entries 52

53 Using Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) host 4 changes location => - Uses dependency table to locate dependent entries - Strong consistency: immediately clean up all related entries. 53

54 Using Dependency Table? true 1 (hosttable, 1) Assert: TcpDsd==22 EthSrc false 3 (hosttable, 3) Dependency table (aka inverted index) Component (hosttable,1) [false, 1] (hosttable,2) [false, 1,2] (hosttable,3) [false, 3] (hosttable,4) [false, 3,4] topology Traces [false,1,2],[false,3,4] EthDst 2 (hosttable, 2) (topology()) path1 EthDst 4 path2 (hosttable, 4) (topology()) host 4 changes location => - Uses dependency table to locate dependent entries - Fast repair: saves trigger packets and uses background to repair 54

55 Problems of Trace Tree Quality: Compiles to only a single flow table Latency: A reactive approach that waits for punted packets to begin unfolding the trace tree and generating rules 55

CS434/534: Topics in Networked (Networking) Systems

CS434/534: Topics in Networked (Networking) Systems CS434/534: Topics in Networked (Networking) Systems High-Level Programming for Programmable Networks Yang (Richard) Yang Computer Science Department Yale University 208A Watson Email: yry@cs.yale.edu http://zoo.cs.yale.edu/classes/cs434/

More information

Network Programming Languages. Nate Foster

Network Programming Languages. Nate Foster Network Programming Languages Nate Foster We are at the start of a revolution! Network architectures are being opened up giving programmers the freedom to tailor their behavior to suit applications!

More information

SCALING SOFTWARE DEFINED NETWORKS. Chengyu Fan (edited by Lorenzo De Carli)

SCALING SOFTWARE DEFINED NETWORKS. Chengyu Fan (edited by Lorenzo De Carli) SCALING SOFTWARE DEFINED NETWORKS Chengyu Fan (edited by Lorenzo De Carli) Introduction Network management is driven by policy requirements Network Policy Guests must access Internet via web-proxy Web

More information

Stochastic Pre-Classification for SDN Data Plane Matching

Stochastic Pre-Classification for SDN Data Plane Matching Stochastic Pre-Classification for SDN Data Plane Matching Luke McHale, C. Jasson Casey, Paul V. Gratz, Alex Sprintson Presenter: Luke McHale Ph.D. Student, Texas A&M University Contact: luke.mchale@tamu.edu

More information

Software-Defined Networking (Continued)

Software-Defined Networking (Continued) Software-Defined Networking (Continued) CS640, 2015-04-23 Announcements Assign #5 released due Thursday, May 7 at 11pm Outline Recap SDN Stack Layer 2 Learning Switch Control Application Design Considerations

More information

OpenState demo. Hands-on activity. NetSoft 15 - April 13, 2015 A.Capone & C. Cascone: OpenState Live Demo 1

OpenState demo. Hands-on activity. NetSoft 15 - April 13, 2015 A.Capone & C. Cascone: OpenState Live Demo 1 OpenState demo Hands-on activity NetSoft 15 - April 13, 2015 A.Capone & C. Cascone: OpenState Live Demo 1 Outline OpenState specification State table, key extractors, set-state action Demo tools: Mininet,

More information

FOUNDATIONS OF INTENT- BASED NETWORKING

FOUNDATIONS OF INTENT- BASED NETWORKING FOUNDATIONS OF INTENT- BASED NETWORKING Loris D Antoni Aditya Akella Aaron Gember Jacobson Network Policies Enterprise Network Cloud Network Enterprise Network 2 3 Tenant Network Policies Enterprise Network

More information

Programming Network Policies by Examples: Platform, Abstraction and User Studies

Programming Network Policies by Examples: Platform, Abstraction and User Studies Programming Network Policies by Examples: Platform, Abstraction and User Studies Boon Thau Loo University of Pennsylvania NetPL workshop @ SIGCOMM 2017 Joint work with Yifei Yuan, Dong Lin, Siri Anil,

More information

Steps for Building a Process Builder to work with Visual Workflow

Steps for Building a Process Builder to work with Visual Workflow Steps for Building a Process Builder to work with Visual Workflow Planning : Before building any further, we drafted a design in order to determine what elements were required for the solution. The diagram

More information

Admin. CS 112 Introduction to Programming. Recap: Java Static Methods. Recap: Decomposition Example. Recap: Static Method Example

Admin. CS 112 Introduction to Programming. Recap: Java Static Methods. Recap: Decomposition Example. Recap: Static Method Example Admin CS 112 Introduction to Programming q Programming assignment 2 to be posted tonight Java Primitive Data Types; Arithmetic Expressions Yang (Richard) Yang Computer Science Department Yale University

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Java Primitive Data Types; Arithmetic Expressions Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu

More information

SDNRacer. Concurrency Analysis for SDNs. Ahmed El-Hassany Jeremie Miserez Pavol Bielik Laurent Vanbever Martin Vechev.

SDNRacer. Concurrency Analysis for SDNs. Ahmed El-Hassany Jeremie Miserez Pavol Bielik Laurent Vanbever Martin Vechev. SDNRacer Concurrency Analysis for SDNs Ahmed El-Hassany Jeremie Miserez Pavol Bielik Laurent Vanbever Martin Vechev http://sdnracer.ethz.ch ETH Zürich April 29 th, 2016 1 Load Balancer Application 2 Load

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Variables; Type Casting; Using Variables in for Loops Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Admin. CS 112 Introduction to Programming. Recap: Exceptions. Summary: for loop. Recap: CaesarFile using Loop. Summary: Flow Control Statements

Admin. CS 112 Introduction to Programming. Recap: Exceptions. Summary: for loop. Recap: CaesarFile using Loop. Summary: Flow Control Statements Admin. CS 112 Introduction to Programming q Puzzle Day from Friday to Monday Arrays; Loop Patterns (break) Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email:

More information

Flexible NetFlow - Top N Talkers Support

Flexible NetFlow - Top N Talkers Support This document contains information about and instructions for using the Flexible NetFlow - Top N Talkers Support feature. The feature helps you analyze the large amount of data that Flexible NetFlow captures

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Arrays; Loop Patterns (break) Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin. q Puzzle Day

More information

Routing Basics. ISP Workshops

Routing Basics. ISP Workshops Routing Basics ISP Workshops These materials are licensed under the Creative Commons Attribution-NonCommercial 4.0 International license (http://creativecommons.org/licenses/by-nc/4.0/) Last updated 26

More information

VeriCon: Towards Verifying Controller Programs in SDNs

VeriCon: Towards Verifying Controller Programs in SDNs VeriCon: Towards Verifying Controller Programs in SDNs Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly Sagiv, Michael Schapira, Asaf Valadarsky 1 Guaranteeing network

More information

Lecture 9: Bridging & Switching"

Lecture 9: Bridging & Switching Lecture 9: Bridging & Switching" CSE 123: Computer Networks Alex C. Snoeren HW 2 due Wednesday! Lecture 9 Overview" Finishing up media access Contention-free methods (rings) Moving beyond one wire Link

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Summary of Methods; User Input using Scanner Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin

More information

Admin. CS 112 Introduction to Programming. Recap. Example: Nested Loop. Example: Rewrite

Admin. CS 112 Introduction to Programming. Recap. Example: Nested Loop. Example: Rewrite Admin CS 112 Introduction to Programming Graphics; Animation Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu q Issues on PS3 NumberCoolness:

More information

802.1X and Faucet. Michael Baird FAUCET Conference

802.1X and Faucet. Michael Baird FAUCET Conference 802.1X and Faucet Michael Baird Michael.Baird@ecs.vuw.ac.nz 19-10-2017 FAUCET Conference Outline Introduction to 802.1X Design Implementation Example configs/demo Future work 2 Introduction IEEE 802.1X

More information

SDN abstraction and security: a database perspective

SDN abstraction and security: a database perspective June 17, 2016 SoSSDN SDN abstraction and security: a database perspective Anduo Wang * Jason Croft Xueyuan Mei Matthew Caesar Brighten Godfrey * Temple University University of Illinois Urbana-Champaign

More information

CSE 123: Computer Networks Alex C. Snoeren. HW 2 due Thursday 10/21!

CSE 123: Computer Networks Alex C. Snoeren. HW 2 due Thursday 10/21! CSE 123: Computer Networks Alex C. Snoeren HW 2 due Thursday 10/21! Finishing up media access Contention-free methods (rings) Moving beyond one wire Link technologies have limits on physical distance Also

More information

Nexus 7000 and 7700 Series Switches Optimized ACL Logging Configuration Example

Nexus 7000 and 7700 Series Switches Optimized ACL Logging Configuration Example Nexus 7000 and 7700 Series Switches Optimized ACL Logging Configuration Example Document ID: 118907 Contributed by Richard Michael, Cisco TAC Engineer. Apr 15, 2015 Contents Introduction Prerequisites

More information

NetPilot: Automating Datacenter Network Failure Mitigation

NetPilot: Automating Datacenter Network Failure Mitigation NetPilot: Automating Datacenter Network Failure Mitigation Xin Wu, Daniel Turner, Chao-Chih Chen, David A. Maltz, Xiaowei Yang, Lihua Yuan, Ming Zhang Failures are Common and Harmful Network failures are

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 01 / 21 / 2015 Instructor: Michael Eckmann Today s Topics Introduction of myself Review the syllabus List of Topics we'll cover Start Java review Who is your

More information

CS 320: Concepts of Programming Languages

CS 320: Concepts of Programming Languages CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 02: Bare Bones Haskell Syntax: Data == Abstract Syntax Trees Functions == Rewrite Rules on ASTs

More information

Application of SDN: Load Balancing & Traffic Engineering

Application of SDN: Load Balancing & Traffic Engineering Application of SDN: Load Balancing & Traffic Engineering Outline 1 OpenFlow-Based Server Load Balancing Gone Wild Introduction OpenFlow Solution Partitioning the Client Traffic Transitioning With Connection

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Graphics; Animation Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin q Issues on PS3 NumberCoolness:

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Graphics; Animation Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin q Issues on PS3 NumberCoolness:

More information

CS4450. Computer Networks: Architecture and Protocols. Lecture 15 BGP. Spring 2018 Rachit Agarwal

CS4450. Computer Networks: Architecture and Protocols. Lecture 15 BGP. Spring 2018 Rachit Agarwal CS4450 Computer Networks: Architecture and Protocols Lecture 15 BGP Spring 2018 Rachit Agarwal Autonomous System (AS) or Domain Region of a network under a single administrative entity Border Routers Interior

More information

CS1101: Lecture 34. The ISA Level. Instruction Sets. Lecture Outline. Introduction. Data Movement Instructions. Instruction Types

CS1101: Lecture 34. The ISA Level. Instruction Sets. Lecture Outline. Introduction. Data Movement Instructions. Instruction Types CS1101: Lecture 34 : Instruction Sets Dr. Barry O Sullivan b.osullivan@cs.ucc.ie Instruction Types Lecture Outline Data Movement Instructions Dyadic Operations Monadic Operations Comparisons and Conditional

More information

Operations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging.

Operations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging. Priority Queue, Heap and Heap Sort In this time, we will study Priority queue, heap and heap sort. Heap is a data structure, which permits one to insert elements into a set and also to find the largest

More information

Cisco ASR 1000 Series Routers Embedded Services Processors

Cisco ASR 1000 Series Routers Embedded Services Processors Cisco ASR 1000 Series Routers Embedded Services Processors The Cisco ASR 1000 Series embedded services processors are based on the Cisco QuantumFlow Processor (QFP) for next-generation forwarding and queuing.

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Conditional Statements Boolean Expressions and Methods Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Conditional Statements Boolean Expressions and Methods Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu

More information

So#ware- Defined Networks

So#ware- Defined Networks So#ware- Defined Networks Data networks you want to use Zhiyuan Teo Cornell University *some slides adapted from my A exam AdministraGve announcements Friday s office hours moved to 11am. HW2 is due 23:59

More information

CS 3 Introduction to Software Engineering. 3: Exceptions

CS 3 Introduction to Software Engineering. 3: Exceptions CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction

More information

Software Defined Networks and OpenFlow. Courtesy of: AT&T Tech Talks.

Software Defined Networks and OpenFlow. Courtesy of: AT&T Tech Talks. MOBILE COMMUNICATION AND INTERNET TECHNOLOGIES Software Defined Networks and Courtesy of: AT&T Tech Talks http://web.uettaxila.edu.pk/cms/2017/spr2017/temcitms/ MODULE OVERVIEW Motivation behind Software

More information

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output CS61C L2 Number Representation & Introduction to C (1) insteecsberkeleyedu/~cs61c CS61C : Machine Structures Lecture #2 Number Rep & Intro to C Scott Beamer Instructor 2007-06-26 Review Continued rapid

More information

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018 Object-oriented programming 1 and data-structures CS/ENGRD 2110 SUMMER 2018 Lecture 1: Types and Control Flow http://courses.cs.cornell.edu/cs2110/2018su Lecture 1 Outline 2 Languages Overview Imperative

More information

SoftRing: Taming the Reactive Model for Software Defined Networks

SoftRing: Taming the Reactive Model for Software Defined Networks SoftRing: Taming the Reactive Model for Software Defined Networks Chengchen Hu, Kaiyu Hou, Hao Li, Ruilong Wang Peng Zheng, Peng Zhang, Huanzhao Wang MOE KLINNS Lab Xi an Jiaotong University Match-Action

More information

Some portions courtesy Srini Seshan or David Wetherall

Some portions courtesy Srini Seshan or David Wetherall CSE 123 Computer Networks Fall 2009 Lecture 6: Data-Link III: Hubs, Bridges and Switches Some portions courtesy Srini Seshan or David Wetherall Misc Homework solutions have been posted I ll post a sample

More information

CSC148-Section:L0301

CSC148-Section:L0301 Slides adapted from Professor Danny Heap course material winter17 CSC148-Section:L0301 Week#9-Monday Instructed by AbdulAziz Al-Helali a.alhelali@mail.utoronto.ca Office hours: Wednesday 11-1, BA2230.

More information

Languages for Software-Defined Networks

Languages for Software-Defined Networks Languages for Software-Defined Networks Nate Foster, Michael J. Freedman, Arjun Guha, Rob Harrison, Naga Praveen Katta, Christopher Monsanto, Joshua Reich, Mark Reitblatt, Jennifer Rexford, Cole Schlesinger,

More information

18-642: Unit Testing 1/31/ Philip Koopman

18-642: Unit Testing 1/31/ Philip Koopman 18-642: Unit Testing 1/31/2018 2017-2018 Philip Koopman YOU ARE HERE Product Requirements SPECIFY PRODUCT SPECIFY SOFTWARE Software Requirements TRACEABILITY & VALIDATION Test Plan & Test Results Test

More information

Fast-Response Multipath Routing Policy for High-Speed Interconnection Networks

Fast-Response Multipath Routing Policy for High-Speed Interconnection Networks HPI-DC 09 Fast-Response Multipath Routing Policy for High-Speed Interconnection Networks Diego Lugones, Daniel Franco, and Emilio Luque Leonardo Fialho Cluster 09 August 31 New Orleans, USA Outline Scope

More information

Discrete Motion Planning

Discrete Motion Planning RBE MOTION PLANNING Discrete Motion Planning Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Announcement Homework 1 is out Due Date - Feb 1 Updated

More information

Problem Max. Points Act. Points Grader

Problem Max. Points Act. Points Grader Networks and Protocols Course: 00 Jacobs University Bremen Date: 007-0-4 Dr. Jürgen Schönwälder Duration: 75 minutes Midterm Examination The Jacobs University s Code of Academic Integrity applies to this

More information

Linked lists. Prof. Noah Snavely CS1114

Linked lists. Prof. Noah Snavely CS1114 Linked lists Prof. Noah Snavely CS1114 http://cs1114.cs.cornell.edu Administrivia Assignment 2, Part 2 due tomorrow Please don t wait until the last minute to finish (the last two problems are challenging)

More information

Recursion(int day){return Recursion(day += 1);} Comp Sci 1575 Data Structures. Recursive design. Convert loops to recursion

Recursion(int day){return Recursion(day += 1);} Comp Sci 1575 Data Structures. Recursive design. Convert loops to recursion Recursion(int day){return Recursion(day += 1);} Comp Sci 1575 Data Structures Outline 1 2 Solution 2: calls 3 Implementation To create recursion, you must create recursion. How to a recursive algorithm

More information

Network Processors. Nevin Heintze Agere Systems

Network Processors. Nevin Heintze Agere Systems Network Processors Nevin Heintze Agere Systems Network Processors What are the packaging challenges for NPs? Caveat: I know very little about packaging. Network Processors What are the packaging challenges

More information

Routing Concepts. IPv4 Routing Forwarding Some definitions Policy options Routing Protocols

Routing Concepts. IPv4 Routing Forwarding Some definitions Policy options Routing Protocols Routing Basics 1 Routing Concepts IPv4 Routing Forwarding Some definitions Policy options Routing Protocols 2 IPv4 Internet uses IPv4 Addresses are 32 bits long Range from 1.0.0.0 to 223.255.255.255 0.0.0.0

More information

Trident. Toward a Unified SDN Programming Framework with Automatic Updates. Kai Gao 1 Taishi Nojima 2 Y. Richard Yang 2, 3 August 23, 2018

Trident. Toward a Unified SDN Programming Framework with Automatic Updates. Kai Gao 1 Taishi Nojima 2 Y. Richard Yang 2, 3 August 23, 2018 Trident Toward a Unified SDN Programming Framework with Automatic Updates Kai Gao 1 Taishi Nojima 2 Y. Richard Yang 2, 3 August 23, 2018 1 Tsinghua University 2 Yale University 3 Tongji University Software-Defined

More information

Cisco IOS "ip igmp join-group" and "ip igmp static-group" Command Use

Cisco IOS ip igmp join-group and ip igmp static-group Command Use Cisco IOS "ip igmp join-group" and "ip igmp static-group" Command Use Document ID: 119383 Contributed by Luc De Ghein, Cisco TAC Engineer. Dec 02, 2015 Contents Introduction Statically Join the IGMP Group

More information

Salt Administration II Training Syllabus

Salt Administration II Training Syllabus Salt Administration II Training Syllabus This is the second course in the SaltStack Administration training series. It builds on the concepts of the previous course by presenting additional topics above

More information

CS 457 Networking and the Internet. Network Overview (cont d) 8/29/16. Circuit Switching (e.g., Phone Network) Fall 2016 Indrajit Ray

CS 457 Networking and the Internet. Network Overview (cont d) 8/29/16. Circuit Switching (e.g., Phone Network) Fall 2016 Indrajit Ray 8/9/6 CS 457 Networking and the Internet Fall 06 Indrajit Ray Network Overview (cont d) Circuit vs. Packet Switching Best Effort Internet Model Circuit Switching (e.g., Phone Network) Step : Source establishes

More information

STUDENT LESSON AB30 Binary Search Trees

STUDENT LESSON AB30 Binary Search Trees STUDENT LESSON AB30 Binary Search Trees Java Curriculum for AP Computer Science, Student Lesson AB30 1 STUDENT LESSON AB30 Binary Search Trees INTRODUCTION: A binary tree is a different kind of data structure

More information

Lecture 7: Type Systems and Symbol Tables. CS 540 George Mason University

Lecture 7: Type Systems and Symbol Tables. CS 540 George Mason University Lecture 7: Type Systems and Symbol Tables CS 540 George Mason University Static Analysis Compilers examine code to find semantic problems. Easy: undeclared variables, tag matching Difficult: preventing

More information

Computer Networks. Sándor Laki ELTE-Ericsson Communication Networks Laboratory

Computer Networks. Sándor Laki ELTE-Ericsson Communication Networks Laboratory Computer Networks Sándor Laki ELTE-Ericsson Communication Networks Laboratory ELTE FI Department Of Information Systems lakis@elte.hu http://lakis.web.elte.hu Based on the slides of Laurent Vanbever. Further

More information

Software Testing Lecture 1. Justin Pearson

Software Testing Lecture 1. Justin Pearson Software Testing Lecture 1 Justin Pearson 2017 1 / 50 Four Questions Does my software work? 2 / 50 Four Questions Does my software work? Does my software meet its specification? 3 / 50 Four Questions Does

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques () Lecture 6 January 24, 2018 Binary Search Trees (Lecture notes Chapter 7) Announcements Homework 2: Computing Human Evolution due Tuesday, September 19 th Reading:

More information

DEVOPSIFYING NETWORK SECURITY. An AlgoSec Technical Whitepaper

DEVOPSIFYING NETWORK SECURITY. An AlgoSec Technical Whitepaper DEVOPSIFYING NETWORK SECURITY An AlgoSec Technical Whitepaper Introduction This technical whitepaper presents and discusses the concept of Connectivity as Code, a complementary concept to Infrastructure

More information

VMWARE NSX & OTRS. Automating Security with Help Desk Systems

VMWARE NSX & OTRS. Automating Security with Help Desk Systems TECHNICAL WHITE PAPER - MARCH 2018 VMWARE NSX & OTRS Automating Security with Help Desk Systems Sander Martijn (sander@vmguru.com) Anne Jan Elsinga (aelsinga@vmware.com) Martijn Smit (msmit@vmware.com)

More information

CS 351 Design of Large Programs Programming Abstractions

CS 351 Design of Large Programs Programming Abstractions CS 351 Design of Large Programs Programming Abstractions Brooke Chenoweth University of New Mexico Spring 2019 Searching for the Right Abstraction The language we speak relates to the way we think. The

More information

Stateful Detection in High Throughput Distributed Systems

Stateful Detection in High Throughput Distributed Systems Stateful Detection in High Throughput Distributed Systems Gunjan Khanna, Ignacio Laguna, Fahad A. Arshad, Saurabh Bagchi Dependable Computing Systems Lab School of Electrical and Computer Engineering Purdue

More information

Deploying MPLS Traffic Engineering

Deploying MPLS Traffic Engineering 9/27/16 Deploying MPLS Traffic Engineering Nurul Islam Roman (nurul@apnic.net) Cisco Public Agenda Technology Overview Bandwidth optimization TE for QoS Traffic Protection Inter- Domain Traffic Engineering

More information

Tree traversals and binary trees

Tree traversals and binary trees Tree traversals and binary trees Comp Sci 1575 Data Structures Valgrind Execute valgrind followed by any flags you might want, and then your typical way to launch at the command line in Linux. Assuming

More information

Chapter 2 Control in Programming. lecture 2 1

Chapter 2 Control in Programming. lecture 2 1 Chapter 2 Control in Programming lecture 2 1 Topics Expressions and Statements Blocks and Compound Statements If and If else Statements Relational Operators The While Loop Logical Operations The For Loop

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 Today CS 52 Theory and Practice of Software Engineering Fall 218 Software testing October 11, 218 Introduction to software testing Blackbox vs. whitebox testing Unit testing (vs. integration vs. system

More information

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus

More information

Computation of Multiple Node Disjoint Paths

Computation of Multiple Node Disjoint Paths Chapter 5 Computation of Multiple Node Disjoint Paths 5.1 Introduction In recent years, on demand routing protocols have attained more attention in mobile Ad Hoc networks as compared to other routing schemes

More information

Assignment 5: Software Defined Networking CS640 Spring 2015

Assignment 5: Software Defined Networking CS640 Spring 2015 Assignment 5: Software Defined Networking CS640 Spring 2015 Due: Thursday, May 7 at 11pm Overview For this project you will implement two control application for a software defined network (SDN). A layer

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

A Practical Approach to Programming With Assertions

A Practical Approach to Programming With Assertions A Practical Approach to Programming With Assertions Ken Bell Christian-Albrechts Universität Kiel Department of Computer Science and Applied Mathematics Real-Time Systems and Embedded Systems Group July

More information

Everything You Ever Wanted To Know About Move Semantics

Everything You Ever Wanted To Know About Move Semantics Everything You Ever Wanted To Know About Move Semantics (and then some) Howard Hinnant Ripple Jul 25, 2016 Outline The genesis of move semantics Special member functions Introduction to the special move

More information

Homework 4 Even numbered problem solutions cs161 Summer 2009

Homework 4 Even numbered problem solutions cs161 Summer 2009 Homework 4 Even numbered problem solutions cs6 Summer 2009 Problem 2: (a). No Proof: Given a graph G with n nodes, the minimum spanning tree T has n edges by virtue of being a tree. Any other spanning

More information

Languages for SDN (Frenetic)

Languages for SDN (Frenetic) Languages for SDN (Frenetic) Software Defined Networking: The Data Centre Perspective Seminar Informatikdienste A. Pantelopoulos 20.05.2016 1 SDN is useful Direct network control. Enables new applications,

More information

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus: Boolean Functions and Expressions. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus: Boolean Functions and Expressions CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and

More information

Using Flexible NetFlow Top N Talkers to Analyze Network Traffic

Using Flexible NetFlow Top N Talkers to Analyze Network Traffic Using Flexible NetFlow Top N Talkers to Analyze Network Traffic Last Updated: September 4, 2012 This document contains information about and instructions for using the Flexible NetFlow--Top N Talkers Support

More information

COMPUTING SCIENCE 3Z: PROGRAMMING LANGUAGES 3

COMPUTING SCIENCE 3Z: PROGRAMMING LANGUAGES 3 Tuesday, 28 May 2009 2.00 pm 3.30 pm (Duration: 1 hour 30 minutes) DEGREES OF MSci, MEng, BEng, BSc, MA and MA (Social Sciences) COMPUTING SCIENCE 3Z: PROGRAMMING LANGUAGES 3 Answer all 4 questions. This

More information

DevoFlow: Scaling Flow Management for High Performance Networks

DevoFlow: Scaling Flow Management for High Performance Networks DevoFlow: Scaling Flow Management for High Performance Networks SDN Seminar David Sidler 08.04.2016 1 Smart, handles everything Controller Control plane Data plane Dump, forward based on rules Existing

More information

Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks

Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks Toward a Reliable Data Transport Architecture for Optical Burst-Switched Networks Dr. Vinod Vokkarane Assistant Professor, Computer and Information Science Co-Director, Advanced Computer Networks Lab University

More information

CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O

CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O Introduction The WRITE and READ ADT Operations Case Studies: Arrays Strings Binary Trees Binary Search Trees Unordered Search Trees Page 1 Introduction

More information

CS168 Programming Assignment 2: IP over UDP

CS168 Programming Assignment 2: IP over UDP Programming Assignment 2: Assignment Out: February 17, 2011 Milestone: February 25, 2011 Assignment Due: March 4, 2011, 10pm 1 Introduction In this assignment you will be constructing a Virtual IP Network

More information

Streams, Delayed Evaluation and a Normal Order Interpreter. CS 550 Programming Languages Jeremy Johnson

Streams, Delayed Evaluation and a Normal Order Interpreter. CS 550 Programming Languages Jeremy Johnson Streams, Delayed Evaluation and a Normal Order Interpreter CS 550 Programming Languages Jeremy Johnson 1 Theme This lecture discusses the stream model of computation and an efficient method of implementation

More information

IOS Routing Internals

IOS Routing Internals IOS Routing Internals Pete Lumbis CCIE R&S #28677, CCDE 2012::3 Routing Protocols Technical Leader RTP TAC IOS Routing Internals Agenda Router Components Moving Packets CEF, CPU and Memory Outbound Load

More information

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011 A Correlation of AP Computer Science 3rd Edition, Lewis et al. 2011 To the INTRODUCTION This document demonstrates how AP (Advanced Placement) Computer Science, 3rd Edition 2011, Lewis et al. meets the

More information

Network Control and Signalling

Network Control and Signalling Network Control and Signalling 1. Introduction 2. Fundamentals and design principles 3. Network architecture and topology 4. Network control and signalling 5. Network components 5.1 links 5.2 switches

More information

Network Control, Con t

Network Control, Con t Network Control, Con t CS 161 - Computer Security Profs. Vern Paxson & David Wagner TAs: John Bethencourt, Erika Chin, Matthew Finifter, Cynthia Sturton, Joel Weinberger http://inst.eecs.berkeley.edu/~cs161/

More information

SI232 Set #20: Laundry, Co-dependency, and other Hazards of Modern (Architecture) Life. Chapter 6 ADMIN. Reading for Chapter 6: 6.1,

SI232 Set #20: Laundry, Co-dependency, and other Hazards of Modern (Architecture) Life. Chapter 6 ADMIN. Reading for Chapter 6: 6.1, SI232 Set #20: Laundry, Co-dependency, and other Hazards of Modern (Architecture) Life Chapter 6 ADMIN ing for Chapter 6: 6., 6.9-6.2 2 Midnight Laundry Task order A 6 PM 7 8 9 0 2 2 AM B C D 3 Smarty

More information

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy

Levels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development

More information

Configuring the Catena Solution

Configuring the Catena Solution This chapter describes how to configure Catena on a Cisco NX-OS device. This chapter includes the following sections: About the Catena Solution, page 1 Licensing Requirements for Catena, page 2 Guidelines

More information

Routing Basics. ISP Workshops. Last updated 10 th December 2015

Routing Basics. ISP Workshops. Last updated 10 th December 2015 Routing Basics ISP Workshops Last updated 10 th December 2015 1 Routing Concepts p IPv4 & IPv6 p Routing p Forwarding p Some definitions p Policy options p Routing Protocols 2 IPv4 p Internet still uses

More information

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214

Theorem proving. PVS theorem prover. Hoare style verification PVS. More on embeddings. What if. Abhik Roychoudhury CS 6214 Theorem proving PVS theorem prover Abhik Roychoudhury National University of Singapore Both specification and implementation can be formalized in a suitable logic. Proof rules for proving statements in

More information

Configuring Control Plane Policing

Configuring Control Plane Policing Finding Feature Information, page 1 Restrictions for CoPP, page 1 Information About Control Plane Policing, page 2 How to Configure CoPP, page 5 Examples for Configuring CoPP, page 10 Monitoring CoPP,

More information

A main goal is to achieve a better performance. Code Optimization. Chapter 9

A main goal is to achieve a better performance. Code Optimization. Chapter 9 1 A main goal is to achieve a better performance Code Optimization Chapter 9 2 A main goal is to achieve a better performance source Code Front End Intermediate Code Code Gen target Code user Machineindependent

More information

PNPL: Simplifying Programming for Protocol-Oblivious SDN Networks

PNPL: Simplifying Programming for Protocol-Oblivious SDN Networks PNPL: Simplifying Programming for Protocol-Oblivious SDN Networks Xiaodong Wang a, Ye Tian a,, Min Zhao a, Mingzheng Li a, Lei Mei a, Xinming Zhang a a Anhui Key Laboratory on High-Performance Computing

More information