Simplified Network Service Interfaces Sept 29 2014

Slides:



Advertisements
Similar presentations
Proposal: Model-Driven SAL for the OpenDaylight Controller
Advertisements

An OpenFlow Extension for the OMNeT++ INET Framework
Saurav, Srikanth, Sangho
LACP Project Proposal.
CloudWatcher: Network Security Monitoring Using OpenFlow in Dynamic Cloud Networks or: How to Provide Security Monitoring as a Service in Clouds? Seungwon.
Device Driver Framework Discussion
Page 1 / 14 The Mesh Comparison PLANET’s Layer 3 MAP products v.s. 3 rd ’s Layer 2 Mesh.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Device Driver Framework Project October 2014.
OpenDaylight Architecture ONF Member Work Day February 12 th, 2015 Colin TSC Chair, OpenDaylight Principal Engineer, Brocade.
Scalable Network Virtualization in Software-Defined Networks
Gap Analysis of Simplified Use of Policy Abstractions (SUPA) Presenter: Jun Bi draft-bi-supa-gap-analysis-02 IETF 92 SUPA BoF Dallas, TX March 23, 2015.
Resource Management – a Solution for Providing QoS over IP Tudor Dumitraş, Frances Jen-Fung Ning and Humayun Latif.
Internet Indirection Infrastructure Ion Stoica UC Berkeley.
Extending Networks. Three Levels of Extension Physical Layer –Repeaters Link Layer –Bridges –Switches Network –Routers: “Connecting networks”
An Overview of Software-Defined Network
Chapter 9 Classification And Forwarding. Outline.
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
An Overview of Software-Defined Network Presenter: Xitao Wen.
LISP, SDN, and OpenDaylight
© 2006, The Technology FirmWWW.THETECHFIRM.COM 1 WINDOWS XP SUPPORT TOOLS.
CECS 5460 – Assignment 3 Stacey VanderHeiden Güney.
Introduction to IT and Communications Technology Justin Champion C208 – 3292 Ethernet Switching CE
Chapter 4: Managing LAN Traffic
Routing and Routing Protocols Dynamic Routing Overview.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
M.Menelaou CCNA2 ROUTING. M.Menelaou ROUTING Routing is the process that a router uses to forward packets toward the destination network. A router makes.
End-to-end resource management in DiffServ Networks –DiffServ focuses on singal domain –Users want end-to-end services –No consensus at this time –Two.
– Chapter 5 – Secure LAN Switching
Protocols and the TCP/IP Suite
Network Security1 – Chapter 5 – Secure LAN Switching Layer 2 security –Port security –IP permit lists –Protocol filtering –Controlling LAN floods (using.
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
CS : Software Defined Networks 3rd Lecture 28/3/2013
CSE 6590 Fall 2010 Routing Metrics for Wireless Mesh Networks 1 4 October, 2015.
Router and Routing Basics
CS 6401 Internetworking Outline Internet Architecture Best Effort Service Model.
S3C2 – LAN Switching Addressing LAN Problems. Congestion is Caused By Multitasking, Faster operating systems, More Web-based applications Client-Server.
Othman Othman M.M., Koji Okamura Kyushu University 1.
HP OpenFlow Plugin and Libraries June 30, 2014.
1 Mobility Support by the Common API for Transparent Hybrid Multicast draft-irtf-samrg-common-api-03 Project Matthias Wählisch,
OSI Model. Switches point to point bridges two types store & forward = entire frame received the decision made, and can handle frames with errors cut-through.
EECB 473 DATA NETWORK ARCHITECTURE AND ELECTRONICS PREPARED BY JEHANA ERMY JAMALUDDIN Basic Packet Processing: Algorithms and Data Structures.
Device Identification & Driver Management TSC Update January 8, 2015.
Switches 1RD-CSY  In this lecture, we will learn about  Collision Domain and Microsegmentation  Switches – a layer two device ◦ MAC address.
CSE 6590 Fall 2009 Routing Metrics for Wireless Mesh Networks 1 12 November, 2015.
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM.
Project Proposals: ODL-SDNi App
Basic Routing Principles V1.2. Objectives Understand the function of router Know the basic conception in routing Know the working principle of router.
Routing and Routing Protocols
Routing protocols. Static Routing Routes to destinations are set up manually Route may be up or down but static routes will remain in the routing tables.
1 | © 2015 Infinera Open SDN in Metro P-OTS Networks Sten Nordell CTO Metro Business Group
Introduction to Mininet, Open vSwitch, and POX
Simplified Network Service Interfaces Sept
3.6 Software-Defined Networks and OpenFlow
Why Fabric? 1 Complicated technology/vendor/device specific provisioning for networks, especially heterogeneous network DC Network – STP, TRILL, SPB, VXLAN,
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Developing an Implementation Framework for the Future Internet using the Y-Comm Architecture, SDN and NFV Glenford Mapp Associate Professor Middlesex University,
LISP Flow Mapping Service
Multi-layer software defined networking in GÉANT
Software defined networking: Experimental research on QoS
Programmable Overlays with VPP
Programming Assignment
Revisiting Ethernet: Plug-and-play made scalable and efficient
NOX: Towards an Operating System for Networks
Chapter 4 Data Link Layer Switching
– Chapter 5 – Secure LAN Switching
Software Defined Networking (SDN)
Programmable Networks
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Simplified Network Service Interfaces Sept

 Motivations  Use-cases  API Definitions  Design Considerations  Q/As Outline 2

 Port Existing SDN Apps to OpenDaylight Project  Decrease Complexity for “Application” Writers  Provide Data Model and Infrastructure Independence  Eliminate Code Duplication  Provide an abstraction of Network Services from the underlying Data Model  Applications are burdened with searching, sorting, and filtering model objects in the datastore  Increase Performance for certain frequent data access .findNode is an O(n) operation  Build a flexible middleware service layer for evolving North- Bound API’s Motivations 3

 Network Services API’s are a library of Data Access methods that allow middleware apps to create action-based semantics  Middleware apps want to interact with the control plane with action-based semantics, not network data semantics  ‘ block’, ‘allow’, ‘inspect’, ‘inject’, ‘redirect’, ‘copy’, ‘set quality {latency, bandwidth, loss}’  Network Middleware Apps: HP Network Optimizer HP Network Protector Network Service API’s Foundation for Evolving NBI’s 4

Network Service API’s SAL Layering NETCONF Node Host Link Topo Path Flow Packet Network Service API’s Node Data Store Host Link Topo Path Flow Packet Node Host Link Topo Path Flow Packet SNMP OpenFlow... API’s MD-SAL Providers Suppliers Protocols ??? Action Semantic API’s GBP... NBI’s Data Change NotificationsData Access Acknowledge that there are many levels at which “Applications” interact with controller functions. Network Service API’s are at a lower stratum than Intent level or Policy level NBI’s

 Getting hosts by IP address On MD-SAL Today: DataBroker broker = session. getSalService(DataBroker.class); ReadOnlyTransaction tx = broker.newReadOnlyTransaction(); ListenableFuture future = tx.read(LogicalDatastoreType.OPERATIONAL, instanceIdentifier); Hosts hosts = future.get(); List salHosts = hosts.get(); List matchingHosts = new ArrayList (); for(Host host : salHosts ) { //if IP address matches //matchingHosts.add(host);... with a Simple API HostService ns; IpAddress addr = IpAddress.valueOf(" "); List Hosts = ns.getHostsByIpAddress(addr);... App Code Example 6

One use case (in correct order) – install flow to rate limit on traffic from host-A (by IPv4 address) the moment host-A shows up: 1)Register to receive DataPath oper status: so App could build up knowledge base on list of DataPaths 2)Register to receive Host discovery 3)Receive host-A discovery: a.host-A IPv4 address b.host-A MAC address c.attached DataPath d.attached DataPath VLAN e.attached DataPath port 4)Send out MeterMod (some rate, and exceeding action) 5)Send out Barrier Request 6)Send out FlowMod (host-A IPv4 address, action to the meter previously installed) 7)Receive DataPath Barrier Response 8)Unregister to receive Host discovery– upon App uninstall 9)Unregister to receive DataPath oper status – upon App uninstall Simple App using Net Svc API’s 7 Fix this

Network Service API’s - Nodes 8 NodeService API’sMethod Get all NodesIterator getNodes() Get Nodes by filterIterator getNodes(NodeFilter filter) Get Node by IDNode getNode(NodeId id) Get Nodes by IP AddressSet getNodes(IpAddress NodeIp) Get Node by DPIDNode getNode(DataPathId dpid) Get Node by URINode getNode(URI uri) Get Nodes by DriverIterator getNodes(Class DriverClass) Get all interfaces on a NodeList getInterfaces(Node Node) Get an interface on a Node by interface IDInterface getInterface(NodeId NodeId, InterfaceId interfaceId) Add Node Event listener void addListener(NodeListener listener) EventTypes: NODE_ADDED, NODE_REMOVED, NODE_UPDATED, NODE_AVAILABILITY_CHANGED, INTERFACE_STATE_CHANGED Remove Node Event listenervoid removeListener(NodeListener listener) Get all Node Event listenersSet getListeners() Set Node friendly namevoid setName(Node Node, String name)

9 HostService API’sMethod Get all hostsIterator getHosts() Get hosts by segment ID (e.g. VLAN ID)Iterator getHosts(SegmentId segId) Get hosts by IP AddressSet getHosts(IpAddress ip) Get hosts by Connection PointSet getHosts(ConnectionPoint cp) Get hosts by Mac Address & Segment IDSet getHosts(MacAddress mac, SegmentId segId ) Get hosts by Node IDSet getHosts(NodeId node) Get hosts by filterIterator getHosts(HostFilter filter) Get host by IP Address and Segment IDgetHost(IpAddress ip, SegmentId segId) Add Host Event Listener void addListener(HostListener listener) EventTypes: HOST_ADDED, HOST_REMOVED, HOST_UPDATED, HOST_MOVED, Remove Host Event Listenervoid removeListener(HostListener listener) Get all Host Event ListenersSet getListeners() Network Service API’s - Hosts

10 LinkService API’sMethod Get all Infrastructure linksIterator getLinks() Get all links associated with the specified nodeSet getLinks(NodeId node) Get all links between two specified nodesSet getLinks(NodeId nodeA, NodeId nodeB) Get all links from specified nodeSet getLinksFrom(NodeId node) Get all links to specified nodeSet getLinksTo(NodeId node) Get all links containing the specified connection pointSet getLinks(ConnectionPoint cp) Get all links from the specified connection pointSet getLinksFrom(ConnectionPoint src) Get all links to the specified connection pointSet getLinksTo(ConnectionPoint dst) Add Link Event listener void addListener(LinkListener listener) EventTypes: LINK_ADDED, LINK_REMOVED, LINK_UPDATED Remove Link Event listenervoid removeListener(LinkListener listener) Get all Link Event listenersSet getListeners() Network Service API’s - Links

11 Topology Service API’s Method Get current topologyTopology getTopology() Determines whether the supplied connection point is part of the infrastructure (not a host port) boolean isInfrastructure(ConnectionPoint point) Determines whether the supplied connection point can be used for traffic broadcast boolean isBroadcastAllowed(ConnectionPoint point) Get all clusters in current topologySet getClusters() Get the cluster containing the specified nodeTopologyCluster getCluster(NodeId nodeId) Add Topology listener void addListener(TopologyListener listener) EventTypes: TOPOLOGY_CHANGED, CLUSTER_ADDED, CLUSTER_REMOVED Remove Topology listenervoid removeListener(TopologyListener listener) Get all Topology listenersSet getListeners() Network Service API’s – Topology

12 Path Service API’s Method Paves the specified path, for the traffic matching the supplied selector void pavePath(Path path, TrafficSelector selector, TrafficTreatment treatment) Parameters: path - path to be provisioned selector - selector identifying traffic to which the steering along the given path should be applied treatment - policy for treatment of traffic Validates whether a path between two nodes is viableboolean isPathViable(NodeId src, NodeId dst) Obtain a shortest path between two nodes using hop count as link weight Path getPath(NodeId src, NodeId dst) Obtain a shortest path between two nodes using supplied link weight Path getPath(NodeId src, NodeId dst, LinkWeight weight) Network Service API’s - Path

 Simple Start  Just write APIs with methods that use MD-SAL directly Design Overview & Options 13  Optimize for Performance  Use Hash Maps instead of Tree Data Store  Create Hash Maps to index into Tree Data Store  Store Instance ID’s as keys  Store Object references as keys

 Thanks! Q&A’s 14

ODL MD-SAL Analysis 15 Pros Model provides clear separation between operational and desired state Built-in model is extensible via new yang definition, which can augment existing entities and add new ones Framework provides for model-based code generation (to any language via language-bindings) and built-in REST-to-NETCONF access Provides a framework for pub/sub and RPC delegation when model data changes Cons Complexity of architecture and lack of documentation and communication on design and usage Lacks abstractions and requires consumers to explicitly interact with the model; there is no A in SAL Lacks information hiding; all APIs are exposed externally Tight coupling of model definition to Yang presents barrier to entry Suffers from issues with memory efficiency & performance Hard to use due to a number of factors: lack of abstraction, need for direct traversal to model entities

Flare vs. ODL Net Services Feature Comparison FeatureFlare BanthaODL Helium OpenFlow-Driven Node DiscoveryYY Manual Node DiscoveryYN ARP-Based Host TrackingYY DHCP-Based Host TrackingYN Flow Table InitializationYN Flow Table ReconciliationNY Default Flow Rule RegistrationYN First-Hop End-to-End L2 Path PavingYN L3 Path PavingYN Multiple Topologies?Y Client-Safe Link DiscoveryYN Rich Model Access API’sYN Multiple Path ComputationYN Configurable Link Discovery and Host Learning YN Hybrid Mode AwarenessYN