CS434/534: Topics in Networked (Networking) Systems
|
|
- Phoebe Waters
- 5 years ago
- Views:
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 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 informationNetwork 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 informationSCALING 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 informationStochastic 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 informationSoftware-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 informationOpenState 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 informationFOUNDATIONS 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 informationProgramming 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 informationSteps 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 informationAdmin. 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 informationCS 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 informationSDNRacer. 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 informationCS 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 informationIntroduction 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 informationAdmin. 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 informationFlexible 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 informationCS 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 informationRouting 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 informationVeriCon: 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 informationLecture 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 informationCS 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 informationAdmin. 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 information802.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 informationSDN 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 informationCSE 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 informationNexus 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 informationNetPilot: 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 informationCS 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 informationCS 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 informationApplication 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 informationCS 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 informationCS 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 informationCS4450. 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 informationCS1101: 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 informationOperations 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 informationCisco 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 informationCS 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 informationCS 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 informationSo#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 informationCS 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 informationSoftware 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 informationProcessor. 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 informationObject-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 informationSoftRing: 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 informationSome 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 informationCSC148-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 informationLanguages 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 information18-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 informationFast-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 informationDiscrete 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 informationProblem 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 informationLinked 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 informationRecursion(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 informationNetwork 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 informationRouting 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 informationTrident. 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 informationCisco 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 informationSalt 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 informationCS 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 informationSTUDENT 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 informationLecture 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 informationComputer 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 informationSoftware 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 informationProgramming 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 informationDEVOPSIFYING 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 informationVMWARE 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 informationCS 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 informationStateful 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 informationDeploying 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 informationTree 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 informationChapter 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 informationCS 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 informationPropositional 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 informationComputation 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 informationAssignment 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 informationLevels 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 informationA 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 informationEverything 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 informationHomework 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 informationLanguages 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 informationPropositional 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 informationUsing 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 informationCOMPUTING 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 informationDevoFlow: 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 informationToward 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 informationCSCI 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 informationCS168 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 informationStreams, 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 informationIOS 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 informationJava 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 informationNetwork 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 informationNetwork 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 informationSI232 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 informationLevels 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 informationConfiguring 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 informationRouting 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 informationTheorem 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 informationConfiguring 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 informationA 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 informationPNPL: 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